AbdulElahGwaith commited on
Commit
7b715bc
·
verified ·
1 Parent(s): 38b9724

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .config/dotnet-tools.json +24 -0
  2. .github/CODEOWNERS +8 -0
  3. .github/blunderbuss.yml +2 -0
  4. .github/renovate.json +54 -0
  5. .github/workflows/build.yml +36 -0
  6. .gitignore +38 -0
  7. BACKLOG.md +50 -0
  8. BuildGenerated.sh +68 -0
  9. BuildSupport.sh +10 -0
  10. CODE_OF_CONDUCT.md +43 -0
  11. CONTRIBUTING.md +55 -0
  12. CSharpGeneratorFunctions.sh +53 -0
  13. DiscoveryJson/abusiveexperiencereport.v1.json +225 -0
  14. DiscoveryJson/acceleratedmobilepageurl.v1.json +235 -0
  15. DiscoveryJson/accessapproval.v1.json +1421 -0
  16. DiscoveryJson/accesscontextmanager.v1.json +0 -0
  17. DiscoveryJson/addressvalidation.v1.json +856 -0
  18. DiscoveryJson/adexchangebuyer2.v2beta1.json +0 -0
  19. DiscoveryJson/adexperiencereport.v1.json +268 -0
  20. DiscoveryJson/admin.datatransfer_v1.json +453 -0
  21. DiscoveryJson/admin.directory_v1.json +0 -0
  22. DiscoveryJson/admin.directory_v1.json.original +0 -0
  23. DiscoveryJson/admin.reports_v1.json +1403 -0
  24. DiscoveryJson/admob.v1.json +1253 -0
  25. DiscoveryJson/admob.v1beta.json +0 -0
  26. DiscoveryJson/adsense.v2.json +0 -0
  27. DiscoveryJson/adsenseplatform.v1.json +721 -0
  28. DiscoveryJson/adsenseplatform.v1alpha.json +1125 -0
  29. DiscoveryJson/advisorynotifications.v1.json +656 -0
  30. DiscoveryJson/aiplatform.v1.json +0 -0
  31. DiscoveryJson/aiplatform.v1beta1.json +0 -0
  32. DiscoveryJson/airquality.v1.json +875 -0
  33. DiscoveryJson/alertcenter.v1beta1.json +2362 -0
  34. DiscoveryJson/alloydb.v1.json +0 -0
  35. DiscoveryJson/alloydb.v1alpha.json +0 -0
  36. DiscoveryJson/alloydb.v1beta.json +0 -0
  37. DiscoveryJson/analytics.v3.json +0 -0
  38. DiscoveryJson/analyticsadmin.v1alpha.json +0 -0
  39. DiscoveryJson/analyticsadmin.v1beta.json +0 -0
  40. DiscoveryJson/analyticsdata.v1beta.json +0 -0
  41. DiscoveryJson/analyticshub.v1.json +0 -0
  42. DiscoveryJson/analyticshub.v1beta1.json +1514 -0
  43. DiscoveryJson/androiddeviceprovisioning.v1.json +1994 -0
  44. DiscoveryJson/androidenterprise.v1.json +0 -0
  45. DiscoveryJson/androidmanagement.v1.json +0 -0
  46. DiscoveryJson/androidpublisher.v3.json +0 -0
  47. DiscoveryJson/apigateway.v1.json +1824 -0
  48. DiscoveryJson/apigateway.v1beta.json +1852 -0
  49. DiscoveryJson/apigeeregistry.v1.json +0 -0
  50. DiscoveryJson/apihub.v1.json +0 -0
.config/dotnet-tools.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": 1,
3
+ "isRoot": true,
4
+ "tools": {
5
+ "docfx": {
6
+ "version": "2.78.4",
7
+ "commands": [
8
+ "docfx"
9
+ ]
10
+ },
11
+ "Google.Cloud.Tools.DocUploader": {
12
+ "version": "0.3.0",
13
+ "commands": [
14
+ "docuploader"
15
+ ]
16
+ },
17
+ "Google.Cloud.Tools.SbomGenerator": {
18
+ "version": "0.5.0",
19
+ "commands": [
20
+ "generate-sbom"
21
+ ]
22
+ }
23
+ }
24
+ }
.github/CODEOWNERS ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # Code owners file.
2
+ # This file controls who is tagged for review for any given pull request.
3
+ #
4
+ # For syntax help see:
5
+ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax
6
+
7
+
8
+ * @googleapis/cloud-libraries-dotnet
.github/blunderbuss.yml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ assign_issues:
2
+ - googleapis/cloud-libraries-dotnet
.github/renovate.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "extends": [
3
+ "config:base",
4
+ ":disableDependencyDashboard"
5
+ ],
6
+ "ignorePresets": [":ignoreModulesAndTests"],
7
+ "ignorePaths": [
8
+ "Src/Generated/**",
9
+ ".kokoro/**"
10
+ ],
11
+ "packageRules": [
12
+ {
13
+ "matchPaths": [
14
+ "Src/Support/Google.Apis.Auth.AspNetCore.IntegrationTests/**",
15
+ "Src/Support/Google.Apis.Auth.AspNetCore/**"
16
+ ],
17
+ "matchPackagePrefixes": [
18
+ "Microsoft.AspNetCore."
19
+ ],
20
+ "allowedVersions": "<2.1.0"
21
+ },
22
+ {
23
+ "matchPaths": [
24
+ "Src/Support/Google.Apis.Auth.AspNetCore3/**"
25
+ ],
26
+ "matchPackagePrefixes": [
27
+ "Microsoft.AspNetCore."
28
+ ],
29
+ "allowedVersions": "<3.1.0"
30
+ },
31
+ {
32
+ "matchPaths": [
33
+ "Src/Support/Google.Apis.Tests/**",
34
+ "Src/Support/Google.Apis.Auth.Tests/**",
35
+ "Src/Support/IntegrationTests/**"
36
+ ],
37
+ "matchPackageNames": [
38
+ "xunit.runner.visualstudio"
39
+ ],
40
+ "allowedVersions": "<2.4.4"
41
+ },
42
+ {
43
+ "matchPaths": [
44
+ "Src/Support/Google.Apis.Auth.Tests/**"
45
+ ],
46
+ "matchPackageNames": [
47
+ "Moq"
48
+ ],
49
+ "allowedVersions": "<4.18.0"
50
+ }
51
+ ],
52
+ "schedule": ["before 8am every weekday"],
53
+ "timezone": "Europe/London"
54
+ }
.github/workflows/build.yml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Build
2
+ on: [push, pull_request]
3
+ jobs:
4
+ build:
5
+ runs-on: ubuntu-latest
6
+ env:
7
+ DOTNET_NOLOGO: true
8
+
9
+ steps:
10
+ - uses: actions/checkout@v6
11
+ with:
12
+ submodules: true
13
+
14
+ # We build with .NET 8 SDK
15
+ - name: Setup .NET 8
16
+ uses: actions/setup-dotnet@v5
17
+ with:
18
+ dotnet-version: 8.0.x
19
+
20
+ # We use the .NET Core 3.1 SDK runtime for additional testing
21
+ - name: Setup .NET Core 3.1
22
+ uses: actions/setup-dotnet@v5
23
+ with:
24
+ dotnet-version: 3.1.x
25
+
26
+ - name: Build
27
+ run:
28
+ ./BuildSupport.sh
29
+
30
+ - name: Test
31
+ run: |
32
+ dotnet test Src/Support/Google.Apis.Tests/Google.Apis.Tests.csproj --no-build --framework netcoreapp3.1 -c Release
33
+ dotnet test Src/Support/Google.Apis.Tests/Google.Apis.Tests.csproj --no-build --framework net8.0 -c Release
34
+ dotnet test Src/Support/Google.Apis.Auth.Tests/Google.Apis.Auth.Tests.csproj --no-build --framework netcoreapp3.1 -c Release
35
+ dotnet test Src/Support/Google.Apis.Auth.Tests/Google.Apis.Auth.Tests.csproj --no-build --framework net8.0 -c Release
36
+
.gitignore ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [Bb]in
2
+ [Oo]bj
3
+ [Pp]ackages
4
+ [Dd]ebug*/**
5
+ [Rr]elease*/**
6
+
7
+ *.suo
8
+ *.user
9
+ launchSettings.json
10
+ .vs
11
+ project.lock.json
12
+ *~
13
+ .DS_Store
14
+ .cr
15
+
16
+ msbuild.log
17
+ TestResult.xml
18
+
19
+ # Output directories
20
+ /NuPkgs/
21
+ /tmp/
22
+
23
+ # Ignore documentation XML files that are produced as part of C# builds.
24
+ # TODO: Move these to bin or obj.
25
+ /Src/Support/**/*.xml
26
+ /Src/Generated/**/*.xml
27
+ # Ignore the temporary generation folder used to generate the subset of libaries
28
+ # with actual changes.
29
+ Src/TempGenerated
30
+
31
+ # Ignore the testrunner directory.
32
+ testrunner/*
33
+
34
+ # Ignore the generated Generated.sln solution file
35
+ Generated.sln
36
+
37
+ # Ignore the C# generator clone
38
+ tmp-gapic-generator-csharp
BACKLOG.md ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Requested enhancements and bug backlog
2
+
3
+ This file is used to keep track of feature requests that we *may*
4
+ want to come back to at some point, but aren't on our immediate
5
+ radar. Using this single document is simpler than keeping all the
6
+ corresponding issues open, but we'll reopen the issue if we revisit
7
+ the request and want to put work into it.
8
+
9
+ ## Links in xml comments are stale sometimes.
10
+
11
+ - Issue: [#573](https://github.com/googleapis/google-api-dotnet-client/issues/573)
12
+ - Status: Automation required to scan all links and check liveness.
13
+ - Action: Unlikely, this repo is in maintenance mode.
14
+
15
+ ## Enable multiple values for GeneratetagsRequest.TagFormats to retrieve INS tags
16
+
17
+ - Issue: [#663](https://github.com/googleapis/google-api-dotnet-client/issues/663)
18
+ - Status: Design work required to implement in a backwards compatible way.
19
+ - Action: Will be fixed only if a problem is found for which there is no work-around.
20
+
21
+ ## Support uploading in chunks - maybe with ResumableUpload
22
+
23
+ - Issue: [#1076](https://github.com/googleapis/google-api-dotnet-client/issues/1076)
24
+ - Status: Investigation required.
25
+ - Action: Unlikely, this repo is in maintenance mode.
26
+
27
+ ## Unable to assign a file name when uploading data by Analytics API
28
+
29
+ - Issue: [#1087](https://github.com/googleapis/google-api-dotnet-client/issues/1087)
30
+ - Status: Investigation required.
31
+ - Action: Unlikely, this repo is in maintenance mode.
32
+
33
+ ## Blazor support
34
+
35
+ - Issue [#1427 Server side Blazor and OAuth](https://github.com/googleapis/google-api-dotnet-client/issues/1427)
36
+ - Issue [#1830 Blazor WebAssembly and OAuth](https://github.com/googleapis/google-api-dotnet-client/issues/1830)
37
+ - Status: unclear right now, but we don't test on Blazor
38
+ - Action: keep an eye; if Blazor becomes very popular or we get multiple requests, we may revisit.
39
+
40
+ ## Multiple Auth related FRs
41
+
42
+ - Issue [#1548 OIDC support for gRPC credentilas](https://github.com/googleapis/google-api-dotnet-client/issues/1548)
43
+ - Issue [#1447 Support for key rotation](https://github.com/googleapis/google-api-dotnet-client/issues/1447)
44
+ - Issue [#1326 Support for "server-side" OAuth flow](https://github.com/googleapis/google-api-dotnet-client/issues/1326)
45
+ - Issue [#1803 OIDC support for user credentials](https://github.com/googleapis/google-api-dotnet-client/issues/1803)
46
+ - Issue [#1812 Support for limited input device flow](https://github.com/googleapis/google-api-dotnet-client/issues/1812)
47
+ - Issue [#1827 PCKE flow should no require client_secret](https://github.com/googleapis/google-api-dotnet-client/issues/1827)
48
+ - Issue [#2011 Add support for Domain-Wide Delegation using ImpersonatedCredential](https://github.com/googleapis/google-api-dotnet-client/issues/2011)
49
+ - Status: ongoing internal effort to consolidate and standardize OAuth features across language libraries. These feature requests are on the Auth team backlog.
50
+ - Action: Auth team will prioritize these issues and we'll work on them accordingly.
BuildGenerated.sh ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # Builds an already-generated set of API libraries, as specified
4
+ # by command-line arguments. The libraries to build can be
5
+ # specified as multiple arguments (one per library), or as a single
6
+ # file containing a list of files/directories, using the "@" prefix.
7
+ # Each file/directory should be one of:
8
+ # - A project file
9
+ # - A directory containing a project
10
+ # - A JSON file - the Discovery doc for the service to be built
11
+ #
12
+ # Common examples:
13
+ #
14
+ # In autorelease.sh:
15
+ # ./BuildGenerated @tmp/ApisToGenerate.sh
16
+ #
17
+ # After regenerating everything:
18
+ # ./BuildGenerated.sh DiscoveryJson/*.json
19
+ #
20
+ # Just to build all projects that currently exist:
21
+ # ./BuildGenerate.sh Src/Generated/*
22
+
23
+ set -e
24
+
25
+ # Final output directory of NuPkgs.
26
+ NUPKG_DIR=$(pwd)/NuPkgs/Generated
27
+ rm -rf $NUPKG_DIR
28
+
29
+ if [[ $1 == "" ]]
30
+ then
31
+ echo "Usage options:"
32
+ echo " BuildGenerated.sh <file1> [file2]"
33
+ echo " BuildGenerated.sh @file-with-paths"
34
+ echo "Each file (either in file-with-paths or specified directly)"
35
+ echo "should be a directory containing a project file, or a Discovery doc"
36
+ exit 1
37
+ fi
38
+
39
+ if [[ $1 == @* ]]
40
+ then
41
+ file=${1:1}
42
+ if [[ ! -f $file ]]
43
+ then
44
+ echo "Error: $file does not exist"
45
+ exit 1
46
+ fi
47
+
48
+ if [[ ! -s $file ]]
49
+ then
50
+ echo "$file is empty; assuming nothing needs building."
51
+ exit 0
52
+ fi
53
+ fi
54
+
55
+ echo "Creating solution"
56
+
57
+ # First argument is the generation directory, used for when Discovery docs have been specified.
58
+ PROJECTS=$(dotnet run --project Src/Tools/BuildGeneratedArgumentTranslator -- Src/Generated $*)
59
+ rm -rf Generated.sln
60
+ dotnet new sln --name Generated
61
+ echo $PROJECTS | xargs dotnet sln Generated.sln add
62
+
63
+ echo "Building/packing"
64
+ export CI=true
65
+ export DeterministicSourcePaths=true
66
+ dotnet pack Generated.sln -c Release -o $NUPKG_DIR
67
+
68
+ echo "Build complete"
BuildSupport.sh ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ # Forces sourcelink to work during the build.
6
+ export CI=true
7
+ export DeterministicSourcePaths=true
8
+
9
+ dotnet build Src/Support/GoogleApisClient.sln -c Release
10
+ dotnet pack Src/Support/GoogleApisClient.sln -c Release -o NuPkgs/Support
CODE_OF_CONDUCT.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project,
4
+ and in the interest of fostering an open and welcoming community,
5
+ we pledge to respect all people who contribute through reporting issues,
6
+ posting feature requests, updating documentation,
7
+ submitting pull requests or patches, and other activities.
8
+
9
+ We are committed to making participation in this project
10
+ a harassment-free experience for everyone,
11
+ regardless of level of experience, gender, gender identity and expression,
12
+ sexual orientation, disability, personal appearance,
13
+ body size, race, ethnicity, age, religion, or nationality.
14
+
15
+ Examples of unacceptable behavior by participants include:
16
+
17
+ * The use of sexualized language or imagery
18
+ * Personal attacks
19
+ * Trolling or insulting/derogatory comments
20
+ * Public or private harassment
21
+ * Publishing other's private information,
22
+ such as physical or electronic
23
+ addresses, without explicit permission
24
+ * Other unethical or unprofessional conduct.
25
+
26
+ Project maintainers have the right and responsibility to remove, edit, or reject
27
+ comments, commits, code, wiki edits, issues, and other contributions
28
+ that are not aligned to this Code of Conduct.
29
+ By adopting this Code of Conduct,
30
+ project maintainers commit themselves to fairly and consistently
31
+ applying these principles to every aspect of managing this project.
32
+ Project maintainers who do not follow or enforce the Code of Conduct
33
+ may be permanently removed from the project team.
34
+
35
+ This code of conduct applies both within project spaces and in public spaces
36
+ when an individual is representing the project or its community.
37
+
38
+ Instances of abusive, harassing, or otherwise unacceptable behavior
39
+ may be reported by opening an issue
40
+ or contacting one or more of the project maintainers.
41
+
42
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
43
+ available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
CONTRIBUTING.md ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributing
2
+
3
+ We welcome contributions to our code, and will always endeavor to respond in a quick and helpful manner to Pull Requests.
4
+
5
+ 1. **Please sign one of the contributor license agreements below** (simple and pain-free).
6
+ 1. Fork the repo, develop and test your code changes, add docs.
7
+ 1. A Pull Request should be a set of changes that addresses one issue in the issue tracker. Please file one Pull Request per issue, and address one issue per Pull Request. If you want to make a change that doesn't have a corresponding issue in the issue tracker, please [submit a new issue][issues] first.
8
+ 1. Make sure that your commit messages clearly describe the changes.
9
+ 1. Send a pull request.
10
+
11
+ [issues]: https://github.com/googleapis/google-api-dotnet-client/issues
12
+
13
+ ## Contributor License Agreements
14
+
15
+ Before we can accept your pull requests you'll need to sign a Contributor
16
+ License Agreement (CLA):
17
+
18
+ - **If you are an individual writing original source code** and **you own the intellectual property**,
19
+ then you'll need to sign an [individual CLA][individual-cla].
20
+ - **If you work for a company that wants to allow you to contribute your work**,
21
+ then you'll need to sign a [corporate CLA][corporate-cla].
22
+
23
+ You can sign these electronically (just scroll to the bottom). After that,
24
+ we'll be able to accept your pull requests.
25
+
26
+ [individual-cla]: https://developers.google.com/open-source/cla/individual
27
+ [corporate-cla]: https://developers.google.com/open-source/cla/corporate
28
+
29
+ # Code Layout
30
+
31
+ These libraries are split into:
32
+
33
+ - [Generated client libraries][client-libs]: The per-service libraries as used by users. The source code for these is generated by the Client Generator.
34
+ - [Client Generator][client-gen]: The code generator for the above.
35
+ - [Support Libraries][support-libs]: Support code for the client libraries.
36
+
37
+ [support-libs]: https://github.com/googleapis/google-api-dotnet-client/tree/main/Src/Support
38
+ [client-libs]: https://github.com/googleapis/google-api-dotnet-client/tree/main/Src/Generated
39
+ [client-gen]: https://github.com/googleapis/google-api-dotnet-client/tree/main/ClientGenerator
40
+
41
+ ## Building and .NET Core
42
+
43
+ We use Visual Studio 2022 to edit the Support Libraries.
44
+
45
+ We use [dotnet cli][dotnetcli] for testing and building both the generated Client Libraries and the Support Libraries.
46
+
47
+ [dotnetcli]: https://github.com/dotnet/cli
48
+
49
+ ## Tests
50
+
51
+ Support Library tests use [XUnit][xunit].
52
+
53
+ Tests are run using the `dotnet test` command in the relevant source directory.
54
+
55
+ [xunit]: https://xunit.github.io/
CSharpGeneratorFunctions.sh ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This is intended to be imported using the "source" function
2
+ # from any script that wants to invoke the C#-based generator.
3
+
4
+ declare -r GAPIC_GENERATOR_VERSION=1.4.29
5
+
6
+ TMP_CSHARP_GENERATOR_DIR=tmp-gapic-generator-csharp
7
+ if [[ $CSHARP_GENERATOR_DIR == "" ]]
8
+ then
9
+ CSHARP_GENERATOR_DIR=$TMP_CSHARP_GENERATOR_DIR
10
+ fi
11
+
12
+ # Installs the C# generator in a tmp-gapic-generator-csharp directory,
13
+ # unless an existing generator directory is specified via the
14
+ # CSHARP_GENERATOR_DIR environment variable.
15
+ # When installing, if the directory already exists, it is deleted first.
16
+ # The tag for GAPIC_GENERATOR_VERSION (declared at the top of this file)
17
+ # is checked out.
18
+ install_csharp_generator() {
19
+ if [[ $CSHARP_GENERATOR_DIR == $TMP_CSHARP_GENERATOR_DIR ]]
20
+ then
21
+ echo "Installing C# generator in $CSHARP_GENERATOR_DIR"
22
+ rm -rf $CSHARP_GENERATOR_DIR
23
+
24
+ git clone --quiet --recursive \
25
+ https://github.com/googleapis/gapic-generator-csharp.git \
26
+ $CSHARP_GENERATOR_DIR
27
+ git -C $CSHARP_GENERATOR_DIR checkout -q v$GAPIC_GENERATOR_VERSION
28
+ else
29
+ echo "Using C# generator in $CSHARP_GENERATOR_DIR"
30
+ fi
31
+ echo 'Building C# generator'
32
+ (cd $CSHARP_GENERATOR_DIR && \
33
+ dotnet build -c Release -nologo -clp:NoSummary -v quiet Google.Api.Generator.Rest)
34
+ echo 'Generator build complete'
35
+ }
36
+
37
+ # Runs the C# generator, which is expected to be installed in
38
+ # tmp-gapic-generator-csharp as per install_csharp_generator()
39
+ # Expected arguments:
40
+ # - Discovery doc
41
+ # - Output directory (a subdirectory will be created under this)
42
+ # - Features file
43
+ # - Enum storage file
44
+ run_csharp_generator() {
45
+ # We call the generator frequently; dotnet run takes a while to start it,
46
+ # even with --no-build and --no-restore.
47
+ # Using "dotnet" with the DLL is more portable than executing the .exe file directly.
48
+ # TODO: Rather than hard-coding this, we could build into a new directory (once)
49
+ # where we'd always have a fresh copy.
50
+ dotnet \
51
+ $CSHARP_GENERATOR_DIR/Google.Api.Generator.Rest/bin/Release/net6.0/Google.Api.Generator.Rest.dll \
52
+ "$1" "$2" "$3" "$4"
53
+ }
DiscoveryJson/abusiveexperiencereport.v1.json ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "basePath": "",
3
+ "baseUrl": "https://abusiveexperiencereport.googleapis.com/",
4
+ "batchPath": "batch",
5
+ "canonicalName": "Abusive Experience Report",
6
+ "description": "Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.",
7
+ "discoveryVersion": "v1",
8
+ "documentationLink": "https://developers.google.com/abusive-experience-report/",
9
+ "fullyEncodeReservedExpansion": true,
10
+ "icons": {
11
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
12
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
13
+ },
14
+ "id": "abusiveexperiencereport:v1",
15
+ "kind": "discovery#restDescription",
16
+ "mtlsRootUrl": "https://abusiveexperiencereport.mtls.googleapis.com/",
17
+ "name": "abusiveexperiencereport",
18
+ "ownerDomain": "google.com",
19
+ "ownerName": "Google",
20
+ "parameters": {
21
+ "$.xgafv": {
22
+ "description": "V1 error format.",
23
+ "enum": [
24
+ "1",
25
+ "2"
26
+ ],
27
+ "enumDescriptions": [
28
+ "v1 error format",
29
+ "v2 error format"
30
+ ],
31
+ "location": "query",
32
+ "type": "string"
33
+ },
34
+ "access_token": {
35
+ "description": "OAuth access token.",
36
+ "location": "query",
37
+ "type": "string"
38
+ },
39
+ "alt": {
40
+ "default": "json",
41
+ "description": "Data format for response.",
42
+ "enum": [
43
+ "json",
44
+ "media",
45
+ "proto"
46
+ ],
47
+ "enumDescriptions": [
48
+ "Responses with Content-Type of application/json",
49
+ "Media download with context-dependent Content-Type",
50
+ "Responses with Content-Type of application/x-protobuf"
51
+ ],
52
+ "location": "query",
53
+ "type": "string"
54
+ },
55
+ "callback": {
56
+ "description": "JSONP",
57
+ "location": "query",
58
+ "type": "string"
59
+ },
60
+ "fields": {
61
+ "description": "Selector specifying which fields to include in a partial response.",
62
+ "location": "query",
63
+ "type": "string"
64
+ },
65
+ "key": {
66
+ "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.",
67
+ "location": "query",
68
+ "type": "string"
69
+ },
70
+ "oauth_token": {
71
+ "description": "OAuth 2.0 token for the current user.",
72
+ "location": "query",
73
+ "type": "string"
74
+ },
75
+ "prettyPrint": {
76
+ "default": "true",
77
+ "description": "Returns response with indentations and line breaks.",
78
+ "location": "query",
79
+ "type": "boolean"
80
+ },
81
+ "quotaUser": {
82
+ "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.",
83
+ "location": "query",
84
+ "type": "string"
85
+ },
86
+ "uploadType": {
87
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
88
+ "location": "query",
89
+ "type": "string"
90
+ },
91
+ "upload_protocol": {
92
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
93
+ "location": "query",
94
+ "type": "string"
95
+ }
96
+ },
97
+ "protocol": "rest",
98
+ "resources": {
99
+ "sites": {
100
+ "methods": {
101
+ "get": {
102
+ "description": "Gets a site's Abusive Experience Report summary.",
103
+ "flatPath": "v1/sites/{sitesId}",
104
+ "httpMethod": "GET",
105
+ "id": "abusiveexperiencereport.sites.get",
106
+ "parameterOrder": [
107
+ "name"
108
+ ],
109
+ "parameters": {
110
+ "name": {
111
+ "description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
112
+ "location": "path",
113
+ "pattern": "^sites/[^/]+$",
114
+ "required": true,
115
+ "type": "string"
116
+ }
117
+ },
118
+ "path": "v1/{+name}",
119
+ "response": {
120
+ "$ref": "SiteSummaryResponse"
121
+ }
122
+ }
123
+ }
124
+ },
125
+ "violatingSites": {
126
+ "methods": {
127
+ "list": {
128
+ "description": "Lists sites that are failing in the Abusive Experience Report.",
129
+ "flatPath": "v1/violatingSites",
130
+ "httpMethod": "GET",
131
+ "id": "abusiveexperiencereport.violatingSites.list",
132
+ "parameterOrder": [],
133
+ "parameters": {},
134
+ "path": "v1/violatingSites",
135
+ "response": {
136
+ "$ref": "ViolatingSitesResponse"
137
+ }
138
+ }
139
+ }
140
+ }
141
+ },
142
+ "revision": "20210213",
143
+ "rootUrl": "https://abusiveexperiencereport.googleapis.com/",
144
+ "schemas": {
145
+ "SiteSummaryResponse": {
146
+ "description": "Response message for GetSiteSummary.",
147
+ "id": "SiteSummaryResponse",
148
+ "properties": {
149
+ "abusiveStatus": {
150
+ "description": "The site's Abusive Experience Report status.",
151
+ "enum": [
152
+ "UNKNOWN",
153
+ "PASSING",
154
+ "FAILING"
155
+ ],
156
+ "enumDescriptions": [
157
+ "Not reviewed.",
158
+ "Passing.",
159
+ "Failing."
160
+ ],
161
+ "type": "string"
162
+ },
163
+ "enforcementTime": {
164
+ "description": "The time at which [enforcement](https://support.google.com/webtools/answer/7538608) against the site began or will begin. Not set when the filter_status is OFF.",
165
+ "format": "google-datetime",
166
+ "type": "string"
167
+ },
168
+ "filterStatus": {
169
+ "description": "The site's [enforcement status](https://support.google.com/webtools/answer/7538608).",
170
+ "enum": [
171
+ "UNKNOWN",
172
+ "ON",
173
+ "OFF",
174
+ "PAUSED",
175
+ "PENDING"
176
+ ],
177
+ "enumDescriptions": [
178
+ "N/A.",
179
+ "Enforcement is on.",
180
+ "Enforcement is off.",
181
+ "Enforcement is paused.",
182
+ "Enforcement is pending."
183
+ ],
184
+ "type": "string"
185
+ },
186
+ "lastChangeTime": {
187
+ "description": "The time at which the site's status last changed.",
188
+ "format": "google-datetime",
189
+ "type": "string"
190
+ },
191
+ "reportUrl": {
192
+ "description": "A link to the full Abusive Experience Report for the site. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
193
+ "type": "string"
194
+ },
195
+ "reviewedSite": {
196
+ "description": "The name of the reviewed site, e.g. `google.com`.",
197
+ "type": "string"
198
+ },
199
+ "underReview": {
200
+ "description": "Whether the site is currently under review.",
201
+ "type": "boolean"
202
+ }
203
+ },
204
+ "type": "object"
205
+ },
206
+ "ViolatingSitesResponse": {
207
+ "description": "Response message for ListViolatingSites.",
208
+ "id": "ViolatingSitesResponse",
209
+ "properties": {
210
+ "violatingSites": {
211
+ "description": "The list of violating sites.",
212
+ "items": {
213
+ "$ref": "SiteSummaryResponse"
214
+ },
215
+ "type": "array"
216
+ }
217
+ },
218
+ "type": "object"
219
+ }
220
+ },
221
+ "servicePath": "",
222
+ "title": "Abusive Experience Report API",
223
+ "version": "v1",
224
+ "version_module": true
225
+ }
DiscoveryJson/acceleratedmobilepageurl.v1.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "basePath": "",
3
+ "baseUrl": "https://acceleratedmobilepageurl.googleapis.com/",
4
+ "batchPath": "batch",
5
+ "canonicalName": "Acceleratedmobilepageurl",
6
+ "description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s). ",
7
+ "discoveryVersion": "v1",
8
+ "documentationLink": "https://developers.google.com/amp/cache/",
9
+ "icons": {
10
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
11
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
12
+ },
13
+ "id": "acceleratedmobilepageurl:v1",
14
+ "kind": "discovery#restDescription",
15
+ "mtlsRootUrl": "https://acceleratedmobilepageurl.mtls.googleapis.com/",
16
+ "name": "acceleratedmobilepageurl",
17
+ "ownerDomain": "google.com",
18
+ "ownerName": "Google",
19
+ "parameters": {
20
+ "$.xgafv": {
21
+ "description": "V1 error format.",
22
+ "enum": [
23
+ "1",
24
+ "2"
25
+ ],
26
+ "enumDescriptions": [
27
+ "v1 error format",
28
+ "v2 error format"
29
+ ],
30
+ "location": "query",
31
+ "type": "string"
32
+ },
33
+ "access_token": {
34
+ "description": "OAuth access token.",
35
+ "location": "query",
36
+ "type": "string"
37
+ },
38
+ "alt": {
39
+ "default": "json",
40
+ "description": "Data format for response.",
41
+ "enum": [
42
+ "json",
43
+ "media",
44
+ "proto"
45
+ ],
46
+ "enumDescriptions": [
47
+ "Responses with Content-Type of application/json",
48
+ "Media download with context-dependent Content-Type",
49
+ "Responses with Content-Type of application/x-protobuf"
50
+ ],
51
+ "location": "query",
52
+ "type": "string"
53
+ },
54
+ "callback": {
55
+ "description": "JSONP",
56
+ "location": "query",
57
+ "type": "string"
58
+ },
59
+ "fields": {
60
+ "description": "Selector specifying which fields to include in a partial response.",
61
+ "location": "query",
62
+ "type": "string"
63
+ },
64
+ "key": {
65
+ "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.",
66
+ "location": "query",
67
+ "type": "string"
68
+ },
69
+ "oauth_token": {
70
+ "description": "OAuth 2.0 token for the current user.",
71
+ "location": "query",
72
+ "type": "string"
73
+ },
74
+ "prettyPrint": {
75
+ "default": "true",
76
+ "description": "Returns response with indentations and line breaks.",
77
+ "location": "query",
78
+ "type": "boolean"
79
+ },
80
+ "quotaUser": {
81
+ "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.",
82
+ "location": "query",
83
+ "type": "string"
84
+ },
85
+ "uploadType": {
86
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
87
+ "location": "query",
88
+ "type": "string"
89
+ },
90
+ "upload_protocol": {
91
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
92
+ "location": "query",
93
+ "type": "string"
94
+ }
95
+ },
96
+ "protocol": "rest",
97
+ "resources": {
98
+ "ampUrls": {
99
+ "methods": {
100
+ "batchGet": {
101
+ "description": "Returns AMP URL(s) and equivalent [AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).",
102
+ "flatPath": "v1/ampUrls:batchGet",
103
+ "httpMethod": "POST",
104
+ "id": "acceleratedmobilepageurl.ampUrls.batchGet",
105
+ "parameterOrder": [],
106
+ "parameters": {},
107
+ "path": "v1/ampUrls:batchGet",
108
+ "request": {
109
+ "$ref": "BatchGetAmpUrlsRequest"
110
+ },
111
+ "response": {
112
+ "$ref": "BatchGetAmpUrlsResponse"
113
+ }
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "revision": "20230704",
119
+ "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/",
120
+ "schemas": {
121
+ "AmpUrl": {
122
+ "description": "AMP URL response for a requested URL.",
123
+ "id": "AmpUrl",
124
+ "properties": {
125
+ "ampUrl": {
126
+ "description": "The AMP URL pointing to the publisher's web server.",
127
+ "type": "string"
128
+ },
129
+ "cdnAmpUrl": {
130
+ "description": "The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to the cached document in the Google AMP Cache.",
131
+ "type": "string"
132
+ },
133
+ "originalUrl": {
134
+ "description": "The original non-AMP URL.",
135
+ "type": "string"
136
+ }
137
+ },
138
+ "type": "object"
139
+ },
140
+ "AmpUrlError": {
141
+ "description": "AMP URL Error resource for a requested URL that couldn't be found.",
142
+ "id": "AmpUrlError",
143
+ "properties": {
144
+ "errorCode": {
145
+ "description": "The error code of an API call.",
146
+ "enum": [
147
+ "ERROR_CODE_UNSPECIFIED",
148
+ "INPUT_URL_NOT_FOUND",
149
+ "NO_AMP_URL",
150
+ "APPLICATION_ERROR",
151
+ "URL_IS_VALID_AMP",
152
+ "URL_IS_INVALID_AMP"
153
+ ],
154
+ "enumDeprecated": [
155
+ false,
156
+ false,
157
+ false,
158
+ false,
159
+ true,
160
+ false
161
+ ],
162
+ "enumDescriptions": [
163
+ "Not specified error.",
164
+ "Indicates the requested URL is not found in the index, possibly because it's unable to be found, not able to be accessed by Googlebot, or some other error.",
165
+ "Indicates no AMP URL has been found that corresponds to the requested URL.",
166
+ "Indicates some kind of application error occurred at the server. Client advised to retry.",
167
+ "DEPRECATED: Indicates the requested URL is a valid AMP URL. This is a non-error state, should not be relied upon as a sign of success or failure. It will be removed in future versions of the API.",
168
+ "Indicates that an AMP URL has been found that corresponds to the request URL, but it is not valid AMP HTML."
169
+ ],
170
+ "type": "string"
171
+ },
172
+ "errorMessage": {
173
+ "description": "An optional descriptive error message.",
174
+ "type": "string"
175
+ },
176
+ "originalUrl": {
177
+ "description": "The original non-AMP URL.",
178
+ "type": "string"
179
+ }
180
+ },
181
+ "type": "object"
182
+ },
183
+ "BatchGetAmpUrlsRequest": {
184
+ "description": "AMP URL request for a batch of URLs.",
185
+ "id": "BatchGetAmpUrlsRequest",
186
+ "properties": {
187
+ "lookupStrategy": {
188
+ "description": "The lookup_strategy being requested.",
189
+ "enum": [
190
+ "FETCH_LIVE_DOC",
191
+ "IN_INDEX_DOC"
192
+ ],
193
+ "enumDescriptions": [
194
+ "FETCH_LIVE_DOC strategy involves live document fetch of URLs not found in the index. Any request URL not found in the index is crawled in realtime to validate if there is a corresponding AMP URL. This strategy has higher coverage but with extra latency introduced by realtime crawling. This is the default strategy. Applications using this strategy should set higher HTTP timeouts of the API calls.",
195
+ "IN_INDEX_DOC strategy skips fetching live documents of URL(s) not found in index. For applications which need low latency use of IN_INDEX_DOC strategy is recommended."
196
+ ],
197
+ "type": "string"
198
+ },
199
+ "urls": {
200
+ "description": "List of URLs to look up for the paired AMP URLs. The URLs are case-sensitive. Up to 50 URLs per lookup (see [Usage Limits](/amp/cache/reference/limits)).",
201
+ "items": {
202
+ "type": "string"
203
+ },
204
+ "type": "array"
205
+ }
206
+ },
207
+ "type": "object"
208
+ },
209
+ "BatchGetAmpUrlsResponse": {
210
+ "description": "Batch AMP URL response.",
211
+ "id": "BatchGetAmpUrlsResponse",
212
+ "properties": {
213
+ "ampUrls": {
214
+ "description": "For each URL in BatchAmpUrlsRequest, the URL response. The response might not be in the same order as URLs in the batch request. If BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated only once.",
215
+ "items": {
216
+ "$ref": "AmpUrl"
217
+ },
218
+ "type": "array"
219
+ },
220
+ "urlErrors": {
221
+ "description": "The errors for requested URLs that have no AMP URL.",
222
+ "items": {
223
+ "$ref": "AmpUrlError"
224
+ },
225
+ "type": "array"
226
+ }
227
+ },
228
+ "type": "object"
229
+ }
230
+ },
231
+ "servicePath": "",
232
+ "title": "Accelerated Mobile Pages (AMP) URL API",
233
+ "version": "v1",
234
+ "version_module": true
235
+ }
DiscoveryJson/accessapproval.v1.json ADDED
@@ -0,0 +1,1421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://accessapproval.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "canonicalName": "Access Approval",
15
+ "description": "An API for controlling access to data by Google personnel.",
16
+ "discoveryVersion": "v1",
17
+ "documentationLink": "https://cloud.google.com/assured-workloads/access-approval/docs",
18
+ "fullyEncodeReservedExpansion": true,
19
+ "icons": {
20
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
21
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
22
+ },
23
+ "id": "accessapproval:v1",
24
+ "kind": "discovery#restDescription",
25
+ "mtlsRootUrl": "https://accessapproval.mtls.googleapis.com/",
26
+ "name": "accessapproval",
27
+ "ownerDomain": "google.com",
28
+ "ownerName": "Google",
29
+ "parameters": {
30
+ "$.xgafv": {
31
+ "description": "V1 error format.",
32
+ "enum": [
33
+ "1",
34
+ "2"
35
+ ],
36
+ "enumDescriptions": [
37
+ "v1 error format",
38
+ "v2 error format"
39
+ ],
40
+ "location": "query",
41
+ "type": "string"
42
+ },
43
+ "access_token": {
44
+ "description": "OAuth access token.",
45
+ "location": "query",
46
+ "type": "string"
47
+ },
48
+ "alt": {
49
+ "default": "json",
50
+ "description": "Data format for response.",
51
+ "enum": [
52
+ "json",
53
+ "media",
54
+ "proto"
55
+ ],
56
+ "enumDescriptions": [
57
+ "Responses with Content-Type of application/json",
58
+ "Media download with context-dependent Content-Type",
59
+ "Responses with Content-Type of application/x-protobuf"
60
+ ],
61
+ "location": "query",
62
+ "type": "string"
63
+ },
64
+ "callback": {
65
+ "description": "JSONP",
66
+ "location": "query",
67
+ "type": "string"
68
+ },
69
+ "fields": {
70
+ "description": "Selector specifying which fields to include in a partial response.",
71
+ "location": "query",
72
+ "type": "string"
73
+ },
74
+ "key": {
75
+ "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.",
76
+ "location": "query",
77
+ "type": "string"
78
+ },
79
+ "oauth_token": {
80
+ "description": "OAuth 2.0 token for the current user.",
81
+ "location": "query",
82
+ "type": "string"
83
+ },
84
+ "prettyPrint": {
85
+ "default": "true",
86
+ "description": "Returns response with indentations and line breaks.",
87
+ "location": "query",
88
+ "type": "boolean"
89
+ },
90
+ "quotaUser": {
91
+ "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.",
92
+ "location": "query",
93
+ "type": "string"
94
+ },
95
+ "uploadType": {
96
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97
+ "location": "query",
98
+ "type": "string"
99
+ },
100
+ "upload_protocol": {
101
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102
+ "location": "query",
103
+ "type": "string"
104
+ }
105
+ },
106
+ "protocol": "rest",
107
+ "resources": {
108
+ "folders": {
109
+ "methods": {
110
+ "deleteAccessApprovalSettings": {
111
+ "description": "Deletes the settings associated with a project, folder, or organization. This will have the effect of disabling Access Approval for the resource. Access Approval may remain active based on parent resource settings. To confirm the effective settings, call GetAccessApprovalSettings and verify effective setting is disabled.",
112
+ "flatPath": "v1/folders/{foldersId}/accessApprovalSettings",
113
+ "httpMethod": "DELETE",
114
+ "id": "accessapproval.folders.deleteAccessApprovalSettings",
115
+ "parameterOrder": [
116
+ "name"
117
+ ],
118
+ "parameters": {
119
+ "name": {
120
+ "description": "Name of the AccessApprovalSettings to delete.",
121
+ "location": "path",
122
+ "pattern": "^folders/[^/]+/accessApprovalSettings$",
123
+ "required": true,
124
+ "type": "string"
125
+ }
126
+ },
127
+ "path": "v1/{+name}",
128
+ "response": {
129
+ "$ref": "Empty"
130
+ },
131
+ "scopes": [
132
+ "https://www.googleapis.com/auth/cloud-platform"
133
+ ]
134
+ },
135
+ "getAccessApprovalSettings": {
136
+ "description": "Gets the Access Approval settings associated with a project, folder, or organization.",
137
+ "flatPath": "v1/folders/{foldersId}/accessApprovalSettings",
138
+ "httpMethod": "GET",
139
+ "id": "accessapproval.folders.getAccessApprovalSettings",
140
+ "parameterOrder": [
141
+ "name"
142
+ ],
143
+ "parameters": {
144
+ "name": {
145
+ "description": "The name of the AccessApprovalSettings to retrieve. Format: \"{projects|folders|organizations}/{id}/accessApprovalSettings\"",
146
+ "location": "path",
147
+ "pattern": "^folders/[^/]+/accessApprovalSettings$",
148
+ "required": true,
149
+ "type": "string"
150
+ }
151
+ },
152
+ "path": "v1/{+name}",
153
+ "response": {
154
+ "$ref": "AccessApprovalSettings"
155
+ },
156
+ "scopes": [
157
+ "https://www.googleapis.com/auth/cloud-platform"
158
+ ]
159
+ },
160
+ "getServiceAccount": {
161
+ "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.",
162
+ "flatPath": "v1/folders/{foldersId}/serviceAccount",
163
+ "httpMethod": "GET",
164
+ "id": "accessapproval.folders.getServiceAccount",
165
+ "parameterOrder": [
166
+ "name"
167
+ ],
168
+ "parameters": {
169
+ "name": {
170
+ "description": "Name of the AccessApprovalServiceAccount to retrieve.",
171
+ "location": "path",
172
+ "pattern": "^folders/[^/]+/serviceAccount$",
173
+ "required": true,
174
+ "type": "string"
175
+ }
176
+ },
177
+ "path": "v1/{+name}",
178
+ "response": {
179
+ "$ref": "AccessApprovalServiceAccount"
180
+ },
181
+ "scopes": [
182
+ "https://www.googleapis.com/auth/cloud-platform"
183
+ ]
184
+ },
185
+ "updateAccessApprovalSettings": {
186
+ "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.",
187
+ "flatPath": "v1/folders/{foldersId}/accessApprovalSettings",
188
+ "httpMethod": "PATCH",
189
+ "id": "accessapproval.folders.updateAccessApprovalSettings",
190
+ "parameterOrder": [
191
+ "name"
192
+ ],
193
+ "parameters": {
194
+ "name": {
195
+ "description": "The resource name of the settings. Format is one of: * \"projects/{project}/accessApprovalSettings\" * \"folders/{folder}/accessApprovalSettings\" * \"organizations/{organization}/accessApprovalSettings\"",
196
+ "location": "path",
197
+ "pattern": "^folders/[^/]+/accessApprovalSettings$",
198
+ "required": true,
199
+ "type": "string"
200
+ },
201
+ "updateMask": {
202
+ "description": "The update mask applies to the settings. Only the top level fields of AccessApprovalSettings (notification_emails & enrolled_services) are supported. For each field, if it is included, the currently stored value will be entirely overwritten with the value of the field passed in this request. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If this field is left unset, only the notification_emails field will be updated.",
203
+ "format": "google-fieldmask",
204
+ "location": "query",
205
+ "type": "string"
206
+ }
207
+ },
208
+ "path": "v1/{+name}",
209
+ "request": {
210
+ "$ref": "AccessApprovalSettings"
211
+ },
212
+ "response": {
213
+ "$ref": "AccessApprovalSettings"
214
+ },
215
+ "scopes": [
216
+ "https://www.googleapis.com/auth/cloud-platform"
217
+ ]
218
+ }
219
+ },
220
+ "resources": {
221
+ "approvalRequests": {
222
+ "methods": {
223
+ "approve": {
224
+ "description": "Approves a request and returns the updated ApprovalRequest. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
225
+ "flatPath": "v1/folders/{foldersId}/approvalRequests/{approvalRequestsId}:approve",
226
+ "httpMethod": "POST",
227
+ "id": "accessapproval.folders.approvalRequests.approve",
228
+ "parameterOrder": [
229
+ "name"
230
+ ],
231
+ "parameters": {
232
+ "name": {
233
+ "description": "Name of the approval request to approve.",
234
+ "location": "path",
235
+ "pattern": "^folders/[^/]+/approvalRequests/[^/]+$",
236
+ "required": true,
237
+ "type": "string"
238
+ }
239
+ },
240
+ "path": "v1/{+name}:approve",
241
+ "request": {
242
+ "$ref": "ApproveApprovalRequestMessage"
243
+ },
244
+ "response": {
245
+ "$ref": "ApprovalRequest"
246
+ },
247
+ "scopes": [
248
+ "https://www.googleapis.com/auth/cloud-platform"
249
+ ]
250
+ },
251
+ "dismiss": {
252
+ "description": "Dismisses a request. Returns the updated ApprovalRequest. NOTE: When a request is dismissed, it is considered ignored. Dismissing a request does not prevent access granted by other Access Approval requests. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
253
+ "flatPath": "v1/folders/{foldersId}/approvalRequests/{approvalRequestsId}:dismiss",
254
+ "httpMethod": "POST",
255
+ "id": "accessapproval.folders.approvalRequests.dismiss",
256
+ "parameterOrder": [
257
+ "name"
258
+ ],
259
+ "parameters": {
260
+ "name": {
261
+ "description": "Name of the ApprovalRequest to dismiss.",
262
+ "location": "path",
263
+ "pattern": "^folders/[^/]+/approvalRequests/[^/]+$",
264
+ "required": true,
265
+ "type": "string"
266
+ }
267
+ },
268
+ "path": "v1/{+name}:dismiss",
269
+ "request": {
270
+ "$ref": "DismissApprovalRequestMessage"
271
+ },
272
+ "response": {
273
+ "$ref": "ApprovalRequest"
274
+ },
275
+ "scopes": [
276
+ "https://www.googleapis.com/auth/cloud-platform"
277
+ ]
278
+ },
279
+ "get": {
280
+ "description": "Gets an approval request. Returns NOT_FOUND if the request does not exist.",
281
+ "flatPath": "v1/folders/{foldersId}/approvalRequests/{approvalRequestsId}",
282
+ "httpMethod": "GET",
283
+ "id": "accessapproval.folders.approvalRequests.get",
284
+ "parameterOrder": [
285
+ "name"
286
+ ],
287
+ "parameters": {
288
+ "name": {
289
+ "description": "The name of the approval request to retrieve. Format: \"{projects|folders|organizations}/{id}/approvalRequests/{approval_request}\"",
290
+ "location": "path",
291
+ "pattern": "^folders/[^/]+/approvalRequests/[^/]+$",
292
+ "required": true,
293
+ "type": "string"
294
+ }
295
+ },
296
+ "path": "v1/{+name}",
297
+ "response": {
298
+ "$ref": "ApprovalRequest"
299
+ },
300
+ "scopes": [
301
+ "https://www.googleapis.com/auth/cloud-platform"
302
+ ]
303
+ },
304
+ "invalidate": {
305
+ "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This action revokes Google access based on this approval request. If the resource has other active approvals, access will remain granted. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.",
306
+ "flatPath": "v1/folders/{foldersId}/approvalRequests/{approvalRequestsId}:invalidate",
307
+ "httpMethod": "POST",
308
+ "id": "accessapproval.folders.approvalRequests.invalidate",
309
+ "parameterOrder": [
310
+ "name"
311
+ ],
312
+ "parameters": {
313
+ "name": {
314
+ "description": "Name of the ApprovalRequest to invalidate.",
315
+ "location": "path",
316
+ "pattern": "^folders/[^/]+/approvalRequests/[^/]+$",
317
+ "required": true,
318
+ "type": "string"
319
+ }
320
+ },
321
+ "path": "v1/{+name}:invalidate",
322
+ "request": {
323
+ "$ref": "InvalidateApprovalRequestMessage"
324
+ },
325
+ "response": {
326
+ "$ref": "ApprovalRequest"
327
+ },
328
+ "scopes": [
329
+ "https://www.googleapis.com/auth/cloud-platform"
330
+ ]
331
+ },
332
+ "list": {
333
+ "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.",
334
+ "flatPath": "v1/folders/{foldersId}/approvalRequests",
335
+ "httpMethod": "GET",
336
+ "id": "accessapproval.folders.approvalRequests.list",
337
+ "parameterOrder": [
338
+ "parent"
339
+ ],
340
+ "parameters": {
341
+ "filter": {
342
+ "description": "A filter on the type of approval requests to retrieve. Must be one of the following values: * [not set]: Requests that are pending or have active approvals. * ALL: All requests. * PENDING: Only pending requests. * ACTIVE: Only active (i.e. currently approved) requests. * DISMISSED: Only requests that have been dismissed, or requests that are not approved and past expiration. * EXPIRED: Only requests that have been approved, and the approval has expired. * HISTORY: Active, dismissed and expired requests.",
343
+ "location": "query",
344
+ "type": "string"
345
+ },
346
+ "pageSize": {
347
+ "description": "Requested page size.",
348
+ "format": "int32",
349
+ "location": "query",
350
+ "type": "integer"
351
+ },
352
+ "pageToken": {
353
+ "description": "A token identifying the page of results to return.",
354
+ "location": "query",
355
+ "type": "string"
356
+ },
357
+ "parent": {
358
+ "description": "The parent resource. This may be \"projects/{project}\", \"folders/{folder}\", or \"organizations/{organization}\".",
359
+ "location": "path",
360
+ "pattern": "^folders/[^/]+$",
361
+ "required": true,
362
+ "type": "string"
363
+ }
364
+ },
365
+ "path": "v1/{+parent}/approvalRequests",
366
+ "response": {
367
+ "$ref": "ListApprovalRequestsResponse"
368
+ },
369
+ "scopes": [
370
+ "https://www.googleapis.com/auth/cloud-platform"
371
+ ]
372
+ }
373
+ }
374
+ }
375
+ }
376
+ },
377
+ "organizations": {
378
+ "methods": {
379
+ "deleteAccessApprovalSettings": {
380
+ "description": "Deletes the settings associated with a project, folder, or organization. This will have the effect of disabling Access Approval for the resource. Access Approval may remain active based on parent resource settings. To confirm the effective settings, call GetAccessApprovalSettings and verify effective setting is disabled.",
381
+ "flatPath": "v1/organizations/{organizationsId}/accessApprovalSettings",
382
+ "httpMethod": "DELETE",
383
+ "id": "accessapproval.organizations.deleteAccessApprovalSettings",
384
+ "parameterOrder": [
385
+ "name"
386
+ ],
387
+ "parameters": {
388
+ "name": {
389
+ "description": "Name of the AccessApprovalSettings to delete.",
390
+ "location": "path",
391
+ "pattern": "^organizations/[^/]+/accessApprovalSettings$",
392
+ "required": true,
393
+ "type": "string"
394
+ }
395
+ },
396
+ "path": "v1/{+name}",
397
+ "response": {
398
+ "$ref": "Empty"
399
+ },
400
+ "scopes": [
401
+ "https://www.googleapis.com/auth/cloud-platform"
402
+ ]
403
+ },
404
+ "getAccessApprovalSettings": {
405
+ "description": "Gets the Access Approval settings associated with a project, folder, or organization.",
406
+ "flatPath": "v1/organizations/{organizationsId}/accessApprovalSettings",
407
+ "httpMethod": "GET",
408
+ "id": "accessapproval.organizations.getAccessApprovalSettings",
409
+ "parameterOrder": [
410
+ "name"
411
+ ],
412
+ "parameters": {
413
+ "name": {
414
+ "description": "The name of the AccessApprovalSettings to retrieve. Format: \"{projects|folders|organizations}/{id}/accessApprovalSettings\"",
415
+ "location": "path",
416
+ "pattern": "^organizations/[^/]+/accessApprovalSettings$",
417
+ "required": true,
418
+ "type": "string"
419
+ }
420
+ },
421
+ "path": "v1/{+name}",
422
+ "response": {
423
+ "$ref": "AccessApprovalSettings"
424
+ },
425
+ "scopes": [
426
+ "https://www.googleapis.com/auth/cloud-platform"
427
+ ]
428
+ },
429
+ "getServiceAccount": {
430
+ "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.",
431
+ "flatPath": "v1/organizations/{organizationsId}/serviceAccount",
432
+ "httpMethod": "GET",
433
+ "id": "accessapproval.organizations.getServiceAccount",
434
+ "parameterOrder": [
435
+ "name"
436
+ ],
437
+ "parameters": {
438
+ "name": {
439
+ "description": "Name of the AccessApprovalServiceAccount to retrieve.",
440
+ "location": "path",
441
+ "pattern": "^organizations/[^/]+/serviceAccount$",
442
+ "required": true,
443
+ "type": "string"
444
+ }
445
+ },
446
+ "path": "v1/{+name}",
447
+ "response": {
448
+ "$ref": "AccessApprovalServiceAccount"
449
+ },
450
+ "scopes": [
451
+ "https://www.googleapis.com/auth/cloud-platform"
452
+ ]
453
+ },
454
+ "updateAccessApprovalSettings": {
455
+ "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.",
456
+ "flatPath": "v1/organizations/{organizationsId}/accessApprovalSettings",
457
+ "httpMethod": "PATCH",
458
+ "id": "accessapproval.organizations.updateAccessApprovalSettings",
459
+ "parameterOrder": [
460
+ "name"
461
+ ],
462
+ "parameters": {
463
+ "name": {
464
+ "description": "The resource name of the settings. Format is one of: * \"projects/{project}/accessApprovalSettings\" * \"folders/{folder}/accessApprovalSettings\" * \"organizations/{organization}/accessApprovalSettings\"",
465
+ "location": "path",
466
+ "pattern": "^organizations/[^/]+/accessApprovalSettings$",
467
+ "required": true,
468
+ "type": "string"
469
+ },
470
+ "updateMask": {
471
+ "description": "The update mask applies to the settings. Only the top level fields of AccessApprovalSettings (notification_emails & enrolled_services) are supported. For each field, if it is included, the currently stored value will be entirely overwritten with the value of the field passed in this request. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If this field is left unset, only the notification_emails field will be updated.",
472
+ "format": "google-fieldmask",
473
+ "location": "query",
474
+ "type": "string"
475
+ }
476
+ },
477
+ "path": "v1/{+name}",
478
+ "request": {
479
+ "$ref": "AccessApprovalSettings"
480
+ },
481
+ "response": {
482
+ "$ref": "AccessApprovalSettings"
483
+ },
484
+ "scopes": [
485
+ "https://www.googleapis.com/auth/cloud-platform"
486
+ ]
487
+ }
488
+ },
489
+ "resources": {
490
+ "approvalRequests": {
491
+ "methods": {
492
+ "approve": {
493
+ "description": "Approves a request and returns the updated ApprovalRequest. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
494
+ "flatPath": "v1/organizations/{organizationsId}/approvalRequests/{approvalRequestsId}:approve",
495
+ "httpMethod": "POST",
496
+ "id": "accessapproval.organizations.approvalRequests.approve",
497
+ "parameterOrder": [
498
+ "name"
499
+ ],
500
+ "parameters": {
501
+ "name": {
502
+ "description": "Name of the approval request to approve.",
503
+ "location": "path",
504
+ "pattern": "^organizations/[^/]+/approvalRequests/[^/]+$",
505
+ "required": true,
506
+ "type": "string"
507
+ }
508
+ },
509
+ "path": "v1/{+name}:approve",
510
+ "request": {
511
+ "$ref": "ApproveApprovalRequestMessage"
512
+ },
513
+ "response": {
514
+ "$ref": "ApprovalRequest"
515
+ },
516
+ "scopes": [
517
+ "https://www.googleapis.com/auth/cloud-platform"
518
+ ]
519
+ },
520
+ "dismiss": {
521
+ "description": "Dismisses a request. Returns the updated ApprovalRequest. NOTE: When a request is dismissed, it is considered ignored. Dismissing a request does not prevent access granted by other Access Approval requests. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
522
+ "flatPath": "v1/organizations/{organizationsId}/approvalRequests/{approvalRequestsId}:dismiss",
523
+ "httpMethod": "POST",
524
+ "id": "accessapproval.organizations.approvalRequests.dismiss",
525
+ "parameterOrder": [
526
+ "name"
527
+ ],
528
+ "parameters": {
529
+ "name": {
530
+ "description": "Name of the ApprovalRequest to dismiss.",
531
+ "location": "path",
532
+ "pattern": "^organizations/[^/]+/approvalRequests/[^/]+$",
533
+ "required": true,
534
+ "type": "string"
535
+ }
536
+ },
537
+ "path": "v1/{+name}:dismiss",
538
+ "request": {
539
+ "$ref": "DismissApprovalRequestMessage"
540
+ },
541
+ "response": {
542
+ "$ref": "ApprovalRequest"
543
+ },
544
+ "scopes": [
545
+ "https://www.googleapis.com/auth/cloud-platform"
546
+ ]
547
+ },
548
+ "get": {
549
+ "description": "Gets an approval request. Returns NOT_FOUND if the request does not exist.",
550
+ "flatPath": "v1/organizations/{organizationsId}/approvalRequests/{approvalRequestsId}",
551
+ "httpMethod": "GET",
552
+ "id": "accessapproval.organizations.approvalRequests.get",
553
+ "parameterOrder": [
554
+ "name"
555
+ ],
556
+ "parameters": {
557
+ "name": {
558
+ "description": "The name of the approval request to retrieve. Format: \"{projects|folders|organizations}/{id}/approvalRequests/{approval_request}\"",
559
+ "location": "path",
560
+ "pattern": "^organizations/[^/]+/approvalRequests/[^/]+$",
561
+ "required": true,
562
+ "type": "string"
563
+ }
564
+ },
565
+ "path": "v1/{+name}",
566
+ "response": {
567
+ "$ref": "ApprovalRequest"
568
+ },
569
+ "scopes": [
570
+ "https://www.googleapis.com/auth/cloud-platform"
571
+ ]
572
+ },
573
+ "invalidate": {
574
+ "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This action revokes Google access based on this approval request. If the resource has other active approvals, access will remain granted. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.",
575
+ "flatPath": "v1/organizations/{organizationsId}/approvalRequests/{approvalRequestsId}:invalidate",
576
+ "httpMethod": "POST",
577
+ "id": "accessapproval.organizations.approvalRequests.invalidate",
578
+ "parameterOrder": [
579
+ "name"
580
+ ],
581
+ "parameters": {
582
+ "name": {
583
+ "description": "Name of the ApprovalRequest to invalidate.",
584
+ "location": "path",
585
+ "pattern": "^organizations/[^/]+/approvalRequests/[^/]+$",
586
+ "required": true,
587
+ "type": "string"
588
+ }
589
+ },
590
+ "path": "v1/{+name}:invalidate",
591
+ "request": {
592
+ "$ref": "InvalidateApprovalRequestMessage"
593
+ },
594
+ "response": {
595
+ "$ref": "ApprovalRequest"
596
+ },
597
+ "scopes": [
598
+ "https://www.googleapis.com/auth/cloud-platform"
599
+ ]
600
+ },
601
+ "list": {
602
+ "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.",
603
+ "flatPath": "v1/organizations/{organizationsId}/approvalRequests",
604
+ "httpMethod": "GET",
605
+ "id": "accessapproval.organizations.approvalRequests.list",
606
+ "parameterOrder": [
607
+ "parent"
608
+ ],
609
+ "parameters": {
610
+ "filter": {
611
+ "description": "A filter on the type of approval requests to retrieve. Must be one of the following values: * [not set]: Requests that are pending or have active approvals. * ALL: All requests. * PENDING: Only pending requests. * ACTIVE: Only active (i.e. currently approved) requests. * DISMISSED: Only requests that have been dismissed, or requests that are not approved and past expiration. * EXPIRED: Only requests that have been approved, and the approval has expired. * HISTORY: Active, dismissed and expired requests.",
612
+ "location": "query",
613
+ "type": "string"
614
+ },
615
+ "pageSize": {
616
+ "description": "Requested page size.",
617
+ "format": "int32",
618
+ "location": "query",
619
+ "type": "integer"
620
+ },
621
+ "pageToken": {
622
+ "description": "A token identifying the page of results to return.",
623
+ "location": "query",
624
+ "type": "string"
625
+ },
626
+ "parent": {
627
+ "description": "The parent resource. This may be \"projects/{project}\", \"folders/{folder}\", or \"organizations/{organization}\".",
628
+ "location": "path",
629
+ "pattern": "^organizations/[^/]+$",
630
+ "required": true,
631
+ "type": "string"
632
+ }
633
+ },
634
+ "path": "v1/{+parent}/approvalRequests",
635
+ "response": {
636
+ "$ref": "ListApprovalRequestsResponse"
637
+ },
638
+ "scopes": [
639
+ "https://www.googleapis.com/auth/cloud-platform"
640
+ ]
641
+ }
642
+ }
643
+ }
644
+ }
645
+ },
646
+ "projects": {
647
+ "methods": {
648
+ "deleteAccessApprovalSettings": {
649
+ "description": "Deletes the settings associated with a project, folder, or organization. This will have the effect of disabling Access Approval for the resource. Access Approval may remain active based on parent resource settings. To confirm the effective settings, call GetAccessApprovalSettings and verify effective setting is disabled.",
650
+ "flatPath": "v1/projects/{projectsId}/accessApprovalSettings",
651
+ "httpMethod": "DELETE",
652
+ "id": "accessapproval.projects.deleteAccessApprovalSettings",
653
+ "parameterOrder": [
654
+ "name"
655
+ ],
656
+ "parameters": {
657
+ "name": {
658
+ "description": "Name of the AccessApprovalSettings to delete.",
659
+ "location": "path",
660
+ "pattern": "^projects/[^/]+/accessApprovalSettings$",
661
+ "required": true,
662
+ "type": "string"
663
+ }
664
+ },
665
+ "path": "v1/{+name}",
666
+ "response": {
667
+ "$ref": "Empty"
668
+ },
669
+ "scopes": [
670
+ "https://www.googleapis.com/auth/cloud-platform"
671
+ ]
672
+ },
673
+ "getAccessApprovalSettings": {
674
+ "description": "Gets the Access Approval settings associated with a project, folder, or organization.",
675
+ "flatPath": "v1/projects/{projectsId}/accessApprovalSettings",
676
+ "httpMethod": "GET",
677
+ "id": "accessapproval.projects.getAccessApprovalSettings",
678
+ "parameterOrder": [
679
+ "name"
680
+ ],
681
+ "parameters": {
682
+ "name": {
683
+ "description": "The name of the AccessApprovalSettings to retrieve. Format: \"{projects|folders|organizations}/{id}/accessApprovalSettings\"",
684
+ "location": "path",
685
+ "pattern": "^projects/[^/]+/accessApprovalSettings$",
686
+ "required": true,
687
+ "type": "string"
688
+ }
689
+ },
690
+ "path": "v1/{+name}",
691
+ "response": {
692
+ "$ref": "AccessApprovalSettings"
693
+ },
694
+ "scopes": [
695
+ "https://www.googleapis.com/auth/cloud-platform"
696
+ ]
697
+ },
698
+ "getServiceAccount": {
699
+ "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.",
700
+ "flatPath": "v1/projects/{projectsId}/serviceAccount",
701
+ "httpMethod": "GET",
702
+ "id": "accessapproval.projects.getServiceAccount",
703
+ "parameterOrder": [
704
+ "name"
705
+ ],
706
+ "parameters": {
707
+ "name": {
708
+ "description": "Name of the AccessApprovalServiceAccount to retrieve.",
709
+ "location": "path",
710
+ "pattern": "^projects/[^/]+/serviceAccount$",
711
+ "required": true,
712
+ "type": "string"
713
+ }
714
+ },
715
+ "path": "v1/{+name}",
716
+ "response": {
717
+ "$ref": "AccessApprovalServiceAccount"
718
+ },
719
+ "scopes": [
720
+ "https://www.googleapis.com/auth/cloud-platform"
721
+ ]
722
+ },
723
+ "updateAccessApprovalSettings": {
724
+ "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.",
725
+ "flatPath": "v1/projects/{projectsId}/accessApprovalSettings",
726
+ "httpMethod": "PATCH",
727
+ "id": "accessapproval.projects.updateAccessApprovalSettings",
728
+ "parameterOrder": [
729
+ "name"
730
+ ],
731
+ "parameters": {
732
+ "name": {
733
+ "description": "The resource name of the settings. Format is one of: * \"projects/{project}/accessApprovalSettings\" * \"folders/{folder}/accessApprovalSettings\" * \"organizations/{organization}/accessApprovalSettings\"",
734
+ "location": "path",
735
+ "pattern": "^projects/[^/]+/accessApprovalSettings$",
736
+ "required": true,
737
+ "type": "string"
738
+ },
739
+ "updateMask": {
740
+ "description": "The update mask applies to the settings. Only the top level fields of AccessApprovalSettings (notification_emails & enrolled_services) are supported. For each field, if it is included, the currently stored value will be entirely overwritten with the value of the field passed in this request. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If this field is left unset, only the notification_emails field will be updated.",
741
+ "format": "google-fieldmask",
742
+ "location": "query",
743
+ "type": "string"
744
+ }
745
+ },
746
+ "path": "v1/{+name}",
747
+ "request": {
748
+ "$ref": "AccessApprovalSettings"
749
+ },
750
+ "response": {
751
+ "$ref": "AccessApprovalSettings"
752
+ },
753
+ "scopes": [
754
+ "https://www.googleapis.com/auth/cloud-platform"
755
+ ]
756
+ }
757
+ },
758
+ "resources": {
759
+ "approvalRequests": {
760
+ "methods": {
761
+ "approve": {
762
+ "description": "Approves a request and returns the updated ApprovalRequest. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
763
+ "flatPath": "v1/projects/{projectsId}/approvalRequests/{approvalRequestsId}:approve",
764
+ "httpMethod": "POST",
765
+ "id": "accessapproval.projects.approvalRequests.approve",
766
+ "parameterOrder": [
767
+ "name"
768
+ ],
769
+ "parameters": {
770
+ "name": {
771
+ "description": "Name of the approval request to approve.",
772
+ "location": "path",
773
+ "pattern": "^projects/[^/]+/approvalRequests/[^/]+$",
774
+ "required": true,
775
+ "type": "string"
776
+ }
777
+ },
778
+ "path": "v1/{+name}:approve",
779
+ "request": {
780
+ "$ref": "ApproveApprovalRequestMessage"
781
+ },
782
+ "response": {
783
+ "$ref": "ApprovalRequest"
784
+ },
785
+ "scopes": [
786
+ "https://www.googleapis.com/auth/cloud-platform"
787
+ ]
788
+ },
789
+ "dismiss": {
790
+ "description": "Dismisses a request. Returns the updated ApprovalRequest. NOTE: When a request is dismissed, it is considered ignored. Dismissing a request does not prevent access granted by other Access Approval requests. Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.",
791
+ "flatPath": "v1/projects/{projectsId}/approvalRequests/{approvalRequestsId}:dismiss",
792
+ "httpMethod": "POST",
793
+ "id": "accessapproval.projects.approvalRequests.dismiss",
794
+ "parameterOrder": [
795
+ "name"
796
+ ],
797
+ "parameters": {
798
+ "name": {
799
+ "description": "Name of the ApprovalRequest to dismiss.",
800
+ "location": "path",
801
+ "pattern": "^projects/[^/]+/approvalRequests/[^/]+$",
802
+ "required": true,
803
+ "type": "string"
804
+ }
805
+ },
806
+ "path": "v1/{+name}:dismiss",
807
+ "request": {
808
+ "$ref": "DismissApprovalRequestMessage"
809
+ },
810
+ "response": {
811
+ "$ref": "ApprovalRequest"
812
+ },
813
+ "scopes": [
814
+ "https://www.googleapis.com/auth/cloud-platform"
815
+ ]
816
+ },
817
+ "get": {
818
+ "description": "Gets an approval request. Returns NOT_FOUND if the request does not exist.",
819
+ "flatPath": "v1/projects/{projectsId}/approvalRequests/{approvalRequestsId}",
820
+ "httpMethod": "GET",
821
+ "id": "accessapproval.projects.approvalRequests.get",
822
+ "parameterOrder": [
823
+ "name"
824
+ ],
825
+ "parameters": {
826
+ "name": {
827
+ "description": "The name of the approval request to retrieve. Format: \"{projects|folders|organizations}/{id}/approvalRequests/{approval_request}\"",
828
+ "location": "path",
829
+ "pattern": "^projects/[^/]+/approvalRequests/[^/]+$",
830
+ "required": true,
831
+ "type": "string"
832
+ }
833
+ },
834
+ "path": "v1/{+name}",
835
+ "response": {
836
+ "$ref": "ApprovalRequest"
837
+ },
838
+ "scopes": [
839
+ "https://www.googleapis.com/auth/cloud-platform"
840
+ ]
841
+ },
842
+ "invalidate": {
843
+ "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This action revokes Google access based on this approval request. If the resource has other active approvals, access will remain granted. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.",
844
+ "flatPath": "v1/projects/{projectsId}/approvalRequests/{approvalRequestsId}:invalidate",
845
+ "httpMethod": "POST",
846
+ "id": "accessapproval.projects.approvalRequests.invalidate",
847
+ "parameterOrder": [
848
+ "name"
849
+ ],
850
+ "parameters": {
851
+ "name": {
852
+ "description": "Name of the ApprovalRequest to invalidate.",
853
+ "location": "path",
854
+ "pattern": "^projects/[^/]+/approvalRequests/[^/]+$",
855
+ "required": true,
856
+ "type": "string"
857
+ }
858
+ },
859
+ "path": "v1/{+name}:invalidate",
860
+ "request": {
861
+ "$ref": "InvalidateApprovalRequestMessage"
862
+ },
863
+ "response": {
864
+ "$ref": "ApprovalRequest"
865
+ },
866
+ "scopes": [
867
+ "https://www.googleapis.com/auth/cloud-platform"
868
+ ]
869
+ },
870
+ "list": {
871
+ "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.",
872
+ "flatPath": "v1/projects/{projectsId}/approvalRequests",
873
+ "httpMethod": "GET",
874
+ "id": "accessapproval.projects.approvalRequests.list",
875
+ "parameterOrder": [
876
+ "parent"
877
+ ],
878
+ "parameters": {
879
+ "filter": {
880
+ "description": "A filter on the type of approval requests to retrieve. Must be one of the following values: * [not set]: Requests that are pending or have active approvals. * ALL: All requests. * PENDING: Only pending requests. * ACTIVE: Only active (i.e. currently approved) requests. * DISMISSED: Only requests that have been dismissed, or requests that are not approved and past expiration. * EXPIRED: Only requests that have been approved, and the approval has expired. * HISTORY: Active, dismissed and expired requests.",
881
+ "location": "query",
882
+ "type": "string"
883
+ },
884
+ "pageSize": {
885
+ "description": "Requested page size.",
886
+ "format": "int32",
887
+ "location": "query",
888
+ "type": "integer"
889
+ },
890
+ "pageToken": {
891
+ "description": "A token identifying the page of results to return.",
892
+ "location": "query",
893
+ "type": "string"
894
+ },
895
+ "parent": {
896
+ "description": "The parent resource. This may be \"projects/{project}\", \"folders/{folder}\", or \"organizations/{organization}\".",
897
+ "location": "path",
898
+ "pattern": "^projects/[^/]+$",
899
+ "required": true,
900
+ "type": "string"
901
+ }
902
+ },
903
+ "path": "v1/{+parent}/approvalRequests",
904
+ "response": {
905
+ "$ref": "ListApprovalRequestsResponse"
906
+ },
907
+ "scopes": [
908
+ "https://www.googleapis.com/auth/cloud-platform"
909
+ ]
910
+ }
911
+ }
912
+ }
913
+ }
914
+ }
915
+ },
916
+ "revision": "20251201",
917
+ "rootUrl": "https://accessapproval.googleapis.com/",
918
+ "schemas": {
919
+ "AccessApprovalServiceAccount": {
920
+ "description": "Access Approval service account related to a project/folder/organization.",
921
+ "id": "AccessApprovalServiceAccount",
922
+ "properties": {
923
+ "accountEmail": {
924
+ "description": "Email address of the service account.",
925
+ "type": "string"
926
+ },
927
+ "name": {
928
+ "description": "The resource name of the Access Approval service account. Format is one of: * \"projects/{project}/serviceAccount\" * \"folders/{folder}/serviceAccount\" * \"organizations/{organization}/serviceAccount\"",
929
+ "type": "string"
930
+ }
931
+ },
932
+ "type": "object"
933
+ },
934
+ "AccessApprovalSettings": {
935
+ "description": "Settings on a Project/Folder/Organization related to Access Approval.",
936
+ "id": "AccessApprovalSettings",
937
+ "properties": {
938
+ "activeKeyVersion": {
939
+ "description": "The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of this resource, and new non-empty values may not be set.",
940
+ "type": "string"
941
+ },
942
+ "ancestorHasActiveKeyVersion": {
943
+ "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that an ancestor of this Project or Folder has set active_key_version (this field will always be unset for the organization since organizations do not have ancestors).",
944
+ "readOnly": true,
945
+ "type": "boolean"
946
+ },
947
+ "approvalPolicy": {
948
+ "$ref": "CustomerApprovalApprovalPolicy",
949
+ "description": "Optional. Policy configuration for Access Approval that sets the operating mode. The available policies are Transparency, Streamlined Support, and Approval Required."
950
+ },
951
+ "effectiveApprovalPolicy": {
952
+ "$ref": "CustomerApprovalApprovalPolicy",
953
+ "description": "Output only. Effective policy applied for Access Approval, inclusive of inheritance.",
954
+ "readOnly": true
955
+ },
956
+ "enrolledAncestor": {
957
+ "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Project or Folder (this field will always be unset for the organization since organizations do not have ancestors).",
958
+ "readOnly": true,
959
+ "type": "boolean"
960
+ },
961
+ "enrolledServices": {
962
+ "description": "A list of Google Cloud Services for which the given resource has Access Approval enrolled. Access requests for the resource given by name against any of these services contained here will be required to have explicit approval. If name refers to an organization, enrollment can be done for individual services. If name refers to a folder or project, enrollment can only be done on an all or nothing basis. If a cloud_product is repeated in this list, the first entry will be honored and all following entries will be discarded.",
963
+ "items": {
964
+ "$ref": "EnrolledService"
965
+ },
966
+ "type": "array"
967
+ },
968
+ "invalidKeyVersion": {
969
+ "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that there is some configuration issue with the active_key_version configured at this level in the resource hierarchy (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.",
970
+ "readOnly": true,
971
+ "type": "boolean"
972
+ },
973
+ "name": {
974
+ "description": "The resource name of the settings. Format is one of: * \"projects/{project}/accessApprovalSettings\" * \"folders/{folder}/accessApprovalSettings\" * \"organizations/{organization}/accessApprovalSettings\"",
975
+ "type": "string"
976
+ },
977
+ "notificationEmails": {
978
+ "description": "A list of email addresses to which notifications relating to approval requests should be sent. Notifications relating to a resource will be sent to all emails in the settings of ancestor resources of that resource. A maximum of 50 email addresses are allowed.",
979
+ "items": {
980
+ "type": "string"
981
+ },
982
+ "type": "array"
983
+ },
984
+ "notificationPubsubTopic": {
985
+ "description": "Optional. A pubsub topic that notifications relating to access approval are published to. Notifications include pre-approved accesses.",
986
+ "type": "string"
987
+ },
988
+ "preferNoBroadApprovalRequests": {
989
+ "description": "This field is used to set a preference for granularity of an access approval request. If true, Google personnel will be asked to send resource-level requests when possible. If false, Google personnel will be asked to send requests at the project level.",
990
+ "type": "boolean"
991
+ },
992
+ "preferredRequestExpirationDays": {
993
+ "description": "Set the default access approval request expiration time. This value is able to be set directly by the customer at the time of approval, overriding this suggested value. We recommend setting this value to 30 days.",
994
+ "format": "int32",
995
+ "type": "integer"
996
+ },
997
+ "requestScopeMaxWidthPreference": {
998
+ "description": "Optional. A setting that indicates the maximum scope of an Access Approval request: either organization, folder, or project. Google administrators will be asked to send requests no broader than the configured scope.",
999
+ "enum": [
1000
+ "REQUEST_SCOPE_MAX_WIDTH_PREFERENCE_UNSPECIFIED",
1001
+ "ORGANIZATION",
1002
+ "FOLDER",
1003
+ "PROJECT"
1004
+ ],
1005
+ "enumDescriptions": [
1006
+ "Default value, defaults to ORGANIZATION if not set. This value is not able to be configured by the user, do not use.",
1007
+ "This is the widest scope possible. It means the customer has no scope restriction when it comes to Access Approval requests.",
1008
+ "Customer allows the scope of Access Approval requests as broad as the Folder level.",
1009
+ "Customer allows the scope of Access Approval requests as broad as the Project level."
1010
+ ],
1011
+ "type": "string"
1012
+ },
1013
+ "requireCustomerVisibleJustification": {
1014
+ "description": "Optional. When enabled, Google will only be able to send approval requests for access reasons with a customer accessible case ID in the reason detail. Also known as \"Require customer initiated support case justification\"",
1015
+ "type": "boolean"
1016
+ }
1017
+ },
1018
+ "type": "object"
1019
+ },
1020
+ "AccessLocations": {
1021
+ "description": "Physical assigned office and physical location of the Google administrator performing the access.",
1022
+ "id": "AccessLocations",
1023
+ "properties": {
1024
+ "principalOfficeCountry": {
1025
+ "description": "The \"home office\" location of the Google administrator. A two-letter country code (ISO 3166-1 alpha-2), such as \"US\", \"DE\" or \"GB\" or a region code. In some limited situations Google systems may refer refer to a region code instead of a country code. Possible Region Codes: * ASI: Asia * EUR: Europe * OCE: Oceania * AFR: Africa * NAM: North America * SAM: South America * ANT: Antarctica * ANY: Any location",
1026
+ "type": "string"
1027
+ },
1028
+ "principalPhysicalLocationCountry": {
1029
+ "description": "Physical location of the Google administrator at the time of the access. A two-letter country code (ISO 3166-1 alpha-2), such as \"US\", \"DE\" or \"GB\" or a region code. In some limited situations Google systems may refer refer to a region code instead of a country code. Possible Region Codes: * ASI: Asia * EUR: Europe * OCE: Oceania * AFR: Africa * NAM: North America * SAM: South America * ANT: Antarctica * ANY: Any location",
1030
+ "type": "string"
1031
+ }
1032
+ },
1033
+ "type": "object"
1034
+ },
1035
+ "AccessReason": {
1036
+ "id": "AccessReason",
1037
+ "properties": {
1038
+ "detail": {
1039
+ "description": "More detail about certain reason types. See comments for each type above.",
1040
+ "type": "string"
1041
+ },
1042
+ "type": {
1043
+ "description": "Type of access reason.",
1044
+ "enum": [
1045
+ "TYPE_UNSPECIFIED",
1046
+ "CUSTOMER_INITIATED_SUPPORT",
1047
+ "GOOGLE_INITIATED_SERVICE",
1048
+ "GOOGLE_INITIATED_REVIEW",
1049
+ "THIRD_PARTY_DATA_REQUEST",
1050
+ "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT",
1051
+ "CLOUD_INITIATED_ACCESS"
1052
+ ],
1053
+ "enumDescriptions": [
1054
+ "This value is not used.",
1055
+ "Customer made a request or raised an issue that required the principal to access customer data. `detail` is of the form (\"#####\" is the issue ID): * \"Feedback Report: #####\" * \"Case Number: #####\" * \"Case ID: #####\" * \"E-PIN Reference: #####\" * \"Google-#####\" * \"T-#####\"",
1056
+ "The principal accessed customer data in order to diagnose or resolve a suspected issue in services. Often this access is used to confirm that customers are not affected by a suspected service issue or to remediate a reversible system issue.",
1057
+ "Google initiated service for security, fraud, abuse, or compliance purposes.",
1058
+ "The principal was compelled to access customer data in order to respond to a legal third party data request or process, including legal processes from customers themselves.",
1059
+ "The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage.",
1060
+ "Similar to 'GOOGLE_INITIATED_SERVICE' or 'GOOGLE_INITIATED_REVIEW', but with universe agnostic naming. The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage, or for security, fraud, abuse, or compliance review purposes."
1061
+ ],
1062
+ "type": "string"
1063
+ }
1064
+ },
1065
+ "type": "object"
1066
+ },
1067
+ "ApprovalRequest": {
1068
+ "description": "A request for the customer to approve access to a resource.",
1069
+ "id": "ApprovalRequest",
1070
+ "properties": {
1071
+ "approve": {
1072
+ "$ref": "ApproveDecision",
1073
+ "description": "Access was approved."
1074
+ },
1075
+ "dismiss": {
1076
+ "$ref": "DismissDecision",
1077
+ "description": "The request was dismissed."
1078
+ },
1079
+ "name": {
1080
+ "description": "The resource name of the request. Format is \"{projects|folders|organizations}/{id}/approvalRequests/{approval_request}\".",
1081
+ "type": "string"
1082
+ },
1083
+ "requestTime": {
1084
+ "description": "The time at which approval was requested.",
1085
+ "format": "google-datetime",
1086
+ "type": "string"
1087
+ },
1088
+ "requestedAugmentedInfo": {
1089
+ "$ref": "AugmentedInfo",
1090
+ "description": "This field contains the augmented information of the request."
1091
+ },
1092
+ "requestedDuration": {
1093
+ "description": "The requested access duration.",
1094
+ "format": "google-duration",
1095
+ "type": "string"
1096
+ },
1097
+ "requestedExpiration": {
1098
+ "description": "The original requested expiration for the approval. Calculated by adding the requested_duration to the request_time.",
1099
+ "format": "google-datetime",
1100
+ "type": "string"
1101
+ },
1102
+ "requestedLocations": {
1103
+ "$ref": "AccessLocations",
1104
+ "description": "The locations for which approval is being requested."
1105
+ },
1106
+ "requestedReason": {
1107
+ "$ref": "AccessReason",
1108
+ "description": "The access reason for which approval is being requested."
1109
+ },
1110
+ "requestedResourceName": {
1111
+ "description": "The resource for which approval is being requested. The format of the resource name is defined at https://cloud.google.com/apis/design/resource_names. The resource name here may either be a \"full\" resource name (e.g. \"//library.googleapis.com/shelves/shelf1/books/book2\") or a \"relative\" resource name (e.g. \"shelves/shelf1/books/book2\") as described in the resource name specification.",
1112
+ "type": "string"
1113
+ },
1114
+ "requestedResourceProperties": {
1115
+ "$ref": "ResourceProperties",
1116
+ "description": "Properties related to the resource represented by requested_resource_name."
1117
+ }
1118
+ },
1119
+ "type": "object"
1120
+ },
1121
+ "ApproveApprovalRequestMessage": {
1122
+ "description": "Request to approve an ApprovalRequest.",
1123
+ "id": "ApproveApprovalRequestMessage",
1124
+ "properties": {
1125
+ "expireTime": {
1126
+ "description": "The expiration time of this approval.",
1127
+ "format": "google-datetime",
1128
+ "type": "string"
1129
+ }
1130
+ },
1131
+ "type": "object"
1132
+ },
1133
+ "ApproveDecision": {
1134
+ "description": "A decision that has been made to approve access to a resource.",
1135
+ "id": "ApproveDecision",
1136
+ "properties": {
1137
+ "approveTime": {
1138
+ "description": "The time at which approval was granted.",
1139
+ "format": "google-datetime",
1140
+ "type": "string"
1141
+ },
1142
+ "autoApproved": {
1143
+ "description": "True when the request has been auto-approved.",
1144
+ "type": "boolean"
1145
+ },
1146
+ "expireTime": {
1147
+ "description": "The time at which the approval expires.",
1148
+ "format": "google-datetime",
1149
+ "type": "string"
1150
+ },
1151
+ "invalidateTime": {
1152
+ "description": "If set, denotes the timestamp at which the approval is invalidated.",
1153
+ "format": "google-datetime",
1154
+ "type": "string"
1155
+ },
1156
+ "policyApproved": {
1157
+ "description": "True when the request has been approved by the customer's defined policy.",
1158
+ "type": "boolean"
1159
+ },
1160
+ "signatureInfo": {
1161
+ "$ref": "SignatureInfo",
1162
+ "description": "The signature for the ApprovalRequest and details on how it was signed."
1163
+ }
1164
+ },
1165
+ "type": "object"
1166
+ },
1167
+ "AugmentedInfo": {
1168
+ "description": "This field contains the augmented information of the request. Requires augmented administrative access to be enabled.",
1169
+ "id": "AugmentedInfo",
1170
+ "properties": {
1171
+ "command": {
1172
+ "description": "For command-line tools, the full command-line exactly as entered by the actor without adding any additional characters (such as quotation marks).",
1173
+ "type": "string"
1174
+ }
1175
+ },
1176
+ "type": "object"
1177
+ },
1178
+ "CustomerApprovalApprovalPolicy": {
1179
+ "description": "Represents all the policies that can be set for Customer Approval.",
1180
+ "id": "CustomerApprovalApprovalPolicy",
1181
+ "properties": {
1182
+ "justificationBasedApprovalPolicy": {
1183
+ "description": "Optional. Policy for approval based on the justification given.",
1184
+ "enum": [
1185
+ "JUSTIFICATION_BASED_APPROVAL_POLICY_UNSPECIFIED",
1186
+ "JUSTIFICATION_BASED_APPROVAL_ENABLED_ALL",
1187
+ "JUSTIFICATION_BASED_APPROVAL_ENABLED_EXTERNAL_JUSTIFICATIONS",
1188
+ "JUSTIFICATION_BASED_APPROVAL_NOT_ENABLED",
1189
+ "JUSTIFICATION_BASED_APPROVAL_INHERITED"
1190
+ ],
1191
+ "enumDescriptions": [
1192
+ "Default value, defaults to JUSTIFICATION_BASED_APPROVAL_NOT_ENABLED if not set. This value is not able to be configured by the user, do not use.",
1193
+ "Audit-only mode. All accesses are pre-approved instantly.",
1194
+ "Customer initiated support access reasons are pre-approved instantly. All other accesses require customer approval.",
1195
+ "All access approval requests require customer approval. This is the default value if the policy is not set.",
1196
+ "Defer configuration to parent settings. This is the default value if the policy is not set and the parent has a value set."
1197
+ ],
1198
+ "type": "string"
1199
+ }
1200
+ },
1201
+ "type": "object"
1202
+ },
1203
+ "DismissApprovalRequestMessage": {
1204
+ "description": "Request to dismiss an approval request.",
1205
+ "id": "DismissApprovalRequestMessage",
1206
+ "properties": {},
1207
+ "type": "object"
1208
+ },
1209
+ "DismissDecision": {
1210
+ "description": "A decision that has been made to dismiss an approval request.",
1211
+ "id": "DismissDecision",
1212
+ "properties": {
1213
+ "dismissTime": {
1214
+ "description": "The time at which the approval request was dismissed.",
1215
+ "format": "google-datetime",
1216
+ "type": "string"
1217
+ },
1218
+ "implicit": {
1219
+ "description": "This field will be true if the ApprovalRequest was implicitly dismissed due to inaction by the access approval approvers (the request is not acted on by the approvers before the exiration time).",
1220
+ "type": "boolean"
1221
+ }
1222
+ },
1223
+ "type": "object"
1224
+ },
1225
+ "Empty": {
1226
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
1227
+ "id": "Empty",
1228
+ "properties": {},
1229
+ "type": "object"
1230
+ },
1231
+ "EnrolledService": {
1232
+ "description": "Represents the enrollment of a cloud resource into a specific service.",
1233
+ "id": "EnrolledService",
1234
+ "properties": {
1235
+ "cloudProduct": {
1236
+ "description": "The product for which Access Approval will be enrolled. Allowed values are listed below (case-sensitive): * all * GA * Access Context Manager * Anthos Identity Service * AlloyDB for PostgreSQL * Apigee * Application Integration * App Hub * Artifact Registry * Anthos Service Mesh * Access Transparency * BigQuery * Certificate Authority Service * Cloud Bigtable * CCAI Assist and Knowledge * Cloud Dataflow * Cloud Dataproc * CEP Security Gateway * Compliance Evaluation Service * Cloud Firestore * Cloud Healthcare API * Chronicle * Cloud AI Companion Gateway - Titan * Google Cloud Armor * Cloud Asset Inventory * Cloud Asset Search * Cloud Deploy * Cloud DNS * Cloud Latency * Cloud Memorystore for Redis * CloudNet Control * Cloud Riptide * Cloud Tasks * Cloud Trace * Cloud Data Transfer * Cloud Composer * Integration Connectors * Contact Center AI Insights * Cloud Pub/Sub * Cloud Run * Resource Manager * Cloud Spanner * Database Center * Cloud Dataform * Cloud Data Fusion * Dataplex * Dialogflow Customer Experience Edition * Cloud DLP * Document AI * Edge Container * Edge Network * Cloud EKM * Eventarc * Firebase Data Connect * Firebase Rules * App Engine * Cloud Build * Compute Engine * Cloud Functions (2nd Gen) * Cloud Filestore * Cloud Interconnect * Cloud NetApp Volumes * Cloud Storage * Generative AI App Builder * Google Kubernetes Engine * Backup for GKE API * GKE Connect * GKE Hub * Hoverboard * Cloud HSM * Cloud Identity and Access Management * Cloud Identity-Aware Proxy * Infrastructure Manager * Identity Storage Service * Key Access Justifications * Cloud Key Management Service * Cloud Logging * Looker (Google Cloud core) * Looker Studio * Management Hub * Model Armor * Cloud Monitoring * Cloud NAT * Connectivity Hub * External passthrough Network Load Balancer * OIDC One * Organization Policy Service * Org Lifecycle * Persistent Disk * Parameter Manager * Private Services Access * Regional Internal Application Load Balancer * Storage Batch Operations * Cloud Security Command Center * Secure Source Manager * Seeker * Service Provisioning * Speaker ID * Secret Manager * Cloud SQL * Cloud Speech-to-Text * Traffic Director * Cloud Text-to-Speech * USPS Andromeda * Vertex AI * Virtual Private Cloud (VPC) * VPC Access * VPC Service Controls Troubleshooter * VPC virtnet * Cloud Workstations * Web Risk Note: These values are supported as input for legacy purposes, but will not be returned from the API. * all * ga-only * appengine.googleapis.com * artifactregistry.googleapis.com * bigquery.googleapis.com * bigtable.googleapis.com * container.googleapis.com * cloudkms.googleapis.com * cloudresourcemanager.googleapis.com * cloudsql.googleapis.com * compute.googleapis.com * dataflow.googleapis.com * dataproc.googleapis.com * dlp.googleapis.com * iam.googleapis.com * logging.googleapis.com * orgpolicy.googleapis.com * pubsub.googleapis.com * spanner.googleapis.com * secretmanager.googleapis.com * speakerid.googleapis.com * storage.googleapis.com Calls to UpdateAccessApprovalSettings using 'all' or any of the XXX.googleapis.com will be translated to the associated product name ('all', 'App Engine', etc.). Note: 'all' will enroll the resource in all products supported at both 'GA' and 'Preview' levels. More information about levels of support is available at https://cloud.google.com/access-approval/docs/supported-services",
1237
+ "type": "string"
1238
+ },
1239
+ "enrollmentLevel": {
1240
+ "description": "The enrollment level of the service.",
1241
+ "enum": [
1242
+ "ENROLLMENT_LEVEL_UNSPECIFIED",
1243
+ "BLOCK_ALL"
1244
+ ],
1245
+ "enumDescriptions": [
1246
+ "Default value if not set, defaults to \"BLOCK_ALL\". This value is not available to be set by the user, do not use.",
1247
+ "Service is enrolled in Access Approval for all requests"
1248
+ ],
1249
+ "type": "string"
1250
+ }
1251
+ },
1252
+ "type": "object"
1253
+ },
1254
+ "InvalidateApprovalRequestMessage": {
1255
+ "description": "Request to invalidate an existing approval.",
1256
+ "id": "InvalidateApprovalRequestMessage",
1257
+ "properties": {},
1258
+ "type": "object"
1259
+ },
1260
+ "ListApprovalRequestsResponse": {
1261
+ "description": "Response to listing of ApprovalRequest objects.",
1262
+ "id": "ListApprovalRequestsResponse",
1263
+ "properties": {
1264
+ "approvalRequests": {
1265
+ "description": "Approval request details.",
1266
+ "items": {
1267
+ "$ref": "ApprovalRequest"
1268
+ },
1269
+ "type": "array"
1270
+ },
1271
+ "nextPageToken": {
1272
+ "description": "Token to retrieve the next page of results, or empty if there are no more.",
1273
+ "type": "string"
1274
+ }
1275
+ },
1276
+ "type": "object"
1277
+ },
1278
+ "ResourceProperties": {
1279
+ "description": "The properties associated with the resource of the request.",
1280
+ "id": "ResourceProperties",
1281
+ "properties": {
1282
+ "excludesDescendants": {
1283
+ "description": "Whether an approval will exclude the descendants of the resource being requested.",
1284
+ "type": "boolean"
1285
+ }
1286
+ },
1287
+ "type": "object"
1288
+ },
1289
+ "SignatureInfo": {
1290
+ "description": "Information about the digital signature of the resource.",
1291
+ "id": "SignatureInfo",
1292
+ "properties": {
1293
+ "customerKmsKeyVersion": {
1294
+ "description": "The resource name of the customer CryptoKeyVersion used for signing.",
1295
+ "type": "string"
1296
+ },
1297
+ "googleKeyAlgorithm": {
1298
+ "description": "The hashing algorithm used for signature verification. It will only be present in the case of Google managed keys.",
1299
+ "enum": [
1300
+ "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
1301
+ "GOOGLE_SYMMETRIC_ENCRYPTION",
1302
+ "AES_128_GCM",
1303
+ "AES_256_GCM",
1304
+ "AES_128_CBC",
1305
+ "AES_256_CBC",
1306
+ "AES_128_CTR",
1307
+ "AES_256_CTR",
1308
+ "RSA_SIGN_PSS_2048_SHA256",
1309
+ "RSA_SIGN_PSS_3072_SHA256",
1310
+ "RSA_SIGN_PSS_4096_SHA256",
1311
+ "RSA_SIGN_PSS_4096_SHA512",
1312
+ "RSA_SIGN_PKCS1_2048_SHA256",
1313
+ "RSA_SIGN_PKCS1_3072_SHA256",
1314
+ "RSA_SIGN_PKCS1_4096_SHA256",
1315
+ "RSA_SIGN_PKCS1_4096_SHA512",
1316
+ "RSA_SIGN_RAW_PKCS1_2048",
1317
+ "RSA_SIGN_RAW_PKCS1_3072",
1318
+ "RSA_SIGN_RAW_PKCS1_4096",
1319
+ "RSA_DECRYPT_OAEP_2048_SHA256",
1320
+ "RSA_DECRYPT_OAEP_3072_SHA256",
1321
+ "RSA_DECRYPT_OAEP_4096_SHA256",
1322
+ "RSA_DECRYPT_OAEP_4096_SHA512",
1323
+ "RSA_DECRYPT_OAEP_2048_SHA1",
1324
+ "RSA_DECRYPT_OAEP_3072_SHA1",
1325
+ "RSA_DECRYPT_OAEP_4096_SHA1",
1326
+ "EC_SIGN_P256_SHA256",
1327
+ "EC_SIGN_P384_SHA384",
1328
+ "EC_SIGN_SECP256K1_SHA256",
1329
+ "EC_SIGN_ED25519",
1330
+ "HMAC_SHA256",
1331
+ "HMAC_SHA1",
1332
+ "HMAC_SHA384",
1333
+ "HMAC_SHA512",
1334
+ "HMAC_SHA224",
1335
+ "EXTERNAL_SYMMETRIC_ENCRYPTION",
1336
+ "ML_KEM_768",
1337
+ "ML_KEM_1024",
1338
+ "KEM_XWING",
1339
+ "PQ_SIGN_ML_DSA_44",
1340
+ "PQ_SIGN_ML_DSA_65",
1341
+ "PQ_SIGN_ML_DSA_87",
1342
+ "PQ_SIGN_SLH_DSA_SHA2_128S",
1343
+ "PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256",
1344
+ "PQ_SIGN_ML_DSA_44_EXTERNAL_MU",
1345
+ "PQ_SIGN_ML_DSA_65_EXTERNAL_MU",
1346
+ "PQ_SIGN_ML_DSA_87_EXTERNAL_MU"
1347
+ ],
1348
+ "enumDescriptions": [
1349
+ "Not specified.",
1350
+ "Creates symmetric encryption keys.",
1351
+ "AES-GCM (Galois Counter Mode) using 128-bit keys.",
1352
+ "AES-GCM (Galois Counter Mode) using 256-bit keys.",
1353
+ "AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.",
1354
+ "AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.",
1355
+ "AES-CTR (Counter Mode) using 128-bit keys.",
1356
+ "AES-CTR (Counter Mode) using 256-bit keys.",
1357
+ "RSASSA-PSS 2048 bit key with a SHA256 digest.",
1358
+ "RSASSA-PSS 3072 bit key with a SHA256 digest.",
1359
+ "RSASSA-PSS 4096 bit key with a SHA256 digest.",
1360
+ "RSASSA-PSS 4096 bit key with a SHA512 digest.",
1361
+ "RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.",
1362
+ "RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.",
1363
+ "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.",
1364
+ "RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.",
1365
+ "RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.",
1366
+ "RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.",
1367
+ "RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.",
1368
+ "RSAES-OAEP 2048 bit key with a SHA256 digest.",
1369
+ "RSAES-OAEP 3072 bit key with a SHA256 digest.",
1370
+ "RSAES-OAEP 4096 bit key with a SHA256 digest.",
1371
+ "RSAES-OAEP 4096 bit key with a SHA512 digest.",
1372
+ "RSAES-OAEP 2048 bit key with a SHA1 digest.",
1373
+ "RSAES-OAEP 3072 bit key with a SHA1 digest.",
1374
+ "RSAES-OAEP 4096 bit key with a SHA1 digest.",
1375
+ "ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms",
1376
+ "ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms",
1377
+ "ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms",
1378
+ "EdDSA on the Curve25519 in pure mode (taking data as input).",
1379
+ "HMAC-SHA256 signing with a 256 bit key.",
1380
+ "HMAC-SHA1 signing with a 160 bit key.",
1381
+ "HMAC-SHA384 signing with a 384 bit key.",
1382
+ "HMAC-SHA512 signing with a 512 bit key.",
1383
+ "HMAC-SHA224 signing with a 224 bit key.",
1384
+ "Algorithm representing symmetric encryption by an external key manager.",
1385
+ "ML-KEM-768 (FIPS 203)",
1386
+ "ML-KEM-1024 (FIPS 203)",
1387
+ "X-Wing hybrid KEM combining ML-KEM-768 with X25519 following datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/.",
1388
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 1. Randomized version.",
1389
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 3. Randomized version.",
1390
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 5. Randomized version.",
1391
+ "The post-quantum stateless hash-based digital signature algorithm, at security level 1. Randomized version.",
1392
+ "The post-quantum stateless hash-based digital signature algorithm, at security level 1. Randomized pre-hash version supporting SHA256 digests.",
1393
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 1. Randomized version supporting externally-computed message representatives.",
1394
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 3. Randomized version supporting externally-computed message representatives.",
1395
+ "The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 5. Randomized version supporting externally-computed message representatives."
1396
+ ],
1397
+ "type": "string"
1398
+ },
1399
+ "googlePublicKeyPem": {
1400
+ "description": "The public key for the Google default signing, encoded in PEM format. The signature was created using a private key which may be verified using this public key.",
1401
+ "type": "string"
1402
+ },
1403
+ "serializedApprovalRequest": {
1404
+ "description": "The ApprovalRequest that is serialized without the SignatureInfo message field. This data is used with the hashing algorithm to generate the digital signature, and it can be used for signature verification.",
1405
+ "format": "byte",
1406
+ "type": "string"
1407
+ },
1408
+ "signature": {
1409
+ "description": "The digital signature.",
1410
+ "format": "byte",
1411
+ "type": "string"
1412
+ }
1413
+ },
1414
+ "type": "object"
1415
+ }
1416
+ },
1417
+ "servicePath": "",
1418
+ "title": "Access Approval API",
1419
+ "version": "v1",
1420
+ "version_module": true
1421
+ }
DiscoveryJson/accesscontextmanager.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/addressvalidation.v1.json ADDED
@@ -0,0 +1,856 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ },
8
+ "https://www.googleapis.com/auth/maps-platform.addressvalidation": {
9
+ "description": "Private Service: https://www.googleapis.com/auth/maps-platform.addressvalidation"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://addressvalidation.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "Address Validation",
18
+ "description": "The Address Validation API allows developers to verify the accuracy of addresses. Given an address, it returns information about the correctness of the components of the parsed address, a geocode, and a verdict on the deliverability of the parsed address.",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/maps/documentation/addressvalidation",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "addressvalidation:v1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://addressvalidation.mtls.googleapis.com/",
29
+ "name": "addressvalidation",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "parameters": {
33
+ "$.xgafv": {
34
+ "description": "V1 error format.",
35
+ "enum": [
36
+ "1",
37
+ "2"
38
+ ],
39
+ "enumDescriptions": [
40
+ "v1 error format",
41
+ "v2 error format"
42
+ ],
43
+ "location": "query",
44
+ "type": "string"
45
+ },
46
+ "access_token": {
47
+ "description": "OAuth access token.",
48
+ "location": "query",
49
+ "type": "string"
50
+ },
51
+ "alt": {
52
+ "default": "json",
53
+ "description": "Data format for response.",
54
+ "enum": [
55
+ "json",
56
+ "media",
57
+ "proto"
58
+ ],
59
+ "enumDescriptions": [
60
+ "Responses with Content-Type of application/json",
61
+ "Media download with context-dependent Content-Type",
62
+ "Responses with Content-Type of application/x-protobuf"
63
+ ],
64
+ "location": "query",
65
+ "type": "string"
66
+ },
67
+ "callback": {
68
+ "description": "JSONP",
69
+ "location": "query",
70
+ "type": "string"
71
+ },
72
+ "fields": {
73
+ "description": "Selector specifying which fields to include in a partial response.",
74
+ "location": "query",
75
+ "type": "string"
76
+ },
77
+ "key": {
78
+ "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.",
79
+ "location": "query",
80
+ "type": "string"
81
+ },
82
+ "oauth_token": {
83
+ "description": "OAuth 2.0 token for the current user.",
84
+ "location": "query",
85
+ "type": "string"
86
+ },
87
+ "prettyPrint": {
88
+ "default": "true",
89
+ "description": "Returns response with indentations and line breaks.",
90
+ "location": "query",
91
+ "type": "boolean"
92
+ },
93
+ "quotaUser": {
94
+ "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.",
95
+ "location": "query",
96
+ "type": "string"
97
+ },
98
+ "uploadType": {
99
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100
+ "location": "query",
101
+ "type": "string"
102
+ },
103
+ "upload_protocol": {
104
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105
+ "location": "query",
106
+ "type": "string"
107
+ }
108
+ },
109
+ "protocol": "rest",
110
+ "resources": {
111
+ "v1": {
112
+ "methods": {
113
+ "provideValidationFeedback": {
114
+ "description": "Feedback about the outcome of the sequence of validation attempts. This should be the last call made after a sequence of validation calls for the same address, and should be called once the transaction is concluded. This should only be sent once for the sequence of `ValidateAddress` requests needed to validate an address fully.",
115
+ "flatPath": "v1:provideValidationFeedback",
116
+ "httpMethod": "POST",
117
+ "id": "addressvalidation.provideValidationFeedback",
118
+ "parameterOrder": [],
119
+ "parameters": {},
120
+ "path": "v1:provideValidationFeedback",
121
+ "request": {
122
+ "$ref": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest"
123
+ },
124
+ "response": {
125
+ "$ref": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse"
126
+ },
127
+ "scopes": [
128
+ "https://www.googleapis.com/auth/cloud-platform",
129
+ "https://www.googleapis.com/auth/maps-platform.addressvalidation"
130
+ ]
131
+ },
132
+ "validateAddress": {
133
+ "description": "Validates an address.",
134
+ "flatPath": "v1:validateAddress",
135
+ "httpMethod": "POST",
136
+ "id": "addressvalidation.validateAddress",
137
+ "parameterOrder": [],
138
+ "parameters": {},
139
+ "path": "v1:validateAddress",
140
+ "request": {
141
+ "$ref": "GoogleMapsAddressvalidationV1ValidateAddressRequest"
142
+ },
143
+ "response": {
144
+ "$ref": "GoogleMapsAddressvalidationV1ValidateAddressResponse"
145
+ },
146
+ "scopes": [
147
+ "https://www.googleapis.com/auth/cloud-platform",
148
+ "https://www.googleapis.com/auth/maps-platform.addressvalidation"
149
+ ]
150
+ }
151
+ }
152
+ }
153
+ },
154
+ "revision": "20250618",
155
+ "rootUrl": "https://addressvalidation.googleapis.com/",
156
+ "schemas": {
157
+ "GoogleGeoTypeViewport": {
158
+ "description": "A latitude-longitude viewport, represented as two diagonally opposite `low` and `high` points. A viewport is considered a closed region, i.e. it includes its boundary. The latitude bounds must range between -90 to 90 degrees inclusive, and the longitude bounds must range between -180 to 180 degrees inclusive. Various cases include: - If `low` = `high`, the viewport consists of that single point. - If `low.longitude` > `high.longitude`, the longitude range is inverted (the viewport crosses the 180 degree longitude line). - If `low.longitude` = -180 degrees and `high.longitude` = 180 degrees, the viewport includes all longitudes. - If `low.longitude` = 180 degrees and `high.longitude` = -180 degrees, the longitude range is empty. - If `low.latitude` > `high.latitude`, the latitude range is empty. Both `low` and `high` must be populated, and the represented box cannot be empty (as specified by the definitions above). An empty viewport will result in an error. For example, this viewport fully encloses New York City: { \"low\": { \"latitude\": 40.477398, \"longitude\": -74.259087 }, \"high\": { \"latitude\": 40.91618, \"longitude\": -73.70018 } }",
159
+ "id": "GoogleGeoTypeViewport",
160
+ "properties": {
161
+ "high": {
162
+ "$ref": "GoogleTypeLatLng",
163
+ "description": "Required. The high point of the viewport."
164
+ },
165
+ "low": {
166
+ "$ref": "GoogleTypeLatLng",
167
+ "description": "Required. The low point of the viewport."
168
+ }
169
+ },
170
+ "type": "object"
171
+ },
172
+ "GoogleMapsAddressvalidationV1Address": {
173
+ "description": "Details of the post-processed address. Post-processing includes correcting misspelled parts of the address, replacing incorrect parts, and inferring missing parts.",
174
+ "id": "GoogleMapsAddressvalidationV1Address",
175
+ "properties": {
176
+ "addressComponents": {
177
+ "description": "Unordered list. The individual address components of the formatted and corrected address, along with validation information. This provides information on the validation status of the individual components. Address components are not ordered in a particular way. Do not make any assumptions on the ordering of the address components in the list.",
178
+ "items": {
179
+ "$ref": "GoogleMapsAddressvalidationV1AddressComponent"
180
+ },
181
+ "type": "array"
182
+ },
183
+ "formattedAddress": {
184
+ "description": "The post-processed address, formatted as a single-line address following the address formatting rules of the region where the address is located. Note: the format of this address may not match the format of the address in the `postal_address` field. For example, the `postal_address` always represents the country as a 2 letter `region_code`, such as \"US\" or \"NZ\". By contrast, this field uses a longer form of the country name, such as \"USA\" or \"New Zealand\".",
185
+ "type": "string"
186
+ },
187
+ "missingComponentTypes": {
188
+ "description": "The types of components that were expected to be present in a correctly formatted mailing address but were not found in the input AND could not be inferred. An example might be `['street_number', 'route']` for an input like \"Boulder, Colorado, 80301, USA\". The list of possible types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types). **Note: you might see a missing component type when you think you've already supplied the missing component.** For example, this can happen when the input address contains the building name, but not the premise number. In the address \"\u6e0b\u8c37\u533a\u6e0b\u8c37\uff13\u4e01\u76ee\u3000Shibuya Stream\", the building name \"Shibuya Stream\" has the component type `premise`, but the premise number is missing, so `missing_component_types` will contain `premise`.",
189
+ "items": {
190
+ "type": "string"
191
+ },
192
+ "type": "array"
193
+ },
194
+ "postalAddress": {
195
+ "$ref": "GoogleTypePostalAddress",
196
+ "description": "The post-processed address represented as a postal address."
197
+ },
198
+ "unconfirmedComponentTypes": {
199
+ "description": "The types of the components that are present in the `address_components` but could not be confirmed to be correct. This field is provided for the sake of convenience: its contents are equivalent to iterating through the `address_components` to find the types of all the components where the confirmation_level is not CONFIRMED or the inferred flag is not set to `true`. The list of possible types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).",
200
+ "items": {
201
+ "type": "string"
202
+ },
203
+ "type": "array"
204
+ },
205
+ "unresolvedTokens": {
206
+ "description": "Any tokens in the input that could not be resolved. This might be an input that was not recognized as a valid part of an address. For example, for an input such as \"Parcel 0000123123 & 0000456456 Str # Guthrie Center IA 50115 US\", the unresolved tokens might look like `[\"Parcel\", \"0000123123\", \"&\", \"0000456456\"]`.",
207
+ "items": {
208
+ "type": "string"
209
+ },
210
+ "type": "array"
211
+ }
212
+ },
213
+ "type": "object"
214
+ },
215
+ "GoogleMapsAddressvalidationV1AddressComponent": {
216
+ "description": "Represents an address component, such as a street, city, or state.",
217
+ "id": "GoogleMapsAddressvalidationV1AddressComponent",
218
+ "properties": {
219
+ "componentName": {
220
+ "$ref": "GoogleMapsAddressvalidationV1ComponentName",
221
+ "description": "The name for this component."
222
+ },
223
+ "componentType": {
224
+ "description": "The type of the address component. See [Table 2: Additional types returned by the Places service](https://developers.google.com/places/web-service/supported_types#table2) for a list of possible types.",
225
+ "type": "string"
226
+ },
227
+ "confirmationLevel": {
228
+ "description": "Indicates the level of certainty that we have that the component is correct.",
229
+ "enum": [
230
+ "CONFIRMATION_LEVEL_UNSPECIFIED",
231
+ "CONFIRMED",
232
+ "UNCONFIRMED_BUT_PLAUSIBLE",
233
+ "UNCONFIRMED_AND_SUSPICIOUS"
234
+ ],
235
+ "enumDescriptions": [
236
+ "Default value. This value is unused.",
237
+ "We were able to verify that this component exists and makes sense in the context of the rest of the address.",
238
+ "This component could not be confirmed, but it is plausible that it exists. For example, a street number within a known valid range of numbers on a street where specific house numbers are not known.",
239
+ "This component was not confirmed and is likely to be wrong. For example, a neighborhood that does not fit the rest of the address."
240
+ ],
241
+ "type": "string"
242
+ },
243
+ "inferred": {
244
+ "description": "Indicates that the component was not part of the input, but we inferred it for the address location and believe it should be provided for a complete address.",
245
+ "type": "boolean"
246
+ },
247
+ "replaced": {
248
+ "description": "Indicates the name of the component was replaced with a completely different one, for example a wrong postal code being replaced with one that is correct for the address. This is not a cosmetic change, the input component has been changed to a different one.",
249
+ "type": "boolean"
250
+ },
251
+ "spellCorrected": {
252
+ "description": "Indicates a correction to a misspelling in the component name. The API does not always flag changes from one spelling variant to another, such as when changing \"centre\" to \"center\". It also does not always flag common misspellings, such as when changing \"Amphitheater Pkwy\" to \"Amphitheatre Pkwy\".",
253
+ "type": "boolean"
254
+ },
255
+ "unexpected": {
256
+ "description": "Indicates an address component that is not expected to be present in a postal address for the given region. We have retained it only because it was part of the input.",
257
+ "type": "boolean"
258
+ }
259
+ },
260
+ "type": "object"
261
+ },
262
+ "GoogleMapsAddressvalidationV1AddressMetadata": {
263
+ "description": "The metadata for the post-processed address. `metadata` is not guaranteed to be fully populated for every address sent to the Address Validation API.",
264
+ "id": "GoogleMapsAddressvalidationV1AddressMetadata",
265
+ "properties": {
266
+ "business": {
267
+ "description": "Indicates that this is the address of a business. If unset, indicates that the value is unknown.",
268
+ "type": "boolean"
269
+ },
270
+ "poBox": {
271
+ "description": "Indicates that the address of a PO box. If unset, indicates that the value is unknown.",
272
+ "type": "boolean"
273
+ },
274
+ "residential": {
275
+ "description": "Indicates that this is the address of a residence. If unset, indicates that the value is unknown.",
276
+ "type": "boolean"
277
+ }
278
+ },
279
+ "type": "object"
280
+ },
281
+ "GoogleMapsAddressvalidationV1ComponentName": {
282
+ "description": "A wrapper for the name of the component.",
283
+ "id": "GoogleMapsAddressvalidationV1ComponentName",
284
+ "properties": {
285
+ "languageCode": {
286
+ "description": "The BCP-47 language code. This will not be present if the component name is not associated with a language, such as a street number.",
287
+ "type": "string"
288
+ },
289
+ "text": {
290
+ "description": "The name text. For example, \"5th Avenue\" for a street name or \"1253\" for a street number.",
291
+ "type": "string"
292
+ }
293
+ },
294
+ "type": "object"
295
+ },
296
+ "GoogleMapsAddressvalidationV1Geocode": {
297
+ "description": "Contains information about the place the input was geocoded to.",
298
+ "id": "GoogleMapsAddressvalidationV1Geocode",
299
+ "properties": {
300
+ "bounds": {
301
+ "$ref": "GoogleGeoTypeViewport",
302
+ "description": "The bounds of the geocoded place."
303
+ },
304
+ "featureSizeMeters": {
305
+ "description": "The size of the geocoded place, in meters. This is another measure of the coarseness of the geocoded location, but in physical size rather than in semantic meaning.",
306
+ "format": "float",
307
+ "type": "number"
308
+ },
309
+ "location": {
310
+ "$ref": "GoogleTypeLatLng",
311
+ "description": "The geocoded location of the input. Using place IDs is preferred over using addresses, latitude/longitude coordinates, or plus codes. Using coordinates when routing or calculating driving directions will always result in the point being snapped to the road nearest to those coordinates. This may not be a road that will quickly or safely lead to the destination and may not be near an access point to the property. Additionally, when a location is reverse geocoded, there is no guarantee that the returned address will match the original."
312
+ },
313
+ "placeId": {
314
+ "description": "The PlaceID of the place this input geocodes to. For more information about Place IDs see [here](https://developers.google.com/maps/documentation/places/web-service/place-id).",
315
+ "type": "string"
316
+ },
317
+ "placeTypes": {
318
+ "description": "The type(s) of place that the input geocoded to. For example, `['locality', 'political']`. The full list of types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).",
319
+ "items": {
320
+ "type": "string"
321
+ },
322
+ "type": "array"
323
+ },
324
+ "plusCode": {
325
+ "$ref": "GoogleMapsAddressvalidationV1PlusCode",
326
+ "description": "The plus code corresponding to the `location`."
327
+ }
328
+ },
329
+ "type": "object"
330
+ },
331
+ "GoogleMapsAddressvalidationV1LanguageOptions": {
332
+ "description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Enables the Address Validation API to include additional information in the response.",
333
+ "id": "GoogleMapsAddressvalidationV1LanguageOptions",
334
+ "properties": {
335
+ "returnEnglishLatinAddress": {
336
+ "description": "Preview: Return a [google.maps.addressvalidation.v1.Address] in English. See [google.maps.addressvalidation.v1.ValidationResult.english_latin_address] for details.",
337
+ "type": "boolean"
338
+ }
339
+ },
340
+ "type": "object"
341
+ },
342
+ "GoogleMapsAddressvalidationV1PlusCode": {
343
+ "description": "Plus code (http://plus.codes) is a location reference with two formats: global code defining a 14mx14m (1/8000th of a degree) or smaller rectangle, and compound code, replacing the prefix with a reference location.",
344
+ "id": "GoogleMapsAddressvalidationV1PlusCode",
345
+ "properties": {
346
+ "compoundCode": {
347
+ "description": "Place's compound code, such as \"33GV+HQ, Ramberg, Norway\", containing the suffix of the global code and replacing the prefix with a formatted name of a reference entity.",
348
+ "type": "string"
349
+ },
350
+ "globalCode": {
351
+ "description": "Place's global (full) code, such as \"9FWM33GV+HQ\", representing an 1/8000 by 1/8000 degree area (~14 by 14 meters).",
352
+ "type": "string"
353
+ }
354
+ },
355
+ "type": "object"
356
+ },
357
+ "GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest": {
358
+ "description": "The request for sending validation feedback.",
359
+ "id": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest",
360
+ "properties": {
361
+ "conclusion": {
362
+ "description": "Required. The outcome of the sequence of validation attempts. If this field is set to `VALIDATION_CONCLUSION_UNSPECIFIED`, an `INVALID_ARGUMENT` error will be returned.",
363
+ "enum": [
364
+ "VALIDATION_CONCLUSION_UNSPECIFIED",
365
+ "VALIDATED_VERSION_USED",
366
+ "USER_VERSION_USED",
367
+ "UNVALIDATED_VERSION_USED",
368
+ "UNUSED"
369
+ ],
370
+ "enumDescriptions": [
371
+ "This value is unused. If the `ProvideValidationFeedbackRequest.conclusion` field is set to `VALIDATION_CONCLUSION_UNSPECIFIED`, an `INVALID_ARGUMENT` error will be returned.",
372
+ "The version of the address returned by the Address Validation API was used for the transaction.",
373
+ "The version of the address provided by the user was used for the transaction",
374
+ "A version of the address that was entered after the last validation attempt but that was not re-validated was used for the transaction.",
375
+ "The transaction was abandoned and the address was not used."
376
+ ],
377
+ "type": "string"
378
+ },
379
+ "responseId": {
380
+ "description": "Required. The ID of the response that this feedback is for. This should be the response_id from the first response in a series of address validation attempts.",
381
+ "type": "string"
382
+ }
383
+ },
384
+ "type": "object"
385
+ },
386
+ "GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse": {
387
+ "description": "The response for validation feedback. The response is empty if the feedback is sent successfully.",
388
+ "id": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse",
389
+ "properties": {},
390
+ "type": "object"
391
+ },
392
+ "GoogleMapsAddressvalidationV1UspsAddress": {
393
+ "description": "USPS representation of a US address.",
394
+ "id": "GoogleMapsAddressvalidationV1UspsAddress",
395
+ "properties": {
396
+ "city": {
397
+ "description": "City name.",
398
+ "type": "string"
399
+ },
400
+ "cityStateZipAddressLine": {
401
+ "description": "City + state + postal code.",
402
+ "type": "string"
403
+ },
404
+ "firm": {
405
+ "description": "Firm name.",
406
+ "type": "string"
407
+ },
408
+ "firstAddressLine": {
409
+ "description": "First address line.",
410
+ "type": "string"
411
+ },
412
+ "secondAddressLine": {
413
+ "description": "Second address line.",
414
+ "type": "string"
415
+ },
416
+ "state": {
417
+ "description": "2 letter state code.",
418
+ "type": "string"
419
+ },
420
+ "urbanization": {
421
+ "description": "Puerto Rican urbanization name.",
422
+ "type": "string"
423
+ },
424
+ "zipCode": {
425
+ "description": "Postal code e.g. 10009.",
426
+ "type": "string"
427
+ },
428
+ "zipCodeExtension": {
429
+ "description": "4-digit postal code extension e.g. 5023.",
430
+ "type": "string"
431
+ }
432
+ },
433
+ "type": "object"
434
+ },
435
+ "GoogleMapsAddressvalidationV1UspsData": {
436
+ "description": "The USPS data for the address. `uspsData` is not guaranteed to be fully populated for every US or PR address sent to the Address Validation API. It's recommended to integrate the backup address fields in the response if you utilize uspsData as the primary part of the response.",
437
+ "id": "GoogleMapsAddressvalidationV1UspsData",
438
+ "properties": {
439
+ "abbreviatedCity": {
440
+ "description": "Abbreviated city.",
441
+ "type": "string"
442
+ },
443
+ "addressRecordType": {
444
+ "description": "Type of the address record that matches the input address. * `F`: FIRM. This is a match to a Firm Record, which is the finest level of match available for an address. * `G`: GENERAL DELIVERY. This is a match to a General Delivery record. * `H`: BUILDING / APARTMENT. This is a match to a Building or Apartment record. * `P`: POST OFFICE BOX. This is a match to a Post Office Box. * `R`: RURAL ROUTE or HIGHWAY CONTRACT: This is a match to either a Rural Route or a Highway Contract record, both of which may have associated Box Number ranges. * `S`: STREET RECORD: This is a match to a Street record containing a valid primary number range.",
445
+ "type": "string"
446
+ },
447
+ "carrierRoute": {
448
+ "description": "The carrier route code. A four character code consisting of a one letter prefix and a three digit route designator. Prefixes: * `C`: Carrier route (or city route) * `R`: Rural route * `H`: Highway Contract Route * `B`: Post Office Box Section * `G`: General delivery unit",
449
+ "type": "string"
450
+ },
451
+ "carrierRouteIndicator": {
452
+ "description": "Carrier route rate sort indicator.",
453
+ "type": "string"
454
+ },
455
+ "cassProcessed": {
456
+ "description": "Indicator that the request has been CASS processed.",
457
+ "type": "boolean"
458
+ },
459
+ "county": {
460
+ "description": "County name.",
461
+ "type": "string"
462
+ },
463
+ "defaultAddress": {
464
+ "description": "Indicator that a default address was found, but more specific addresses exists.",
465
+ "type": "boolean"
466
+ },
467
+ "deliveryPointCheckDigit": {
468
+ "description": "The delivery point check digit. This number is added to the end of the delivery_point_barcode for mechanically scanned mail. Adding all the digits of the delivery_point_barcode, delivery_point_check_digit, postal code, and ZIP+4 together should yield a number divisible by 10.",
469
+ "type": "string"
470
+ },
471
+ "deliveryPointCode": {
472
+ "description": "2 digit delivery point code",
473
+ "type": "string"
474
+ },
475
+ "dpvCmra": {
476
+ "description": "Indicates if the address is a CMRA (Commercial Mail Receiving Agency)--a private business receiving mail for clients. Returns a single character. * `Y`: The address is a CMRA * `N`: The address is not a CMRA",
477
+ "type": "string"
478
+ },
479
+ "dpvConfirmation": {
480
+ "description": "The possible values for DPV confirmation. Returns a single character or returns no value. * `N`: Primary and any secondary number information failed to DPV confirm. * `D`: Address was DPV confirmed for the primary number only, and the secondary number information was missing. * `S`: Address was DPV confirmed for the primary number only, and the secondary number information was present but not confirmed. * `Y`: Address was DPV confirmed for primary and any secondary numbers. * Empty: If the response does not contain a `dpv_confirmation` value, the address was not submitted for DPV confirmation.",
481
+ "type": "string"
482
+ },
483
+ "dpvDoorNotAccessible": {
484
+ "description": "Flag indicates addresses where USPS cannot knock on a door to deliver mail. Returns a single character. * `Y`: The door is not accessible. * `N`: No indication the door is not accessible.",
485
+ "type": "string"
486
+ },
487
+ "dpvDrop": {
488
+ "description": "Flag indicates mail is delivered to a single receptable at a site. Returns a single character. * `Y`: The mail is delivered to a single receptable at a site. * `N`: The mail is not delivered to a single receptable at a site.",
489
+ "type": "string"
490
+ },
491
+ "dpvEnhancedDeliveryCode": {
492
+ "description": "Indicates that more than one DPV return code is valid for the address. Returns a single character. * `Y`: Address was DPV confirmed for primary and any secondary numbers. * `N`: Primary and any secondary number information failed to DPV confirm. * `S`: Address was DPV confirmed for the primary number only, and the secondary number information was present but not confirmed, or a single trailing alpha on a primary number was dropped to make a DPV match and secondary information required. * `D`: Address was DPV confirmed for the primary number only, and the secondary number information was missing. * `R`: Address confirmed but assigned to phantom route R777 and R779 and USPS delivery is not provided.",
493
+ "type": "string"
494
+ },
495
+ "dpvFootnote": {
496
+ "description": "The footnotes from delivery point validation. Multiple footnotes may be strung together in the same string. * `AA`: Input address matched to the ZIP+4 file * `A1`: Input address was not matched to the ZIP+4 file * `BB`: Matched to DPV (all components) * `CC`: Secondary number not matched and not required * `C1`: Secondary number not matched but required * `N1`: High-rise address missing secondary number * `M1`: Primary number missing * `M3`: Primary number invalid * `P1`: Input address PO, RR or HC box number missing * `P3`: Input address PO, RR, or HC Box number invalid * `F1`: Input address matched to a military address * `G1`: Input address matched to a general delivery address * `U1`: Input address matched to a unique ZIP code * `PB`: Input address matched to PBSA record * `RR`: DPV confirmed address with PMB information * `R1`: DPV confirmed address without PMB information * `R7`: Carrier Route R777 or R779 record * `IA`: Informed Address identified * `TA`: Primary number matched by dropping a trailing alpha",
497
+ "type": "string"
498
+ },
499
+ "dpvNoSecureLocation": {
500
+ "description": "Flag indicates door is accessible, but package will not be left due to security concerns. Returns a single character. * `Y`: The package will not be left due to security concerns. * `N`: No indication the package will not be left due to security concerns.",
501
+ "type": "string"
502
+ },
503
+ "dpvNoStat": {
504
+ "description": "Is this a no stat address or an active address? No stat addresses are ones which are not continuously occupied or addresses that the USPS does not service. Returns a single character. * `Y`: The address is not active * `N`: The address is active",
505
+ "type": "string"
506
+ },
507
+ "dpvNoStatReasonCode": {
508
+ "description": "Indicates the NoStat type. Returns a reason code as int. * `1`: IDA (Internal Drop Address) \u2013 Addresses that do not receive mail directly from the USPS but are delivered to a drop address that services them. * `2`: CDS - Addresses that have not yet become deliverable. For example, a new subdivision where lots and primary numbers have been determined, but no structure exists yet for occupancy. * `3`: Collision - Addresses that do not actually DPV confirm. * `4`: CMZ (College, Military and Other Types) - ZIP + 4 records USPS has incorporated into the data. * `5`: Regular - Indicates addresses not receiving delivery and the addresses are not counted as possible deliveries. * `6`: Secondary Required - The address requires secondary information.",
509
+ "format": "int32",
510
+ "type": "integer"
511
+ },
512
+ "dpvNonDeliveryDays": {
513
+ "description": "Flag indicates mail delivery is not performed every day of the week. Returns a single character. * `Y`: The mail delivery is not performed every day of the week. * `N`: No indication the mail delivery is not performed every day of the week.",
514
+ "type": "string"
515
+ },
516
+ "dpvNonDeliveryDaysValues": {
517
+ "description": "Integer identifying non-delivery days. It can be interrogated using bit flags: 0x40 \u2013 Sunday is a non-delivery day 0x20 \u2013 Monday is a non-delivery day 0x10 \u2013 Tuesday is a non-delivery day 0x08 \u2013 Wednesday is a non-delivery day 0x04 \u2013 Thursday is a non-delivery day 0x02 \u2013 Friday is a non-delivery day 0x01 \u2013 Saturday is a non-delivery day",
518
+ "format": "int32",
519
+ "type": "integer"
520
+ },
521
+ "dpvPbsa": {
522
+ "description": "Indicates the address was matched to PBSA record. Returns a single character. * `Y`: The address was matched to PBSA record. * `N`: The address was not matched to PBSA record.",
523
+ "type": "string"
524
+ },
525
+ "dpvThrowback": {
526
+ "description": "Indicates that mail is not delivered to the street address. Returns a single character. * `Y`: The mail is not delivered to the street address. * `N`: The mail is delivered to the street address.",
527
+ "type": "string"
528
+ },
529
+ "dpvVacant": {
530
+ "description": "Is this place vacant? Returns a single character. * `Y`: The address is vacant * `N`: The address is not vacant",
531
+ "type": "string"
532
+ },
533
+ "elotFlag": {
534
+ "description": "eLOT Ascending/Descending Flag (A/D).",
535
+ "type": "string"
536
+ },
537
+ "elotNumber": {
538
+ "description": "Enhanced Line of Travel (eLOT) number.",
539
+ "type": "string"
540
+ },
541
+ "errorMessage": {
542
+ "description": "Error message for USPS data retrieval. This is populated when USPS processing is suspended because of the detection of artificially created addresses. The USPS data fields might not be populated when this error is present.",
543
+ "type": "string"
544
+ },
545
+ "ewsNoMatch": {
546
+ "description": "The delivery address is matchable, but the EWS file indicates that an exact match will be available soon.",
547
+ "type": "boolean"
548
+ },
549
+ "fipsCountyCode": {
550
+ "description": "FIPS county code.",
551
+ "type": "string"
552
+ },
553
+ "lacsLinkIndicator": {
554
+ "description": "LACSLink indicator.",
555
+ "type": "string"
556
+ },
557
+ "lacsLinkReturnCode": {
558
+ "description": "LACSLink return code.",
559
+ "type": "string"
560
+ },
561
+ "pmbDesignator": {
562
+ "description": "PMB (Private Mail Box) unit designator.",
563
+ "type": "string"
564
+ },
565
+ "pmbNumber": {
566
+ "description": "PMB (Private Mail Box) number;",
567
+ "type": "string"
568
+ },
569
+ "poBoxOnlyPostalCode": {
570
+ "description": "PO Box only postal code.",
571
+ "type": "boolean"
572
+ },
573
+ "postOfficeCity": {
574
+ "description": "Main post office city.",
575
+ "type": "string"
576
+ },
577
+ "postOfficeState": {
578
+ "description": "Main post office state.",
579
+ "type": "string"
580
+ },
581
+ "standardizedAddress": {
582
+ "$ref": "GoogleMapsAddressvalidationV1UspsAddress",
583
+ "description": "USPS standardized address."
584
+ },
585
+ "suitelinkFootnote": {
586
+ "description": "Footnotes from matching a street or highrise record to suite information. If business name match is found, the secondary number is returned. * `A`: SuiteLink record match, business address improved. * `00`: No match, business address is not improved.",
587
+ "type": "string"
588
+ }
589
+ },
590
+ "type": "object"
591
+ },
592
+ "GoogleMapsAddressvalidationV1ValidateAddressRequest": {
593
+ "description": "The request for validating an address.",
594
+ "id": "GoogleMapsAddressvalidationV1ValidateAddressRequest",
595
+ "properties": {
596
+ "address": {
597
+ "$ref": "GoogleTypePostalAddress",
598
+ "description": "Required. The address being validated. Unformatted addresses should be submitted via `address_lines`. The total length of the fields in this input must not exceed 280 characters. Supported regions can be found [here](https://developers.google.com/maps/documentation/address-validation/coverage). The language_code value in the input address is reserved for future uses and is ignored today. The validated address result will be populated based on the preferred language for the given address, as identified by the system. The Address Validation API ignores the values in recipients and organization. Any values in those fields will be discarded and not returned. Please do not set them."
599
+ },
600
+ "enableUspsCass": {
601
+ "description": "Enables USPS CASS compatible mode. This affects _only_ the [google.maps.addressvalidation.v1.ValidationResult.usps_data] field of [google.maps.addressvalidation.v1.ValidationResult]. Note: for USPS CASS enabled requests for addresses in Puerto Rico, a [google.type.PostalAddress.region_code] of the `address` must be provided as \"PR\", or an [google.type.PostalAddress.administrative_area] of the `address` must be provided as \"Puerto Rico\" (case-insensitive) or \"PR\". It's recommended to use a componentized `address`, or alternatively specify at least two [google.type.PostalAddress.address_lines] where the first line contains the street number and name and the second line contains the city, state, and zip code.",
602
+ "type": "boolean"
603
+ },
604
+ "languageOptions": {
605
+ "$ref": "GoogleMapsAddressvalidationV1LanguageOptions",
606
+ "description": "Optional. Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Enables the Address Validation API to include additional information in the response."
607
+ },
608
+ "previousResponseId": {
609
+ "description": "This field must be empty for the first address validation request. If more requests are necessary to fully validate a single address (for example if the changes the user makes after the initial validation need to be re-validated), then each followup request must populate this field with the response_id from the very first response in the validation sequence.",
610
+ "type": "string"
611
+ },
612
+ "sessionToken": {
613
+ "description": "Optional. A string which identifies an Autocomplete session for billing purposes. Must be a URL and filename safe base64 string with at most 36 ASCII characters in length. Otherwise an INVALID_ARGUMENT error is returned. The session begins when the user makes an Autocomplete query, and concludes when they select a place and a call to Place Details or Address Validation is made. Each session can have multiple Autocomplete queries, followed by one Place Details or Address Validation request. The credentials used for each request within a session must belong to the same Google Cloud Console project. Once a session has concluded, the token is no longer valid; your app must generate a fresh token for each session. If the `sessionToken` parameter is omitted, or if you reuse a session token, the session is charged as if no session token was provided (each request is billed separately). Note: Address Validation can only be used in sessions with the Autocomplete (New) API, not the Autocomplete API. See https://developers.google.com/maps/documentation/places/web-service/session-pricing for more details.",
614
+ "type": "string"
615
+ }
616
+ },
617
+ "type": "object"
618
+ },
619
+ "GoogleMapsAddressvalidationV1ValidateAddressResponse": {
620
+ "description": "The response to an address validation request.",
621
+ "id": "GoogleMapsAddressvalidationV1ValidateAddressResponse",
622
+ "properties": {
623
+ "responseId": {
624
+ "description": "The UUID that identifies this response. If the address needs to be re-validated, this UUID *must* accompany the new request.",
625
+ "type": "string"
626
+ },
627
+ "result": {
628
+ "$ref": "GoogleMapsAddressvalidationV1ValidationResult",
629
+ "description": "The result of the address validation."
630
+ }
631
+ },
632
+ "type": "object"
633
+ },
634
+ "GoogleMapsAddressvalidationV1ValidationResult": {
635
+ "description": "The result of validating an address.",
636
+ "id": "GoogleMapsAddressvalidationV1ValidationResult",
637
+ "properties": {
638
+ "address": {
639
+ "$ref": "GoogleMapsAddressvalidationV1Address",
640
+ "description": "Information about the address itself as opposed to the geocode."
641
+ },
642
+ "englishLatinAddress": {
643
+ "$ref": "GoogleMapsAddressvalidationV1Address",
644
+ "description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). The address translated to English. Translated addresses are not reusable as API input. The service provides them so that the user can use their native language to confirm or deny the validation of the originally-provided address. If part of the address doesn't have an English translation, the service returns that part in an alternate language that uses a Latin script. See [here](https://developers.google.com/maps/documentation/address-validation/convert-addresses-english) for an explanation of how the alternate language is selected. If part of the address doesn't have any translations or transliterations in a language that uses a Latin script, the service returns that part in the local language associated with the address. Enable this output by using the [google.maps.addressvalidation.v1.LanguageOptions.return_english_latin_address] flag. Note: the [google.maps.addressvalidation.v1.Address.unconfirmed_component_types] field in the `english_latin_address` and the [google.maps.addressvalidation.v1.AddressComponent.confirmation_level] fields in `english_latin_address.address_components` are not populated."
645
+ },
646
+ "geocode": {
647
+ "$ref": "GoogleMapsAddressvalidationV1Geocode",
648
+ "description": "Information about the location and place that the address geocoded to."
649
+ },
650
+ "metadata": {
651
+ "$ref": "GoogleMapsAddressvalidationV1AddressMetadata",
652
+ "description": "Other information relevant to deliverability. `metadata` is not guaranteed to be fully populated for every address sent to the Address Validation API."
653
+ },
654
+ "uspsData": {
655
+ "$ref": "GoogleMapsAddressvalidationV1UspsData",
656
+ "description": "Extra deliverability flags provided by USPS. Only provided in region `US` and `PR`."
657
+ },
658
+ "verdict": {
659
+ "$ref": "GoogleMapsAddressvalidationV1Verdict",
660
+ "description": "Overall verdict flags"
661
+ }
662
+ },
663
+ "type": "object"
664
+ },
665
+ "GoogleMapsAddressvalidationV1Verdict": {
666
+ "description": "High level overview of the address validation result and geocode.",
667
+ "id": "GoogleMapsAddressvalidationV1Verdict",
668
+ "properties": {
669
+ "addressComplete": {
670
+ "description": "The post-processed address is considered complete if there are no unresolved tokens, no unexpected or missing address components. If unset, indicates that the value is `false`. See `missing_component_types`, `unresolved_tokens` or `unexpected` fields for more details.",
671
+ "type": "boolean"
672
+ },
673
+ "geocodeGranularity": {
674
+ "description": "Information about the granularity of the `geocode`. This can be understood as the semantic meaning of how coarse or fine the geocoded location is. This can differ from the `validation_granularity` above occasionally. For example, our database might record the existence of an apartment number but do not have a precise location for the apartment within a big apartment complex. In that case, the `validation_granularity` will be `SUB_PREMISE` but the `geocode_granularity` will be `PREMISE`.",
675
+ "enum": [
676
+ "GRANULARITY_UNSPECIFIED",
677
+ "SUB_PREMISE",
678
+ "PREMISE",
679
+ "PREMISE_PROXIMITY",
680
+ "BLOCK",
681
+ "ROUTE",
682
+ "OTHER"
683
+ ],
684
+ "enumDescriptions": [
685
+ "Default value. This value is unused.",
686
+ "Below-building level result, such as an apartment.",
687
+ "Building-level result.",
688
+ "A geocode that approximates the building-level location of the address.",
689
+ "The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
690
+ "The geocode or address is granular to route, such as a street, road, or highway.",
691
+ "All other granularities, which are bucketed together since they are not deliverable."
692
+ ],
693
+ "type": "string"
694
+ },
695
+ "hasInferredComponents": {
696
+ "description": "At least one address component was inferred (added) that wasn't in the input, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
697
+ "type": "boolean"
698
+ },
699
+ "hasReplacedComponents": {
700
+ "description": "At least one address component was replaced, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
701
+ "type": "boolean"
702
+ },
703
+ "hasSpellCorrectedComponents": {
704
+ "description": "At least one address component was spell-corrected, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
705
+ "type": "boolean"
706
+ },
707
+ "hasUnconfirmedComponents": {
708
+ "description": "At least one address component cannot be categorized or validated, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
709
+ "type": "boolean"
710
+ },
711
+ "inputGranularity": {
712
+ "description": "The granularity of the **input** address. This is the result of parsing the input address and does not give any validation signals. For validation signals, refer to `validation_granularity` below. For example, if the input address includes a specific apartment number, then the `input_granularity` here will be `SUB_PREMISE`. If the address validation service cannot match the apartment number in the databases or the apartment number is invalid, the `validation_granularity` will likely be `PREMISE` or more coarse.",
713
+ "enum": [
714
+ "GRANULARITY_UNSPECIFIED",
715
+ "SUB_PREMISE",
716
+ "PREMISE",
717
+ "PREMISE_PROXIMITY",
718
+ "BLOCK",
719
+ "ROUTE",
720
+ "OTHER"
721
+ ],
722
+ "enumDescriptions": [
723
+ "Default value. This value is unused.",
724
+ "Below-building level result, such as an apartment.",
725
+ "Building-level result.",
726
+ "A geocode that approximates the building-level location of the address.",
727
+ "The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
728
+ "The geocode or address is granular to route, such as a street, road, or highway.",
729
+ "All other granularities, which are bucketed together since they are not deliverable."
730
+ ],
731
+ "type": "string"
732
+ },
733
+ "possibleNextAction": {
734
+ "description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Offers an interpretive summary of the API response, intended to assist in determining a potential subsequent action to take. This field is derived from other fields in the API response and should not be considered as a guarantee of address accuracy or deliverability. See [Build your validation logic](https://developers.google.com/maps/documentation/address-validation/build-validation-logic) for more details.",
735
+ "enum": [
736
+ "POSSIBLE_NEXT_ACTION_UNSPECIFIED",
737
+ "FIX",
738
+ "CONFIRM_ADD_SUBPREMISES",
739
+ "CONFIRM",
740
+ "ACCEPT"
741
+ ],
742
+ "enumDescriptions": [
743
+ "Default value. This value is unused.",
744
+ "One or more fields of the API response indicate a potential issue with the post-processed address, for example the `verdict.validation_granularity` is `OTHER`. Prompting your customer to edit the address could help improve the quality of the address.",
745
+ "The API response indicates the post-processed address might be missing a subpremises. Prompting your customer to review the address and consider adding a unit number could help improve the quality of the address. The post-processed address might also have other minor issues. Note: this enum value can only be returned for US addresses.",
746
+ "One or more fields of the API response indicate potential minor issues with the post-processed address, for example the `postal_code` address component was `replaced`. Prompting your customer to review the address could help improve the quality of the address.",
747
+ "The API response does not contain signals that warrant one of the other PossibleNextAction values. You might consider using the post-processed address without further prompting your customer, though this does not guarantee the address is valid, and the address might still contain corrections. It is your responsibility to determine if and how to prompt your customer, depending on your own risk assessment."
748
+ ],
749
+ "type": "string"
750
+ },
751
+ "validationGranularity": {
752
+ "description": "The level of granularity for the post-processed address that the API can fully validate. For example, a `validation_granularity` of `PREMISE` indicates all address components at the level of `PREMISE` or more coarse can be validated. Per address component validation result can be found in [google.maps.addressvalidation.v1.Address.address_components].",
753
+ "enum": [
754
+ "GRANULARITY_UNSPECIFIED",
755
+ "SUB_PREMISE",
756
+ "PREMISE",
757
+ "PREMISE_PROXIMITY",
758
+ "BLOCK",
759
+ "ROUTE",
760
+ "OTHER"
761
+ ],
762
+ "enumDescriptions": [
763
+ "Default value. This value is unused.",
764
+ "Below-building level result, such as an apartment.",
765
+ "Building-level result.",
766
+ "A geocode that approximates the building-level location of the address.",
767
+ "The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
768
+ "The geocode or address is granular to route, such as a street, road, or highway.",
769
+ "All other granularities, which are bucketed together since they are not deliverable."
770
+ ],
771
+ "type": "string"
772
+ }
773
+ },
774
+ "type": "object"
775
+ },
776
+ "GoogleTypeLatLng": {
777
+ "description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.",
778
+ "id": "GoogleTypeLatLng",
779
+ "properties": {
780
+ "latitude": {
781
+ "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
782
+ "format": "double",
783
+ "type": "number"
784
+ },
785
+ "longitude": {
786
+ "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
787
+ "format": "double",
788
+ "type": "number"
789
+ }
790
+ },
791
+ "type": "object"
792
+ },
793
+ "GoogleTypePostalAddress": {
794
+ "description": "Represents a postal address, such as for postal delivery or payments addresses. With a postal address, a postal service can deliver items to a premise, P.O. box, or similar. A postal address is not intended to model geographical locations like roads, towns, or mountains. In typical usage, an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input or editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput. - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478.",
795
+ "id": "GoogleTypePostalAddress",
796
+ "properties": {
797
+ "addressLines": {
798
+ "description": "Unstructured address lines describing the lower levels of an address. Because values in `address_lines` do not have type information and may sometimes contain multiple values in a single field (for example, \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country or region of the address. In places where this can vary (for example, Japan), `address_language` is used to make it explicit (for example, \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). In this way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a `region_code` with all remaining information placed in the `address_lines`. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a `region_code` and `address_lines` and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).",
799
+ "items": {
800
+ "type": "string"
801
+ },
802
+ "type": "array"
803
+ },
804
+ "administrativeArea": {
805
+ "description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. For Spain, this is the province and not the autonomous community (for example, \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example, in Switzerland, this should be left unpopulated.",
806
+ "type": "string"
807
+ },
808
+ "languageCode": {
809
+ "description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".",
810
+ "type": "string"
811
+ },
812
+ "locality": {
813
+ "description": "Optional. Generally refers to the city or town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave `locality` empty and use `address_lines`.",
814
+ "type": "string"
815
+ },
816
+ "organization": {
817
+ "description": "Optional. The name of the organization at the address.",
818
+ "type": "string"
819
+ },
820
+ "postalCode": {
821
+ "description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (for example, state or zip code validation in the United States).",
822
+ "type": "string"
823
+ },
824
+ "recipients": {
825
+ "description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.",
826
+ "items": {
827
+ "type": "string"
828
+ },
829
+ "type": "array"
830
+ },
831
+ "regionCode": {
832
+ "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.",
833
+ "type": "string"
834
+ },
835
+ "revision": {
836
+ "description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.",
837
+ "format": "int32",
838
+ "type": "integer"
839
+ },
840
+ "sortingCode": {
841
+ "description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (for example, \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (C\u00f4te d'Ivoire).",
842
+ "type": "string"
843
+ },
844
+ "sublocality": {
845
+ "description": "Optional. Sublocality of the address. For example, this can be a neighborhood, borough, or district.",
846
+ "type": "string"
847
+ }
848
+ },
849
+ "type": "object"
850
+ }
851
+ },
852
+ "servicePath": "",
853
+ "title": "Address Validation API",
854
+ "version": "v1",
855
+ "version_module": true
856
+ }
DiscoveryJson/adexchangebuyer2.v2beta1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/adexperiencereport.v1.json ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "basePath": "",
3
+ "baseUrl": "https://adexperiencereport.googleapis.com/",
4
+ "batchPath": "batch",
5
+ "canonicalName": "Ad Experience Report",
6
+ "description": "Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads.",
7
+ "discoveryVersion": "v1",
8
+ "documentationLink": "https://developers.google.com/ad-experience-report/",
9
+ "fullyEncodeReservedExpansion": true,
10
+ "icons": {
11
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
12
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
13
+ },
14
+ "id": "adexperiencereport:v1",
15
+ "kind": "discovery#restDescription",
16
+ "mtlsRootUrl": "https://adexperiencereport.mtls.googleapis.com/",
17
+ "name": "adexperiencereport",
18
+ "ownerDomain": "google.com",
19
+ "ownerName": "Google",
20
+ "parameters": {
21
+ "$.xgafv": {
22
+ "description": "V1 error format.",
23
+ "enum": [
24
+ "1",
25
+ "2"
26
+ ],
27
+ "enumDescriptions": [
28
+ "v1 error format",
29
+ "v2 error format"
30
+ ],
31
+ "location": "query",
32
+ "type": "string"
33
+ },
34
+ "access_token": {
35
+ "description": "OAuth access token.",
36
+ "location": "query",
37
+ "type": "string"
38
+ },
39
+ "alt": {
40
+ "default": "json",
41
+ "description": "Data format for response.",
42
+ "enum": [
43
+ "json",
44
+ "media",
45
+ "proto"
46
+ ],
47
+ "enumDescriptions": [
48
+ "Responses with Content-Type of application/json",
49
+ "Media download with context-dependent Content-Type",
50
+ "Responses with Content-Type of application/x-protobuf"
51
+ ],
52
+ "location": "query",
53
+ "type": "string"
54
+ },
55
+ "callback": {
56
+ "description": "JSONP",
57
+ "location": "query",
58
+ "type": "string"
59
+ },
60
+ "fields": {
61
+ "description": "Selector specifying which fields to include in a partial response.",
62
+ "location": "query",
63
+ "type": "string"
64
+ },
65
+ "key": {
66
+ "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.",
67
+ "location": "query",
68
+ "type": "string"
69
+ },
70
+ "oauth_token": {
71
+ "description": "OAuth 2.0 token for the current user.",
72
+ "location": "query",
73
+ "type": "string"
74
+ },
75
+ "prettyPrint": {
76
+ "default": "true",
77
+ "description": "Returns response with indentations and line breaks.",
78
+ "location": "query",
79
+ "type": "boolean"
80
+ },
81
+ "quotaUser": {
82
+ "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.",
83
+ "location": "query",
84
+ "type": "string"
85
+ },
86
+ "uploadType": {
87
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
88
+ "location": "query",
89
+ "type": "string"
90
+ },
91
+ "upload_protocol": {
92
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
93
+ "location": "query",
94
+ "type": "string"
95
+ }
96
+ },
97
+ "protocol": "rest",
98
+ "resources": {
99
+ "sites": {
100
+ "methods": {
101
+ "get": {
102
+ "description": "Gets a site's Ad Experience Report summary.",
103
+ "flatPath": "v1/sites/{sitesId}",
104
+ "httpMethod": "GET",
105
+ "id": "adexperiencereport.sites.get",
106
+ "parameterOrder": [
107
+ "name"
108
+ ],
109
+ "parameters": {
110
+ "name": {
111
+ "description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
112
+ "location": "path",
113
+ "pattern": "^sites/[^/]+$",
114
+ "required": true,
115
+ "type": "string"
116
+ }
117
+ },
118
+ "path": "v1/{+name}",
119
+ "response": {
120
+ "$ref": "SiteSummaryResponse"
121
+ }
122
+ }
123
+ }
124
+ },
125
+ "violatingSites": {
126
+ "methods": {
127
+ "list": {
128
+ "description": "Lists sites that are failing in the Ad Experience Report on at least one platform.",
129
+ "flatPath": "v1/violatingSites",
130
+ "httpMethod": "GET",
131
+ "id": "adexperiencereport.violatingSites.list",
132
+ "parameterOrder": [],
133
+ "parameters": {},
134
+ "path": "v1/violatingSites",
135
+ "response": {
136
+ "$ref": "ViolatingSitesResponse"
137
+ }
138
+ }
139
+ }
140
+ }
141
+ },
142
+ "revision": "20230807",
143
+ "rootUrl": "https://adexperiencereport.googleapis.com/",
144
+ "schemas": {
145
+ "PlatformSummary": {
146
+ "description": "A site's Ad Experience Report summary on a single platform.",
147
+ "id": "PlatformSummary",
148
+ "properties": {
149
+ "betterAdsStatus": {
150
+ "description": "The site's Ad Experience Report status on this platform.",
151
+ "enum": [
152
+ "UNKNOWN",
153
+ "PASSING",
154
+ "WARNING",
155
+ "FAILING"
156
+ ],
157
+ "enumDeprecated": [
158
+ false,
159
+ false,
160
+ true,
161
+ false
162
+ ],
163
+ "enumDescriptions": [
164
+ "Not reviewed.",
165
+ "Passing.",
166
+ "Warning. No longer a possible status.",
167
+ "Failing."
168
+ ],
169
+ "type": "string"
170
+ },
171
+ "enforcementTime": {
172
+ "description": "The time at which [enforcement](https://support.google.com/webtools/answer/7308033) against the site began or will begin on this platform. Not set when the filter_status is OFF.",
173
+ "format": "google-datetime",
174
+ "type": "string"
175
+ },
176
+ "filterStatus": {
177
+ "description": "The site's [enforcement status](https://support.google.com/webtools/answer/7308033) on this platform.",
178
+ "enum": [
179
+ "UNKNOWN",
180
+ "ON",
181
+ "OFF",
182
+ "PAUSED",
183
+ "PENDING"
184
+ ],
185
+ "enumDescriptions": [
186
+ "N/A.",
187
+ "Ad filtering is on.",
188
+ "Ad filtering is off.",
189
+ "Ad filtering is paused.",
190
+ "Ad filtering is pending."
191
+ ],
192
+ "type": "string"
193
+ },
194
+ "lastChangeTime": {
195
+ "description": "The time at which the site's status last changed on this platform.",
196
+ "format": "google-datetime",
197
+ "type": "string"
198
+ },
199
+ "region": {
200
+ "deprecated": true,
201
+ "description": "The site's regions on this platform. No longer populated, because there is no longer any semantic difference between sites in different regions.",
202
+ "items": {
203
+ "enum": [
204
+ "REGION_UNKNOWN",
205
+ "REGION_A",
206
+ "REGION_B",
207
+ "REGION_C"
208
+ ],
209
+ "enumDescriptions": [
210
+ "Ad standard not yet defined for your region.",
211
+ "Region A.",
212
+ "Region B.",
213
+ "Region C."
214
+ ],
215
+ "type": "string"
216
+ },
217
+ "type": "array"
218
+ },
219
+ "reportUrl": {
220
+ "description": "A link to the full Ad Experience Report for the site on this platform.. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
221
+ "type": "string"
222
+ },
223
+ "underReview": {
224
+ "description": "Whether the site is currently under review on this platform.",
225
+ "type": "boolean"
226
+ }
227
+ },
228
+ "type": "object"
229
+ },
230
+ "SiteSummaryResponse": {
231
+ "description": "Response message for GetSiteSummary.",
232
+ "id": "SiteSummaryResponse",
233
+ "properties": {
234
+ "desktopSummary": {
235
+ "$ref": "PlatformSummary",
236
+ "description": "The site's Ad Experience Report summary on desktop."
237
+ },
238
+ "mobileSummary": {
239
+ "$ref": "PlatformSummary",
240
+ "description": "The site's Ad Experience Report summary on mobile."
241
+ },
242
+ "reviewedSite": {
243
+ "description": "The name of the reviewed site, e.g. `google.com`.",
244
+ "type": "string"
245
+ }
246
+ },
247
+ "type": "object"
248
+ },
249
+ "ViolatingSitesResponse": {
250
+ "description": "Response message for ListViolatingSites.",
251
+ "id": "ViolatingSitesResponse",
252
+ "properties": {
253
+ "violatingSites": {
254
+ "description": "The list of violating sites.",
255
+ "items": {
256
+ "$ref": "SiteSummaryResponse"
257
+ },
258
+ "type": "array"
259
+ }
260
+ },
261
+ "type": "object"
262
+ }
263
+ },
264
+ "servicePath": "",
265
+ "title": "Ad Experience Report API",
266
+ "version": "v1",
267
+ "version_module": true
268
+ }
DiscoveryJson/admin.datatransfer_v1.json ADDED
@@ -0,0 +1,453 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/admin.datatransfer": {
6
+ "description": "View and manage data transfers between users in your organization"
7
+ },
8
+ "https://www.googleapis.com/auth/admin.datatransfer.readonly": {
9
+ "description": "View data transfers between users in your organization"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://admin.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "DataTransfer",
18
+ "description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/workspace/admin/",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "admin:datatransfer_v1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://admin.mtls.googleapis.com/",
29
+ "name": "admin",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "packagePath": "admin",
33
+ "parameters": {
34
+ "$.xgafv": {
35
+ "description": "V1 error format.",
36
+ "enum": [
37
+ "1",
38
+ "2"
39
+ ],
40
+ "enumDescriptions": [
41
+ "v1 error format",
42
+ "v2 error format"
43
+ ],
44
+ "location": "query",
45
+ "type": "string"
46
+ },
47
+ "access_token": {
48
+ "description": "OAuth access token.",
49
+ "location": "query",
50
+ "type": "string"
51
+ },
52
+ "alt": {
53
+ "default": "json",
54
+ "description": "Data format for response.",
55
+ "enum": [
56
+ "json",
57
+ "media",
58
+ "proto"
59
+ ],
60
+ "enumDescriptions": [
61
+ "Responses with Content-Type of application/json",
62
+ "Media download with context-dependent Content-Type",
63
+ "Responses with Content-Type of application/x-protobuf"
64
+ ],
65
+ "location": "query",
66
+ "type": "string"
67
+ },
68
+ "callback": {
69
+ "description": "JSONP",
70
+ "location": "query",
71
+ "type": "string"
72
+ },
73
+ "fields": {
74
+ "description": "Selector specifying which fields to include in a partial response.",
75
+ "location": "query",
76
+ "type": "string"
77
+ },
78
+ "key": {
79
+ "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.",
80
+ "location": "query",
81
+ "type": "string"
82
+ },
83
+ "oauth_token": {
84
+ "description": "OAuth 2.0 token for the current user.",
85
+ "location": "query",
86
+ "type": "string"
87
+ },
88
+ "prettyPrint": {
89
+ "default": "true",
90
+ "description": "Returns response with indentations and line breaks.",
91
+ "location": "query",
92
+ "type": "boolean"
93
+ },
94
+ "quotaUser": {
95
+ "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.",
96
+ "location": "query",
97
+ "type": "string"
98
+ },
99
+ "uploadType": {
100
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
101
+ "location": "query",
102
+ "type": "string"
103
+ },
104
+ "upload_protocol": {
105
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
106
+ "location": "query",
107
+ "type": "string"
108
+ }
109
+ },
110
+ "protocol": "rest",
111
+ "resources": {
112
+ "applications": {
113
+ "methods": {
114
+ "get": {
115
+ "description": "Retrieves information about an application for the given application ID.",
116
+ "flatPath": "admin/datatransfer/v1/applications/{applicationId}",
117
+ "httpMethod": "GET",
118
+ "id": "datatransfer.applications.get",
119
+ "parameterOrder": [
120
+ "applicationId"
121
+ ],
122
+ "parameters": {
123
+ "applicationId": {
124
+ "description": "ID of the application resource to be retrieved.",
125
+ "format": "int64",
126
+ "location": "path",
127
+ "required": true,
128
+ "type": "string"
129
+ }
130
+ },
131
+ "path": "admin/datatransfer/v1/applications/{applicationId}",
132
+ "response": {
133
+ "$ref": "Application"
134
+ },
135
+ "scopes": [
136
+ "https://www.googleapis.com/auth/admin.datatransfer",
137
+ "https://www.googleapis.com/auth/admin.datatransfer.readonly"
138
+ ]
139
+ },
140
+ "list": {
141
+ "description": "Lists the applications available for data transfer for a customer.",
142
+ "flatPath": "admin/datatransfer/v1/applications",
143
+ "httpMethod": "GET",
144
+ "id": "datatransfer.applications.list",
145
+ "parameterOrder": [],
146
+ "parameters": {
147
+ "customerId": {
148
+ "description": "Immutable ID of the Google Workspace account.",
149
+ "location": "query",
150
+ "type": "string"
151
+ },
152
+ "maxResults": {
153
+ "description": "Maximum number of results to return. Default is 100.",
154
+ "format": "int32",
155
+ "location": "query",
156
+ "maximum": "500",
157
+ "minimum": "1",
158
+ "type": "integer"
159
+ },
160
+ "pageToken": {
161
+ "description": "Token to specify next page in the list.",
162
+ "location": "query",
163
+ "type": "string"
164
+ }
165
+ },
166
+ "path": "admin/datatransfer/v1/applications",
167
+ "response": {
168
+ "$ref": "ApplicationsListResponse"
169
+ },
170
+ "scopes": [
171
+ "https://www.googleapis.com/auth/admin.datatransfer",
172
+ "https://www.googleapis.com/auth/admin.datatransfer.readonly"
173
+ ]
174
+ }
175
+ }
176
+ },
177
+ "transfers": {
178
+ "methods": {
179
+ "get": {
180
+ "description": "Retrieves a data transfer request by its resource ID.",
181
+ "flatPath": "admin/datatransfer/v1/transfers/{dataTransferId}",
182
+ "httpMethod": "GET",
183
+ "id": "datatransfer.transfers.get",
184
+ "parameterOrder": [
185
+ "dataTransferId"
186
+ ],
187
+ "parameters": {
188
+ "dataTransferId": {
189
+ "description": "ID of the resource to be retrieved. This is returned in the response from the insert method.",
190
+ "location": "path",
191
+ "required": true,
192
+ "type": "string"
193
+ }
194
+ },
195
+ "path": "admin/datatransfer/v1/transfers/{dataTransferId}",
196
+ "response": {
197
+ "$ref": "DataTransfer"
198
+ },
199
+ "scopes": [
200
+ "https://www.googleapis.com/auth/admin.datatransfer",
201
+ "https://www.googleapis.com/auth/admin.datatransfer.readonly"
202
+ ]
203
+ },
204
+ "insert": {
205
+ "description": "Inserts a data transfer request. See the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference for specific application requirements.",
206
+ "flatPath": "admin/datatransfer/v1/transfers",
207
+ "httpMethod": "POST",
208
+ "id": "datatransfer.transfers.insert",
209
+ "parameterOrder": [],
210
+ "parameters": {},
211
+ "path": "admin/datatransfer/v1/transfers",
212
+ "request": {
213
+ "$ref": "DataTransfer"
214
+ },
215
+ "response": {
216
+ "$ref": "DataTransfer"
217
+ },
218
+ "scopes": [
219
+ "https://www.googleapis.com/auth/admin.datatransfer"
220
+ ]
221
+ },
222
+ "list": {
223
+ "description": "Lists the transfers for a customer by source user, destination user, or status.",
224
+ "flatPath": "admin/datatransfer/v1/transfers",
225
+ "httpMethod": "GET",
226
+ "id": "datatransfer.transfers.list",
227
+ "parameterOrder": [],
228
+ "parameters": {
229
+ "customerId": {
230
+ "description": "Immutable ID of the Google Workspace account.",
231
+ "location": "query",
232
+ "type": "string"
233
+ },
234
+ "maxResults": {
235
+ "description": "Maximum number of results to return. Default is 100.",
236
+ "format": "int32",
237
+ "location": "query",
238
+ "maximum": "500",
239
+ "minimum": "1",
240
+ "type": "integer"
241
+ },
242
+ "newOwnerUserId": {
243
+ "description": "Destination user's profile ID.",
244
+ "location": "query",
245
+ "type": "string"
246
+ },
247
+ "oldOwnerUserId": {
248
+ "description": "Source user's profile ID.",
249
+ "location": "query",
250
+ "type": "string"
251
+ },
252
+ "pageToken": {
253
+ "description": "Token to specify the next page in the list.",
254
+ "location": "query",
255
+ "type": "string"
256
+ },
257
+ "status": {
258
+ "description": "Status of the transfer.",
259
+ "location": "query",
260
+ "type": "string"
261
+ }
262
+ },
263
+ "path": "admin/datatransfer/v1/transfers",
264
+ "response": {
265
+ "$ref": "DataTransfersListResponse"
266
+ },
267
+ "scopes": [
268
+ "https://www.googleapis.com/auth/admin.datatransfer",
269
+ "https://www.googleapis.com/auth/admin.datatransfer.readonly"
270
+ ]
271
+ }
272
+ }
273
+ }
274
+ },
275
+ "revision": "20250707",
276
+ "rootUrl": "https://admin.googleapis.com/",
277
+ "schemas": {
278
+ "Application": {
279
+ "description": "Application resources represent applications installed on the domain that support transferring ownership of user data.",
280
+ "id": "Application",
281
+ "properties": {
282
+ "etag": {
283
+ "description": "Etag of the resource.",
284
+ "type": "string"
285
+ },
286
+ "id": {
287
+ "description": "The application's ID. Retrievable by using the [`applications.list()`](https://developers.google.com/workspace/admin/data-transfer/reference/rest/v1/applications/list) method.",
288
+ "format": "int64",
289
+ "type": "string"
290
+ },
291
+ "kind": {
292
+ "default": "admin#datatransfer#ApplicationResource",
293
+ "description": "Identifies the resource as a DataTransfer Application Resource.",
294
+ "type": "string"
295
+ },
296
+ "name": {
297
+ "description": "The application's name.",
298
+ "type": "string"
299
+ },
300
+ "transferParams": {
301
+ "description": "The list of all possible transfer parameters for this application. These parameters select which categories of the user's data to transfer.",
302
+ "items": {
303
+ "$ref": "ApplicationTransferParam"
304
+ },
305
+ "type": "array"
306
+ }
307
+ },
308
+ "type": "object"
309
+ },
310
+ "ApplicationDataTransfer": {
311
+ "description": "Template to map fields of ApplicationDataTransfer resource.",
312
+ "id": "ApplicationDataTransfer",
313
+ "properties": {
314
+ "applicationId": {
315
+ "description": "The application's ID.",
316
+ "format": "int64",
317
+ "type": "string"
318
+ },
319
+ "applicationTransferParams": {
320
+ "description": "The transfer parameters for the application. These parameters are used to select the data which will get transferred in context of this application. For more information about the specific values available for each application, see the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference.",
321
+ "items": {
322
+ "$ref": "ApplicationTransferParam"
323
+ },
324
+ "type": "array"
325
+ },
326
+ "applicationTransferStatus": {
327
+ "description": "Read-only. Current status of transfer for this application.",
328
+ "type": "string"
329
+ }
330
+ },
331
+ "type": "object"
332
+ },
333
+ "ApplicationTransferParam": {
334
+ "description": "Template for application transfer parameters.",
335
+ "id": "ApplicationTransferParam",
336
+ "properties": {
337
+ "key": {
338
+ "description": "The type of the transfer parameter, such as `PRIVACY_LEVEL`.",
339
+ "type": "string"
340
+ },
341
+ "value": {
342
+ "description": "The value of the transfer parameter, such as `PRIVATE` or `SHARED`.",
343
+ "items": {
344
+ "type": "string"
345
+ },
346
+ "type": "array"
347
+ }
348
+ },
349
+ "type": "object"
350
+ },
351
+ "ApplicationsListResponse": {
352
+ "description": "Template for a collection of Applications.",
353
+ "id": "ApplicationsListResponse",
354
+ "properties": {
355
+ "applications": {
356
+ "description": "The list of applications that support data transfer and are also installed for the customer.",
357
+ "items": {
358
+ "$ref": "Application"
359
+ },
360
+ "type": "array"
361
+ },
362
+ "etag": {
363
+ "description": "ETag of the resource.",
364
+ "type": "string"
365
+ },
366
+ "kind": {
367
+ "default": "admin#datatransfer#applicationsList",
368
+ "description": "Identifies the resource as a collection of Applications.",
369
+ "type": "string"
370
+ },
371
+ "nextPageToken": {
372
+ "description": "Token to specify the next page in the list.",
373
+ "type": "string"
374
+ }
375
+ },
376
+ "type": "object"
377
+ },
378
+ "DataTransfer": {
379
+ "description": "A Transfer resource represents the transfer of the ownership of user data between users.",
380
+ "id": "DataTransfer",
381
+ "properties": {
382
+ "applicationDataTransfers": {
383
+ "description": "The list of per-application data transfer resources. It contains details of the applications associated with this transfer resource, and also specifies the applications for which data transfer has to be done at the time of the transfer resource creation.",
384
+ "items": {
385
+ "$ref": "ApplicationDataTransfer"
386
+ },
387
+ "type": "array"
388
+ },
389
+ "etag": {
390
+ "description": "ETag of the resource.",
391
+ "type": "string"
392
+ },
393
+ "id": {
394
+ "description": "Read-only. The transfer's ID.",
395
+ "type": "string"
396
+ },
397
+ "kind": {
398
+ "default": "admin#datatransfer#DataTransfer",
399
+ "description": "Identifies the resource as a DataTransfer request.",
400
+ "type": "string"
401
+ },
402
+ "newOwnerUserId": {
403
+ "description": "ID of the user to whom the data is being transferred.",
404
+ "type": "string"
405
+ },
406
+ "oldOwnerUserId": {
407
+ "description": "ID of the user whose data is being transferred.",
408
+ "type": "string"
409
+ },
410
+ "overallTransferStatusCode": {
411
+ "description": "Read-only. Overall transfer status.",
412
+ "type": "string"
413
+ },
414
+ "requestTime": {
415
+ "description": "Read-only. The time at which the data transfer was requested.",
416
+ "format": "date-time",
417
+ "type": "string"
418
+ }
419
+ },
420
+ "type": "object"
421
+ },
422
+ "DataTransfersListResponse": {
423
+ "description": "Template for a collection of DataTransfer resources.",
424
+ "id": "DataTransfersListResponse",
425
+ "properties": {
426
+ "dataTransfers": {
427
+ "description": "List of data transfer requests.",
428
+ "items": {
429
+ "$ref": "DataTransfer"
430
+ },
431
+ "type": "array"
432
+ },
433
+ "etag": {
434
+ "description": "ETag of the resource.",
435
+ "type": "string"
436
+ },
437
+ "kind": {
438
+ "default": "admin#datatransfer#dataTransfersList",
439
+ "description": "Identifies the resource as a collection of data transfer requests.",
440
+ "type": "string"
441
+ },
442
+ "nextPageToken": {
443
+ "description": "Token to specify the next page in the list.",
444
+ "type": "string"
445
+ }
446
+ },
447
+ "type": "object"
448
+ }
449
+ },
450
+ "servicePath": "",
451
+ "title": "Admin SDK API",
452
+ "version": "datatransfer_v1"
453
+ }
DiscoveryJson/admin.directory_v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/admin.directory_v1.json.original ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/admin.reports_v1.json ADDED
@@ -0,0 +1,1403 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/admin.reports.audit.readonly": {
6
+ "description": "View audit reports for your Google Workspace domain"
7
+ },
8
+ "https://www.googleapis.com/auth/admin.reports.usage.readonly": {
9
+ "description": "View usage reports for your Google Workspace domain"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://admin.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "reports",
18
+ "description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/workspace/admin/",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "admin:reports_v1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://admin.mtls.googleapis.com/",
29
+ "name": "admin",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "packagePath": "admin",
33
+ "parameters": {
34
+ "$.xgafv": {
35
+ "description": "V1 error format.",
36
+ "enum": [
37
+ "1",
38
+ "2"
39
+ ],
40
+ "enumDescriptions": [
41
+ "v1 error format",
42
+ "v2 error format"
43
+ ],
44
+ "location": "query",
45
+ "type": "string"
46
+ },
47
+ "access_token": {
48
+ "description": "OAuth access token.",
49
+ "location": "query",
50
+ "type": "string"
51
+ },
52
+ "alt": {
53
+ "default": "json",
54
+ "description": "Data format for response.",
55
+ "enum": [
56
+ "json",
57
+ "media",
58
+ "proto"
59
+ ],
60
+ "enumDescriptions": [
61
+ "Responses with Content-Type of application/json",
62
+ "Media download with context-dependent Content-Type",
63
+ "Responses with Content-Type of application/x-protobuf"
64
+ ],
65
+ "location": "query",
66
+ "type": "string"
67
+ },
68
+ "callback": {
69
+ "description": "JSONP",
70
+ "location": "query",
71
+ "type": "string"
72
+ },
73
+ "fields": {
74
+ "description": "Selector specifying which fields to include in a partial response.",
75
+ "location": "query",
76
+ "type": "string"
77
+ },
78
+ "key": {
79
+ "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.",
80
+ "location": "query",
81
+ "type": "string"
82
+ },
83
+ "oauth_token": {
84
+ "description": "OAuth 2.0 token for the current user.",
85
+ "location": "query",
86
+ "type": "string"
87
+ },
88
+ "prettyPrint": {
89
+ "default": "true",
90
+ "description": "Returns response with indentations and line breaks.",
91
+ "location": "query",
92
+ "type": "boolean"
93
+ },
94
+ "quotaUser": {
95
+ "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.",
96
+ "location": "query",
97
+ "type": "string"
98
+ },
99
+ "uploadType": {
100
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
101
+ "location": "query",
102
+ "type": "string"
103
+ },
104
+ "upload_protocol": {
105
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
106
+ "location": "query",
107
+ "type": "string"
108
+ }
109
+ },
110
+ "protocol": "rest",
111
+ "resources": {
112
+ "activities": {
113
+ "methods": {
114
+ "list": {
115
+ "description": "Retrieves a list of activities for a specific customer's account and application such as the Admin console application or the Google Drive application. For more information, see the guides for administrator and Google Drive activity reports. For more information about the activity report's parameters, see the activity parameters reference guides. ",
116
+ "flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}",
117
+ "httpMethod": "GET",
118
+ "id": "reports.activities.list",
119
+ "parameterOrder": [
120
+ "userKey",
121
+ "applicationName"
122
+ ],
123
+ "parameters": {
124
+ "actorIpAddress": {
125
+ "description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.",
126
+ "location": "query",
127
+ "type": "string"
128
+ },
129
+ "applicationName": {
130
+ "description": "Application name for which the events are to be retrieved.",
131
+ "enum": [
132
+ "access_transparency",
133
+ "admin",
134
+ "calendar",
135
+ "chat",
136
+ "drive",
137
+ "gcp",
138
+ "gmail",
139
+ "gplus",
140
+ "groups",
141
+ "groups_enterprise",
142
+ "jamboard",
143
+ "login",
144
+ "meet",
145
+ "mobile",
146
+ "rules",
147
+ "saml",
148
+ "token",
149
+ "user_accounts",
150
+ "context_aware_access",
151
+ "chrome",
152
+ "data_studio",
153
+ "keep",
154
+ "vault",
155
+ "gemini_in_workspace_apps",
156
+ "classroom",
157
+ "assignments",
158
+ "cloud_search",
159
+ "tasks",
160
+ "data_migration",
161
+ "meet_hardware",
162
+ "directory_sync",
163
+ "ldap",
164
+ "profile",
165
+ "access_evaluation",
166
+ "admin_data_action",
167
+ "contacts",
168
+ "takeout",
169
+ "graduation"
170
+ ],
171
+ "enumDescriptions": [
172
+ "The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.",
173
+ "The Admin console application's activity reports return account information about different types of administrator activity events.",
174
+ "The Google Calendar application's activity reports return information about various Calendar activity events.",
175
+ "The Chat activity reports return information about various Chat activity events.",
176
+ "The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Enterprise customers.",
177
+ "The Google Cloud Platform application's activity reports return information about various GCP activity events.",
178
+ "The Gmail application's activity reports return information about various [Gmail activity events](/admin-sdk/reports/v1/appendix/activity/gmail).",
179
+ "The Google+ application's activity reports return information about various Google+ activity events.",
180
+ "The Google Groups application's activity reports return information about various Groups activity events.",
181
+ "The Enterprise Groups activity reports return information about various Enterprise group activity events.",
182
+ "The Jamboard activity reports return information about various Jamboard activity events.",
183
+ "The Login application's activity reports return account information about different types of Login activity events.",
184
+ "The Meet Audit activity report returns information about different types of Meet Audit activity events.",
185
+ "The Device Audit activity report returns information about different types of Device Audit activity events.",
186
+ "The Rules activity report returns information about different types of Rules activity events.",
187
+ "The SAML activity report returns information about different types of SAML activity events.",
188
+ "The Token application's activity reports return account information about different types of Token activity events.",
189
+ "The User Accounts application's activity reports return account information about different types of User Accounts activity events.",
190
+ "The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.",
191
+ "The Chrome activity reports return information about Chrome browser and Chrome OS events.",
192
+ "The Data Studio activity reports return information about various types of Data Studio activity events.",
193
+ "The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers.",
194
+ "The Vault activity reports return information about various types of Vault activity events.",
195
+ "The Gemini for Workspace activity reports return information about various types of Gemini activity events performed by users within a Workspace application.",
196
+ "The Classroom activity reports return information about different types of [Classroom activity events](https://developers.google.com/workspace/admin/reports/v1/appendix/activity/classroom).",
197
+ "The assignments application's activity reports return information about various types of assignments activity events.",
198
+ "The Cloud Search application's activity reports return information about various types of cloud_search activity events.",
199
+ "The Tasks application's activity reports return information about various types of Tasks activity events.",
200
+ "The Data Migration application's activity reports return information about various types of data migration activity events.",
201
+ "The Meet Hardware application's activity reports return information about various types of Meet Hardware activity events.",
202
+ "The Directory Sync application's activity reports return information about various types of Directory Sync activity events.",
203
+ "The ldap application's activity reports return information about various types of ldap activity events.",
204
+ "The Profile application's activity reports return information about various types of Profile activity events.",
205
+ "The Access Evaluation activity reports return information about various types of Access Evaluation activity events.",
206
+ "The Admin Data Action application's activity reports return information about various types of Admin Data Action activity events.",
207
+ "The Contacts application's activity reports return information about various types of Contacts activity events.",
208
+ "The Takeout application's activity reports return information about various types of Takeout activity events.",
209
+ "The Graduation application's activity reports return information about various types of Graduation activity events."
210
+ ],
211
+ "location": "path",
212
+ "pattern": "(access_evaluation)|(access_transparency)|(admin)|(admin_data_action)|(assignments)|(calendar)|(chat)|(chrome)|(classroom)|(cloud_search)|(contacts)|(context_aware_access)|(data_studio)|(data_migration)|(directory_sync)|(drive)|(gcp)|(gmail)|(gplus)|(graduation)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(ldap)|(login)|(meet)|(meet_hardware)|(mobile)|(profile)|(rules)|(saml)|(token)|(user_accounts)|(vault)|(gemini_in_workspace_apps)|(tasks)|(takeout)",
213
+ "required": true,
214
+ "type": "string"
215
+ },
216
+ "customerId": {
217
+ "description": "The unique ID of the customer to retrieve data for.",
218
+ "location": "query",
219
+ "pattern": "C.+|my_customer",
220
+ "type": "string"
221
+ },
222
+ "endTime": {
223
+ "description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past. For Gmail requests, `startTime` and `endTime` must be provided and the difference must not be greater than 30 days.",
224
+ "location": "query",
225
+ "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
226
+ "type": "string"
227
+ },
228
+ "eventName": {
229
+ "description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.",
230
+ "location": "query",
231
+ "type": "string"
232
+ },
233
+ "filters": {
234
+ "description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.",
235
+ "location": "query",
236
+ "pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)",
237
+ "type": "string"
238
+ },
239
+ "groupIdFilter": {
240
+ "description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\" *Important:* To filter by groups, you must explicitly add the groups to your filtering groups allowlist. For more information about adding groups to filtering groups allowlist, see [Filter results by Google Group](https://support.google.com/a/answer/11482175)",
241
+ "location": "query",
242
+ "pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)",
243
+ "type": "string"
244
+ },
245
+ "maxResults": {
246
+ "default": "1000",
247
+ "description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.",
248
+ "format": "int32",
249
+ "location": "query",
250
+ "maximum": "1000",
251
+ "minimum": "1",
252
+ "type": "integer"
253
+ },
254
+ "orgUnitID": {
255
+ "default": "",
256
+ "description": "ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.",
257
+ "location": "query",
258
+ "pattern": "(id:[a-z0-9]+)",
259
+ "type": "string"
260
+ },
261
+ "pageToken": {
262
+ "description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.",
263
+ "location": "query",
264
+ "type": "string"
265
+ },
266
+ "resourceDetailsFilter": {
267
+ "description": "Optional. The `resourceDetailsFilter` query string is an AND separated list composed of [Resource Details](#resourcedetails) fields manipulated by relational operators. Resource Details Filters are in the form `{resourceDetails.field1}{relational operator}{field1 value} AND {resourceDetails.field2}{relational operator}{field2 value}...` All the inner fields are traversed using the `.` operator, as shown in the following example: ``` resourceDetails.id = \"resourceId\" AND resourceDetails.appliedLabels.id = \"appliedLabelId\" AND resourceDetails.appliedLabels.fieldValue.id = \"fieldValueId\" ``` `resourceDetailsFilter` query supports these relational operators: * `=`\u2014'equal to'. * `!=`\u2014'not equal to'. * `:`\u2014'exists'. This is used for filtering on repeated fields. [`FieldValue`](#fieldvalue) types that are repeated in nature uses `exists` operator for filtering. The following [`FieldValue`](#fieldvalue) types are repeated: * [`TextListValue`](#textlistvalue) * [`SelectionListValue`](#selectionlistvalue) * [`UserListValue`](#userlistvalue) For example, in the following filter, [`SelectionListValue`](#selectionlistvalue), is a repeated field. The filter checks whether [`SelectionListValue`](#selectionlistvalue) contains `selection_id`: ``` resourceDetails.id = \"resourceId\" AND resourceDetails.appliedLabels.id = \"appliedLabelId\" AND resourceDetails.appliedLabels.fieldValue.id = \"fieldValueId\" AND resourceDetails.appliedLabels.fieldValue.type = \"SELECTION_LIST_VALUE\" AND resourceDetails.appliedLabels.fieldValue.selectionListValue.id: \"id\" ``` **Usage** ``` GET...&resourceDetailsFilter=resourceDetails.id = \"resourceId\" AND resourceDetails.appliedLabels.id = \"appliedLabelId\" GET...&resourceDetailsFilter=resourceDetails.id=%22resourceId%22%20AND%20resourceDetails.appliedLabels.id=%22appliedLabelId%22 ``` **Note the following**: * You must URL encode the query string before sending the request. * The API supports a maximum of 5 fields separated by the AND operator. - When filtering on deeper levels (e.g., [`AppliedLabel`](#appliedlabel), [`FieldValue`](#fieldvalue)), the IDs of all preceding levels in the hierarchy must be included in the filter. For example: Filtering on [`FieldValue`](#fieldvalue) requires [`AppliedLabel`](#appliedlabel) ID and resourceDetails ID to be present. *Sample Query*: ``` resourceDetails.id = \"resourceId\" AND resourceDetails.appliedLabels.id = \"appliedLabelId\" AND resourceDetails.appliedLabels.fieldValue.id = \"fieldValueId\" ``` * Filtering on inner [`FieldValue`](#fieldvalue) types like `longTextValue` and `textValue` requires `resourceDetails.appliedLabels.fieldValue.type` to be present. * Only Filtering on a single [`AppliedLabel`](#appliedlabel) id and [`FieldValue`](#fieldvalue) id is supported.",
268
+ "location": "query",
269
+ "type": "string"
270
+ },
271
+ "startTime": {
272
+ "description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. For Gmail requests, `startTime` and `endTime` must be provided and the difference must not be greater than 30 days.",
273
+ "location": "query",
274
+ "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
275
+ "type": "string"
276
+ },
277
+ "userKey": {
278
+ "description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.",
279
+ "location": "path",
280
+ "required": true,
281
+ "type": "string"
282
+ }
283
+ },
284
+ "path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}",
285
+ "response": {
286
+ "$ref": "Activities"
287
+ },
288
+ "scopes": [
289
+ "https://www.googleapis.com/auth/admin.reports.audit.readonly"
290
+ ]
291
+ },
292
+ "watch": {
293
+ "description": "Start receiving notifications for account activities. For more information, see Receiving Push Notifications.",
294
+ "flatPath": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch",
295
+ "httpMethod": "POST",
296
+ "id": "reports.activities.watch",
297
+ "parameterOrder": [
298
+ "userKey",
299
+ "applicationName"
300
+ ],
301
+ "parameters": {
302
+ "actorIpAddress": {
303
+ "description": "The Internet Protocol (IP) Address of host where the event was performed. This is an additional way to filter a report's summary using the IP address of the user whose activity is being reported. This IP address may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. This parameter supports both IPv4 and IPv6 address versions.",
304
+ "location": "query",
305
+ "type": "string"
306
+ },
307
+ "applicationName": {
308
+ "description": "Application name for which the events are to be retrieved.",
309
+ "enum": [
310
+ "access_transparency",
311
+ "admin",
312
+ "calendar",
313
+ "chat",
314
+ "drive",
315
+ "gcp",
316
+ "gplus",
317
+ "groups",
318
+ "groups_enterprise",
319
+ "jamboard",
320
+ "login",
321
+ "meet",
322
+ "mobile",
323
+ "rules",
324
+ "saml",
325
+ "token",
326
+ "user_accounts",
327
+ "context_aware_access",
328
+ "chrome",
329
+ "data_studio",
330
+ "keep",
331
+ "classroom"
332
+ ],
333
+ "enumDescriptions": [
334
+ "The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.",
335
+ "The Admin console application's activity reports return account information about different types of administrator activity events.",
336
+ "The Google Calendar application's activity reports return information about various Calendar activity events.",
337
+ "The Chat activity reports return information about various Chat activity events.",
338
+ "The Google Drive application's activity reports return information about various Google Drive activity events. The Drive activity report is only available for Google Workspace Business and Google Workspace Enterprise customers.",
339
+ "The Google Cloud Platform application's activity reports return information about various GCP activity events.",
340
+ "The Google+ application's activity reports return information about various Google+ activity events.",
341
+ "The Google Groups application's activity reports return information about various Groups activity events.",
342
+ "The Enterprise Groups activity reports return information about various Enterprise group activity events.",
343
+ "The Jamboard activity reports return information about various Jamboard activity events.",
344
+ "The Login application's activity reports return account information about different types of Login activity events.",
345
+ "The Meet Audit activity report returns information about different types of Meet Audit activity events.",
346
+ "The Device Audit activity report returns information about different types of Device Audit activity events.",
347
+ "The Rules activity report returns information about different types of Rules activity events.",
348
+ "The SAML activity report returns information about different types of SAML activity events.",
349
+ "The Token application's activity reports return account information about different types of Token activity events.",
350
+ "The User Accounts application's activity reports return account information about different types of User Accounts activity events.",
351
+ "The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.",
352
+ "The Chrome activity reports return information about Chrome browser and Chrome OS events.",
353
+ "The Data Studio activity reports return information about various types of Data Studio activity events.",
354
+ "The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers.",
355
+ "The Classroom activity reports return information about different types of [Classroom activity events](https://developers.google.com/workspace/admin/reports/v1/appendix/activity/classroom)."
356
+ ],
357
+ "location": "path",
358
+ "pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(classroom)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)",
359
+ "required": true,
360
+ "type": "string"
361
+ },
362
+ "customerId": {
363
+ "description": "The unique ID of the customer to retrieve data for.",
364
+ "location": "query",
365
+ "pattern": "C.+|my_customer",
366
+ "type": "string"
367
+ },
368
+ "endTime": {
369
+ "description": "Sets the end of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The default value is the approximate time of the API request. An API report has three basic time concepts: - *Date of the API's request for a report*: When the API created and retrieved the report. - *Report's start time*: The beginning of the timespan shown in the report. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error. - *Report's end time*: The end of the timespan shown in the report. For example, the timespan of events summarized in a report can start in April and end in May. The report itself can be requested in August. If the `endTime` is not specified, the report returns all activities from the `startTime` until the current time or the most recent 180 days if the `startTime` is more than 180 days in the past.",
370
+ "location": "query",
371
+ "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
372
+ "type": "string"
373
+ },
374
+ "eventName": {
375
+ "description": "The name of the event being queried by the API. Each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. An example is the Google Calendar events in the Admin console application's reports. The Calendar Settings `type` structure has all of the Calendar `eventName` activities reported by the API. When an administrator changes a Calendar setting, the API reports this activity in the Calendar Settings `type` and `eventName` parameters. For more information about `eventName` query strings and parameters, see the list of event names for various applications above in `applicationName`.",
376
+ "location": "query",
377
+ "type": "string"
378
+ },
379
+ "filters": {
380
+ "description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.",
381
+ "location": "query",
382
+ "pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)",
383
+ "type": "string"
384
+ },
385
+ "groupIdFilter": {
386
+ "deprecated": true,
387
+ "description": "`Deprecated`. This field is deprecated and is no longer supported. Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\" *Important:* To filter by groups, you must explicitly add the groups to your filtering groups allowlist. For more information about adding groups to filtering groups allowlist, see [Filter results by Google Group](https://support.google.com/a/answer/11482175)",
388
+ "location": "query",
389
+ "pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)",
390
+ "type": "string"
391
+ },
392
+ "maxResults": {
393
+ "default": "1000",
394
+ "description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional in the request. The default value is 1000.",
395
+ "format": "int32",
396
+ "location": "query",
397
+ "maximum": "1000",
398
+ "minimum": "1",
399
+ "type": "integer"
400
+ },
401
+ "orgUnitID": {
402
+ "default": "",
403
+ "deprecated": true,
404
+ "description": "`Deprecated`. This field is deprecated and is no longer supported. ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.",
405
+ "location": "query",
406
+ "pattern": "(id:[a-z0-9]+)",
407
+ "type": "string"
408
+ },
409
+ "pageToken": {
410
+ "description": "The token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.",
411
+ "location": "query",
412
+ "type": "string"
413
+ },
414
+ "startTime": {
415
+ "description": "Sets the beginning of the range of time shown in the report. The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The report returns all activities from `startTime` until `endTime`. The `startTime` must be before the `endTime` (if specified) and the current time when the request is made, or the API returns an error.",
416
+ "location": "query",
417
+ "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
418
+ "type": "string"
419
+ },
420
+ "userKey": {
421
+ "description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.",
422
+ "location": "path",
423
+ "required": true,
424
+ "type": "string"
425
+ }
426
+ },
427
+ "path": "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch",
428
+ "request": {
429
+ "$ref": "Channel"
430
+ },
431
+ "response": {
432
+ "$ref": "Channel"
433
+ },
434
+ "scopes": [
435
+ "https://www.googleapis.com/auth/admin.reports.audit.readonly"
436
+ ]
437
+ }
438
+ }
439
+ },
440
+ "channels": {
441
+ "methods": {
442
+ "stop": {
443
+ "description": "Stop watching resources through this channel.",
444
+ "flatPath": "admin/reports_v1/channels/stop",
445
+ "httpMethod": "POST",
446
+ "id": "admin.channels.stop",
447
+ "parameterOrder": [],
448
+ "parameters": {},
449
+ "path": "admin/reports_v1/channels/stop",
450
+ "request": {
451
+ "$ref": "Channel"
452
+ },
453
+ "scopes": [
454
+ "https://www.googleapis.com/auth/admin.reports.audit.readonly"
455
+ ]
456
+ }
457
+ }
458
+ },
459
+ "customerUsageReports": {
460
+ "methods": {
461
+ "get": {
462
+ "description": "Retrieves a report which is a collection of properties and statistics for a specific customer's account. For more information, see the Customers Usage Report guide. For more information about the customer report's parameters, see the Customers Usage parameters reference guides. ",
463
+ "flatPath": "admin/reports/v1/usage/dates/{date}",
464
+ "httpMethod": "GET",
465
+ "id": "reports.customerUsageReports.get",
466
+ "parameterOrder": [
467
+ "date"
468
+ ],
469
+ "parameters": {
470
+ "customerId": {
471
+ "description": "The unique ID of the customer to retrieve data for.",
472
+ "location": "query",
473
+ "pattern": "C.+|my_customer",
474
+ "type": "string"
475
+ },
476
+ "date": {
477
+ "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.",
478
+ "location": "path",
479
+ "pattern": "(\\d){4}-(\\d){2}-(\\d){2}",
480
+ "required": true,
481
+ "type": "string"
482
+ },
483
+ "pageToken": {
484
+ "description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.",
485
+ "location": "query",
486
+ "type": "string"
487
+ },
488
+ "parameters": {
489
+ "description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `chat`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ",
490
+ "location": "query",
491
+ "pattern": "(((accounts)|(app_maker)|(apps_scripts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+,)*(((accounts)|(app_maker)|(apps_scripts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+)",
492
+ "type": "string"
493
+ }
494
+ },
495
+ "path": "admin/reports/v1/usage/dates/{date}",
496
+ "response": {
497
+ "$ref": "UsageReports"
498
+ },
499
+ "scopes": [
500
+ "https://www.googleapis.com/auth/admin.reports.usage.readonly"
501
+ ]
502
+ }
503
+ }
504
+ },
505
+ "entityUsageReports": {
506
+ "methods": {
507
+ "get": {
508
+ "description": "Retrieves a report which is a collection of properties and statistics for entities used by users within the account. For more information, see the Entities Usage Report guide. For more information about the entities report's parameters, see the Entities Usage parameters reference guides.",
509
+ "flatPath": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}",
510
+ "httpMethod": "GET",
511
+ "id": "reports.entityUsageReports.get",
512
+ "parameterOrder": [
513
+ "entityType",
514
+ "entityKey",
515
+ "date"
516
+ ],
517
+ "parameters": {
518
+ "customerId": {
519
+ "description": "The unique ID of the customer to retrieve data for.",
520
+ "location": "query",
521
+ "pattern": "C.+|my_customer",
522
+ "type": "string"
523
+ },
524
+ "date": {
525
+ "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.",
526
+ "location": "path",
527
+ "pattern": "(\\d){4}-(\\d){2}-(\\d){2}",
528
+ "required": true,
529
+ "type": "string"
530
+ },
531
+ "entityKey": {
532
+ "description": "Represents the key of the object to filter the data with. It is a string which can take the value `all` to get activity events for all users, or any other value for an app-specific entity. For details on how to obtain the `entityKey` for a particular `entityType`, see the Entities Usage parameters reference guides.",
533
+ "location": "path",
534
+ "required": true,
535
+ "type": "string"
536
+ },
537
+ "entityType": {
538
+ "description": "Represents the type of entity for the report.",
539
+ "enum": [
540
+ "gplus_communities"
541
+ ],
542
+ "enumDescriptions": [
543
+ "Returns a report on Google+ communities."
544
+ ],
545
+ "location": "path",
546
+ "pattern": "(gplus_communities)",
547
+ "required": true,
548
+ "type": "string"
549
+ },
550
+ "filters": {
551
+ "description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Entities usage report include `accounts`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/gplus_communities/all/dates/2017-12-01 ?parameters=gplus:community_name,gplus:num_total_members &filters=gplus:num_total_members%3C%3E0 The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). Filters can only be applied to numeric parameters.",
552
+ "location": "query",
553
+ "pattern": "(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)",
554
+ "type": "string"
555
+ },
556
+ "maxResults": {
557
+ "default": "1000",
558
+ "description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page.",
559
+ "format": "uint32",
560
+ "location": "query",
561
+ "maximum": "1000",
562
+ "minimum": "1",
563
+ "type": "integer"
564
+ },
565
+ "pageToken": {
566
+ "description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.",
567
+ "location": "query",
568
+ "type": "string"
569
+ },
570
+ "parameters": {
571
+ "description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Entities usage report are only `gplus`. A `parameter` query string is in the CSV form of `[app_name1:param_name1], [app_name2:param_name2]...`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ",
572
+ "location": "query",
573
+ "pattern": "(((gplus)):[^,]+,)*(((gplus)):[^,]+)",
574
+ "type": "string"
575
+ }
576
+ },
577
+ "path": "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}",
578
+ "response": {
579
+ "$ref": "UsageReports"
580
+ },
581
+ "scopes": [
582
+ "https://www.googleapis.com/auth/admin.reports.usage.readonly"
583
+ ]
584
+ }
585
+ }
586
+ },
587
+ "userUsageReport": {
588
+ "methods": {
589
+ "get": {
590
+ "description": "Retrieves a report which is a collection of properties and statistics for a set of users with the account. For more information, see the User Usage Report guide. For more information about the user report's parameters, see the Users Usage parameters reference guides.",
591
+ "flatPath": "admin/reports/v1/usage/users/{userKey}/dates/{date}",
592
+ "httpMethod": "GET",
593
+ "id": "reports.userUsageReport.get",
594
+ "parameterOrder": [
595
+ "userKey",
596
+ "date"
597
+ ],
598
+ "parameters": {
599
+ "customerId": {
600
+ "description": "The unique ID of the customer to retrieve data for.",
601
+ "location": "query",
602
+ "pattern": "C.+|my_customer",
603
+ "type": "string"
604
+ },
605
+ "date": {
606
+ "description": "Represents the date the usage occurred, based on UTC-8:00 (Pacific Standard Time). The timestamp is in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`.",
607
+ "location": "path",
608
+ "pattern": "(\\d){4}-(\\d){2}-(\\d){2}",
609
+ "required": true,
610
+ "type": "string"
611
+ },
612
+ "filters": {
613
+ "description": "The `filters` query string is a comma-separated list of an application's event parameters where the parameter's value is manipulated by a relational operator. The `filters` query string includes the name of the application whose usage is returned in the report. The application values for the Users Usage Report include `accounts`, `chat`, `docs`, and `gmail`. Filters are in the form `[application name]:parameter name[parameter value],...`. In this example, the `<>` 'not equal to' operator is URL-encoded in the request's query string (%3C%3E): GET https://www.googleapis.com/admin/reports/v1/usage/users/all/dates/2013-03-03 ?parameters=accounts:last_login_time &filters=accounts:last_login_time%3C%3E2010-10-28T10:26:35.000Z The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). ",
614
+ "location": "query",
615
+ "pattern": "(((accounts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((accounts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)",
616
+ "type": "string"
617
+ },
618
+ "groupIdFilter": {
619
+ "description": "Comma separated group ids (obfuscated) on which user activities are filtered, i.e. the response will contain activities for only those users that are a part of at least one of the group ids mentioned here. Format: \"id:abc123,id:xyz456\"",
620
+ "location": "query",
621
+ "pattern": "(id:[a-z0-9]+(,id:[a-z0-9]+)*)",
622
+ "type": "string"
623
+ },
624
+ "maxResults": {
625
+ "default": "1000",
626
+ "description": "Determines how many activity records are shown on each response page. For example, if the request sets `maxResults=1` and the report has two activities, the report has two pages. The response's `nextPageToken` property has the token to the second page. The `maxResults` query string is optional.",
627
+ "format": "uint32",
628
+ "location": "query",
629
+ "maximum": "1000",
630
+ "minimum": "1",
631
+ "type": "integer"
632
+ },
633
+ "orgUnitID": {
634
+ "default": "",
635
+ "description": "ID of the organizational unit to report on. User activity will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.",
636
+ "location": "query",
637
+ "pattern": "(id:[a-z0-9]+)",
638
+ "type": "string"
639
+ },
640
+ "pageToken": {
641
+ "description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. In your follow-on request getting the next page of the report, enter the `nextPageToken` value in the `pageToken` query string.",
642
+ "location": "query",
643
+ "type": "string"
644
+ },
645
+ "parameters": {
646
+ "description": "The `parameters` query string is a comma-separated list of event parameters that refine a report's results. The parameter is associated with a specific application. The application values for the Customers Usage report include `accounts`, `app_maker`, `apps_scripts`, `calendar`, `chat`, `classroom`, `cros`, `docs`, `gmail`, `gplus`, `device_management`, `meet`, and `sites`. A `parameters` query string is in the CSV form of `app_name1:param_name1, app_name2:param_name2`. *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. An example of an invalid request parameter is one that does not belong to the application. If no parameters are requested, all parameters are returned. ",
647
+ "location": "query",
648
+ "pattern": "(((accounts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(chat)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)",
649
+ "type": "string"
650
+ },
651
+ "userKey": {
652
+ "description": "Represents the profile ID or the user email for which the data should be filtered. Can be `all` for all information, or `userKey` for a user's unique Google Workspace profile ID or their primary email address. Must not be a deleted user. For a deleted user, call `users.list` in Directory API with `showDeleted=true`, then use the returned `ID` as the `userKey`.",
653
+ "location": "path",
654
+ "required": true,
655
+ "type": "string"
656
+ }
657
+ },
658
+ "path": "admin/reports/v1/usage/users/{userKey}/dates/{date}",
659
+ "response": {
660
+ "$ref": "UsageReports"
661
+ },
662
+ "scopes": [
663
+ "https://www.googleapis.com/auth/admin.reports.usage.readonly"
664
+ ]
665
+ }
666
+ }
667
+ }
668
+ },
669
+ "revision": "20251202",
670
+ "rootUrl": "https://admin.googleapis.com/",
671
+ "schemas": {
672
+ "Activities": {
673
+ "description": "JSON template for a collection of activities.",
674
+ "id": "Activities",
675
+ "properties": {
676
+ "etag": {
677
+ "description": "ETag of the resource.",
678
+ "type": "string"
679
+ },
680
+ "items": {
681
+ "description": "Each activity record in the response.",
682
+ "items": {
683
+ "$ref": "Activity"
684
+ },
685
+ "type": "array"
686
+ },
687
+ "kind": {
688
+ "default": "admin#reports#activities",
689
+ "description": "The type of API resource. For an activity report, the value is `reports#activities`.",
690
+ "type": "string"
691
+ },
692
+ "nextPageToken": {
693
+ "description": "Token for retrieving the follow-on next page of the report. The `nextPageToken` value is used in the request's `pageToken` query string.",
694
+ "type": "string"
695
+ }
696
+ },
697
+ "type": "object"
698
+ },
699
+ "Activity": {
700
+ "description": "JSON template for the activity resource.",
701
+ "id": "Activity",
702
+ "properties": {
703
+ "actor": {
704
+ "description": "User doing the action.",
705
+ "properties": {
706
+ "applicationInfo": {
707
+ "description": "Details of the application that was the actor for the activity.",
708
+ "properties": {
709
+ "applicationName": {
710
+ "description": "Name of the application used to perform the action.",
711
+ "type": "string"
712
+ },
713
+ "impersonation": {
714
+ "description": "Whether the application was impersonating a user.",
715
+ "type": "boolean"
716
+ },
717
+ "oauthClientId": {
718
+ "description": "OAuth client id of the third party application used to perform the action.",
719
+ "type": "string"
720
+ }
721
+ },
722
+ "type": "object"
723
+ },
724
+ "callerType": {
725
+ "description": "The type of actor.",
726
+ "type": "string"
727
+ },
728
+ "email": {
729
+ "description": "The primary email address of the actor. May be absent if there is no email address associated with the actor.",
730
+ "type": "string"
731
+ },
732
+ "key": {
733
+ "description": "Only present when `callerType` is `KEY`. Can be the `consumer_key` of the requestor for OAuth 2LO API requests or an identifier for robot accounts.",
734
+ "type": "string"
735
+ },
736
+ "profileId": {
737
+ "description": "The unique Google Workspace profile ID of the actor. This value might be absent if the actor is not a Google Workspace user, or may be the number 105250506097979753968 which acts as a placeholder ID.",
738
+ "type": "string"
739
+ }
740
+ },
741
+ "type": "object"
742
+ },
743
+ "etag": {
744
+ "description": "ETag of the entry.",
745
+ "type": "string"
746
+ },
747
+ "events": {
748
+ "description": "Activity events in the report.",
749
+ "items": {
750
+ "properties": {
751
+ "name": {
752
+ "description": "Name of the event. This is the specific name of the activity reported by the API. And each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. For `eventName` request parameters in general: - If no `eventName` is given, the report returns all possible instances of an `eventName`. - When you request an `eventName`, the API's response returns all activities which contain that `eventName`. For more information about `eventName` properties, see the list of event names for various applications above in `applicationName`.",
753
+ "type": "string"
754
+ },
755
+ "parameters": {
756
+ "description": "Parameter value pairs for various applications. For more information about `eventName` parameters, see the list of event names for various applications above in `applicationName`.",
757
+ "items": {
758
+ "properties": {
759
+ "boolValue": {
760
+ "description": "Boolean value of the parameter.",
761
+ "type": "boolean"
762
+ },
763
+ "intValue": {
764
+ "description": "Integer value of the parameter.",
765
+ "format": "int64",
766
+ "type": "string"
767
+ },
768
+ "messageValue": {
769
+ "description": "Nested parameter value pairs associated with this parameter. Complex value type for a parameter are returned as a list of parameter values. For example, the address parameter may have a value as `[{parameter: [{name: city, value: abc}]}]`",
770
+ "properties": {
771
+ "parameter": {
772
+ "description": "Parameter values",
773
+ "items": {
774
+ "$ref": "NestedParameter"
775
+ },
776
+ "type": "array"
777
+ }
778
+ },
779
+ "type": "object"
780
+ },
781
+ "multiIntValue": {
782
+ "description": "Integer values of the parameter.",
783
+ "items": {
784
+ "format": "int64",
785
+ "type": "string"
786
+ },
787
+ "type": "array"
788
+ },
789
+ "multiMessageValue": {
790
+ "description": "List of `messageValue` objects.",
791
+ "items": {
792
+ "properties": {
793
+ "parameter": {
794
+ "description": "Parameter values",
795
+ "items": {
796
+ "$ref": "NestedParameter"
797
+ },
798
+ "type": "array"
799
+ }
800
+ },
801
+ "type": "object"
802
+ },
803
+ "type": "array"
804
+ },
805
+ "multiValue": {
806
+ "description": "String values of the parameter.",
807
+ "items": {
808
+ "type": "string"
809
+ },
810
+ "type": "array"
811
+ },
812
+ "name": {
813
+ "description": "The name of the parameter.",
814
+ "type": "string"
815
+ },
816
+ "value": {
817
+ "description": "String value of the parameter.",
818
+ "type": "string"
819
+ }
820
+ },
821
+ "type": "object"
822
+ },
823
+ "type": "array"
824
+ },
825
+ "resourceIds": {
826
+ "description": "Resource ids associated with the event.",
827
+ "items": {
828
+ "type": "string"
829
+ },
830
+ "type": "array"
831
+ },
832
+ "type": {
833
+ "description": "Type of event. The Google Workspace service or feature that an administrator changes is identified in the `type` property which identifies an event using the `eventName` property. For a full list of the API's `type` categories, see the list of event names for various applications above in `applicationName`.",
834
+ "type": "string"
835
+ }
836
+ },
837
+ "type": "object"
838
+ },
839
+ "type": "array"
840
+ },
841
+ "id": {
842
+ "description": "Unique identifier for each activity record.",
843
+ "properties": {
844
+ "applicationName": {
845
+ "description": "Application name to which the event belongs. For possible values see the list of applications above in `applicationName`.",
846
+ "type": "string"
847
+ },
848
+ "customerId": {
849
+ "description": "The unique identifier for a Google Workspace account.",
850
+ "type": "string"
851
+ },
852
+ "time": {
853
+ "description": "Time of occurrence of the activity. This is in UNIX epoch time in seconds.",
854
+ "format": "date-time",
855
+ "type": "string"
856
+ },
857
+ "uniqueQualifier": {
858
+ "description": "Unique qualifier if multiple events have the same time.",
859
+ "format": "int64",
860
+ "type": "string"
861
+ }
862
+ },
863
+ "type": "object"
864
+ },
865
+ "ipAddress": {
866
+ "description": "IP address of the user doing the action. This is the Internet Protocol (IP) address of the user when logging into Google Workspace, which may or may not reflect the user's physical location. For example, the IP address can be the user's proxy server's address or a virtual private network (VPN) address. The API supports IPv4 and IPv6.",
867
+ "type": "string"
868
+ },
869
+ "kind": {
870
+ "default": "admin#reports#activity",
871
+ "description": "The type of API resource. For an activity report, the value is `audit#activity`.",
872
+ "type": "string"
873
+ },
874
+ "networkInfo": {
875
+ "$ref": "ActivityNetworkInfo",
876
+ "description": "Network information of the user doing the action."
877
+ },
878
+ "ownerDomain": {
879
+ "description": "This is the domain that is affected by the report's event. For example domain of Admin console or the Drive application's document owner.",
880
+ "type": "string"
881
+ },
882
+ "resourceDetails": {
883
+ "description": "Details of the resource on which the action was performed.",
884
+ "items": {
885
+ "$ref": "ResourceDetails"
886
+ },
887
+ "type": "array"
888
+ }
889
+ },
890
+ "type": "object"
891
+ },
892
+ "ActivityNetworkInfo": {
893
+ "description": "Network information of the user doing the action.",
894
+ "id": "ActivityNetworkInfo",
895
+ "properties": {
896
+ "ipAsn": {
897
+ "description": "IP Address of the user doing the action.",
898
+ "items": {
899
+ "format": "int32",
900
+ "type": "integer"
901
+ },
902
+ "type": "array"
903
+ },
904
+ "regionCode": {
905
+ "description": "ISO 3166-1 alpha-2 region code of the user doing the action.",
906
+ "type": "string"
907
+ },
908
+ "subdivisionCode": {
909
+ "description": "ISO 3166-2 region code (states and provinces) for countries of the user doing the action.",
910
+ "type": "string"
911
+ }
912
+ },
913
+ "type": "object"
914
+ },
915
+ "AppliedLabel": {
916
+ "description": "Details of the label applied on the resource.",
917
+ "id": "AppliedLabel",
918
+ "properties": {
919
+ "fieldValues": {
920
+ "description": "List of fields which are part of the label and have been set by the user. If label has a field which was not set by the user, it would not be present in this list.",
921
+ "items": {
922
+ "$ref": "FieldValue"
923
+ },
924
+ "type": "array"
925
+ },
926
+ "id": {
927
+ "description": "Identifier of the label - Only the label id, not the full OnePlatform resource name.",
928
+ "type": "string"
929
+ },
930
+ "reason": {
931
+ "$ref": "Reason",
932
+ "description": "The reason why the label was applied on the resource."
933
+ },
934
+ "title": {
935
+ "description": "Title of the label",
936
+ "type": "string"
937
+ }
938
+ },
939
+ "type": "object"
940
+ },
941
+ "Channel": {
942
+ "description": "A notification channel used to watch for resource changes.",
943
+ "id": "Channel",
944
+ "properties": {
945
+ "address": {
946
+ "description": "The address where notifications are delivered for this channel.",
947
+ "type": "string"
948
+ },
949
+ "expiration": {
950
+ "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.",
951
+ "format": "int64",
952
+ "type": "string"
953
+ },
954
+ "id": {
955
+ "description": "A UUID or similar unique string that identifies this channel.",
956
+ "type": "string"
957
+ },
958
+ "kind": {
959
+ "default": "api#channel",
960
+ "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"`api#channel`\".",
961
+ "type": "string"
962
+ },
963
+ "params": {
964
+ "additionalProperties": {
965
+ "type": "string"
966
+ },
967
+ "description": "Additional parameters controlling delivery channel behavior. Optional.",
968
+ "type": "object"
969
+ },
970
+ "payload": {
971
+ "description": "A Boolean value to indicate whether payload is wanted. A payload is data that is sent in the body of an HTTP POST, PUT, or PATCH message and contains important information about the request. Optional.",
972
+ "type": "boolean"
973
+ },
974
+ "resourceId": {
975
+ "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.",
976
+ "type": "string"
977
+ },
978
+ "resourceUri": {
979
+ "description": "A version-specific identifier for the watched resource.",
980
+ "type": "string"
981
+ },
982
+ "token": {
983
+ "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.",
984
+ "type": "string"
985
+ },
986
+ "type": {
987
+ "description": "The type of delivery mechanism used for this channel. The value should be set to `\"web_hook\"`.",
988
+ "type": "string"
989
+ }
990
+ },
991
+ "type": "object"
992
+ },
993
+ "Date": {
994
+ "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
995
+ "id": "Date",
996
+ "properties": {
997
+ "day": {
998
+ "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
999
+ "format": "int32",
1000
+ "type": "integer"
1001
+ },
1002
+ "month": {
1003
+ "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
1004
+ "format": "int32",
1005
+ "type": "integer"
1006
+ },
1007
+ "year": {
1008
+ "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
1009
+ "format": "int32",
1010
+ "type": "integer"
1011
+ }
1012
+ },
1013
+ "type": "object"
1014
+ },
1015
+ "FieldValue": {
1016
+ "description": "Details of the field value set by the user for the particular label.",
1017
+ "id": "FieldValue",
1018
+ "properties": {
1019
+ "dateValue": {
1020
+ "$ref": "Date",
1021
+ "description": "Setting a date value."
1022
+ },
1023
+ "displayName": {
1024
+ "description": "Display name of the field",
1025
+ "type": "string"
1026
+ },
1027
+ "id": {
1028
+ "description": "Identifier of the field",
1029
+ "type": "string"
1030
+ },
1031
+ "integerValue": {
1032
+ "description": "Setting an integer value.",
1033
+ "format": "int64",
1034
+ "type": "string"
1035
+ },
1036
+ "longTextValue": {
1037
+ "description": "Setting a long text value.",
1038
+ "type": "string"
1039
+ },
1040
+ "reason": {
1041
+ "$ref": "Reason",
1042
+ "description": "The reason why the field was applied to the label."
1043
+ },
1044
+ "selectionListValue": {
1045
+ "$ref": "FieldValueSelectionListValue",
1046
+ "description": "Setting a selection list value by selecting multiple values from a dropdown."
1047
+ },
1048
+ "selectionValue": {
1049
+ "$ref": "FieldValueSelectionValue",
1050
+ "description": "Setting a selection value by selecting a single value from a dropdown."
1051
+ },
1052
+ "textListValue": {
1053
+ "$ref": "FieldValueTextListValue",
1054
+ "description": "Setting a text list value."
1055
+ },
1056
+ "textValue": {
1057
+ "description": "Setting a text value.",
1058
+ "type": "string"
1059
+ },
1060
+ "type": {
1061
+ "description": "Type of the field",
1062
+ "type": "string"
1063
+ },
1064
+ "unsetValue": {
1065
+ "description": "If the field is unset, this will be true.",
1066
+ "type": "boolean"
1067
+ },
1068
+ "userListValue": {
1069
+ "$ref": "FieldValueUserListValue",
1070
+ "description": "Setting a user list value by selecting multiple users."
1071
+ },
1072
+ "userValue": {
1073
+ "$ref": "FieldValueUserValue",
1074
+ "description": "Setting a user value by selecting a single user."
1075
+ }
1076
+ },
1077
+ "type": "object"
1078
+ },
1079
+ "FieldValueSelectionListValue": {
1080
+ "description": "Setting a selection list value by selecting multiple values from a dropdown.",
1081
+ "id": "FieldValueSelectionListValue",
1082
+ "properties": {
1083
+ "values": {
1084
+ "description": "List of selections.",
1085
+ "items": {
1086
+ "$ref": "FieldValueSelectionValue"
1087
+ },
1088
+ "type": "array"
1089
+ }
1090
+ },
1091
+ "type": "object"
1092
+ },
1093
+ "FieldValueSelectionValue": {
1094
+ "description": "Setting a selection value by selecting a single value from a dropdown.",
1095
+ "id": "FieldValueSelectionValue",
1096
+ "properties": {
1097
+ "badged": {
1098
+ "description": "Whether the selection is badged.",
1099
+ "type": "boolean"
1100
+ },
1101
+ "displayName": {
1102
+ "description": "Display name of the selection.",
1103
+ "type": "string"
1104
+ },
1105
+ "id": {
1106
+ "description": "Identifier of the selection.",
1107
+ "type": "string"
1108
+ }
1109
+ },
1110
+ "type": "object"
1111
+ },
1112
+ "FieldValueTextListValue": {
1113
+ "description": "Setting a text list value.",
1114
+ "id": "FieldValueTextListValue",
1115
+ "properties": {
1116
+ "values": {
1117
+ "description": "List of text values.",
1118
+ "items": {
1119
+ "type": "string"
1120
+ },
1121
+ "type": "array"
1122
+ }
1123
+ },
1124
+ "type": "object"
1125
+ },
1126
+ "FieldValueUserListValue": {
1127
+ "description": "Setting a user list value by selecting multiple users.",
1128
+ "id": "FieldValueUserListValue",
1129
+ "properties": {
1130
+ "values": {
1131
+ "description": "List of users.",
1132
+ "items": {
1133
+ "$ref": "FieldValueUserValue"
1134
+ },
1135
+ "type": "array"
1136
+ }
1137
+ },
1138
+ "type": "object"
1139
+ },
1140
+ "FieldValueUserValue": {
1141
+ "description": "Setting a user value by selecting a single user.",
1142
+ "id": "FieldValueUserValue",
1143
+ "properties": {
1144
+ "email": {
1145
+ "description": "Email of the user.",
1146
+ "type": "string"
1147
+ }
1148
+ },
1149
+ "type": "object"
1150
+ },
1151
+ "NestedParameter": {
1152
+ "description": "JSON template for a parameter used in various reports.",
1153
+ "id": "NestedParameter",
1154
+ "properties": {
1155
+ "boolValue": {
1156
+ "description": "Boolean value of the parameter.",
1157
+ "type": "boolean"
1158
+ },
1159
+ "intValue": {
1160
+ "description": "Integer value of the parameter.",
1161
+ "format": "int64",
1162
+ "type": "string"
1163
+ },
1164
+ "multiBoolValue": {
1165
+ "description": "Multiple boolean values of the parameter.",
1166
+ "items": {
1167
+ "type": "boolean"
1168
+ },
1169
+ "type": "array"
1170
+ },
1171
+ "multiIntValue": {
1172
+ "description": "Multiple integer values of the parameter.",
1173
+ "items": {
1174
+ "format": "int64",
1175
+ "type": "string"
1176
+ },
1177
+ "type": "array"
1178
+ },
1179
+ "multiValue": {
1180
+ "description": "Multiple string values of the parameter.",
1181
+ "items": {
1182
+ "type": "string"
1183
+ },
1184
+ "type": "array"
1185
+ },
1186
+ "name": {
1187
+ "description": "The name of the parameter.",
1188
+ "type": "string"
1189
+ },
1190
+ "value": {
1191
+ "description": "String value of the parameter.",
1192
+ "type": "string"
1193
+ }
1194
+ },
1195
+ "type": "object"
1196
+ },
1197
+ "Reason": {
1198
+ "description": "The reason why the label/field was applied.",
1199
+ "id": "Reason",
1200
+ "properties": {
1201
+ "reasonType": {
1202
+ "description": "The type of the reason.",
1203
+ "type": "string"
1204
+ }
1205
+ },
1206
+ "type": "object"
1207
+ },
1208
+ "ResourceDetails": {
1209
+ "description": "Details of the resource on which the action was performed.",
1210
+ "id": "ResourceDetails",
1211
+ "properties": {
1212
+ "appliedLabels": {
1213
+ "description": "List of labels applied on the resource",
1214
+ "items": {
1215
+ "$ref": "AppliedLabel"
1216
+ },
1217
+ "type": "array"
1218
+ },
1219
+ "id": {
1220
+ "description": "Identifier of the resource.",
1221
+ "type": "string"
1222
+ },
1223
+ "relation": {
1224
+ "description": "Defines relationship of the resource to the events",
1225
+ "type": "string"
1226
+ },
1227
+ "title": {
1228
+ "description": "Title of the resource. For instance, in case of a drive document, this would be the title of the document. In case of an email, this would be the subject.",
1229
+ "type": "string"
1230
+ },
1231
+ "type": {
1232
+ "description": "Type of the resource - document, email, chat message",
1233
+ "type": "string"
1234
+ }
1235
+ },
1236
+ "type": "object"
1237
+ },
1238
+ "UsageReport": {
1239
+ "description": "JSON template for a usage report.",
1240
+ "id": "UsageReport",
1241
+ "properties": {
1242
+ "date": {
1243
+ "description": "Output only. The date of the report request.",
1244
+ "readOnly": true,
1245
+ "type": "string"
1246
+ },
1247
+ "entity": {
1248
+ "description": "Output only. Information about the type of the item.",
1249
+ "properties": {
1250
+ "customerId": {
1251
+ "description": "Output only. The unique identifier of the customer's account.",
1252
+ "readOnly": true,
1253
+ "type": "string"
1254
+ },
1255
+ "entityId": {
1256
+ "description": "Output only. Object key. Only relevant if entity.type = \"OBJECT\" Note: external-facing name of report is \"Entities\" rather than \"Objects\".",
1257
+ "readOnly": true,
1258
+ "type": "string"
1259
+ },
1260
+ "profileId": {
1261
+ "description": "Output only. The user's immutable Google Workspace profile identifier.",
1262
+ "readOnly": true,
1263
+ "type": "string"
1264
+ },
1265
+ "type": {
1266
+ "description": "Output only. The type of item. The value is `user`.",
1267
+ "readOnly": true,
1268
+ "type": "string"
1269
+ },
1270
+ "userEmail": {
1271
+ "description": "Output only. The user's email address. Only relevant if entity.type = \"USER\"",
1272
+ "readOnly": true,
1273
+ "type": "string"
1274
+ }
1275
+ },
1276
+ "readOnly": true,
1277
+ "type": "object"
1278
+ },
1279
+ "etag": {
1280
+ "description": "ETag of the resource.",
1281
+ "type": "string"
1282
+ },
1283
+ "kind": {
1284
+ "default": "admin#reports#usageReport",
1285
+ "description": "The type of API resource. For a usage report, the value is `admin#reports#usageReport`.",
1286
+ "type": "string"
1287
+ },
1288
+ "parameters": {
1289
+ "description": "Output only. Parameter value pairs for various applications. For the Entity Usage Report parameters and values, see [the Entity Usage parameters reference](https://developers.google.com/workspace/admin/reports/v1/reference/usage-ref-appendix-a/entities).",
1290
+ "items": {
1291
+ "properties": {
1292
+ "boolValue": {
1293
+ "description": "Output only. Boolean value of the parameter.",
1294
+ "readOnly": true,
1295
+ "type": "boolean"
1296
+ },
1297
+ "datetimeValue": {
1298
+ "description": "The RFC 3339 formatted value of the parameter, for example 2010-10-28T10:26:35.000Z.",
1299
+ "format": "date-time",
1300
+ "readOnly": true,
1301
+ "type": "string"
1302
+ },
1303
+ "intValue": {
1304
+ "description": "Output only. Integer value of the parameter.",
1305
+ "format": "int64",
1306
+ "readOnly": true,
1307
+ "type": "string"
1308
+ },
1309
+ "msgValue": {
1310
+ "description": "Output only. Nested message value of the parameter.",
1311
+ "items": {
1312
+ "additionalProperties": {
1313
+ "description": "Properties of the object.",
1314
+ "type": "any"
1315
+ },
1316
+ "type": "object"
1317
+ },
1318
+ "readOnly": true,
1319
+ "type": "array"
1320
+ },
1321
+ "name": {
1322
+ "description": "The name of the parameter. For the User Usage Report parameter names, see the User Usage parameters reference.",
1323
+ "type": "string"
1324
+ },
1325
+ "stringValue": {
1326
+ "description": "Output only. String value of the parameter.",
1327
+ "readOnly": true,
1328
+ "type": "string"
1329
+ }
1330
+ },
1331
+ "type": "object"
1332
+ },
1333
+ "readOnly": true,
1334
+ "type": "array"
1335
+ }
1336
+ },
1337
+ "type": "object"
1338
+ },
1339
+ "UsageReports": {
1340
+ "id": "UsageReports",
1341
+ "properties": {
1342
+ "etag": {
1343
+ "description": "ETag of the resource.",
1344
+ "type": "string"
1345
+ },
1346
+ "kind": {
1347
+ "default": "admin#reports#usageReports",
1348
+ "description": "The type of API resource. For a usage report, the value is `admin#reports#usageReports`.",
1349
+ "type": "string"
1350
+ },
1351
+ "nextPageToken": {
1352
+ "description": "Token to specify next page. A report with multiple pages has a `nextPageToken` property in the response. For your follow-on requests getting all of the report's pages, enter the `nextPageToken` value in the `pageToken` query string.",
1353
+ "type": "string"
1354
+ },
1355
+ "usageReports": {
1356
+ "description": "Various application parameter records.",
1357
+ "items": {
1358
+ "$ref": "UsageReport"
1359
+ },
1360
+ "type": "array"
1361
+ },
1362
+ "warnings": {
1363
+ "description": "Warnings, if any.",
1364
+ "items": {
1365
+ "properties": {
1366
+ "code": {
1367
+ "description": "Machine readable code or warning type. The warning code value is `200`.",
1368
+ "type": "string"
1369
+ },
1370
+ "data": {
1371
+ "description": "Key-value pairs to give detailed information on the warning.",
1372
+ "items": {
1373
+ "properties": {
1374
+ "key": {
1375
+ "description": "Key associated with a key-value pair to give detailed information on the warning.",
1376
+ "type": "string"
1377
+ },
1378
+ "value": {
1379
+ "description": "Value associated with a key-value pair to give detailed information on the warning.",
1380
+ "type": "string"
1381
+ }
1382
+ },
1383
+ "type": "object"
1384
+ },
1385
+ "type": "array"
1386
+ },
1387
+ "message": {
1388
+ "description": "The human readable messages for a warning are: - Data is not available warning - Sorry, data for date yyyy-mm-dd for application \"`application name`\" is not available. - Partial data is available warning - Data for date yyyy-mm-dd for application \"`application name`\" is not available right now, please try again after a few hours. ",
1389
+ "type": "string"
1390
+ }
1391
+ },
1392
+ "type": "object"
1393
+ },
1394
+ "type": "array"
1395
+ }
1396
+ },
1397
+ "type": "object"
1398
+ }
1399
+ },
1400
+ "servicePath": "",
1401
+ "title": "Admin SDK API",
1402
+ "version": "reports_v1"
1403
+ }
DiscoveryJson/admob.v1.json ADDED
@@ -0,0 +1,1253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/admob.readonly": {
6
+ "description": "See your AdMob data"
7
+ },
8
+ "https://www.googleapis.com/auth/admob.report": {
9
+ "description": "See your AdMob data"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://admob.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "AdMob",
18
+ "description": "The AdMob API allows publishers to programmatically get information about their AdMob account. ",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/admob/api/",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "admob:v1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://admob.mtls.googleapis.com/",
29
+ "name": "admob",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "parameters": {
33
+ "$.xgafv": {
34
+ "description": "V1 error format.",
35
+ "enum": [
36
+ "1",
37
+ "2"
38
+ ],
39
+ "enumDescriptions": [
40
+ "v1 error format",
41
+ "v2 error format"
42
+ ],
43
+ "location": "query",
44
+ "type": "string"
45
+ },
46
+ "access_token": {
47
+ "description": "OAuth access token.",
48
+ "location": "query",
49
+ "type": "string"
50
+ },
51
+ "alt": {
52
+ "default": "json",
53
+ "description": "Data format for response.",
54
+ "enum": [
55
+ "json",
56
+ "media",
57
+ "proto"
58
+ ],
59
+ "enumDescriptions": [
60
+ "Responses with Content-Type of application/json",
61
+ "Media download with context-dependent Content-Type",
62
+ "Responses with Content-Type of application/x-protobuf"
63
+ ],
64
+ "location": "query",
65
+ "type": "string"
66
+ },
67
+ "callback": {
68
+ "description": "JSONP",
69
+ "location": "query",
70
+ "type": "string"
71
+ },
72
+ "fields": {
73
+ "description": "Selector specifying which fields to include in a partial response.",
74
+ "location": "query",
75
+ "type": "string"
76
+ },
77
+ "key": {
78
+ "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.",
79
+ "location": "query",
80
+ "type": "string"
81
+ },
82
+ "oauth_token": {
83
+ "description": "OAuth 2.0 token for the current user.",
84
+ "location": "query",
85
+ "type": "string"
86
+ },
87
+ "prettyPrint": {
88
+ "default": "true",
89
+ "description": "Returns response with indentations and line breaks.",
90
+ "location": "query",
91
+ "type": "boolean"
92
+ },
93
+ "quotaUser": {
94
+ "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.",
95
+ "location": "query",
96
+ "type": "string"
97
+ },
98
+ "uploadType": {
99
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100
+ "location": "query",
101
+ "type": "string"
102
+ },
103
+ "upload_protocol": {
104
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105
+ "location": "query",
106
+ "type": "string"
107
+ }
108
+ },
109
+ "protocol": "rest",
110
+ "resources": {
111
+ "accounts": {
112
+ "methods": {
113
+ "get": {
114
+ "description": "Gets information about the specified AdMob publisher account.",
115
+ "flatPath": "v1/accounts/{accountsId}",
116
+ "httpMethod": "GET",
117
+ "id": "admob.accounts.get",
118
+ "parameterOrder": [
119
+ "name"
120
+ ],
121
+ "parameters": {
122
+ "name": {
123
+ "description": "Resource name of the publisher account to retrieve. Example: accounts/pub-9876543210987654",
124
+ "location": "path",
125
+ "pattern": "^accounts/[^/]+$",
126
+ "required": true,
127
+ "type": "string"
128
+ }
129
+ },
130
+ "path": "v1/{+name}",
131
+ "response": {
132
+ "$ref": "PublisherAccount"
133
+ },
134
+ "scopes": [
135
+ "https://www.googleapis.com/auth/admob.readonly",
136
+ "https://www.googleapis.com/auth/admob.report"
137
+ ],
138
+ "streamingType": "NONE"
139
+ },
140
+ "list": {
141
+ "description": "Lists the AdMob publisher account that was most recently signed in to from the AdMob UI. For more information, see https://support.google.com/admob/answer/10243672.",
142
+ "flatPath": "v1/accounts",
143
+ "httpMethod": "GET",
144
+ "id": "admob.accounts.list",
145
+ "parameterOrder": [],
146
+ "parameters": {
147
+ "pageSize": {
148
+ "description": "Maximum number of accounts to return.",
149
+ "format": "int32",
150
+ "location": "query",
151
+ "type": "integer"
152
+ },
153
+ "pageToken": {
154
+ "description": "The value returned by the last `ListPublisherAccountsResponse`; indicates that this is a continuation of a prior `ListPublisherAccounts` call, and that the system should return the next page of data.",
155
+ "location": "query",
156
+ "type": "string"
157
+ }
158
+ },
159
+ "path": "v1/accounts",
160
+ "response": {
161
+ "$ref": "ListPublisherAccountsResponse"
162
+ },
163
+ "scopes": [
164
+ "https://www.googleapis.com/auth/admob.readonly",
165
+ "https://www.googleapis.com/auth/admob.report"
166
+ ],
167
+ "streamingType": "NONE"
168
+ }
169
+ },
170
+ "resources": {
171
+ "adUnits": {
172
+ "methods": {
173
+ "list": {
174
+ "description": "List the ad units under the specified AdMob account.",
175
+ "flatPath": "v1/accounts/{accountsId}/adUnits",
176
+ "httpMethod": "GET",
177
+ "id": "admob.accounts.adUnits.list",
178
+ "parameterOrder": [
179
+ "parent"
180
+ ],
181
+ "parameters": {
182
+ "pageSize": {
183
+ "description": "The maximum number of ad units to return. If unspecified or 0, at most 10,000 ad units will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.",
184
+ "format": "int32",
185
+ "location": "query",
186
+ "type": "integer"
187
+ },
188
+ "pageToken": {
189
+ "description": "The value returned by the last `ListAdUnitsResponse`; indicates that this is a continuation of a prior `ListAdUnits` call, and that the system should return the next page of data.",
190
+ "location": "query",
191
+ "type": "string"
192
+ },
193
+ "parent": {
194
+ "description": "Required. Resource name of the account to list ad units for. Example: accounts/pub-9876543210987654",
195
+ "location": "path",
196
+ "pattern": "^accounts/[^/]+$",
197
+ "required": true,
198
+ "type": "string"
199
+ }
200
+ },
201
+ "path": "v1/{+parent}/adUnits",
202
+ "response": {
203
+ "$ref": "ListAdUnitsResponse"
204
+ },
205
+ "scopes": [
206
+ "https://www.googleapis.com/auth/admob.readonly"
207
+ ],
208
+ "streamingType": "NONE"
209
+ }
210
+ }
211
+ },
212
+ "apps": {
213
+ "methods": {
214
+ "list": {
215
+ "description": "List the apps under the specified AdMob account.",
216
+ "flatPath": "v1/accounts/{accountsId}/apps",
217
+ "httpMethod": "GET",
218
+ "id": "admob.accounts.apps.list",
219
+ "parameterOrder": [
220
+ "parent"
221
+ ],
222
+ "parameters": {
223
+ "pageSize": {
224
+ "description": "The maximum number of apps to return. If unspecified or 0, at most 10,000 apps will be returned. The maximum value is 20,000; values above 20,000 will be coerced to 20,000.",
225
+ "format": "int32",
226
+ "location": "query",
227
+ "type": "integer"
228
+ },
229
+ "pageToken": {
230
+ "description": "The value returned by the last `ListAppsResponse`; indicates that this is a continuation of a prior `ListApps` call, and that the system should return the next page of data.",
231
+ "location": "query",
232
+ "type": "string"
233
+ },
234
+ "parent": {
235
+ "description": "Required. Resource name of the account to list apps for. Example: accounts/pub-9876543210987654",
236
+ "location": "path",
237
+ "pattern": "^accounts/[^/]+$",
238
+ "required": true,
239
+ "type": "string"
240
+ }
241
+ },
242
+ "path": "v1/{+parent}/apps",
243
+ "response": {
244
+ "$ref": "ListAppsResponse"
245
+ },
246
+ "scopes": [
247
+ "https://www.googleapis.com/auth/admob.readonly"
248
+ ],
249
+ "streamingType": "NONE"
250
+ }
251
+ }
252
+ },
253
+ "mediationReport": {
254
+ "methods": {
255
+ "generate": {
256
+ "description": "Generates an AdMob Mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.",
257
+ "flatPath": "v1/accounts/{accountsId}/mediationReport:generate",
258
+ "httpMethod": "POST",
259
+ "id": "admob.accounts.mediationReport.generate",
260
+ "parameterOrder": [
261
+ "parent"
262
+ ],
263
+ "parameters": {
264
+ "parent": {
265
+ "description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654",
266
+ "location": "path",
267
+ "pattern": "^accounts/[^/]+$",
268
+ "required": true,
269
+ "type": "string"
270
+ }
271
+ },
272
+ "path": "v1/{+parent}/mediationReport:generate",
273
+ "request": {
274
+ "$ref": "GenerateMediationReportRequest"
275
+ },
276
+ "response": {
277
+ "$ref": "GenerateMediationReportResponse"
278
+ },
279
+ "scopes": [
280
+ "https://www.googleapis.com/auth/admob.readonly",
281
+ "https://www.googleapis.com/auth/admob.report"
282
+ ],
283
+ "streamingType": "SERVER_SIDE"
284
+ }
285
+ }
286
+ },
287
+ "networkReport": {
288
+ "methods": {
289
+ "generate": {
290
+ "description": "Generates an AdMob Network report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.",
291
+ "flatPath": "v1/accounts/{accountsId}/networkReport:generate",
292
+ "httpMethod": "POST",
293
+ "id": "admob.accounts.networkReport.generate",
294
+ "parameterOrder": [
295
+ "parent"
296
+ ],
297
+ "parameters": {
298
+ "parent": {
299
+ "description": "Resource name of the account to generate the report for. Example: accounts/pub-9876543210987654",
300
+ "location": "path",
301
+ "pattern": "^accounts/[^/]+$",
302
+ "required": true,
303
+ "type": "string"
304
+ }
305
+ },
306
+ "path": "v1/{+parent}/networkReport:generate",
307
+ "request": {
308
+ "$ref": "GenerateNetworkReportRequest"
309
+ },
310
+ "response": {
311
+ "$ref": "GenerateNetworkReportResponse"
312
+ },
313
+ "scopes": [
314
+ "https://www.googleapis.com/auth/admob.readonly",
315
+ "https://www.googleapis.com/auth/admob.report"
316
+ ],
317
+ "streamingType": "SERVER_SIDE"
318
+ }
319
+ }
320
+ }
321
+ }
322
+ }
323
+ },
324
+ "revision": "20240515",
325
+ "rootUrl": "https://admob.googleapis.com/",
326
+ "schemas": {
327
+ "AdUnit": {
328
+ "description": "Describes an AdMob ad unit.",
329
+ "id": "AdUnit",
330
+ "properties": {
331
+ "adFormat": {
332
+ "description": "AdFormat of the ad unit. Possible values are as follows: \"APP_OPEN\" - App Open ad format. \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded. \"REWARDED_INTERSTITIAL\" - Rewarded Interstitial ad format. Only supports video ad type. See https://support.google.com/admob/answer/9884467.",
333
+ "type": "string"
334
+ },
335
+ "adTypes": {
336
+ "description": "Ad media type supported by this ad unit. Possible values as follows: \"RICH_MEDIA\" - Text, image, and other non-video media. \"VIDEO\" - Video media.",
337
+ "items": {
338
+ "type": "string"
339
+ },
340
+ "type": "array"
341
+ },
342
+ "adUnitId": {
343
+ "description": "The externally visible ID of the ad unit which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654/0123456789",
344
+ "type": "string"
345
+ },
346
+ "appId": {
347
+ "description": "The externally visible ID of the app this ad unit is associated with. Example: ca-app-pub-9876543210987654~0123456789",
348
+ "type": "string"
349
+ },
350
+ "displayName": {
351
+ "description": "The display name of the ad unit as shown in the AdMob UI, which is provided by the user. The maximum length allowed is 80 characters.",
352
+ "type": "string"
353
+ },
354
+ "name": {
355
+ "description": "Resource name for this ad unit. Format is accounts/{publisher_id}/adUnits/{ad_unit_id_fragment} Example: accounts/pub-9876543210987654/adUnits/0123456789",
356
+ "type": "string"
357
+ }
358
+ },
359
+ "type": "object"
360
+ },
361
+ "App": {
362
+ "description": "Describes an AdMob app for a specific platform (For example: Android or iOS).",
363
+ "id": "App",
364
+ "properties": {
365
+ "appApprovalState": {
366
+ "description": "Output only. The approval state for the app. The field is read-only.",
367
+ "enum": [
368
+ "APP_APPROVAL_STATE_UNSPECIFIED",
369
+ "ACTION_REQUIRED",
370
+ "IN_REVIEW",
371
+ "APPROVED"
372
+ ],
373
+ "enumDescriptions": [
374
+ "Default value for an unset field. Do not use.",
375
+ "The app requires additional user action to be approved. Please refer to https://support.google.com/admob/answer/10564477 for details and next steps.",
376
+ "The app is pending review.",
377
+ "The app is approved and can serve ads."
378
+ ],
379
+ "readOnly": true,
380
+ "type": "string"
381
+ },
382
+ "appId": {
383
+ "description": "The externally visible ID of the app which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654~0123456789",
384
+ "type": "string"
385
+ },
386
+ "linkedAppInfo": {
387
+ "$ref": "AppLinkedAppInfo",
388
+ "description": "Immutable. The information for an app that is linked to an app store. This field is present if and only if the app is linked to an app store."
389
+ },
390
+ "manualAppInfo": {
391
+ "$ref": "AppManualAppInfo",
392
+ "description": "The information for an app that is not linked to any app store. After an app is linked, this information is still retrivable. If no name is provided for the app upon creation, a placeholder name will be used."
393
+ },
394
+ "name": {
395
+ "description": "Resource name for this app. Format is accounts/{publisher_id}/apps/{app_id_fragment} Example: accounts/pub-9876543210987654/apps/0123456789",
396
+ "type": "string"
397
+ },
398
+ "platform": {
399
+ "description": "Describes the platform of the app. Limited to \"IOS\" and \"ANDROID\".",
400
+ "type": "string"
401
+ }
402
+ },
403
+ "type": "object"
404
+ },
405
+ "AppLinkedAppInfo": {
406
+ "description": "Information from the app store if the app is linked to an app store.",
407
+ "id": "AppLinkedAppInfo",
408
+ "properties": {
409
+ "appStoreId": {
410
+ "description": "The app store ID of the app; present if and only if the app is linked to an app store. If the app is added to the Google Play store, it will be the application ID of the app. For example: \"com.example.myapp\". See https://developer.android.com/studio/build/application-id. If the app is added to the Apple App Store, it will be app store ID. For example \"105169111\". Note that setting the app store id is considered an irreversible action. Once an app is linked, it cannot be unlinked.",
411
+ "type": "string"
412
+ },
413
+ "displayName": {
414
+ "description": "Output only. Display name of the app as it appears in the app store. This is an output-only field, and may be empty if the app cannot be found in the store.",
415
+ "readOnly": true,
416
+ "type": "string"
417
+ }
418
+ },
419
+ "type": "object"
420
+ },
421
+ "AppManualAppInfo": {
422
+ "description": "Information provided for manual apps which are not linked to an application store (Example: Google Play, App Store).",
423
+ "id": "AppManualAppInfo",
424
+ "properties": {
425
+ "displayName": {
426
+ "description": "The display name of the app as shown in the AdMob UI, which is provided by the user. The maximum length allowed is 80 characters.",
427
+ "type": "string"
428
+ }
429
+ },
430
+ "type": "object"
431
+ },
432
+ "Date": {
433
+ "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
434
+ "id": "Date",
435
+ "properties": {
436
+ "day": {
437
+ "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
438
+ "format": "int32",
439
+ "type": "integer"
440
+ },
441
+ "month": {
442
+ "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
443
+ "format": "int32",
444
+ "type": "integer"
445
+ },
446
+ "year": {
447
+ "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
448
+ "format": "int32",
449
+ "type": "integer"
450
+ }
451
+ },
452
+ "type": "object"
453
+ },
454
+ "DateRange": {
455
+ "description": "Specification of a single date range. Both dates are inclusive.",
456
+ "id": "DateRange",
457
+ "properties": {
458
+ "endDate": {
459
+ "$ref": "Date",
460
+ "description": "End date of the date range, inclusive. Must be greater than or equal to the start date."
461
+ },
462
+ "startDate": {
463
+ "$ref": "Date",
464
+ "description": "Start date of the date range, inclusive. Must be less than or equal to the end date."
465
+ }
466
+ },
467
+ "type": "object"
468
+ },
469
+ "GenerateMediationReportRequest": {
470
+ "description": "Request to generate an AdMob Mediation report.",
471
+ "id": "GenerateMediationReportRequest",
472
+ "properties": {
473
+ "reportSpec": {
474
+ "$ref": "MediationReportSpec",
475
+ "description": "Network report specification."
476
+ }
477
+ },
478
+ "type": "object"
479
+ },
480
+ "GenerateMediationReportResponse": {
481
+ "description": "The streaming response for the AdMob Mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]",
482
+ "id": "GenerateMediationReportResponse",
483
+ "properties": {
484
+ "footer": {
485
+ "$ref": "ReportFooter",
486
+ "description": "Additional information about the generated report, such as warnings about the data."
487
+ },
488
+ "header": {
489
+ "$ref": "ReportHeader",
490
+ "description": "Report generation settings that describes the report contents, such as the report date range and localization settings."
491
+ },
492
+ "row": {
493
+ "$ref": "ReportRow",
494
+ "description": "Actual report data."
495
+ }
496
+ },
497
+ "type": "object"
498
+ },
499
+ "GenerateNetworkReportRequest": {
500
+ "description": "Request to generate an AdMob Network report.",
501
+ "id": "GenerateNetworkReportRequest",
502
+ "properties": {
503
+ "reportSpec": {
504
+ "$ref": "NetworkReportSpec",
505
+ "description": "Network report specification."
506
+ }
507
+ },
508
+ "type": "object"
509
+ },
510
+ "GenerateNetworkReportResponse": {
511
+ "description": "The streaming response for the AdMob Network report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"dateRange\": { \"startDate\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"endDate\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localizationSettings\": { \"currencyCode\": \"USD\", \"languageCode\": \"en-US\" } } }, { \"row\": { \"dimensionValues\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", displayLabel: \"My app name!\" } }, \"metricValues\": { \"ESTIMATED_EARNINGS\": {\"microsValue\": 6500000} } } }, { \"footer\": {\"matchingRowCount\": 1} }]",
512
+ "id": "GenerateNetworkReportResponse",
513
+ "properties": {
514
+ "footer": {
515
+ "$ref": "ReportFooter",
516
+ "description": "Additional information about the generated report, such as warnings about the data."
517
+ },
518
+ "header": {
519
+ "$ref": "ReportHeader",
520
+ "description": "Report generation settings that describes the report contents, such as the report date range and localization settings."
521
+ },
522
+ "row": {
523
+ "$ref": "ReportRow",
524
+ "description": "Actual report data."
525
+ }
526
+ },
527
+ "type": "object"
528
+ },
529
+ "ListAdUnitsResponse": {
530
+ "description": "Response for the ad units list request.",
531
+ "id": "ListAdUnitsResponse",
532
+ "properties": {
533
+ "adUnits": {
534
+ "description": "The resulting ad units for the requested account.",
535
+ "items": {
536
+ "$ref": "AdUnit"
537
+ },
538
+ "type": "array"
539
+ },
540
+ "nextPageToken": {
541
+ "description": "If not empty, indicates that there may be more ad units for the request; this value should be passed in a new `ListAdUnitsRequest`.",
542
+ "type": "string"
543
+ }
544
+ },
545
+ "type": "object"
546
+ },
547
+ "ListAppsResponse": {
548
+ "description": "Response for the apps list request.",
549
+ "id": "ListAppsResponse",
550
+ "properties": {
551
+ "apps": {
552
+ "description": "The resulting apps for the requested account.",
553
+ "items": {
554
+ "$ref": "App"
555
+ },
556
+ "type": "array"
557
+ },
558
+ "nextPageToken": {
559
+ "description": "If not empty, indicates that there may be more apps for the request; this value should be passed in a new `ListAppsRequest`.",
560
+ "type": "string"
561
+ }
562
+ },
563
+ "type": "object"
564
+ },
565
+ "ListPublisherAccountsResponse": {
566
+ "description": "Response for the publisher account list request.",
567
+ "id": "ListPublisherAccountsResponse",
568
+ "properties": {
569
+ "account": {
570
+ "description": "Publisher that the client credentials can access.",
571
+ "items": {
572
+ "$ref": "PublisherAccount"
573
+ },
574
+ "type": "array"
575
+ },
576
+ "nextPageToken": {
577
+ "description": "If not empty, indicates that there might be more accounts for the request; you must pass this value in a new `ListPublisherAccountsRequest`.",
578
+ "type": "string"
579
+ }
580
+ },
581
+ "type": "object"
582
+ },
583
+ "LocalizationSettings": {
584
+ "description": "Localization settings for reports, such as currency and language. It affects how metrics are calculated.",
585
+ "id": "LocalizationSettings",
586
+ "properties": {
587
+ "currencyCode": {
588
+ "description": "Currency code of the earning related metrics, which is the 3-letter code defined in ISO 4217. The daily average rate is used for the currency conversion. Defaults to the account currency code if unspecified.",
589
+ "type": "string"
590
+ },
591
+ "languageCode": {
592
+ "description": "Language used for any localized text, such as some dimension value display labels. The language tag defined in the IETF BCP47. Defaults to 'en-US' if unspecified.",
593
+ "type": "string"
594
+ }
595
+ },
596
+ "type": "object"
597
+ },
598
+ "MediationReportSpec": {
599
+ "description": "The specification for generating an AdMob Mediation report. For example, the specification to get observed ECPM sliced by ad source and app for the 'US' and 'CN' countries can look like the following example: { \"date_range\": { \"start_date\": {\"year\": 2021, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2021, \"month\": 9, \"day\": 30} }, \"dimensions\": [\"AD_SOURCE\", \"APP\", \"COUNTRY\"], \"metrics\": [\"OBSERVED_ECPM\"], \"dimension_filters\": [ { \"dimension\": \"COUNTRY\", \"matches_any\": {\"values\": [{\"value\": \"US\", \"value\": \"CN\"}]} } ], \"sort_conditions\": [ {\"dimension\":\"APP\", order: \"ASCENDING\"} ], \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } For a better understanding, you can treat the preceding specification like the following pseudo SQL: SELECT AD_SOURCE, APP, COUNTRY, OBSERVED_ECPM FROM MEDIATION_REPORT WHERE DATE >= '2021-09-01' AND DATE <= '2021-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY AD_SOURCE, APP, COUNTRY ORDER BY APP ASC;",
600
+ "id": "MediationReportSpec",
601
+ "properties": {
602
+ "dateRange": {
603
+ "$ref": "DateRange",
604
+ "description": "The date range for which the report is generated."
605
+ },
606
+ "dimensionFilters": {
607
+ "description": "Describes which report rows to match based on their dimension values.",
608
+ "items": {
609
+ "$ref": "MediationReportSpecDimensionFilter"
610
+ },
611
+ "type": "array"
612
+ },
613
+ "dimensions": {
614
+ "description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.",
615
+ "items": {
616
+ "enum": [
617
+ "DIMENSION_UNSPECIFIED",
618
+ "DATE",
619
+ "MONTH",
620
+ "WEEK",
621
+ "AD_SOURCE",
622
+ "AD_SOURCE_INSTANCE",
623
+ "AD_UNIT",
624
+ "APP",
625
+ "MEDIATION_GROUP",
626
+ "COUNTRY",
627
+ "FORMAT",
628
+ "PLATFORM",
629
+ "MOBILE_OS_VERSION",
630
+ "GMA_SDK_VERSION",
631
+ "APP_VERSION_NAME",
632
+ "SERVING_RESTRICTION"
633
+ ],
634
+ "enumDescriptions": [
635
+ "Default value for an unset field. Do not use.",
636
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
637
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
638
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
639
+ "The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).",
640
+ "The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).",
641
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.",
642
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
643
+ "The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).",
644
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
645
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
646
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
647
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
648
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
649
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
650
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
651
+ ],
652
+ "type": "string"
653
+ },
654
+ "type": "array"
655
+ },
656
+ "localizationSettings": {
657
+ "$ref": "LocalizationSettings",
658
+ "description": "Localization settings of the report."
659
+ },
660
+ "maxReportRows": {
661
+ "description": "Maximum number of report data rows to return. If the value is not set, the API returns as many rows as possible, up to 100000. Acceptable values are 1-100000, inclusive. Values larger than 100000 return an error.",
662
+ "format": "int32",
663
+ "type": "integer"
664
+ },
665
+ "metrics": {
666
+ "description": "List of metrics of the report. A report must specify at least one metric.",
667
+ "items": {
668
+ "enum": [
669
+ "METRIC_UNSPECIFIED",
670
+ "AD_REQUESTS",
671
+ "CLICKS",
672
+ "ESTIMATED_EARNINGS",
673
+ "IMPRESSIONS",
674
+ "IMPRESSION_CTR",
675
+ "MATCHED_REQUESTS",
676
+ "MATCH_RATE",
677
+ "OBSERVED_ECPM"
678
+ ],
679
+ "enumDescriptions": [
680
+ "Default value for an unset field. Do not use.",
681
+ "The number of requests. The value is an integer.",
682
+ "The number of times a user clicks an ad. The value is an integer.",
683
+ "The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000. Estimated earnings per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated earnings will show 0 for dates prior to October 20, 2019.",
684
+ "The total number of ads shown to users. The value is an integer.",
685
+ "The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.",
686
+ "The number of times ads are returned in response to a request. The value is an integer.",
687
+ "The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value.",
688
+ "The third-party ad network's estimated average eCPM. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $2.30 would be represented as 2300000. The estimated average eCPM per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated average eCPM will show 0 for dates prior to October 20, 2019."
689
+ ],
690
+ "type": "string"
691
+ },
692
+ "type": "array"
693
+ },
694
+ "sortConditions": {
695
+ "description": "Describes the sorting of report rows. The order of the condition in the list defines its precedence; the earlier the condition, the higher its precedence. If no sort conditions are specified, the row ordering is undefined.",
696
+ "items": {
697
+ "$ref": "MediationReportSpecSortCondition"
698
+ },
699
+ "type": "array"
700
+ },
701
+ "timeZone": {
702
+ "description": "A report time zone. Accepts an IANA TZ name values, such as \"America/Los_Angeles.\" If no time zone is defined, the account default takes effect. Check default value by the get account action. **Warning:** The \"America/Los_Angeles\" is the only supported value at the moment.",
703
+ "type": "string"
704
+ }
705
+ },
706
+ "type": "object"
707
+ },
708
+ "MediationReportSpecDimensionFilter": {
709
+ "description": "Describes which report rows to match based on their dimension values.",
710
+ "id": "MediationReportSpecDimensionFilter",
711
+ "properties": {
712
+ "dimension": {
713
+ "description": "Applies the filter criterion to the specified dimension.",
714
+ "enum": [
715
+ "DIMENSION_UNSPECIFIED",
716
+ "DATE",
717
+ "MONTH",
718
+ "WEEK",
719
+ "AD_SOURCE",
720
+ "AD_SOURCE_INSTANCE",
721
+ "AD_UNIT",
722
+ "APP",
723
+ "MEDIATION_GROUP",
724
+ "COUNTRY",
725
+ "FORMAT",
726
+ "PLATFORM",
727
+ "MOBILE_OS_VERSION",
728
+ "GMA_SDK_VERSION",
729
+ "APP_VERSION_NAME",
730
+ "SERVING_RESTRICTION"
731
+ ],
732
+ "enumDescriptions": [
733
+ "Default value for an unset field. Do not use.",
734
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
735
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
736
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
737
+ "The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).",
738
+ "The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).",
739
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.",
740
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
741
+ "The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).",
742
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
743
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
744
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
745
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
746
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
747
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
748
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
749
+ ],
750
+ "type": "string"
751
+ },
752
+ "matchesAny": {
753
+ "$ref": "StringList",
754
+ "description": "Matches a row if its value for the specified dimension is in one of the values specified in this condition."
755
+ }
756
+ },
757
+ "type": "object"
758
+ },
759
+ "MediationReportSpecSortCondition": {
760
+ "description": "Sorting direction to be applied on a dimension or a metric.",
761
+ "id": "MediationReportSpecSortCondition",
762
+ "properties": {
763
+ "dimension": {
764
+ "description": "Sort by the specified dimension.",
765
+ "enum": [
766
+ "DIMENSION_UNSPECIFIED",
767
+ "DATE",
768
+ "MONTH",
769
+ "WEEK",
770
+ "AD_SOURCE",
771
+ "AD_SOURCE_INSTANCE",
772
+ "AD_UNIT",
773
+ "APP",
774
+ "MEDIATION_GROUP",
775
+ "COUNTRY",
776
+ "FORMAT",
777
+ "PLATFORM",
778
+ "MOBILE_OS_VERSION",
779
+ "GMA_SDK_VERSION",
780
+ "APP_VERSION_NAME",
781
+ "SERVING_RESTRICTION"
782
+ ],
783
+ "enumDescriptions": [
784
+ "Default value for an unset field. Do not use.",
785
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
786
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
787
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
788
+ "The [unique ID of the ad source](/admob/api/v1/ad_sources) (for example, \"5450213213286189855\" and \"AdMob Network\" as label value).",
789
+ "The unique ID of the ad source instance (for example, \"ca-app-pub-1234:asi:5678\" and \"AdMob (default)\" as label value).",
790
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/8790\"). If AD_UNIT dimension is specified, then APP is included automatically.",
791
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
792
+ "The unique ID of the mediation group (for example, \"ca-app-pub-1234:mg:1234\" and \"AdMob (default)\" as label value).",
793
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
794
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
795
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
796
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
797
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
798
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
799
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
800
+ ],
801
+ "type": "string"
802
+ },
803
+ "metric": {
804
+ "description": "Sort by the specified metric.",
805
+ "enum": [
806
+ "METRIC_UNSPECIFIED",
807
+ "AD_REQUESTS",
808
+ "CLICKS",
809
+ "ESTIMATED_EARNINGS",
810
+ "IMPRESSIONS",
811
+ "IMPRESSION_CTR",
812
+ "MATCHED_REQUESTS",
813
+ "MATCH_RATE",
814
+ "OBSERVED_ECPM"
815
+ ],
816
+ "enumDescriptions": [
817
+ "Default value for an unset field. Do not use.",
818
+ "The number of requests. The value is an integer.",
819
+ "The number of times a user clicks an ad. The value is an integer.",
820
+ "The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000. Estimated earnings per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated earnings will show 0 for dates prior to October 20, 2019.",
821
+ "The total number of ads shown to users. The value is an integer.",
822
+ "The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.",
823
+ "The number of times ads are returned in response to a request. The value is an integer.",
824
+ "The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value.",
825
+ "The third-party ad network's estimated average eCPM. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $2.30 would be represented as 2300000. The estimated average eCPM per mediation group and per ad source instance level is supported dating back to October 20, 2019. Third-party estimated average eCPM will show 0 for dates prior to October 20, 2019."
826
+ ],
827
+ "type": "string"
828
+ },
829
+ "order": {
830
+ "description": "Sorting order of the dimension or metric.",
831
+ "enum": [
832
+ "SORT_ORDER_UNSPECIFIED",
833
+ "ASCENDING",
834
+ "DESCENDING"
835
+ ],
836
+ "enumDescriptions": [
837
+ "Default value for an unset field. Do not use.",
838
+ "Sort dimension value or metric value in ascending order.",
839
+ "Sort dimension value or metric value in descending order."
840
+ ],
841
+ "type": "string"
842
+ }
843
+ },
844
+ "type": "object"
845
+ },
846
+ "NetworkReportSpec": {
847
+ "description": "The specification for generating an AdMob Network report. For example, the specification to get clicks and estimated earnings for only the 'US' and 'CN' countries can look like the following example: { 'date_range': { 'start_date': {'year': 2021, 'month': 9, 'day': 1}, 'end_date': {'year': 2021, 'month': 9, 'day': 30} }, 'dimensions': ['DATE', 'APP', 'COUNTRY'], 'metrics': ['CLICKS', 'ESTIMATED_EARNINGS'], 'dimension_filters': [ { 'dimension': 'COUNTRY', 'matches_any': {'values': [{'value': 'US', 'value': 'CN'}]} } ], 'sort_conditions': [ {'dimension':'APP', order: 'ASCENDING'}, {'metric':'CLICKS', order: 'DESCENDING'} ], 'localization_settings': { 'currency_code': 'USD', 'language_code': 'en-US' } } For a better understanding, you can treat the preceding specification like the following pseudo SQL: SELECT DATE, APP, COUNTRY, CLICKS, ESTIMATED_EARNINGS FROM NETWORK_REPORT WHERE DATE >= '2021-09-01' AND DATE <= '2021-09-30' AND COUNTRY IN ('US', 'CN') GROUP BY DATE, APP, COUNTRY ORDER BY APP ASC, CLICKS DESC;",
848
+ "id": "NetworkReportSpec",
849
+ "properties": {
850
+ "dateRange": {
851
+ "$ref": "DateRange",
852
+ "description": "The date range for which the report is generated."
853
+ },
854
+ "dimensionFilters": {
855
+ "description": "Describes which report rows to match based on their dimension values.",
856
+ "items": {
857
+ "$ref": "NetworkReportSpecDimensionFilter"
858
+ },
859
+ "type": "array"
860
+ },
861
+ "dimensions": {
862
+ "description": "List of dimensions of the report. The value combination of these dimensions determines the row of the report. If no dimensions are specified, the report returns a single row of requested metrics for the entire account.",
863
+ "items": {
864
+ "enum": [
865
+ "DIMENSION_UNSPECIFIED",
866
+ "DATE",
867
+ "MONTH",
868
+ "WEEK",
869
+ "AD_UNIT",
870
+ "APP",
871
+ "AD_TYPE",
872
+ "COUNTRY",
873
+ "FORMAT",
874
+ "PLATFORM",
875
+ "MOBILE_OS_VERSION",
876
+ "GMA_SDK_VERSION",
877
+ "APP_VERSION_NAME",
878
+ "SERVING_RESTRICTION"
879
+ ],
880
+ "enumDescriptions": [
881
+ "Default value for an unset field. Do not use.",
882
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
883
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
884
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
885
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.",
886
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
887
+ "Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.",
888
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
889
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
890
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
891
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
892
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
893
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
894
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
895
+ ],
896
+ "type": "string"
897
+ },
898
+ "type": "array"
899
+ },
900
+ "localizationSettings": {
901
+ "$ref": "LocalizationSettings",
902
+ "description": "Localization settings of the report."
903
+ },
904
+ "maxReportRows": {
905
+ "description": "Maximum number of report data rows to return. If the value is not set, the API returns as many rows as possible, up to 100000. Acceptable values are 1-100000, inclusive. Values larger than 100000 return an error.",
906
+ "format": "int32",
907
+ "type": "integer"
908
+ },
909
+ "metrics": {
910
+ "description": "List of metrics of the report. A report must specify at least one metric.",
911
+ "items": {
912
+ "enum": [
913
+ "METRIC_UNSPECIFIED",
914
+ "AD_REQUESTS",
915
+ "CLICKS",
916
+ "ESTIMATED_EARNINGS",
917
+ "IMPRESSIONS",
918
+ "IMPRESSION_CTR",
919
+ "IMPRESSION_RPM",
920
+ "MATCHED_REQUESTS",
921
+ "MATCH_RATE",
922
+ "SHOW_RATE"
923
+ ],
924
+ "enumDescriptions": [
925
+ "Default value for an unset field. Do not use.",
926
+ "The number of ad requests. The value is an integer. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
927
+ "The number of times a user clicks an ad. The value is an integer.",
928
+ "The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000.",
929
+ "The total number of ads shown to users. The value is an integer.",
930
+ "The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.",
931
+ "The estimated earnings per thousand ad impressions. The value is in micros. For example, $1.03 would be represented as 1030000. Equivalent to eCPM in the AdMob UI. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
932
+ "The number of times ads are returned in response to a request. The value is an integer.",
933
+ "The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
934
+ "The ratio of ads that are displayed over ads that are returned, defined as impressions / matched requests. The value is a double precision (approximate) decimal value."
935
+ ],
936
+ "type": "string"
937
+ },
938
+ "type": "array"
939
+ },
940
+ "sortConditions": {
941
+ "description": "Describes the sorting of report rows. The order of the condition in the list defines its precedence; the earlier the condition, the higher its precedence. If no sort conditions are specified, the row ordering is undefined.",
942
+ "items": {
943
+ "$ref": "NetworkReportSpecSortCondition"
944
+ },
945
+ "type": "array"
946
+ },
947
+ "timeZone": {
948
+ "description": "A report time zone. Accepts an IANA TZ name values, such as \"America/Los_Angeles.\" If no time zone is defined, the account default takes effect. Check default value by the get account action. **Warning:** The \"America/Los_Angeles\" is the only supported value at the moment.",
949
+ "type": "string"
950
+ }
951
+ },
952
+ "type": "object"
953
+ },
954
+ "NetworkReportSpecDimensionFilter": {
955
+ "description": "Describes which report rows to match based on their dimension values.",
956
+ "id": "NetworkReportSpecDimensionFilter",
957
+ "properties": {
958
+ "dimension": {
959
+ "description": "Applies the filter criterion to the specified dimension.",
960
+ "enum": [
961
+ "DIMENSION_UNSPECIFIED",
962
+ "DATE",
963
+ "MONTH",
964
+ "WEEK",
965
+ "AD_UNIT",
966
+ "APP",
967
+ "AD_TYPE",
968
+ "COUNTRY",
969
+ "FORMAT",
970
+ "PLATFORM",
971
+ "MOBILE_OS_VERSION",
972
+ "GMA_SDK_VERSION",
973
+ "APP_VERSION_NAME",
974
+ "SERVING_RESTRICTION"
975
+ ],
976
+ "enumDescriptions": [
977
+ "Default value for an unset field. Do not use.",
978
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
979
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
980
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
981
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.",
982
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
983
+ "Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.",
984
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
985
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
986
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
987
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
988
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
989
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
990
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
991
+ ],
992
+ "type": "string"
993
+ },
994
+ "matchesAny": {
995
+ "$ref": "StringList",
996
+ "description": "Matches a row if its value for the specified dimension is in one of the values specified in this condition."
997
+ }
998
+ },
999
+ "type": "object"
1000
+ },
1001
+ "NetworkReportSpecSortCondition": {
1002
+ "description": "Sorting direction to be applied on a dimension or a metric.",
1003
+ "id": "NetworkReportSpecSortCondition",
1004
+ "properties": {
1005
+ "dimension": {
1006
+ "description": "Sort by the specified dimension.",
1007
+ "enum": [
1008
+ "DIMENSION_UNSPECIFIED",
1009
+ "DATE",
1010
+ "MONTH",
1011
+ "WEEK",
1012
+ "AD_UNIT",
1013
+ "APP",
1014
+ "AD_TYPE",
1015
+ "COUNTRY",
1016
+ "FORMAT",
1017
+ "PLATFORM",
1018
+ "MOBILE_OS_VERSION",
1019
+ "GMA_SDK_VERSION",
1020
+ "APP_VERSION_NAME",
1021
+ "SERVING_RESTRICTION"
1022
+ ],
1023
+ "enumDescriptions": [
1024
+ "Default value for an unset field. Do not use.",
1025
+ "A date in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
1026
+ "A month in the YYYYMM format (for example, \"202107\"). Requests can specify at most one time dimension.",
1027
+ "The date of the first day of a week in the YYYYMMDD format (for example, \"20210701\"). Requests can specify at most one time dimension.",
1028
+ "The unique ID of the ad unit (for example, \"ca-app-pub-1234/1234\"). If AD_UNIT dimension is specified, then APP is included automatically.",
1029
+ "The unique ID of the mobile application (for example, \"ca-app-pub-1234~1234\").",
1030
+ "Type of the ad (for example, \"text\" or \"image\"), an ad delivery dimension. **Warning:** The dimension is incompatible with [AD_REQUESTS](#Metric.ENUM_VALUES.AD_REQUESTS), [MATCH_RATE](#Metric.ENUM_VALUES.MATCH_RATE) and [IMPRESSION_RPM](#Metric.ENUM_VALUES.IMPRESSION_RPM) metrics.",
1031
+ "CLDR country code of the place where the ad views/clicks occur (for example, \"US\" or \"FR\"). This is a geography dimension.",
1032
+ "Format of the ad unit (for example, \"banner\", \"native\"), an ad delivery dimension.",
1033
+ "Mobile OS platform of the app (for example, \"Android\" or \"iOS\").",
1034
+ "Mobile operating system version, e.g. \"iOS 13.5.1\".",
1035
+ "GMA SDK version, e.g. \"iOS 7.62.0\".",
1036
+ "For Android, the app version name can be found in versionName in PackageInfo. For iOS, the app version name can be found in CFBundleShortVersionString.",
1037
+ "Restriction mode for ads serving (e.g. \"Non-personalized ads\")."
1038
+ ],
1039
+ "type": "string"
1040
+ },
1041
+ "metric": {
1042
+ "description": "Sort by the specified metric.",
1043
+ "enum": [
1044
+ "METRIC_UNSPECIFIED",
1045
+ "AD_REQUESTS",
1046
+ "CLICKS",
1047
+ "ESTIMATED_EARNINGS",
1048
+ "IMPRESSIONS",
1049
+ "IMPRESSION_CTR",
1050
+ "IMPRESSION_RPM",
1051
+ "MATCHED_REQUESTS",
1052
+ "MATCH_RATE",
1053
+ "SHOW_RATE"
1054
+ ],
1055
+ "enumDescriptions": [
1056
+ "Default value for an unset field. Do not use.",
1057
+ "The number of ad requests. The value is an integer. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
1058
+ "The number of times a user clicks an ad. The value is an integer.",
1059
+ "The estimated earnings of the AdMob publisher. The currency unit (USD, EUR, or other) of the earning metrics are determined by the localization setting for currency. The amount is in micros. For example, $6.50 would be represented as 6500000.",
1060
+ "The total number of ads shown to users. The value is an integer.",
1061
+ "The ratio of clicks over impressions. The value is a double precision (approximate) decimal value.",
1062
+ "The estimated earnings per thousand ad impressions. The value is in micros. For example, $1.03 would be represented as 1030000. Equivalent to eCPM in the AdMob UI. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
1063
+ "The number of times ads are returned in response to a request. The value is an integer.",
1064
+ "The ratio of matched ad requests over the total ad requests. The value is a double precision (approximate) decimal value. **Warning:** The metric is incompatible with [AD_TYPE](#Dimension.ENUM_VALUES.AD_TYPE) dimension.",
1065
+ "The ratio of ads that are displayed over ads that are returned, defined as impressions / matched requests. The value is a double precision (approximate) decimal value."
1066
+ ],
1067
+ "type": "string"
1068
+ },
1069
+ "order": {
1070
+ "description": "Sorting order of the dimension or metric.",
1071
+ "enum": [
1072
+ "SORT_ORDER_UNSPECIFIED",
1073
+ "ASCENDING",
1074
+ "DESCENDING"
1075
+ ],
1076
+ "enumDescriptions": [
1077
+ "Default value for an unset field. Do not use.",
1078
+ "Sort dimension value or metric value in ascending order.",
1079
+ "Sort dimension value or metric value in descending order."
1080
+ ],
1081
+ "type": "string"
1082
+ }
1083
+ },
1084
+ "type": "object"
1085
+ },
1086
+ "PublisherAccount": {
1087
+ "description": "A publisher account contains information relevant to the use of this API, such as the time zone used for the reports.",
1088
+ "id": "PublisherAccount",
1089
+ "properties": {
1090
+ "currencyCode": {
1091
+ "description": "Currency code of the earning-related metrics, which is the 3-letter code defined in ISO 4217. The daily average rate is used for the currency conversion.",
1092
+ "type": "string"
1093
+ },
1094
+ "name": {
1095
+ "description": "Resource name of this account. Format is accounts/{publisher_id}.",
1096
+ "type": "string"
1097
+ },
1098
+ "publisherId": {
1099
+ "description": "The unique ID by which this publisher account can be identified in the API requests (for example, pub-1234567890).",
1100
+ "type": "string"
1101
+ },
1102
+ "reportingTimeZone": {
1103
+ "description": "The time zone that is used in reports that are generated for this account. The value is a time-zone ID as specified by the CLDR project, for example, \"America/Los_Angeles\".",
1104
+ "type": "string"
1105
+ }
1106
+ },
1107
+ "type": "object"
1108
+ },
1109
+ "ReportFooter": {
1110
+ "description": "Groups data available after report generation, for example, warnings and row counts. Always sent as the last message in the stream response.",
1111
+ "id": "ReportFooter",
1112
+ "properties": {
1113
+ "matchingRowCount": {
1114
+ "description": "Total number of rows that matched the request. Warning: This count does NOT always match the number of rows in the response. Do not make that assumption when processing the response.",
1115
+ "format": "int64",
1116
+ "type": "string"
1117
+ },
1118
+ "warnings": {
1119
+ "description": "Warnings associated with generation of the report.",
1120
+ "items": {
1121
+ "$ref": "ReportWarning"
1122
+ },
1123
+ "type": "array"
1124
+ }
1125
+ },
1126
+ "type": "object"
1127
+ },
1128
+ "ReportHeader": {
1129
+ "description": "Groups data helps to treat the generated report. Always sent as a first message in the stream response.",
1130
+ "id": "ReportHeader",
1131
+ "properties": {
1132
+ "dateRange": {
1133
+ "$ref": "DateRange",
1134
+ "description": "The date range for which the report is generated. This is identical to the range specified in the report request."
1135
+ },
1136
+ "localizationSettings": {
1137
+ "$ref": "LocalizationSettings",
1138
+ "description": "Localization settings of the report. This is identical to the settings in the report request."
1139
+ },
1140
+ "reportingTimeZone": {
1141
+ "description": "The report time zone. The value is a time-zone ID as specified by the CLDR project, for example, \"America/Los_Angeles\".",
1142
+ "type": "string"
1143
+ }
1144
+ },
1145
+ "type": "object"
1146
+ },
1147
+ "ReportRow": {
1148
+ "description": "A row of the returning report.",
1149
+ "id": "ReportRow",
1150
+ "properties": {
1151
+ "dimensionValues": {
1152
+ "additionalProperties": {
1153
+ "$ref": "ReportRowDimensionValue"
1154
+ },
1155
+ "description": "Map of dimension values in a row, with keys as enum name of the dimensions.",
1156
+ "type": "object"
1157
+ },
1158
+ "metricValues": {
1159
+ "additionalProperties": {
1160
+ "$ref": "ReportRowMetricValue"
1161
+ },
1162
+ "description": "Map of metric values in a row, with keys as enum name of the metrics. If a metric being requested has no value returned, the map will not include it.",
1163
+ "type": "object"
1164
+ }
1165
+ },
1166
+ "type": "object"
1167
+ },
1168
+ "ReportRowDimensionValue": {
1169
+ "description": "Representation of a dimension value.",
1170
+ "id": "ReportRowDimensionValue",
1171
+ "properties": {
1172
+ "displayLabel": {
1173
+ "description": "The localized string representation of the value. If unspecified, the display label should be derived from the value.",
1174
+ "type": "string"
1175
+ },
1176
+ "value": {
1177
+ "description": "Dimension value in the format specified in the report's spec Dimension enum.",
1178
+ "type": "string"
1179
+ }
1180
+ },
1181
+ "type": "object"
1182
+ },
1183
+ "ReportRowMetricValue": {
1184
+ "description": "Representation of a metric value.",
1185
+ "id": "ReportRowMetricValue",
1186
+ "properties": {
1187
+ "doubleValue": {
1188
+ "description": "Double precision (approximate) decimal values. Rates are from 0 to 1.",
1189
+ "format": "double",
1190
+ "type": "number"
1191
+ },
1192
+ "integerValue": {
1193
+ "description": "Metric integer value.",
1194
+ "format": "int64",
1195
+ "type": "string"
1196
+ },
1197
+ "microsValue": {
1198
+ "description": "Amount in micros. One million is equivalent to one unit. Currency value is in the unit (USD, EUR or other) specified by the request. For example, $6.50 whould be represented as 6500000 micros.",
1199
+ "format": "int64",
1200
+ "type": "string"
1201
+ }
1202
+ },
1203
+ "type": "object"
1204
+ },
1205
+ "ReportWarning": {
1206
+ "description": "Warnings associated with generation of the report.",
1207
+ "id": "ReportWarning",
1208
+ "properties": {
1209
+ "description": {
1210
+ "description": "Describes the details of the warning message, in English.",
1211
+ "type": "string"
1212
+ },
1213
+ "type": {
1214
+ "description": "Type of the warning.",
1215
+ "enum": [
1216
+ "TYPE_UNSPECIFIED",
1217
+ "DATA_BEFORE_ACCOUNT_TIMEZONE_CHANGE",
1218
+ "DATA_DELAYED",
1219
+ "OTHER",
1220
+ "REPORT_CURRENCY_NOT_ACCOUNT_CURRENCY"
1221
+ ],
1222
+ "enumDescriptions": [
1223
+ "Default value for an unset field. Do not use.",
1224
+ "Some data in this report is aggregated based on a time zone different from the requested time zone. This could happen if a local time-zone report has the start time before the last time this time zone changed. The description field will contain the date of the last time zone change.",
1225
+ "There is an unusual delay in processing the source data for the requested date range. The report results might be less up to date than usual. AdMob is aware of the issue and is actively working to resolve it.",
1226
+ "Warnings that are exposed without a specific type. Useful when new warning types are added but the API is not changed yet.",
1227
+ "The currency being requested is not the account currency. The earning metrics will be based on the requested currency, and thus not a good estimation of the final payment anymore, due to the currency rate fluctuation."
1228
+ ],
1229
+ "type": "string"
1230
+ }
1231
+ },
1232
+ "type": "object"
1233
+ },
1234
+ "StringList": {
1235
+ "description": "List of string values.",
1236
+ "id": "StringList",
1237
+ "properties": {
1238
+ "values": {
1239
+ "description": "The string values.",
1240
+ "items": {
1241
+ "type": "string"
1242
+ },
1243
+ "type": "array"
1244
+ }
1245
+ },
1246
+ "type": "object"
1247
+ }
1248
+ },
1249
+ "servicePath": "",
1250
+ "title": "AdMob API",
1251
+ "version": "v1",
1252
+ "version_module": true
1253
+ }
DiscoveryJson/admob.v1beta.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/adsense.v2.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/adsenseplatform.v1.json ADDED
@@ -0,0 +1,721 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/adsense": {
6
+ "description": "View and manage your AdSense data"
7
+ },
8
+ "https://www.googleapis.com/auth/adsense.readonly": {
9
+ "description": "View your AdSense data"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://adsenseplatform.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "AdSense Platform",
18
+ "description": "",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/adsense/platforms/",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "adsenseplatform:v1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://adsenseplatform.mtls.googleapis.com/",
29
+ "name": "adsenseplatform",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "parameters": {
33
+ "$.xgafv": {
34
+ "description": "V1 error format.",
35
+ "enum": [
36
+ "1",
37
+ "2"
38
+ ],
39
+ "enumDescriptions": [
40
+ "v1 error format",
41
+ "v2 error format"
42
+ ],
43
+ "location": "query",
44
+ "type": "string"
45
+ },
46
+ "access_token": {
47
+ "description": "OAuth access token.",
48
+ "location": "query",
49
+ "type": "string"
50
+ },
51
+ "alt": {
52
+ "default": "json",
53
+ "description": "Data format for response.",
54
+ "enum": [
55
+ "json",
56
+ "media",
57
+ "proto"
58
+ ],
59
+ "enumDescriptions": [
60
+ "Responses with Content-Type of application/json",
61
+ "Media download with context-dependent Content-Type",
62
+ "Responses with Content-Type of application/x-protobuf"
63
+ ],
64
+ "location": "query",
65
+ "type": "string"
66
+ },
67
+ "callback": {
68
+ "description": "JSONP",
69
+ "location": "query",
70
+ "type": "string"
71
+ },
72
+ "fields": {
73
+ "description": "Selector specifying which fields to include in a partial response.",
74
+ "location": "query",
75
+ "type": "string"
76
+ },
77
+ "key": {
78
+ "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.",
79
+ "location": "query",
80
+ "type": "string"
81
+ },
82
+ "oauth_token": {
83
+ "description": "OAuth 2.0 token for the current user.",
84
+ "location": "query",
85
+ "type": "string"
86
+ },
87
+ "prettyPrint": {
88
+ "default": "true",
89
+ "description": "Returns response with indentations and line breaks.",
90
+ "location": "query",
91
+ "type": "boolean"
92
+ },
93
+ "quotaUser": {
94
+ "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.",
95
+ "location": "query",
96
+ "type": "string"
97
+ },
98
+ "uploadType": {
99
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100
+ "location": "query",
101
+ "type": "string"
102
+ },
103
+ "upload_protocol": {
104
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105
+ "location": "query",
106
+ "type": "string"
107
+ }
108
+ },
109
+ "protocol": "rest",
110
+ "resources": {
111
+ "platforms": {
112
+ "resources": {
113
+ "accounts": {
114
+ "methods": {
115
+ "close": {
116
+ "description": "Closes a sub-account.",
117
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}:close",
118
+ "httpMethod": "POST",
119
+ "id": "adsenseplatform.platforms.accounts.close",
120
+ "parameterOrder": [
121
+ "name"
122
+ ],
123
+ "parameters": {
124
+ "name": {
125
+ "description": "Required. Account to close. Format: platforms/{platform}/accounts/{account_id}",
126
+ "location": "path",
127
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
128
+ "required": true,
129
+ "type": "string"
130
+ }
131
+ },
132
+ "path": "v1/{+name}:close",
133
+ "request": {
134
+ "$ref": "CloseAccountRequest"
135
+ },
136
+ "response": {
137
+ "$ref": "CloseAccountResponse"
138
+ },
139
+ "scopes": [
140
+ "https://www.googleapis.com/auth/adsense"
141
+ ]
142
+ },
143
+ "create": {
144
+ "description": "Creates a sub-account.",
145
+ "flatPath": "v1/platforms/{platformsId}/accounts",
146
+ "httpMethod": "POST",
147
+ "id": "adsenseplatform.platforms.accounts.create",
148
+ "parameterOrder": [
149
+ "parent"
150
+ ],
151
+ "parameters": {
152
+ "parent": {
153
+ "description": "Required. Platform to create an account for. Format: platforms/{platform}",
154
+ "location": "path",
155
+ "pattern": "^platforms/[^/]+$",
156
+ "required": true,
157
+ "type": "string"
158
+ }
159
+ },
160
+ "path": "v1/{+parent}/accounts",
161
+ "request": {
162
+ "$ref": "Account"
163
+ },
164
+ "response": {
165
+ "$ref": "Account"
166
+ },
167
+ "scopes": [
168
+ "https://www.googleapis.com/auth/adsense"
169
+ ]
170
+ },
171
+ "get": {
172
+ "description": "Gets information about the selected sub-account.",
173
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}",
174
+ "httpMethod": "GET",
175
+ "id": "adsenseplatform.platforms.accounts.get",
176
+ "parameterOrder": [
177
+ "name"
178
+ ],
179
+ "parameters": {
180
+ "name": {
181
+ "description": "Required. Account to get information about. Format: platforms/{platform}/accounts/{account_id}",
182
+ "location": "path",
183
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
184
+ "required": true,
185
+ "type": "string"
186
+ }
187
+ },
188
+ "path": "v1/{+name}",
189
+ "response": {
190
+ "$ref": "Account"
191
+ },
192
+ "scopes": [
193
+ "https://www.googleapis.com/auth/adsense",
194
+ "https://www.googleapis.com/auth/adsense.readonly"
195
+ ]
196
+ },
197
+ "list": {
198
+ "description": "Lists a partial view of sub-accounts for a specific parent account.",
199
+ "flatPath": "v1/platforms/{platformsId}/accounts",
200
+ "httpMethod": "GET",
201
+ "id": "adsenseplatform.platforms.accounts.list",
202
+ "parameterOrder": [
203
+ "parent"
204
+ ],
205
+ "parameters": {
206
+ "pageSize": {
207
+ "description": "Optional. The maximum number of accounts to include in the response, used for paging. If unspecified, at most 10000 accounts will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
208
+ "format": "int32",
209
+ "location": "query",
210
+ "type": "integer"
211
+ },
212
+ "pageToken": {
213
+ "description": "Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page.",
214
+ "location": "query",
215
+ "type": "string"
216
+ },
217
+ "parent": {
218
+ "description": "Required. Platform who parents the accounts. Format: platforms/{platform}",
219
+ "location": "path",
220
+ "pattern": "^platforms/[^/]+$",
221
+ "required": true,
222
+ "type": "string"
223
+ }
224
+ },
225
+ "path": "v1/{+parent}/accounts",
226
+ "response": {
227
+ "$ref": "ListAccountsResponse"
228
+ },
229
+ "scopes": [
230
+ "https://www.googleapis.com/auth/adsense",
231
+ "https://www.googleapis.com/auth/adsense.readonly"
232
+ ]
233
+ },
234
+ "lookup": {
235
+ "description": "Looks up information about a sub-account for a specified creation_request_id. If no account exists for the given creation_request_id, returns 404.",
236
+ "flatPath": "v1/platforms/{platformsId}/accounts:lookup",
237
+ "httpMethod": "GET",
238
+ "id": "adsenseplatform.platforms.accounts.lookup",
239
+ "parameterOrder": [
240
+ "parent"
241
+ ],
242
+ "parameters": {
243
+ "creationRequestId": {
244
+ "description": "Optional. The creation_request_id provided when calling createAccount.",
245
+ "location": "query",
246
+ "type": "string"
247
+ },
248
+ "parent": {
249
+ "description": "Required. Platform who parents the account. Format: platforms/{platform}",
250
+ "location": "path",
251
+ "pattern": "^platforms/[^/]+$",
252
+ "required": true,
253
+ "type": "string"
254
+ }
255
+ },
256
+ "path": "v1/{+parent}/accounts:lookup",
257
+ "response": {
258
+ "$ref": "LookupAccountResponse"
259
+ },
260
+ "scopes": [
261
+ "https://www.googleapis.com/auth/adsense",
262
+ "https://www.googleapis.com/auth/adsense.readonly"
263
+ ]
264
+ }
265
+ },
266
+ "resources": {
267
+ "events": {
268
+ "methods": {
269
+ "create": {
270
+ "description": "Creates an account event.",
271
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/events",
272
+ "httpMethod": "POST",
273
+ "id": "adsenseplatform.platforms.accounts.events.create",
274
+ "parameterOrder": [
275
+ "parent"
276
+ ],
277
+ "parameters": {
278
+ "parent": {
279
+ "description": "Required. Account to log events about. Format: platforms/{platform}/accounts/{account}",
280
+ "location": "path",
281
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
282
+ "required": true,
283
+ "type": "string"
284
+ }
285
+ },
286
+ "path": "v1/{+parent}/events",
287
+ "request": {
288
+ "$ref": "Event"
289
+ },
290
+ "response": {
291
+ "$ref": "Event"
292
+ },
293
+ "scopes": [
294
+ "https://www.googleapis.com/auth/adsense"
295
+ ]
296
+ }
297
+ }
298
+ },
299
+ "sites": {
300
+ "methods": {
301
+ "create": {
302
+ "description": "Creates a site for a specified account.",
303
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites",
304
+ "httpMethod": "POST",
305
+ "id": "adsenseplatform.platforms.accounts.sites.create",
306
+ "parameterOrder": [
307
+ "parent"
308
+ ],
309
+ "parameters": {
310
+ "parent": {
311
+ "description": "Required. Account to create site. Format: platforms/{platform}/accounts/{account_id}",
312
+ "location": "path",
313
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
314
+ "required": true,
315
+ "type": "string"
316
+ }
317
+ },
318
+ "path": "v1/{+parent}/sites",
319
+ "request": {
320
+ "$ref": "Site"
321
+ },
322
+ "response": {
323
+ "$ref": "Site"
324
+ },
325
+ "scopes": [
326
+ "https://www.googleapis.com/auth/adsense"
327
+ ]
328
+ },
329
+ "delete": {
330
+ "description": "Deletes a site from a specified account.",
331
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
332
+ "httpMethod": "DELETE",
333
+ "id": "adsenseplatform.platforms.accounts.sites.delete",
334
+ "parameterOrder": [
335
+ "name"
336
+ ],
337
+ "parameters": {
338
+ "name": {
339
+ "description": "Required. The name of the site to delete. Format: platforms/{platform}/accounts/{account}/sites/{site}",
340
+ "location": "path",
341
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
342
+ "required": true,
343
+ "type": "string"
344
+ }
345
+ },
346
+ "path": "v1/{+name}",
347
+ "response": {
348
+ "$ref": "Empty"
349
+ },
350
+ "scopes": [
351
+ "https://www.googleapis.com/auth/adsense"
352
+ ]
353
+ },
354
+ "get": {
355
+ "description": "Gets a site from a specified sub-account.",
356
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
357
+ "httpMethod": "GET",
358
+ "id": "adsenseplatform.platforms.accounts.sites.get",
359
+ "parameterOrder": [
360
+ "name"
361
+ ],
362
+ "parameters": {
363
+ "name": {
364
+ "description": "Required. The name of the site to retrieve. Format: platforms/{platform}/accounts/{account}/sites/{site}",
365
+ "location": "path",
366
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
367
+ "required": true,
368
+ "type": "string"
369
+ }
370
+ },
371
+ "path": "v1/{+name}",
372
+ "response": {
373
+ "$ref": "Site"
374
+ },
375
+ "scopes": [
376
+ "https://www.googleapis.com/auth/adsense",
377
+ "https://www.googleapis.com/auth/adsense.readonly"
378
+ ]
379
+ },
380
+ "list": {
381
+ "description": "Lists sites for a specific account.",
382
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites",
383
+ "httpMethod": "GET",
384
+ "id": "adsenseplatform.platforms.accounts.sites.list",
385
+ "parameterOrder": [
386
+ "parent"
387
+ ],
388
+ "parameters": {
389
+ "pageSize": {
390
+ "description": "The maximum number of sites to include in the response, used for paging. If unspecified, at most 10000 sites will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
391
+ "format": "int32",
392
+ "location": "query",
393
+ "type": "integer"
394
+ },
395
+ "pageToken": {
396
+ "description": "A page token, received from a previous `ListSites` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSites` must match the call that provided the page token.",
397
+ "location": "query",
398
+ "type": "string"
399
+ },
400
+ "parent": {
401
+ "description": "Required. The account which owns the sites. Format: platforms/{platform}/accounts/{account}",
402
+ "location": "path",
403
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
404
+ "required": true,
405
+ "type": "string"
406
+ }
407
+ },
408
+ "path": "v1/{+parent}/sites",
409
+ "response": {
410
+ "$ref": "ListSitesResponse"
411
+ },
412
+ "scopes": [
413
+ "https://www.googleapis.com/auth/adsense",
414
+ "https://www.googleapis.com/auth/adsense.readonly"
415
+ ]
416
+ },
417
+ "requestReview": {
418
+ "description": "Requests the review of a site. The site should be in REQUIRES_REVIEW or NEEDS_ATTENTION state. Note: Make sure you place an [ad tag](https://developers.google.com/adsense/platforms/direct/ad-tags) on your site before requesting a review.",
419
+ "flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}:requestReview",
420
+ "httpMethod": "POST",
421
+ "id": "adsenseplatform.platforms.accounts.sites.requestReview",
422
+ "parameterOrder": [
423
+ "name"
424
+ ],
425
+ "parameters": {
426
+ "name": {
427
+ "description": "Required. The name of the site to submit for review. Format: platforms/{platform}/accounts/{account}/sites/{site}",
428
+ "location": "path",
429
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
430
+ "required": true,
431
+ "type": "string"
432
+ }
433
+ },
434
+ "path": "v1/{+name}:requestReview",
435
+ "response": {
436
+ "$ref": "RequestSiteReviewResponse"
437
+ },
438
+ "scopes": [
439
+ "https://www.googleapis.com/auth/adsense"
440
+ ]
441
+ }
442
+ }
443
+ }
444
+ }
445
+ }
446
+ }
447
+ }
448
+ },
449
+ "revision": "20241204",
450
+ "rootUrl": "https://adsenseplatform.googleapis.com/",
451
+ "schemas": {
452
+ "Account": {
453
+ "description": "Representation of an Account.",
454
+ "id": "Account",
455
+ "properties": {
456
+ "createTime": {
457
+ "description": "Output only. Creation time of the account.",
458
+ "format": "google-datetime",
459
+ "readOnly": true,
460
+ "type": "string"
461
+ },
462
+ "creationRequestId": {
463
+ "description": "Required. An opaque token that uniquely identifies the account among all the platform's accounts. This string may contain at most 64 non-whitespace ASCII characters, but otherwise has no predefined structure. However, it is expected to be a platform-specific identifier for the user creating the account, so that only a single account can be created for any given user. This field must not contain any information that is recognizable as personally identifiable information. e.g. it should not be an email address or login name. Once an account has been created, a second attempt to create an account using the same creation_request_id will result in an ALREADY_EXISTS error.",
464
+ "type": "string"
465
+ },
466
+ "displayName": {
467
+ "description": "Display name of this account.",
468
+ "type": "string"
469
+ },
470
+ "name": {
471
+ "description": "Output only. Resource name of the account. Format: platforms/pub-[0-9]+/accounts/pub-[0-9]+",
472
+ "readOnly": true,
473
+ "type": "string"
474
+ },
475
+ "regionCode": {
476
+ "description": "Required. Input only. CLDR region code of the country/region of the address. Set this to country code of the child account if known, otherwise to your own country code.",
477
+ "type": "string"
478
+ },
479
+ "state": {
480
+ "description": "Output only. Approval state of the account.",
481
+ "enum": [
482
+ "STATE_UNSPECIFIED",
483
+ "UNCHECKED",
484
+ "APPROVED",
485
+ "DISAPPROVED"
486
+ ],
487
+ "enumDescriptions": [
488
+ "Unspecified.",
489
+ "Unchecked.",
490
+ "The account is ready to serve ads.",
491
+ "The account has been blocked from serving ads."
492
+ ],
493
+ "readOnly": true,
494
+ "type": "string"
495
+ },
496
+ "timeZone": {
497
+ "$ref": "TimeZone",
498
+ "description": "Required. The IANA TZ timezone code of this account. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. This field is used for reporting. It is recommended to set it to the same value for all child accounts."
499
+ }
500
+ },
501
+ "type": "object"
502
+ },
503
+ "Address": {
504
+ "description": "Address data.",
505
+ "id": "Address",
506
+ "properties": {
507
+ "address1": {
508
+ "description": "First line of address. Max length 64 bytes or 30 characters.",
509
+ "type": "string"
510
+ },
511
+ "address2": {
512
+ "description": "Second line of address. Max length 64 bytes or 30 characters.",
513
+ "type": "string"
514
+ },
515
+ "city": {
516
+ "description": "City. Max length 60 bytes or 30 characters.",
517
+ "type": "string"
518
+ },
519
+ "company": {
520
+ "description": "Name of the company. Max length 255 bytes or 34 characters.",
521
+ "type": "string"
522
+ },
523
+ "contact": {
524
+ "description": "Contact name of the company. Max length 128 bytes or 34 characters.",
525
+ "type": "string"
526
+ },
527
+ "fax": {
528
+ "description": "Fax number with international code (i.e. +441234567890).",
529
+ "type": "string"
530
+ },
531
+ "phone": {
532
+ "description": "Phone number with international code (i.e. +441234567890).",
533
+ "type": "string"
534
+ },
535
+ "regionCode": {
536
+ "description": "Country/Region code. The region is specified as a CLDR region code (e.g. \"US\", \"FR\").",
537
+ "type": "string"
538
+ },
539
+ "state": {
540
+ "description": "State. Max length 60 bytes or 30 characters.",
541
+ "type": "string"
542
+ },
543
+ "zip": {
544
+ "description": "Zip/post code. Max length 10 bytes or 10 characters.",
545
+ "type": "string"
546
+ }
547
+ },
548
+ "type": "object"
549
+ },
550
+ "CloseAccountRequest": {
551
+ "description": "Request definition for the account close rpc.",
552
+ "id": "CloseAccountRequest",
553
+ "properties": {},
554
+ "type": "object"
555
+ },
556
+ "CloseAccountResponse": {
557
+ "description": "Response definition for the account close rpc.",
558
+ "id": "CloseAccountResponse",
559
+ "properties": {},
560
+ "type": "object"
561
+ },
562
+ "Empty": {
563
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
564
+ "id": "Empty",
565
+ "properties": {},
566
+ "type": "object"
567
+ },
568
+ "Event": {
569
+ "description": "A platform sub-account event to record spam signals.",
570
+ "id": "Event",
571
+ "properties": {
572
+ "eventInfo": {
573
+ "$ref": "EventInfo",
574
+ "description": "Required. Information associated with the event."
575
+ },
576
+ "eventTime": {
577
+ "description": "Required. Event timestamp.",
578
+ "format": "google-datetime",
579
+ "type": "string"
580
+ },
581
+ "eventType": {
582
+ "description": "Required. Event type.",
583
+ "enum": [
584
+ "EVENT_TYPE_UNSPECIFIED",
585
+ "LOG_IN_VIA_PLATFORM",
586
+ "SIGN_UP_VIA_PLATFORM"
587
+ ],
588
+ "enumDescriptions": [
589
+ "Do not use. You must set an event type explicitly.",
590
+ "Log in via platform.",
591
+ "Sign up via platform."
592
+ ],
593
+ "type": "string"
594
+ }
595
+ },
596
+ "type": "object"
597
+ },
598
+ "EventInfo": {
599
+ "description": "Private information for partner recorded events (PII).",
600
+ "id": "EventInfo",
601
+ "properties": {
602
+ "billingAddress": {
603
+ "$ref": "Address",
604
+ "description": "The billing address of the publisher associated with this event, if available."
605
+ },
606
+ "email": {
607
+ "description": "Required. The email address that is associated with the publisher when performing the event.",
608
+ "type": "string"
609
+ }
610
+ },
611
+ "type": "object"
612
+ },
613
+ "ListAccountsResponse": {
614
+ "description": "Response definition for the list accounts rpc.",
615
+ "id": "ListAccountsResponse",
616
+ "properties": {
617
+ "accounts": {
618
+ "description": "The Accounts returned in the list response. Represented by a partial view of the Account resource, populating `name` and `creation_request_id`.",
619
+ "items": {
620
+ "$ref": "Account"
621
+ },
622
+ "type": "array"
623
+ },
624
+ "nextPageToken": {
625
+ "description": "Continuation token used to page through accounts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
626
+ "type": "string"
627
+ }
628
+ },
629
+ "type": "object"
630
+ },
631
+ "ListSitesResponse": {
632
+ "description": "Response definition for the site list rpc.",
633
+ "id": "ListSitesResponse",
634
+ "properties": {
635
+ "nextPageToken": {
636
+ "description": "Continuation token used to page through sites. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
637
+ "type": "string"
638
+ },
639
+ "sites": {
640
+ "description": "The sites returned in this list response.",
641
+ "items": {
642
+ "$ref": "Site"
643
+ },
644
+ "type": "array"
645
+ }
646
+ },
647
+ "type": "object"
648
+ },
649
+ "LookupAccountResponse": {
650
+ "description": "Response definition for the lookup account rpc.",
651
+ "id": "LookupAccountResponse",
652
+ "properties": {
653
+ "name": {
654
+ "description": "The name of the Account Format: platforms/{platform}/accounts/{account_id}",
655
+ "type": "string"
656
+ }
657
+ },
658
+ "type": "object"
659
+ },
660
+ "RequestSiteReviewResponse": {
661
+ "description": "Response definition for the site request review rpc.",
662
+ "id": "RequestSiteReviewResponse",
663
+ "properties": {},
664
+ "type": "object"
665
+ },
666
+ "Site": {
667
+ "description": "Representation of a Site.",
668
+ "id": "Site",
669
+ "properties": {
670
+ "domain": {
671
+ "description": "Domain/sub-domain of the site. Must be a valid domain complying with [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt) and formatted as punycode [RFC 3492](https://www.ietf.org/rfc/rfc3492.txt) in case the domain contains unicode characters.",
672
+ "type": "string"
673
+ },
674
+ "name": {
675
+ "description": "Output only. Resource name of a site. Format: platforms/{platform}/accounts/{account}/sites/{site}",
676
+ "readOnly": true,
677
+ "type": "string"
678
+ },
679
+ "state": {
680
+ "description": "Output only. State of a site.",
681
+ "enum": [
682
+ "STATE_UNSPECIFIED",
683
+ "REQUIRES_REVIEW",
684
+ "GETTING_READY",
685
+ "READY",
686
+ "NEEDS_ATTENTION"
687
+ ],
688
+ "enumDescriptions": [
689
+ "State unspecified.",
690
+ "Either: - The site hasn't been checked yet. - The site is inactive and needs another review before it can show ads again. Learn how to [request a review for an inactive site](https://support.google.com/adsense/answer/9393996).",
691
+ "Google is running some checks on the site. This usually takes a few days, but in some cases it can take two to four weeks.",
692
+ "The site is ready to show ads. Learn how to [set up ads on the site](https://support.google.com/adsense/answer/7037624).",
693
+ "Publisher needs to fix some issues before the site is ready to show ads. Learn what to do [if a new site isn't ready](https://support.google.com/adsense/answer/9061852)."
694
+ ],
695
+ "readOnly": true,
696
+ "type": "string"
697
+ }
698
+ },
699
+ "type": "object"
700
+ },
701
+ "TimeZone": {
702
+ "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
703
+ "id": "TimeZone",
704
+ "properties": {
705
+ "id": {
706
+ "description": "IANA Time Zone Database time zone. For example \"America/New_York\".",
707
+ "type": "string"
708
+ },
709
+ "version": {
710
+ "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
711
+ "type": "string"
712
+ }
713
+ },
714
+ "type": "object"
715
+ }
716
+ },
717
+ "servicePath": "",
718
+ "title": "AdSense Platform API",
719
+ "version": "v1",
720
+ "version_module": true
721
+ }
DiscoveryJson/adsenseplatform.v1alpha.json ADDED
@@ -0,0 +1,1125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/adsense": {
6
+ "description": "View and manage your AdSense data"
7
+ },
8
+ "https://www.googleapis.com/auth/adsense.readonly": {
9
+ "description": "View your AdSense data"
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://adsenseplatform.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "AdSense Platform",
18
+ "description": "",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://developers.google.com/adsense/platforms/",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "adsenseplatform:v1alpha",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://adsenseplatform.mtls.googleapis.com/",
29
+ "name": "adsenseplatform",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "parameters": {
33
+ "$.xgafv": {
34
+ "description": "V1 error format.",
35
+ "enum": [
36
+ "1",
37
+ "2"
38
+ ],
39
+ "enumDescriptions": [
40
+ "v1 error format",
41
+ "v2 error format"
42
+ ],
43
+ "location": "query",
44
+ "type": "string"
45
+ },
46
+ "access_token": {
47
+ "description": "OAuth access token.",
48
+ "location": "query",
49
+ "type": "string"
50
+ },
51
+ "alt": {
52
+ "default": "json",
53
+ "description": "Data format for response.",
54
+ "enum": [
55
+ "json",
56
+ "media",
57
+ "proto"
58
+ ],
59
+ "enumDescriptions": [
60
+ "Responses with Content-Type of application/json",
61
+ "Media download with context-dependent Content-Type",
62
+ "Responses with Content-Type of application/x-protobuf"
63
+ ],
64
+ "location": "query",
65
+ "type": "string"
66
+ },
67
+ "callback": {
68
+ "description": "JSONP",
69
+ "location": "query",
70
+ "type": "string"
71
+ },
72
+ "fields": {
73
+ "description": "Selector specifying which fields to include in a partial response.",
74
+ "location": "query",
75
+ "type": "string"
76
+ },
77
+ "key": {
78
+ "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.",
79
+ "location": "query",
80
+ "type": "string"
81
+ },
82
+ "oauth_token": {
83
+ "description": "OAuth 2.0 token for the current user.",
84
+ "location": "query",
85
+ "type": "string"
86
+ },
87
+ "prettyPrint": {
88
+ "default": "true",
89
+ "description": "Returns response with indentations and line breaks.",
90
+ "location": "query",
91
+ "type": "boolean"
92
+ },
93
+ "quotaUser": {
94
+ "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.",
95
+ "location": "query",
96
+ "type": "string"
97
+ },
98
+ "uploadType": {
99
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100
+ "location": "query",
101
+ "type": "string"
102
+ },
103
+ "upload_protocol": {
104
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105
+ "location": "query",
106
+ "type": "string"
107
+ }
108
+ },
109
+ "protocol": "rest",
110
+ "resources": {
111
+ "accounts": {
112
+ "resources": {
113
+ "platforms": {
114
+ "methods": {
115
+ "get": {
116
+ "description": "Gets a platform.",
117
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}",
118
+ "httpMethod": "GET",
119
+ "id": "adsenseplatform.accounts.platforms.get",
120
+ "parameterOrder": [
121
+ "name"
122
+ ],
123
+ "parameters": {
124
+ "name": {
125
+ "description": "Required. The name of the platform to retrieve. Format: accounts/{account}/platforms/{platform}",
126
+ "location": "path",
127
+ "pattern": "^accounts/[^/]+/platforms/[^/]+$",
128
+ "required": true,
129
+ "type": "string"
130
+ }
131
+ },
132
+ "path": "v1alpha/{+name}",
133
+ "response": {
134
+ "$ref": "Platform"
135
+ },
136
+ "scopes": [
137
+ "https://www.googleapis.com/auth/adsense",
138
+ "https://www.googleapis.com/auth/adsense.readonly"
139
+ ]
140
+ },
141
+ "list": {
142
+ "description": "Lists platforms for a specified account.",
143
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms",
144
+ "httpMethod": "GET",
145
+ "id": "adsenseplatform.accounts.platforms.list",
146
+ "parameterOrder": [
147
+ "parent"
148
+ ],
149
+ "parameters": {
150
+ "pageSize": {
151
+ "description": "Optional. The maximum number of platforms to include in the response, used for paging. If unspecified, at most 10000 platforms will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
152
+ "format": "int32",
153
+ "location": "query",
154
+ "type": "integer"
155
+ },
156
+ "pageToken": {
157
+ "description": "Optional. A page token, received from a previous `ListPlatforms` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPlatforms` must match the call that provided the page token.",
158
+ "location": "query",
159
+ "type": "string"
160
+ },
161
+ "parent": {
162
+ "description": "Required. The account which owns the platforms. Format: accounts/{account}",
163
+ "location": "path",
164
+ "pattern": "^accounts/[^/]+$",
165
+ "required": true,
166
+ "type": "string"
167
+ }
168
+ },
169
+ "path": "v1alpha/{+parent}/platforms",
170
+ "response": {
171
+ "$ref": "ListPlatformsResponse"
172
+ },
173
+ "scopes": [
174
+ "https://www.googleapis.com/auth/adsense",
175
+ "https://www.googleapis.com/auth/adsense.readonly"
176
+ ]
177
+ }
178
+ },
179
+ "resources": {
180
+ "childAccounts": {
181
+ "resources": {
182
+ "sites": {
183
+ "methods": {
184
+ "get": {
185
+ "description": "Gets a Platform Child Site for a specified Platform Child Account and site.",
186
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/childAccounts/{childAccountsId}/sites/{sitesId}",
187
+ "httpMethod": "GET",
188
+ "id": "adsenseplatform.accounts.platforms.childAccounts.sites.get",
189
+ "parameterOrder": [
190
+ "name"
191
+ ],
192
+ "parameters": {
193
+ "name": {
194
+ "description": "Required. The name of the platform child site to retrieve. Format: accounts/{account}/platforms/{platform}/childAccounts/{child_account}/sites/{platform_child_site}",
195
+ "location": "path",
196
+ "pattern": "^accounts/[^/]+/platforms/[^/]+/childAccounts/[^/]+/sites/[^/]+$",
197
+ "required": true,
198
+ "type": "string"
199
+ }
200
+ },
201
+ "path": "v1alpha/{+name}",
202
+ "response": {
203
+ "$ref": "PlatformChildSite"
204
+ },
205
+ "scopes": [
206
+ "https://www.googleapis.com/auth/adsense",
207
+ "https://www.googleapis.com/auth/adsense.readonly"
208
+ ]
209
+ },
210
+ "list": {
211
+ "description": "Lists Platform Child Sites for a specified Platform Child Account.",
212
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/childAccounts/{childAccountsId}/sites",
213
+ "httpMethod": "GET",
214
+ "id": "adsenseplatform.accounts.platforms.childAccounts.sites.list",
215
+ "parameterOrder": [
216
+ "parent"
217
+ ],
218
+ "parameters": {
219
+ "pageSize": {
220
+ "description": "Optional. The maximum number of children to include in the response, used for paging. If unspecified, at most 10000 platforms will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
221
+ "format": "int32",
222
+ "location": "query",
223
+ "type": "integer"
224
+ },
225
+ "pageToken": {
226
+ "description": "Optional. A page token, received from a previous `ListPlatformChildSites` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPlatformChildSites` must match the call that provided the page token.",
227
+ "location": "query",
228
+ "type": "string"
229
+ },
230
+ "parent": {
231
+ "description": "Required. The name of the child account under the given platform which owns the platform child sites. Format: accounts/{account}/platforms/{platform}/childAccounts/{child_account}",
232
+ "location": "path",
233
+ "pattern": "^accounts/[^/]+/platforms/[^/]+/childAccounts/[^/]+$",
234
+ "required": true,
235
+ "type": "string"
236
+ }
237
+ },
238
+ "path": "v1alpha/{+parent}/sites",
239
+ "response": {
240
+ "$ref": "ListPlatformChildSitesResponse"
241
+ },
242
+ "scopes": [
243
+ "https://www.googleapis.com/auth/adsense",
244
+ "https://www.googleapis.com/auth/adsense.readonly"
245
+ ]
246
+ },
247
+ "patch": {
248
+ "description": "Update a Platform Child Site.",
249
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/childAccounts/{childAccountsId}/sites/{sitesId}",
250
+ "httpMethod": "PATCH",
251
+ "id": "adsenseplatform.accounts.platforms.childAccounts.sites.patch",
252
+ "parameterOrder": [
253
+ "name"
254
+ ],
255
+ "parameters": {
256
+ "name": {
257
+ "description": "Identifier. Format: accounts/{account}/platforms/{platform}/childAccounts/{child_account}/sites/{platform_child_site}",
258
+ "location": "path",
259
+ "pattern": "^accounts/[^/]+/platforms/[^/]+/childAccounts/[^/]+/sites/[^/]+$",
260
+ "required": true,
261
+ "type": "string"
262
+ },
263
+ "updateMask": {
264
+ "description": "Optional. The list of fields to update - currently only supports updating the `platform_group` field.",
265
+ "format": "google-fieldmask",
266
+ "location": "query",
267
+ "type": "string"
268
+ }
269
+ },
270
+ "path": "v1alpha/{+name}",
271
+ "request": {
272
+ "$ref": "PlatformChildSite"
273
+ },
274
+ "response": {
275
+ "$ref": "PlatformChildSite"
276
+ },
277
+ "scopes": [
278
+ "https://www.googleapis.com/auth/adsense"
279
+ ]
280
+ }
281
+ }
282
+ }
283
+ }
284
+ },
285
+ "groups": {
286
+ "methods": {
287
+ "get": {
288
+ "description": "Gets a Platform Group for a specified Platform and group.",
289
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/groups/{groupsId}",
290
+ "httpMethod": "GET",
291
+ "id": "adsenseplatform.accounts.platforms.groups.get",
292
+ "parameterOrder": [
293
+ "name"
294
+ ],
295
+ "parameters": {
296
+ "name": {
297
+ "description": "Required. The name of the platform group to retrieve. Format: accounts/{account}/platforms/{platform}/groups/{group}",
298
+ "location": "path",
299
+ "pattern": "^accounts/[^/]+/platforms/[^/]+/groups/[^/]+$",
300
+ "required": true,
301
+ "type": "string"
302
+ }
303
+ },
304
+ "path": "v1alpha/{+name}",
305
+ "response": {
306
+ "$ref": "PlatformGroup"
307
+ },
308
+ "scopes": [
309
+ "https://www.googleapis.com/auth/adsense",
310
+ "https://www.googleapis.com/auth/adsense.readonly"
311
+ ]
312
+ },
313
+ "list": {
314
+ "description": "Lists Platform Groups for a specified Platform.",
315
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/groups",
316
+ "httpMethod": "GET",
317
+ "id": "adsenseplatform.accounts.platforms.groups.list",
318
+ "parameterOrder": [
319
+ "parent"
320
+ ],
321
+ "parameters": {
322
+ "pageSize": {
323
+ "description": "Optional. The maximum number of groups to include in the response, used for paging. If unspecified, at most 10000 groups will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
324
+ "format": "int32",
325
+ "location": "query",
326
+ "type": "integer"
327
+ },
328
+ "pageToken": {
329
+ "description": "Optional. A page token, received from a previous `ListPlatformGroups` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPlatformGroups` must match the call that provided the page token.",
330
+ "location": "query",
331
+ "type": "string"
332
+ },
333
+ "parent": {
334
+ "description": "Required. The name of the platform to retrieve. Format: accounts/{account}/platforms/{platform}",
335
+ "location": "path",
336
+ "pattern": "^accounts/[^/]+/platforms/[^/]+$",
337
+ "required": true,
338
+ "type": "string"
339
+ }
340
+ },
341
+ "path": "v1alpha/{+parent}/groups",
342
+ "response": {
343
+ "$ref": "ListPlatformGroupsResponse"
344
+ },
345
+ "scopes": [
346
+ "https://www.googleapis.com/auth/adsense",
347
+ "https://www.googleapis.com/auth/adsense.readonly"
348
+ ]
349
+ },
350
+ "patch": {
351
+ "description": "Update a Platform Group.",
352
+ "flatPath": "v1alpha/accounts/{accountsId}/platforms/{platformsId}/groups/{groupsId}",
353
+ "httpMethod": "PATCH",
354
+ "id": "adsenseplatform.accounts.platforms.groups.patch",
355
+ "parameterOrder": [
356
+ "name"
357
+ ],
358
+ "parameters": {
359
+ "name": {
360
+ "description": "Identifier. Format: accounts/{account}/platforms/{platform}/groups/{platform_group}",
361
+ "location": "path",
362
+ "pattern": "^accounts/[^/]+/platforms/[^/]+/groups/[^/]+$",
363
+ "required": true,
364
+ "type": "string"
365
+ },
366
+ "updateMask": {
367
+ "description": "Optional. The list of fields to update - currently only supports updating the `description` field.",
368
+ "format": "google-fieldmask",
369
+ "location": "query",
370
+ "type": "string"
371
+ }
372
+ },
373
+ "path": "v1alpha/{+name}",
374
+ "request": {
375
+ "$ref": "PlatformGroup"
376
+ },
377
+ "response": {
378
+ "$ref": "PlatformGroup"
379
+ },
380
+ "scopes": [
381
+ "https://www.googleapis.com/auth/adsense"
382
+ ]
383
+ }
384
+ }
385
+ }
386
+ }
387
+ }
388
+ }
389
+ },
390
+ "platforms": {
391
+ "resources": {
392
+ "accounts": {
393
+ "methods": {
394
+ "close": {
395
+ "description": "Closes a sub-account.",
396
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}:close",
397
+ "httpMethod": "POST",
398
+ "id": "adsenseplatform.platforms.accounts.close",
399
+ "parameterOrder": [
400
+ "name"
401
+ ],
402
+ "parameters": {
403
+ "name": {
404
+ "description": "Required. Account to close. Format: platforms/{platform}/accounts/{account_id}",
405
+ "location": "path",
406
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
407
+ "required": true,
408
+ "type": "string"
409
+ }
410
+ },
411
+ "path": "v1alpha/{+name}:close",
412
+ "request": {
413
+ "$ref": "CloseAccountRequest"
414
+ },
415
+ "response": {
416
+ "$ref": "CloseAccountResponse"
417
+ },
418
+ "scopes": [
419
+ "https://www.googleapis.com/auth/adsense"
420
+ ]
421
+ },
422
+ "create": {
423
+ "description": "Creates a sub-account.",
424
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts",
425
+ "httpMethod": "POST",
426
+ "id": "adsenseplatform.platforms.accounts.create",
427
+ "parameterOrder": [
428
+ "parent"
429
+ ],
430
+ "parameters": {
431
+ "parent": {
432
+ "description": "Required. Platform to create an account for. Format: platforms/{platform}",
433
+ "location": "path",
434
+ "pattern": "^platforms/[^/]+$",
435
+ "required": true,
436
+ "type": "string"
437
+ }
438
+ },
439
+ "path": "v1alpha/{+parent}/accounts",
440
+ "request": {
441
+ "$ref": "Account"
442
+ },
443
+ "response": {
444
+ "$ref": "Account"
445
+ },
446
+ "scopes": [
447
+ "https://www.googleapis.com/auth/adsense"
448
+ ]
449
+ },
450
+ "get": {
451
+ "description": "Gets information about the selected sub-account.",
452
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}",
453
+ "httpMethod": "GET",
454
+ "id": "adsenseplatform.platforms.accounts.get",
455
+ "parameterOrder": [
456
+ "name"
457
+ ],
458
+ "parameters": {
459
+ "name": {
460
+ "description": "Required. Account to get information about. Format: platforms/{platform}/accounts/{account_id}",
461
+ "location": "path",
462
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
463
+ "required": true,
464
+ "type": "string"
465
+ }
466
+ },
467
+ "path": "v1alpha/{+name}",
468
+ "response": {
469
+ "$ref": "Account"
470
+ },
471
+ "scopes": [
472
+ "https://www.googleapis.com/auth/adsense",
473
+ "https://www.googleapis.com/auth/adsense.readonly"
474
+ ]
475
+ },
476
+ "list": {
477
+ "description": "Lists a partial view of sub-accounts for a specific parent account.",
478
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts",
479
+ "httpMethod": "GET",
480
+ "id": "adsenseplatform.platforms.accounts.list",
481
+ "parameterOrder": [
482
+ "parent"
483
+ ],
484
+ "parameters": {
485
+ "pageSize": {
486
+ "description": "Optional. The maximum number of accounts to include in the response, used for paging. If unspecified, at most 10000 accounts will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
487
+ "format": "int32",
488
+ "location": "query",
489
+ "type": "integer"
490
+ },
491
+ "pageToken": {
492
+ "description": "Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page.",
493
+ "location": "query",
494
+ "type": "string"
495
+ },
496
+ "parent": {
497
+ "description": "Required. Platform who parents the accounts. Format: platforms/{platform}",
498
+ "location": "path",
499
+ "pattern": "^platforms/[^/]+$",
500
+ "required": true,
501
+ "type": "string"
502
+ }
503
+ },
504
+ "path": "v1alpha/{+parent}/accounts",
505
+ "response": {
506
+ "$ref": "ListAccountsResponse"
507
+ },
508
+ "scopes": [
509
+ "https://www.googleapis.com/auth/adsense",
510
+ "https://www.googleapis.com/auth/adsense.readonly"
511
+ ]
512
+ },
513
+ "lookup": {
514
+ "description": "Looks up information about a sub-account for a specified creation_request_id. If no account exists for the given creation_request_id, returns 404.",
515
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts:lookup",
516
+ "httpMethod": "GET",
517
+ "id": "adsenseplatform.platforms.accounts.lookup",
518
+ "parameterOrder": [
519
+ "parent"
520
+ ],
521
+ "parameters": {
522
+ "creationRequestId": {
523
+ "description": "Optional. The creation_request_id provided when calling createAccount.",
524
+ "location": "query",
525
+ "type": "string"
526
+ },
527
+ "parent": {
528
+ "description": "Required. Platform who parents the account. Format: platforms/{platform}",
529
+ "location": "path",
530
+ "pattern": "^platforms/[^/]+$",
531
+ "required": true,
532
+ "type": "string"
533
+ }
534
+ },
535
+ "path": "v1alpha/{+parent}/accounts:lookup",
536
+ "response": {
537
+ "$ref": "LookupAccountResponse"
538
+ },
539
+ "scopes": [
540
+ "https://www.googleapis.com/auth/adsense",
541
+ "https://www.googleapis.com/auth/adsense.readonly"
542
+ ]
543
+ }
544
+ },
545
+ "resources": {
546
+ "events": {
547
+ "methods": {
548
+ "create": {
549
+ "description": "Creates an account event.",
550
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/events",
551
+ "httpMethod": "POST",
552
+ "id": "adsenseplatform.platforms.accounts.events.create",
553
+ "parameterOrder": [
554
+ "parent"
555
+ ],
556
+ "parameters": {
557
+ "parent": {
558
+ "description": "Required. Account to log events about. Format: platforms/{platform}/accounts/{account}",
559
+ "location": "path",
560
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
561
+ "required": true,
562
+ "type": "string"
563
+ }
564
+ },
565
+ "path": "v1alpha/{+parent}/events",
566
+ "request": {
567
+ "$ref": "Event"
568
+ },
569
+ "response": {
570
+ "$ref": "Event"
571
+ },
572
+ "scopes": [
573
+ "https://www.googleapis.com/auth/adsense"
574
+ ]
575
+ }
576
+ }
577
+ },
578
+ "sites": {
579
+ "methods": {
580
+ "create": {
581
+ "description": "Creates a site for a specified account.",
582
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/sites",
583
+ "httpMethod": "POST",
584
+ "id": "adsenseplatform.platforms.accounts.sites.create",
585
+ "parameterOrder": [
586
+ "parent"
587
+ ],
588
+ "parameters": {
589
+ "parent": {
590
+ "description": "Required. Account to create site. Format: platforms/{platform}/accounts/{account_id}",
591
+ "location": "path",
592
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
593
+ "required": true,
594
+ "type": "string"
595
+ }
596
+ },
597
+ "path": "v1alpha/{+parent}/sites",
598
+ "request": {
599
+ "$ref": "Site"
600
+ },
601
+ "response": {
602
+ "$ref": "Site"
603
+ },
604
+ "scopes": [
605
+ "https://www.googleapis.com/auth/adsense"
606
+ ]
607
+ },
608
+ "delete": {
609
+ "description": "Deletes a site from a specified account.",
610
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
611
+ "httpMethod": "DELETE",
612
+ "id": "adsenseplatform.platforms.accounts.sites.delete",
613
+ "parameterOrder": [
614
+ "name"
615
+ ],
616
+ "parameters": {
617
+ "name": {
618
+ "description": "Required. The name of the site to delete. Format: platforms/{platform}/accounts/{account}/sites/{site}",
619
+ "location": "path",
620
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
621
+ "required": true,
622
+ "type": "string"
623
+ }
624
+ },
625
+ "path": "v1alpha/{+name}",
626
+ "response": {
627
+ "$ref": "Empty"
628
+ },
629
+ "scopes": [
630
+ "https://www.googleapis.com/auth/adsense"
631
+ ]
632
+ },
633
+ "get": {
634
+ "description": "Gets a site from a specified sub-account.",
635
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
636
+ "httpMethod": "GET",
637
+ "id": "adsenseplatform.platforms.accounts.sites.get",
638
+ "parameterOrder": [
639
+ "name"
640
+ ],
641
+ "parameters": {
642
+ "name": {
643
+ "description": "Required. The name of the site to retrieve. Format: platforms/{platform}/accounts/{account}/sites/{site}",
644
+ "location": "path",
645
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
646
+ "required": true,
647
+ "type": "string"
648
+ }
649
+ },
650
+ "path": "v1alpha/{+name}",
651
+ "response": {
652
+ "$ref": "Site"
653
+ },
654
+ "scopes": [
655
+ "https://www.googleapis.com/auth/adsense",
656
+ "https://www.googleapis.com/auth/adsense.readonly"
657
+ ]
658
+ },
659
+ "list": {
660
+ "description": "Lists sites for a specific account.",
661
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/sites",
662
+ "httpMethod": "GET",
663
+ "id": "adsenseplatform.platforms.accounts.sites.list",
664
+ "parameterOrder": [
665
+ "parent"
666
+ ],
667
+ "parameters": {
668
+ "pageSize": {
669
+ "description": "The maximum number of sites to include in the response, used for paging. If unspecified, at most 10000 sites will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
670
+ "format": "int32",
671
+ "location": "query",
672
+ "type": "integer"
673
+ },
674
+ "pageToken": {
675
+ "description": "A page token, received from a previous `ListSites` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSites` must match the call that provided the page token.",
676
+ "location": "query",
677
+ "type": "string"
678
+ },
679
+ "parent": {
680
+ "description": "Required. The account which owns the sites. Format: platforms/{platform}/accounts/{account}",
681
+ "location": "path",
682
+ "pattern": "^platforms/[^/]+/accounts/[^/]+$",
683
+ "required": true,
684
+ "type": "string"
685
+ }
686
+ },
687
+ "path": "v1alpha/{+parent}/sites",
688
+ "response": {
689
+ "$ref": "ListSitesResponse"
690
+ },
691
+ "scopes": [
692
+ "https://www.googleapis.com/auth/adsense",
693
+ "https://www.googleapis.com/auth/adsense.readonly"
694
+ ]
695
+ },
696
+ "requestReview": {
697
+ "description": "Requests the review of a site. The site should be in REQUIRES_REVIEW or NEEDS_ATTENTION state. Note: Make sure you place an [ad tag](https://developers.google.com/adsense/platforms/direct/ad-tags) on your site before requesting a review.",
698
+ "flatPath": "v1alpha/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}:requestReview",
699
+ "httpMethod": "POST",
700
+ "id": "adsenseplatform.platforms.accounts.sites.requestReview",
701
+ "parameterOrder": [
702
+ "name"
703
+ ],
704
+ "parameters": {
705
+ "name": {
706
+ "description": "Required. The name of the site to submit for review. Format: platforms/{platform}/accounts/{account}/sites/{site}",
707
+ "location": "path",
708
+ "pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
709
+ "required": true,
710
+ "type": "string"
711
+ }
712
+ },
713
+ "path": "v1alpha/{+name}:requestReview",
714
+ "response": {
715
+ "$ref": "RequestSiteReviewResponse"
716
+ },
717
+ "scopes": [
718
+ "https://www.googleapis.com/auth/adsense"
719
+ ]
720
+ }
721
+ }
722
+ }
723
+ }
724
+ }
725
+ }
726
+ }
727
+ },
728
+ "revision": "20250707",
729
+ "rootUrl": "https://adsenseplatform.googleapis.com/",
730
+ "schemas": {
731
+ "Account": {
732
+ "description": "Representation of an Account.",
733
+ "id": "Account",
734
+ "properties": {
735
+ "createTime": {
736
+ "description": "Output only. Creation time of the account.",
737
+ "format": "google-datetime",
738
+ "readOnly": true,
739
+ "type": "string"
740
+ },
741
+ "creationRequestId": {
742
+ "description": "Required. An opaque token that uniquely identifies the account among all the platform's accounts. This string may contain at most 64 non-whitespace ASCII characters, but otherwise has no predefined structure. However, it is expected to be a platform-specific identifier for the user creating the account, so that only a single account can be created for any given user. This field must not contain any information that is recognizable as personally identifiable information. e.g. it should not be an email address or login name. Once an account has been created, a second attempt to create an account using the same creation_request_id will result in an ALREADY_EXISTS error.",
743
+ "type": "string"
744
+ },
745
+ "displayName": {
746
+ "description": "Display name of this account.",
747
+ "type": "string"
748
+ },
749
+ "name": {
750
+ "description": "Output only. Resource name of the account. Format: platforms/pub-[0-9]+/accounts/pub-[0-9]+",
751
+ "readOnly": true,
752
+ "type": "string"
753
+ },
754
+ "regionCode": {
755
+ "description": "Required. Input only. CLDR region code of the country/region of the address. Set this to country code of the child account if known, otherwise to your own country code.",
756
+ "type": "string"
757
+ },
758
+ "state": {
759
+ "description": "Output only. Approval state of the account.",
760
+ "enum": [
761
+ "STATE_UNSPECIFIED",
762
+ "UNCHECKED",
763
+ "APPROVED",
764
+ "DISAPPROVED"
765
+ ],
766
+ "enumDescriptions": [
767
+ "Unspecified.",
768
+ "Unchecked.",
769
+ "The account is ready to serve ads.",
770
+ "The account has been blocked from serving ads."
771
+ ],
772
+ "readOnly": true,
773
+ "type": "string"
774
+ },
775
+ "timeZone": {
776
+ "$ref": "TimeZone",
777
+ "description": "Required. The IANA TZ timezone code of this account. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. This field is used for reporting. It is recommended to set it to the same value for all child accounts."
778
+ }
779
+ },
780
+ "type": "object"
781
+ },
782
+ "Address": {
783
+ "description": "Address data.",
784
+ "id": "Address",
785
+ "properties": {
786
+ "address1": {
787
+ "description": "First line of address. Max length 64 bytes or 30 characters.",
788
+ "type": "string"
789
+ },
790
+ "address2": {
791
+ "description": "Second line of address. Max length 64 bytes or 30 characters.",
792
+ "type": "string"
793
+ },
794
+ "city": {
795
+ "description": "City. Max length 60 bytes or 30 characters.",
796
+ "type": "string"
797
+ },
798
+ "company": {
799
+ "description": "Name of the company. Max length 255 bytes or 34 characters.",
800
+ "type": "string"
801
+ },
802
+ "contact": {
803
+ "description": "Contact name of the company. Max length 128 bytes or 34 characters.",
804
+ "type": "string"
805
+ },
806
+ "fax": {
807
+ "description": "Fax number with international code (i.e. +441234567890).",
808
+ "type": "string"
809
+ },
810
+ "phone": {
811
+ "description": "Phone number with international code (i.e. +441234567890).",
812
+ "type": "string"
813
+ },
814
+ "regionCode": {
815
+ "description": "Country/Region code. The region is specified as a CLDR region code (e.g. \"US\", \"FR\").",
816
+ "type": "string"
817
+ },
818
+ "state": {
819
+ "description": "State. Max length 60 bytes or 30 characters.",
820
+ "type": "string"
821
+ },
822
+ "zip": {
823
+ "description": "Zip/post code. Max length 10 bytes or 10 characters.",
824
+ "type": "string"
825
+ }
826
+ },
827
+ "type": "object"
828
+ },
829
+ "CloseAccountRequest": {
830
+ "description": "Request definition for the account close rpc.",
831
+ "id": "CloseAccountRequest",
832
+ "properties": {},
833
+ "type": "object"
834
+ },
835
+ "CloseAccountResponse": {
836
+ "description": "Response definition for the account close rpc.",
837
+ "id": "CloseAccountResponse",
838
+ "properties": {},
839
+ "type": "object"
840
+ },
841
+ "Decimal": {
842
+ "description": "A representation of a decimal value, such as 2.5. Clients may convert values into language-native decimal formats, such as Java's [BigDecimal](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html) or Python's [decimal.Decimal](https://docs.python.org/3/library/decimal.html).",
843
+ "id": "Decimal",
844
+ "properties": {
845
+ "value": {
846
+ "description": "The decimal value, as a string. The string representation consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of zero or more decimal digits (\"the integer\"), optionally followed by a fraction, optionally followed by an exponent. An empty string **should** be interpreted as `0`. The fraction consists of a decimal point followed by zero or more decimal digits. The string must contain at least one digit in either the integer or the fraction. The number formed by the sign, the integer and the fraction is referred to as the significand. The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal digits. Services **should** normalize decimal values before storing them by: - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may** perform additional normalization based on its own needs and the internal decimal implementation selected, such as shifting the decimal point and exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services **may** preserve trailing zeroes in the fraction to indicate increased precision, but are not required to do so. Note that only the `.` character is supported to divide the integer and the fraction; `,` **should not** be supported regardless of locale. Additionally, thousand separators **should not** be supported. If a service does support them, values **must** be normalized. The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should** clearly document the range of supported values, the maximum supported precision (total number of digits), and, if applicable, the scale (number of digits after the decimal point), as well as how it behaves when receiving out-of-bounds values. Services **may** choose to accept values passed as input even when the value has a higher precision or scale than the service supports, and **should** round the value to fit the supported scale. Alternatively, the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service receives a value outside of the supported range.",
847
+ "type": "string"
848
+ }
849
+ },
850
+ "type": "object"
851
+ },
852
+ "Empty": {
853
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
854
+ "id": "Empty",
855
+ "properties": {},
856
+ "type": "object"
857
+ },
858
+ "Event": {
859
+ "description": "A platform sub-account event to record spam signals.",
860
+ "id": "Event",
861
+ "properties": {
862
+ "eventInfo": {
863
+ "$ref": "EventInfo",
864
+ "description": "Required. Information associated with the event."
865
+ },
866
+ "eventTime": {
867
+ "description": "Required. Event timestamp.",
868
+ "format": "google-datetime",
869
+ "type": "string"
870
+ },
871
+ "eventType": {
872
+ "description": "Required. Event type.",
873
+ "enum": [
874
+ "EVENT_TYPE_UNSPECIFIED",
875
+ "LOG_IN_VIA_PLATFORM",
876
+ "SIGN_UP_VIA_PLATFORM"
877
+ ],
878
+ "enumDescriptions": [
879
+ "Do not use. You must set an event type explicitly.",
880
+ "Log in via platform.",
881
+ "Sign up via platform."
882
+ ],
883
+ "type": "string"
884
+ }
885
+ },
886
+ "type": "object"
887
+ },
888
+ "EventInfo": {
889
+ "description": "Private information for partner recorded events (PII).",
890
+ "id": "EventInfo",
891
+ "properties": {
892
+ "billingAddress": {
893
+ "$ref": "Address",
894
+ "description": "The billing address of the publisher associated with this event, if available."
895
+ },
896
+ "email": {
897
+ "description": "Required. The email address that is associated with the publisher when performing the event.",
898
+ "type": "string"
899
+ }
900
+ },
901
+ "type": "object"
902
+ },
903
+ "ListAccountsResponse": {
904
+ "description": "Response definition for the list accounts rpc.",
905
+ "id": "ListAccountsResponse",
906
+ "properties": {
907
+ "accounts": {
908
+ "description": "The Accounts returned in the list response. Represented by a partial view of the Account resource, populating `name` and `creation_request_id`.",
909
+ "items": {
910
+ "$ref": "Account"
911
+ },
912
+ "type": "array"
913
+ },
914
+ "nextPageToken": {
915
+ "description": "Continuation token used to page through accounts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
916
+ "type": "string"
917
+ }
918
+ },
919
+ "type": "object"
920
+ },
921
+ "ListPlatformChildSitesResponse": {
922
+ "description": "Response definition for the list platform child sites rpc.",
923
+ "id": "ListPlatformChildSitesResponse",
924
+ "properties": {
925
+ "nextPageToken": {
926
+ "description": "Continuation token used to page through platforms. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
927
+ "type": "string"
928
+ },
929
+ "platformChildSites": {
930
+ "description": "The platform child sites returned in this list response.",
931
+ "items": {
932
+ "$ref": "PlatformChildSite"
933
+ },
934
+ "type": "array"
935
+ }
936
+ },
937
+ "type": "object"
938
+ },
939
+ "ListPlatformGroupsResponse": {
940
+ "description": "Response definition for the platform groups list rpc.",
941
+ "id": "ListPlatformGroupsResponse",
942
+ "properties": {
943
+ "nextPageToken": {
944
+ "description": "Continuation token used to page through platforms. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
945
+ "type": "string"
946
+ },
947
+ "platformGroups": {
948
+ "description": "The platform groups returned in this list response.",
949
+ "items": {
950
+ "$ref": "PlatformGroup"
951
+ },
952
+ "type": "array"
953
+ }
954
+ },
955
+ "type": "object"
956
+ },
957
+ "ListPlatformsResponse": {
958
+ "description": "Response definition for the platform list rpc.",
959
+ "id": "ListPlatformsResponse",
960
+ "properties": {
961
+ "nextPageToken": {
962
+ "description": "Continuation token used to page through platforms. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
963
+ "type": "string"
964
+ },
965
+ "platforms": {
966
+ "description": "The platforms returned in this list response.",
967
+ "items": {
968
+ "$ref": "Platform"
969
+ },
970
+ "type": "array"
971
+ }
972
+ },
973
+ "type": "object"
974
+ },
975
+ "ListSitesResponse": {
976
+ "description": "Response definition for the site list rpc.",
977
+ "id": "ListSitesResponse",
978
+ "properties": {
979
+ "nextPageToken": {
980
+ "description": "Continuation token used to page through sites. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
981
+ "type": "string"
982
+ },
983
+ "sites": {
984
+ "description": "The sites returned in this list response.",
985
+ "items": {
986
+ "$ref": "Site"
987
+ },
988
+ "type": "array"
989
+ }
990
+ },
991
+ "type": "object"
992
+ },
993
+ "LookupAccountResponse": {
994
+ "description": "Response definition for the lookup account rpc.",
995
+ "id": "LookupAccountResponse",
996
+ "properties": {
997
+ "name": {
998
+ "description": "The name of the Account Format: platforms/{platform}/accounts/{account_id}",
999
+ "type": "string"
1000
+ }
1001
+ },
1002
+ "type": "object"
1003
+ },
1004
+ "Platform": {
1005
+ "description": "Representation of a Transparent Platform.",
1006
+ "id": "Platform",
1007
+ "properties": {
1008
+ "defaultPlatformGroup": {
1009
+ "description": "Default platform group for the platform.",
1010
+ "type": "string"
1011
+ },
1012
+ "description": {
1013
+ "description": "Output only. Description of the platform.",
1014
+ "readOnly": true,
1015
+ "type": "string"
1016
+ },
1017
+ "name": {
1018
+ "description": "Identifier. Resource name of a platform. Format: accounts/{account}/platforms/{platform}",
1019
+ "type": "string"
1020
+ }
1021
+ },
1022
+ "type": "object"
1023
+ },
1024
+ "PlatformChildSite": {
1025
+ "description": "Representation of a Transparent Platform Child Site.",
1026
+ "id": "PlatformChildSite",
1027
+ "properties": {
1028
+ "domain": {
1029
+ "description": "Output only. Domain URL of the Platform Child Site. Part of the PlatformChildSite name.",
1030
+ "readOnly": true,
1031
+ "type": "string"
1032
+ },
1033
+ "name": {
1034
+ "description": "Identifier. Format: accounts/{account}/platforms/{platform}/childAccounts/{child_account}/sites/{platform_child_site}",
1035
+ "type": "string"
1036
+ },
1037
+ "platformGroup": {
1038
+ "description": "Resource name of the Platform Group of the Platform Child Site.",
1039
+ "type": "string"
1040
+ }
1041
+ },
1042
+ "type": "object"
1043
+ },
1044
+ "PlatformGroup": {
1045
+ "description": "Representation of a Transparent Platform Group.",
1046
+ "id": "PlatformGroup",
1047
+ "properties": {
1048
+ "description": {
1049
+ "description": "Required. Description of the PlatformGroup.",
1050
+ "type": "string"
1051
+ },
1052
+ "name": {
1053
+ "description": "Identifier. Format: accounts/{account}/platforms/{platform}/groups/{platform_group}",
1054
+ "type": "string"
1055
+ },
1056
+ "revshareMillipercent": {
1057
+ "$ref": "Decimal",
1058
+ "description": "Output only. The revenue share of the PlatformGroup, in millipercent (e.g. 15000 = 15%).",
1059
+ "readOnly": true
1060
+ }
1061
+ },
1062
+ "type": "object"
1063
+ },
1064
+ "RequestSiteReviewResponse": {
1065
+ "description": "Response definition for the site request review rpc.",
1066
+ "id": "RequestSiteReviewResponse",
1067
+ "properties": {},
1068
+ "type": "object"
1069
+ },
1070
+ "Site": {
1071
+ "description": "Representation of a Site.",
1072
+ "id": "Site",
1073
+ "properties": {
1074
+ "domain": {
1075
+ "description": "Domain/sub-domain of the site. Must be a valid domain complying with [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt) and formatted as punycode [RFC 3492](https://www.ietf.org/rfc/rfc3492.txt) in case the domain contains unicode characters.",
1076
+ "type": "string"
1077
+ },
1078
+ "name": {
1079
+ "description": "Output only. Resource name of a site. Format: platforms/{platform}/accounts/{account}/sites/{site}",
1080
+ "readOnly": true,
1081
+ "type": "string"
1082
+ },
1083
+ "state": {
1084
+ "description": "Output only. State of a site.",
1085
+ "enum": [
1086
+ "STATE_UNSPECIFIED",
1087
+ "REQUIRES_REVIEW",
1088
+ "GETTING_READY",
1089
+ "READY",
1090
+ "NEEDS_ATTENTION"
1091
+ ],
1092
+ "enumDescriptions": [
1093
+ "State unspecified.",
1094
+ "Either: - The site hasn't been checked yet. - The site is inactive and needs another review before it can show ads again. Learn how to [request a review for an inactive site](https://support.google.com/adsense/answer/9393996).",
1095
+ "Google is running some checks on the site. This usually takes a few days, but in some cases it can take two to four weeks.",
1096
+ "The site is ready to show ads. Learn how to [set up ads on the site](https://support.google.com/adsense/answer/7037624).",
1097
+ "Publisher needs to fix some issues before the site is ready to show ads. Learn what to do [if a new site isn't ready](https://support.google.com/adsense/answer/9061852)."
1098
+ ],
1099
+ "readOnly": true,
1100
+ "type": "string"
1101
+ }
1102
+ },
1103
+ "type": "object"
1104
+ },
1105
+ "TimeZone": {
1106
+ "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
1107
+ "id": "TimeZone",
1108
+ "properties": {
1109
+ "id": {
1110
+ "description": "IANA Time Zone Database time zone. For example \"America/New_York\".",
1111
+ "type": "string"
1112
+ },
1113
+ "version": {
1114
+ "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
1115
+ "type": "string"
1116
+ }
1117
+ },
1118
+ "type": "object"
1119
+ }
1120
+ },
1121
+ "servicePath": "",
1122
+ "title": "AdSense Platform API",
1123
+ "version": "v1alpha",
1124
+ "version_module": true
1125
+ }
DiscoveryJson/advisorynotifications.v1.json ADDED
@@ -0,0 +1,656 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://advisorynotifications.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "canonicalName": "Advisorynotifications",
15
+ "description": "An API for accessing Advisory Notifications in Google Cloud",
16
+ "discoveryVersion": "v1",
17
+ "documentationLink": "https://cloud.google.com/advisory-notifications",
18
+ "fullyEncodeReservedExpansion": true,
19
+ "icons": {
20
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
21
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
22
+ },
23
+ "id": "advisorynotifications:v1",
24
+ "kind": "discovery#restDescription",
25
+ "mtlsRootUrl": "https://advisorynotifications.mtls.googleapis.com/",
26
+ "name": "advisorynotifications",
27
+ "ownerDomain": "google.com",
28
+ "ownerName": "Google",
29
+ "parameters": {
30
+ "$.xgafv": {
31
+ "description": "V1 error format.",
32
+ "enum": [
33
+ "1",
34
+ "2"
35
+ ],
36
+ "enumDescriptions": [
37
+ "v1 error format",
38
+ "v2 error format"
39
+ ],
40
+ "location": "query",
41
+ "type": "string"
42
+ },
43
+ "access_token": {
44
+ "description": "OAuth access token.",
45
+ "location": "query",
46
+ "type": "string"
47
+ },
48
+ "alt": {
49
+ "default": "json",
50
+ "description": "Data format for response.",
51
+ "enum": [
52
+ "json",
53
+ "media",
54
+ "proto"
55
+ ],
56
+ "enumDescriptions": [
57
+ "Responses with Content-Type of application/json",
58
+ "Media download with context-dependent Content-Type",
59
+ "Responses with Content-Type of application/x-protobuf"
60
+ ],
61
+ "location": "query",
62
+ "type": "string"
63
+ },
64
+ "callback": {
65
+ "description": "JSONP",
66
+ "location": "query",
67
+ "type": "string"
68
+ },
69
+ "fields": {
70
+ "description": "Selector specifying which fields to include in a partial response.",
71
+ "location": "query",
72
+ "type": "string"
73
+ },
74
+ "key": {
75
+ "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.",
76
+ "location": "query",
77
+ "type": "string"
78
+ },
79
+ "oauth_token": {
80
+ "description": "OAuth 2.0 token for the current user.",
81
+ "location": "query",
82
+ "type": "string"
83
+ },
84
+ "prettyPrint": {
85
+ "default": "true",
86
+ "description": "Returns response with indentations and line breaks.",
87
+ "location": "query",
88
+ "type": "boolean"
89
+ },
90
+ "quotaUser": {
91
+ "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.",
92
+ "location": "query",
93
+ "type": "string"
94
+ },
95
+ "uploadType": {
96
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97
+ "location": "query",
98
+ "type": "string"
99
+ },
100
+ "upload_protocol": {
101
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102
+ "location": "query",
103
+ "type": "string"
104
+ }
105
+ },
106
+ "protocol": "rest",
107
+ "resources": {
108
+ "organizations": {
109
+ "resources": {
110
+ "locations": {
111
+ "methods": {
112
+ "getSettings": {
113
+ "description": "Get notification settings.",
114
+ "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings",
115
+ "httpMethod": "GET",
116
+ "id": "advisorynotifications.organizations.locations.getSettings",
117
+ "parameterOrder": [
118
+ "name"
119
+ ],
120
+ "parameters": {
121
+ "name": {
122
+ "description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
123
+ "location": "path",
124
+ "pattern": "^organizations/[^/]+/locations/[^/]+/settings$",
125
+ "required": true,
126
+ "type": "string"
127
+ }
128
+ },
129
+ "path": "v1/{+name}",
130
+ "response": {
131
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
132
+ },
133
+ "scopes": [
134
+ "https://www.googleapis.com/auth/cloud-platform"
135
+ ]
136
+ },
137
+ "updateSettings": {
138
+ "description": "Update notification settings.",
139
+ "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings",
140
+ "httpMethod": "PATCH",
141
+ "id": "advisorynotifications.organizations.locations.updateSettings",
142
+ "parameterOrder": [
143
+ "name"
144
+ ],
145
+ "parameters": {
146
+ "name": {
147
+ "description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
148
+ "location": "path",
149
+ "pattern": "^organizations/[^/]+/locations/[^/]+/settings$",
150
+ "required": true,
151
+ "type": "string"
152
+ }
153
+ },
154
+ "path": "v1/{+name}",
155
+ "request": {
156
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
157
+ },
158
+ "response": {
159
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
160
+ },
161
+ "scopes": [
162
+ "https://www.googleapis.com/auth/cloud-platform"
163
+ ]
164
+ }
165
+ },
166
+ "resources": {
167
+ "notifications": {
168
+ "methods": {
169
+ "get": {
170
+ "description": "Gets a notification.",
171
+ "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications/{notificationsId}",
172
+ "httpMethod": "GET",
173
+ "id": "advisorynotifications.organizations.locations.notifications.get",
174
+ "parameterOrder": [
175
+ "name"
176
+ ],
177
+ "parameters": {
178
+ "languageCode": {
179
+ "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
180
+ "location": "query",
181
+ "type": "string"
182
+ },
183
+ "name": {
184
+ "description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.",
185
+ "location": "path",
186
+ "pattern": "^organizations/[^/]+/locations/[^/]+/notifications/[^/]+$",
187
+ "required": true,
188
+ "type": "string"
189
+ }
190
+ },
191
+ "path": "v1/{+name}",
192
+ "response": {
193
+ "$ref": "GoogleCloudAdvisorynotificationsV1Notification"
194
+ },
195
+ "scopes": [
196
+ "https://www.googleapis.com/auth/cloud-platform"
197
+ ]
198
+ },
199
+ "list": {
200
+ "description": "Lists notifications under a given parent.",
201
+ "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications",
202
+ "httpMethod": "GET",
203
+ "id": "advisorynotifications.organizations.locations.notifications.list",
204
+ "parameterOrder": [
205
+ "parent"
206
+ ],
207
+ "parameters": {
208
+ "languageCode": {
209
+ "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
210
+ "location": "query",
211
+ "type": "string"
212
+ },
213
+ "pageSize": {
214
+ "description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.",
215
+ "format": "int32",
216
+ "location": "query",
217
+ "type": "integer"
218
+ },
219
+ "pageToken": {
220
+ "description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.",
221
+ "location": "query",
222
+ "type": "string"
223
+ },
224
+ "parent": {
225
+ "description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".",
226
+ "location": "path",
227
+ "pattern": "^organizations/[^/]+/locations/[^/]+$",
228
+ "required": true,
229
+ "type": "string"
230
+ },
231
+ "view": {
232
+ "description": "Specifies which parts of the notification resource should be returned in the response.",
233
+ "enum": [
234
+ "NOTIFICATION_VIEW_UNSPECIFIED",
235
+ "BASIC",
236
+ "FULL"
237
+ ],
238
+ "enumDescriptions": [
239
+ "Not specified, equivalent to BASIC.",
240
+ "Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.",
241
+ "Include everything."
242
+ ],
243
+ "location": "query",
244
+ "type": "string"
245
+ }
246
+ },
247
+ "path": "v1/{+parent}/notifications",
248
+ "response": {
249
+ "$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse"
250
+ },
251
+ "scopes": [
252
+ "https://www.googleapis.com/auth/cloud-platform"
253
+ ]
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+ },
261
+ "projects": {
262
+ "resources": {
263
+ "locations": {
264
+ "methods": {
265
+ "getSettings": {
266
+ "description": "Get notification settings.",
267
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
268
+ "httpMethod": "GET",
269
+ "id": "advisorynotifications.projects.locations.getSettings",
270
+ "parameterOrder": [
271
+ "name"
272
+ ],
273
+ "parameters": {
274
+ "name": {
275
+ "description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
276
+ "location": "path",
277
+ "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
278
+ "required": true,
279
+ "type": "string"
280
+ }
281
+ },
282
+ "path": "v1/{+name}",
283
+ "response": {
284
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
285
+ },
286
+ "scopes": [
287
+ "https://www.googleapis.com/auth/cloud-platform"
288
+ ]
289
+ },
290
+ "updateSettings": {
291
+ "description": "Update notification settings.",
292
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
293
+ "httpMethod": "PATCH",
294
+ "id": "advisorynotifications.projects.locations.updateSettings",
295
+ "parameterOrder": [
296
+ "name"
297
+ ],
298
+ "parameters": {
299
+ "name": {
300
+ "description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
301
+ "location": "path",
302
+ "pattern": "^projects/[^/]+/locations/[^/]+/settings$",
303
+ "required": true,
304
+ "type": "string"
305
+ }
306
+ },
307
+ "path": "v1/{+name}",
308
+ "request": {
309
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
310
+ },
311
+ "response": {
312
+ "$ref": "GoogleCloudAdvisorynotificationsV1Settings"
313
+ },
314
+ "scopes": [
315
+ "https://www.googleapis.com/auth/cloud-platform"
316
+ ]
317
+ }
318
+ },
319
+ "resources": {
320
+ "notifications": {
321
+ "methods": {
322
+ "get": {
323
+ "description": "Gets a notification.",
324
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications/{notificationsId}",
325
+ "httpMethod": "GET",
326
+ "id": "advisorynotifications.projects.locations.notifications.get",
327
+ "parameterOrder": [
328
+ "name"
329
+ ],
330
+ "parameters": {
331
+ "languageCode": {
332
+ "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
333
+ "location": "query",
334
+ "type": "string"
335
+ },
336
+ "name": {
337
+ "description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.",
338
+ "location": "path",
339
+ "pattern": "^projects/[^/]+/locations/[^/]+/notifications/[^/]+$",
340
+ "required": true,
341
+ "type": "string"
342
+ }
343
+ },
344
+ "path": "v1/{+name}",
345
+ "response": {
346
+ "$ref": "GoogleCloudAdvisorynotificationsV1Notification"
347
+ },
348
+ "scopes": [
349
+ "https://www.googleapis.com/auth/cloud-platform"
350
+ ]
351
+ },
352
+ "list": {
353
+ "description": "Lists notifications under a given parent.",
354
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications",
355
+ "httpMethod": "GET",
356
+ "id": "advisorynotifications.projects.locations.notifications.list",
357
+ "parameterOrder": [
358
+ "parent"
359
+ ],
360
+ "parameters": {
361
+ "languageCode": {
362
+ "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
363
+ "location": "query",
364
+ "type": "string"
365
+ },
366
+ "pageSize": {
367
+ "description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.",
368
+ "format": "int32",
369
+ "location": "query",
370
+ "type": "integer"
371
+ },
372
+ "pageToken": {
373
+ "description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.",
374
+ "location": "query",
375
+ "type": "string"
376
+ },
377
+ "parent": {
378
+ "description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".",
379
+ "location": "path",
380
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
381
+ "required": true,
382
+ "type": "string"
383
+ },
384
+ "view": {
385
+ "description": "Specifies which parts of the notification resource should be returned in the response.",
386
+ "enum": [
387
+ "NOTIFICATION_VIEW_UNSPECIFIED",
388
+ "BASIC",
389
+ "FULL"
390
+ ],
391
+ "enumDescriptions": [
392
+ "Not specified, equivalent to BASIC.",
393
+ "Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.",
394
+ "Include everything."
395
+ ],
396
+ "location": "query",
397
+ "type": "string"
398
+ }
399
+ },
400
+ "path": "v1/{+parent}/notifications",
401
+ "response": {
402
+ "$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse"
403
+ },
404
+ "scopes": [
405
+ "https://www.googleapis.com/auth/cloud-platform"
406
+ ]
407
+ }
408
+ }
409
+ }
410
+ }
411
+ }
412
+ }
413
+ }
414
+ },
415
+ "revision": "20240331",
416
+ "rootUrl": "https://advisorynotifications.googleapis.com/",
417
+ "schemas": {
418
+ "GoogleCloudAdvisorynotificationsV1Attachment": {
419
+ "description": "Attachment with specific information about the issue.",
420
+ "id": "GoogleCloudAdvisorynotificationsV1Attachment",
421
+ "properties": {
422
+ "csv": {
423
+ "$ref": "GoogleCloudAdvisorynotificationsV1Csv",
424
+ "description": "A CSV file attachment. Max size is 10 MB."
425
+ },
426
+ "displayName": {
427
+ "description": "The title of the attachment.",
428
+ "type": "string"
429
+ }
430
+ },
431
+ "type": "object"
432
+ },
433
+ "GoogleCloudAdvisorynotificationsV1Csv": {
434
+ "description": "A representation of a CSV file attachment, as a list of column headers and a list of data rows.",
435
+ "id": "GoogleCloudAdvisorynotificationsV1Csv",
436
+ "properties": {
437
+ "dataRows": {
438
+ "description": "The list of data rows in a CSV file, as string arrays rather than as a single comma-separated string.",
439
+ "items": {
440
+ "$ref": "GoogleCloudAdvisorynotificationsV1CsvCsvRow"
441
+ },
442
+ "type": "array"
443
+ },
444
+ "headers": {
445
+ "description": "The list of headers for data columns in a CSV file.",
446
+ "items": {
447
+ "type": "string"
448
+ },
449
+ "type": "array"
450
+ }
451
+ },
452
+ "type": "object"
453
+ },
454
+ "GoogleCloudAdvisorynotificationsV1CsvCsvRow": {
455
+ "description": "A representation of a single data row in a CSV file.",
456
+ "id": "GoogleCloudAdvisorynotificationsV1CsvCsvRow",
457
+ "properties": {
458
+ "entries": {
459
+ "description": "The data entries in a CSV file row, as a string array rather than a single comma-separated string.",
460
+ "items": {
461
+ "type": "string"
462
+ },
463
+ "type": "array"
464
+ }
465
+ },
466
+ "type": "object"
467
+ },
468
+ "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse": {
469
+ "description": "Response of ListNotifications endpoint.",
470
+ "id": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse",
471
+ "properties": {
472
+ "nextPageToken": {
473
+ "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
474
+ "type": "string"
475
+ },
476
+ "notifications": {
477
+ "description": "List of notifications under a given parent.",
478
+ "items": {
479
+ "$ref": "GoogleCloudAdvisorynotificationsV1Notification"
480
+ },
481
+ "type": "array"
482
+ },
483
+ "totalSize": {
484
+ "description": "Estimation of a total number of notifications.",
485
+ "format": "int32",
486
+ "type": "integer"
487
+ }
488
+ },
489
+ "type": "object"
490
+ },
491
+ "GoogleCloudAdvisorynotificationsV1Message": {
492
+ "description": "A message which contains notification details.",
493
+ "id": "GoogleCloudAdvisorynotificationsV1Message",
494
+ "properties": {
495
+ "attachments": {
496
+ "description": "The attachments to download.",
497
+ "items": {
498
+ "$ref": "GoogleCloudAdvisorynotificationsV1Attachment"
499
+ },
500
+ "type": "array"
501
+ },
502
+ "body": {
503
+ "$ref": "GoogleCloudAdvisorynotificationsV1MessageBody",
504
+ "description": "The message content."
505
+ },
506
+ "createTime": {
507
+ "description": "The Message creation timestamp.",
508
+ "format": "google-datetime",
509
+ "type": "string"
510
+ },
511
+ "localizationTime": {
512
+ "description": "Time when Message was localized",
513
+ "format": "google-datetime",
514
+ "type": "string"
515
+ }
516
+ },
517
+ "type": "object"
518
+ },
519
+ "GoogleCloudAdvisorynotificationsV1MessageBody": {
520
+ "description": "A message body containing text.",
521
+ "id": "GoogleCloudAdvisorynotificationsV1MessageBody",
522
+ "properties": {
523
+ "text": {
524
+ "$ref": "GoogleCloudAdvisorynotificationsV1Text",
525
+ "description": "The text content of the message body."
526
+ }
527
+ },
528
+ "type": "object"
529
+ },
530
+ "GoogleCloudAdvisorynotificationsV1Notification": {
531
+ "description": "A notification object for notifying customers about security and privacy issues.",
532
+ "id": "GoogleCloudAdvisorynotificationsV1Notification",
533
+ "properties": {
534
+ "createTime": {
535
+ "description": "Output only. Time the notification was created.",
536
+ "format": "google-datetime",
537
+ "readOnly": true,
538
+ "type": "string"
539
+ },
540
+ "messages": {
541
+ "description": "A list of messages in the notification.",
542
+ "items": {
543
+ "$ref": "GoogleCloudAdvisorynotificationsV1Message"
544
+ },
545
+ "type": "array"
546
+ },
547
+ "name": {
548
+ "description": "The resource name of the notification. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{project}/locations/{location}/notifications/{notification}.",
549
+ "type": "string"
550
+ },
551
+ "notificationType": {
552
+ "description": "Type of notification",
553
+ "enum": [
554
+ "NOTIFICATION_TYPE_UNSPECIFIED",
555
+ "NOTIFICATION_TYPE_SECURITY_PRIVACY_ADVISORY",
556
+ "NOTIFICATION_TYPE_SENSITIVE_ACTIONS",
557
+ "NOTIFICATION_TYPE_SECURITY_MSA",
558
+ "NOTIFICATION_TYPE_THREAT_HORIZONS"
559
+ ],
560
+ "enumDescriptions": [
561
+ "Default type",
562
+ "Security and privacy advisory notifications",
563
+ "Sensitive action notifications",
564
+ "General security MSA",
565
+ "Threat horizons MSA"
566
+ ],
567
+ "type": "string"
568
+ },
569
+ "subject": {
570
+ "$ref": "GoogleCloudAdvisorynotificationsV1Subject",
571
+ "description": "The subject line of the notification."
572
+ }
573
+ },
574
+ "type": "object"
575
+ },
576
+ "GoogleCloudAdvisorynotificationsV1NotificationSettings": {
577
+ "description": "Settings for each NotificationType.",
578
+ "id": "GoogleCloudAdvisorynotificationsV1NotificationSettings",
579
+ "properties": {
580
+ "enabled": {
581
+ "description": "Whether the associated NotificationType is enabled.",
582
+ "type": "boolean"
583
+ }
584
+ },
585
+ "type": "object"
586
+ },
587
+ "GoogleCloudAdvisorynotificationsV1Settings": {
588
+ "description": "Settings for Advisory Notifications.",
589
+ "id": "GoogleCloudAdvisorynotificationsV1Settings",
590
+ "properties": {
591
+ "etag": {
592
+ "description": "Required. Fingerprint for optimistic concurrency returned in Get requests. Must be provided for Update requests. If the value provided does not match the value known to the server, ABORTED will be thrown, and the client should retry the read-modify-write cycle.",
593
+ "type": "string"
594
+ },
595
+ "name": {
596
+ "description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
597
+ "type": "string"
598
+ },
599
+ "notificationSettings": {
600
+ "additionalProperties": {
601
+ "$ref": "GoogleCloudAdvisorynotificationsV1NotificationSettings"
602
+ },
603
+ "description": "Required. Map of each notification type and its settings to get/set all settings at once. The server will validate the value for each notification type.",
604
+ "type": "object"
605
+ }
606
+ },
607
+ "type": "object"
608
+ },
609
+ "GoogleCloudAdvisorynotificationsV1Subject": {
610
+ "description": "A subject line of a notification.",
611
+ "id": "GoogleCloudAdvisorynotificationsV1Subject",
612
+ "properties": {
613
+ "text": {
614
+ "$ref": "GoogleCloudAdvisorynotificationsV1Text",
615
+ "description": "The text content."
616
+ }
617
+ },
618
+ "type": "object"
619
+ },
620
+ "GoogleCloudAdvisorynotificationsV1Text": {
621
+ "description": "A text object containing the English text and its localized copies.",
622
+ "id": "GoogleCloudAdvisorynotificationsV1Text",
623
+ "properties": {
624
+ "enText": {
625
+ "description": "The English copy.",
626
+ "type": "string"
627
+ },
628
+ "localizationState": {
629
+ "description": "Status of the localization.",
630
+ "enum": [
631
+ "LOCALIZATION_STATE_UNSPECIFIED",
632
+ "LOCALIZATION_STATE_NOT_APPLICABLE",
633
+ "LOCALIZATION_STATE_PENDING",
634
+ "LOCALIZATION_STATE_COMPLETED"
635
+ ],
636
+ "enumDescriptions": [
637
+ "Not used.",
638
+ "Localization is not applicable for requested language. This can happen when: - The requested language was not supported by Advisory Notifications at the time of localization (including notifications created before the localization feature was launched). - The requested language is English, so only the English text is returned.",
639
+ "Localization for requested language is in progress, and not ready yet.",
640
+ "Localization for requested language is completed."
641
+ ],
642
+ "type": "string"
643
+ },
644
+ "localizedText": {
645
+ "description": "The requested localized copy (if applicable).",
646
+ "type": "string"
647
+ }
648
+ },
649
+ "type": "object"
650
+ }
651
+ },
652
+ "servicePath": "",
653
+ "title": "Advisory Notifications API",
654
+ "version": "v1",
655
+ "version_module": true
656
+ }
DiscoveryJson/aiplatform.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/aiplatform.v1beta1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/airquality.v1.json ADDED
@@ -0,0 +1,875 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://airquality.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "canonicalName": "Air Quality",
15
+ "description": "The Air Quality API.",
16
+ "discoveryVersion": "v1",
17
+ "documentationLink": "https://developers.google.com/maps/documentation/air-quality",
18
+ "fullyEncodeReservedExpansion": true,
19
+ "icons": {
20
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
21
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
22
+ },
23
+ "id": "airquality:v1",
24
+ "kind": "discovery#restDescription",
25
+ "mtlsRootUrl": "https://airquality.mtls.googleapis.com/",
26
+ "name": "airquality",
27
+ "ownerDomain": "google.com",
28
+ "ownerName": "Google",
29
+ "parameters": {
30
+ "$.xgafv": {
31
+ "description": "V1 error format.",
32
+ "enum": [
33
+ "1",
34
+ "2"
35
+ ],
36
+ "enumDescriptions": [
37
+ "v1 error format",
38
+ "v2 error format"
39
+ ],
40
+ "location": "query",
41
+ "type": "string"
42
+ },
43
+ "access_token": {
44
+ "description": "OAuth access token.",
45
+ "location": "query",
46
+ "type": "string"
47
+ },
48
+ "alt": {
49
+ "default": "json",
50
+ "description": "Data format for response.",
51
+ "enum": [
52
+ "json",
53
+ "media",
54
+ "proto"
55
+ ],
56
+ "enumDescriptions": [
57
+ "Responses with Content-Type of application/json",
58
+ "Media download with context-dependent Content-Type",
59
+ "Responses with Content-Type of application/x-protobuf"
60
+ ],
61
+ "location": "query",
62
+ "type": "string"
63
+ },
64
+ "callback": {
65
+ "description": "JSONP",
66
+ "location": "query",
67
+ "type": "string"
68
+ },
69
+ "fields": {
70
+ "description": "Selector specifying which fields to include in a partial response.",
71
+ "location": "query",
72
+ "type": "string"
73
+ },
74
+ "key": {
75
+ "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.",
76
+ "location": "query",
77
+ "type": "string"
78
+ },
79
+ "oauth_token": {
80
+ "description": "OAuth 2.0 token for the current user.",
81
+ "location": "query",
82
+ "type": "string"
83
+ },
84
+ "prettyPrint": {
85
+ "default": "true",
86
+ "description": "Returns response with indentations and line breaks.",
87
+ "location": "query",
88
+ "type": "boolean"
89
+ },
90
+ "quotaUser": {
91
+ "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.",
92
+ "location": "query",
93
+ "type": "string"
94
+ },
95
+ "uploadType": {
96
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97
+ "location": "query",
98
+ "type": "string"
99
+ },
100
+ "upload_protocol": {
101
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102
+ "location": "query",
103
+ "type": "string"
104
+ }
105
+ },
106
+ "protocol": "rest",
107
+ "resources": {
108
+ "currentConditions": {
109
+ "methods": {
110
+ "lookup": {
111
+ "description": "The Current Conditions endpoint provides hourly air quality information in more than 100 countries, up to a 500 x 500 meters resolution. Includes over 70 local indexes and global air quality index and categories.",
112
+ "flatPath": "v1/currentConditions:lookup",
113
+ "httpMethod": "POST",
114
+ "id": "airquality.currentConditions.lookup",
115
+ "parameterOrder": [],
116
+ "parameters": {},
117
+ "path": "v1/currentConditions:lookup",
118
+ "request": {
119
+ "$ref": "LookupCurrentConditionsRequest"
120
+ },
121
+ "response": {
122
+ "$ref": "LookupCurrentConditionsResponse"
123
+ },
124
+ "scopes": [
125
+ "https://www.googleapis.com/auth/cloud-platform"
126
+ ]
127
+ }
128
+ }
129
+ },
130
+ "forecast": {
131
+ "methods": {
132
+ "lookup": {
133
+ "description": "Returns air quality forecast for a specific location for a given time range.",
134
+ "flatPath": "v1/forecast:lookup",
135
+ "httpMethod": "POST",
136
+ "id": "airquality.forecast.lookup",
137
+ "parameterOrder": [],
138
+ "parameters": {},
139
+ "path": "v1/forecast:lookup",
140
+ "request": {
141
+ "$ref": "LookupForecastRequest"
142
+ },
143
+ "response": {
144
+ "$ref": "LookupForecastResponse"
145
+ },
146
+ "scopes": [
147
+ "https://www.googleapis.com/auth/cloud-platform"
148
+ ]
149
+ }
150
+ }
151
+ },
152
+ "history": {
153
+ "methods": {
154
+ "lookup": {
155
+ "description": "Returns air quality history for a specific location for a given time range.",
156
+ "flatPath": "v1/history:lookup",
157
+ "httpMethod": "POST",
158
+ "id": "airquality.history.lookup",
159
+ "parameterOrder": [],
160
+ "parameters": {},
161
+ "path": "v1/history:lookup",
162
+ "request": {
163
+ "$ref": "LookupHistoryRequest"
164
+ },
165
+ "response": {
166
+ "$ref": "LookupHistoryResponse"
167
+ },
168
+ "scopes": [
169
+ "https://www.googleapis.com/auth/cloud-platform"
170
+ ]
171
+ }
172
+ }
173
+ },
174
+ "mapTypes": {
175
+ "resources": {
176
+ "heatmapTiles": {
177
+ "methods": {
178
+ "lookupHeatmapTile": {
179
+ "description": "Returns a bytes array containing the data of the tile PNG image.",
180
+ "flatPath": "v1/mapTypes/{mapType}/heatmapTiles/{zoom}/{x}/{y}",
181
+ "httpMethod": "GET",
182
+ "id": "airquality.mapTypes.heatmapTiles.lookupHeatmapTile",
183
+ "parameterOrder": [
184
+ "mapType",
185
+ "zoom",
186
+ "x",
187
+ "y"
188
+ ],
189
+ "parameters": {
190
+ "mapType": {
191
+ "description": "Required. The type of the air quality heatmap. Defines the pollutant that the map will graphically represent. Allowed values: - UAQI_RED_GREEN (UAQI, red-green palette) - UAQI_INDIGO_PERSIAN (UAQI, indigo-persian palette) - PM25_INDIGO_PERSIAN - GBR_DEFRA - DEU_UBA - CAN_EC - FRA_ATMO - US_AQI",
192
+ "enum": [
193
+ "MAP_TYPE_UNSPECIFIED",
194
+ "UAQI_RED_GREEN",
195
+ "UAQI_INDIGO_PERSIAN",
196
+ "PM25_INDIGO_PERSIAN",
197
+ "GBR_DEFRA",
198
+ "DEU_UBA",
199
+ "CAN_EC",
200
+ "FRA_ATMO",
201
+ "US_AQI"
202
+ ],
203
+ "enumDescriptions": [
204
+ "The default value. The server ignores it if it is passed as a parameter.",
205
+ "Universal Air Quality Index red-green palette.",
206
+ "Universal Air Quality Index indigo-persian palette.",
207
+ "PM2.5 index indigo-persian palette.",
208
+ "Daily Air Quality Index (UK) color palette.",
209
+ "German Local Air Quality Index color palette.",
210
+ "Canadian Air Quality Health Index color palette.",
211
+ "France Air Quality Index color palette.",
212
+ "US Air Quality Index color palette."
213
+ ],
214
+ "location": "path",
215
+ "required": true,
216
+ "type": "string"
217
+ },
218
+ "x": {
219
+ "description": "Required. Defines the east-west point in the requested tile.",
220
+ "format": "int32",
221
+ "location": "path",
222
+ "required": true,
223
+ "type": "integer"
224
+ },
225
+ "y": {
226
+ "description": "Required. Defines the north-south point in the requested tile.",
227
+ "format": "int32",
228
+ "location": "path",
229
+ "required": true,
230
+ "type": "integer"
231
+ },
232
+ "zoom": {
233
+ "description": "Required. The map's zoom level. Defines how large or small the contents of a map appear in a map view. Zoom level 0 is the entire world in a single tile. Zoom level 1 is the entire world in 4 tiles. Zoom level 2 is the entire world in 16 tiles. Zoom level 16 is the entire world in 65,536 tiles. Allowed values: 0-16",
234
+ "format": "int32",
235
+ "location": "path",
236
+ "required": true,
237
+ "type": "integer"
238
+ }
239
+ },
240
+ "path": "v1/mapTypes/{mapType}/heatmapTiles/{zoom}/{x}/{y}",
241
+ "response": {
242
+ "$ref": "HttpBody"
243
+ },
244
+ "scopes": [
245
+ "https://www.googleapis.com/auth/cloud-platform"
246
+ ]
247
+ }
248
+ }
249
+ }
250
+ }
251
+ }
252
+ },
253
+ "revision": "20240901",
254
+ "rootUrl": "https://airquality.googleapis.com/",
255
+ "schemas": {
256
+ "AdditionalInfo": {
257
+ "description": "The emission sources and health effects of a given pollutant.",
258
+ "id": "AdditionalInfo",
259
+ "properties": {
260
+ "effects": {
261
+ "description": "Text representing the pollutant's main health effects.",
262
+ "type": "string"
263
+ },
264
+ "sources": {
265
+ "description": "Text representing the pollutant's main emission sources.",
266
+ "type": "string"
267
+ }
268
+ },
269
+ "type": "object"
270
+ },
271
+ "AirQualityIndex": {
272
+ "description": "The basic object for representing different air quality metrics. When brought together, these metrics provide a snapshot about the current air quality conditions. There are multiple indexes in the world serving different purposes and groups interested in measuring different aspects of air quality.",
273
+ "id": "AirQualityIndex",
274
+ "properties": {
275
+ "aqi": {
276
+ "description": " The index's numeric score. Examples: 10, 100. The value is not normalized and should only be interpreted in the context of its related air-quality index. For non-numeric indexes, this field will not be returned. Note: This field should be used for calculations, graph display, etc. For displaying the index score, you should use the AQI display field.",
277
+ "format": "int32",
278
+ "type": "integer"
279
+ },
280
+ "aqiDisplay": {
281
+ "description": "Textual representation of the index numeric score, that may include prefix or suffix symbols, which usually represents the worst index score. Example: >100 or 10+. Note: This field should be used when you want to display the index score. For non-numeric indexes, this field is empty.",
282
+ "type": "string"
283
+ },
284
+ "category": {
285
+ "description": "Textual classification of the index numeric score interpretation. For example: \"Excellent air quality\".",
286
+ "type": "string"
287
+ },
288
+ "code": {
289
+ "description": "The index's code. This field represents the index for programming purposes by using snake case instead of spaces. Examples: \"uaqi\", \"fra_atmo\".",
290
+ "type": "string"
291
+ },
292
+ "color": {
293
+ "$ref": "Color",
294
+ "description": "The color used to represent the AQI numeric score."
295
+ },
296
+ "displayName": {
297
+ "description": "A human readable representation of the index name. Example: \"AQI (US)\"",
298
+ "type": "string"
299
+ },
300
+ "dominantPollutant": {
301
+ "description": "The chemical symbol of the dominant pollutant. For example: \"CO\".",
302
+ "type": "string"
303
+ }
304
+ },
305
+ "type": "object"
306
+ },
307
+ "Color": {
308
+ "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value\u2014for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...",
309
+ "id": "Color",
310
+ "properties": {
311
+ "alpha": {
312
+ "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).",
313
+ "format": "float",
314
+ "type": "number"
315
+ },
316
+ "blue": {
317
+ "description": "The amount of blue in the color as a value in the interval [0, 1].",
318
+ "format": "float",
319
+ "type": "number"
320
+ },
321
+ "green": {
322
+ "description": "The amount of green in the color as a value in the interval [0, 1].",
323
+ "format": "float",
324
+ "type": "number"
325
+ },
326
+ "red": {
327
+ "description": "The amount of red in the color as a value in the interval [0, 1].",
328
+ "format": "float",
329
+ "type": "number"
330
+ }
331
+ },
332
+ "type": "object"
333
+ },
334
+ "Concentration": {
335
+ "description": "The concentration of a given pollutant in the air.",
336
+ "id": "Concentration",
337
+ "properties": {
338
+ "units": {
339
+ "description": "Units for measuring this pollutant concentration.",
340
+ "enum": [
341
+ "UNIT_UNSPECIFIED",
342
+ "PARTS_PER_BILLION",
343
+ "MICROGRAMS_PER_CUBIC_METER"
344
+ ],
345
+ "enumDescriptions": [
346
+ "Unspecified concentration unit.",
347
+ "The ppb (parts per billion) concentration unit.",
348
+ "The \"\u00b5g/m^3\" (micrograms per cubic meter) concentration unit."
349
+ ],
350
+ "type": "string"
351
+ },
352
+ "value": {
353
+ "description": "Value of the pollutant concentration.",
354
+ "format": "float",
355
+ "type": "number"
356
+ }
357
+ },
358
+ "type": "object"
359
+ },
360
+ "CustomLocalAqi": {
361
+ "description": "Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI.",
362
+ "id": "CustomLocalAqi",
363
+ "properties": {
364
+ "aqi": {
365
+ "description": "The AQI to associate the country/region with. Value should be a [valid index](/maps/documentation/air-quality/laqis) code.",
366
+ "type": "string"
367
+ },
368
+ "regionCode": {
369
+ "description": "The country/region requiring the custom AQI. Value should be provided using [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.",
370
+ "type": "string"
371
+ }
372
+ },
373
+ "type": "object"
374
+ },
375
+ "HealthRecommendations": {
376
+ "description": "Health recommendations for different population groups in a free text format. The recommendations are derived from their associated air quality conditions.",
377
+ "id": "HealthRecommendations",
378
+ "properties": {
379
+ "athletes": {
380
+ "description": "Sports and other strenuous outdoor activities.",
381
+ "type": "string"
382
+ },
383
+ "children": {
384
+ "description": "Younger populations including children, toddlers, and babies.",
385
+ "type": "string"
386
+ },
387
+ "elderly": {
388
+ "description": "Retirees and people older than the general population.",
389
+ "type": "string"
390
+ },
391
+ "generalPopulation": {
392
+ "description": "No specific sensitivities.",
393
+ "type": "string"
394
+ },
395
+ "heartDiseasePopulation": {
396
+ "description": "Heart and circulatory system diseases.",
397
+ "type": "string"
398
+ },
399
+ "lungDiseasePopulation": {
400
+ "description": "Respiratory related problems and asthma suffers.",
401
+ "type": "string"
402
+ },
403
+ "pregnantWomen": {
404
+ "description": "Women at all stages of pregnancy.",
405
+ "type": "string"
406
+ }
407
+ },
408
+ "type": "object"
409
+ },
410
+ "HourInfo": {
411
+ "description": "Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of history there will be 48 elements of hourly info.",
412
+ "id": "HourInfo",
413
+ "properties": {
414
+ "dateTime": {
415
+ "description": "A rounded down timestamp indicating the time the data refers to in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. For example: \"2014-10-02T15:00:00Z\".",
416
+ "format": "google-datetime",
417
+ "type": "string"
418
+ },
419
+ "healthRecommendations": {
420
+ "$ref": "HealthRecommendations",
421
+ "description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
422
+ },
423
+ "indexes": {
424
+ "description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the universalAqi boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
425
+ "items": {
426
+ "$ref": "AirQualityIndex"
427
+ },
428
+ "type": "array"
429
+ },
430
+ "pollutants": {
431
+ "description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
432
+ "items": {
433
+ "$ref": "Pollutant"
434
+ },
435
+ "type": "array"
436
+ }
437
+ },
438
+ "type": "object"
439
+ },
440
+ "HourlyForecast": {
441
+ "description": "Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of forecast there will be 48 elements of hourly forecasts.",
442
+ "id": "HourlyForecast",
443
+ "properties": {
444
+ "dateTime": {
445
+ "description": "A rounded down timestamp indicating the time (hour) the data refers to in RFC3339 UTC \"Zulu\" format. For example: \"2014-10-02T15:00:00Z\".",
446
+ "format": "google-datetime",
447
+ "type": "string"
448
+ },
449
+ "healthRecommendations": {
450
+ "$ref": "HealthRecommendations",
451
+ "description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
452
+ },
453
+ "indexes": {
454
+ "description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the `universal_aqi` boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
455
+ "items": {
456
+ "$ref": "AirQualityIndex"
457
+ },
458
+ "type": "array"
459
+ },
460
+ "pollutants": {
461
+ "description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
462
+ "items": {
463
+ "$ref": "Pollutant"
464
+ },
465
+ "type": "array"
466
+ }
467
+ },
468
+ "type": "object"
469
+ },
470
+ "HttpBody": {
471
+ "description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.",
472
+ "id": "HttpBody",
473
+ "properties": {
474
+ "contentType": {
475
+ "description": "The HTTP Content-Type header value specifying the content type of the body.",
476
+ "type": "string"
477
+ },
478
+ "data": {
479
+ "description": "The HTTP request/response body as raw binary.",
480
+ "format": "byte",
481
+ "type": "string"
482
+ },
483
+ "extensions": {
484
+ "description": "Application specific response metadata. Must be set in the first response for streaming APIs.",
485
+ "items": {
486
+ "additionalProperties": {
487
+ "description": "Properties of the object. Contains field @type with type URL.",
488
+ "type": "any"
489
+ },
490
+ "type": "object"
491
+ },
492
+ "type": "array"
493
+ }
494
+ },
495
+ "type": "object"
496
+ },
497
+ "Interval": {
498
+ "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.",
499
+ "id": "Interval",
500
+ "properties": {
501
+ "endTime": {
502
+ "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.",
503
+ "format": "google-datetime",
504
+ "type": "string"
505
+ },
506
+ "startTime": {
507
+ "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.",
508
+ "format": "google-datetime",
509
+ "type": "string"
510
+ }
511
+ },
512
+ "type": "object"
513
+ },
514
+ "LatLng": {
515
+ "description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.",
516
+ "id": "LatLng",
517
+ "properties": {
518
+ "latitude": {
519
+ "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
520
+ "format": "double",
521
+ "type": "number"
522
+ },
523
+ "longitude": {
524
+ "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
525
+ "format": "double",
526
+ "type": "number"
527
+ }
528
+ },
529
+ "type": "object"
530
+ },
531
+ "LookupCurrentConditionsRequest": {
532
+ "description": "The request definition of the air quality current conditions.",
533
+ "id": "LookupCurrentConditionsRequest",
534
+ "properties": {
535
+ "customLocalAqis": {
536
+ "description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
537
+ "items": {
538
+ "$ref": "CustomLocalAqi"
539
+ },
540
+ "type": "array"
541
+ },
542
+ "extraComputations": {
543
+ "description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
544
+ "items": {
545
+ "enum": [
546
+ "EXTRA_COMPUTATION_UNSPECIFIED",
547
+ "LOCAL_AQI",
548
+ "HEALTH_RECOMMENDATIONS",
549
+ "POLLUTANT_ADDITIONAL_INFO",
550
+ "DOMINANT_POLLUTANT_CONCENTRATION",
551
+ "POLLUTANT_CONCENTRATION"
552
+ ],
553
+ "enumDescriptions": [
554
+ "The default value. The server ignores it if it is passed as a parameter.",
555
+ "Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
556
+ "Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
557
+ "Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
558
+ "Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
559
+ "Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
560
+ ],
561
+ "type": "string"
562
+ },
563
+ "type": "array"
564
+ },
565
+ "languageCode": {
566
+ "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language the API uses the closest match. Allowed values rely on the IETF standard. Default value is en.",
567
+ "type": "string"
568
+ },
569
+ "location": {
570
+ "$ref": "LatLng",
571
+ "description": "Required. The longitude and latitude from which the API looks for air quality current conditions data."
572
+ },
573
+ "uaqiColorPalette": {
574
+ "description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
575
+ "enum": [
576
+ "COLOR_PALETTE_UNSPECIFIED",
577
+ "RED_GREEN",
578
+ "INDIGO_PERSIAN_DARK",
579
+ "INDIGO_PERSIAN_LIGHT"
580
+ ],
581
+ "enumDescriptions": [
582
+ "The default value. Ignored if passed as a parameter.",
583
+ "Determines whether to use a red/green palette.",
584
+ "Determines whether to use a indigo/persian palette (dark theme).",
585
+ "Determines whether to use a indigo/persian palette (light theme)."
586
+ ],
587
+ "type": "string"
588
+ },
589
+ "universalAqi": {
590
+ "description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response. Default value is true.",
591
+ "type": "boolean"
592
+ }
593
+ },
594
+ "type": "object"
595
+ },
596
+ "LookupCurrentConditionsResponse": {
597
+ "id": "LookupCurrentConditionsResponse",
598
+ "properties": {
599
+ "dateTime": {
600
+ "description": "A rounded down timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. For example: \"2014-10-02T15:00:00Z\".",
601
+ "format": "google-datetime",
602
+ "type": "string"
603
+ },
604
+ "healthRecommendations": {
605
+ "$ref": "HealthRecommendations",
606
+ "description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
607
+ },
608
+ "indexes": {
609
+ "description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the universalAqi boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
610
+ "items": {
611
+ "$ref": "AirQualityIndex"
612
+ },
613
+ "type": "array"
614
+ },
615
+ "pollutants": {
616
+ "description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
617
+ "items": {
618
+ "$ref": "Pollutant"
619
+ },
620
+ "type": "array"
621
+ },
622
+ "regionCode": {
623
+ "description": "The ISO_3166-1 alpha-2 code of the country/region corresponding to the location provided in the request. This field might be omitted from the response if the location provided in the request resides in a disputed territory.",
624
+ "type": "string"
625
+ }
626
+ },
627
+ "type": "object"
628
+ },
629
+ "LookupForecastRequest": {
630
+ "description": "The request object of the air quality forecast API.",
631
+ "id": "LookupForecastRequest",
632
+ "properties": {
633
+ "customLocalAqis": {
634
+ "description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
635
+ "items": {
636
+ "$ref": "CustomLocalAqi"
637
+ },
638
+ "type": "array"
639
+ },
640
+ "dateTime": {
641
+ "description": "A timestamp for which to return the data for a specific point in time. The timestamp is rounded to the previous exact hour. Note: this will return hourly data for the requested timestamp only (i.e. a single hourly info element). For example, a request sent where the date_time parameter is set to 2023-01-03T11:05:49Z will be rounded down to 2023-01-03T11:00:00Z.",
642
+ "format": "google-datetime",
643
+ "type": "string"
644
+ },
645
+ "extraComputations": {
646
+ "description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
647
+ "items": {
648
+ "enum": [
649
+ "EXTRA_COMPUTATION_UNSPECIFIED",
650
+ "LOCAL_AQI",
651
+ "HEALTH_RECOMMENDATIONS",
652
+ "POLLUTANT_ADDITIONAL_INFO",
653
+ "DOMINANT_POLLUTANT_CONCENTRATION",
654
+ "POLLUTANT_CONCENTRATION"
655
+ ],
656
+ "enumDescriptions": [
657
+ "The default value. The server ignores it if it is passed as a parameter.",
658
+ "Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
659
+ "Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
660
+ "Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
661
+ "Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
662
+ "Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
663
+ ],
664
+ "type": "string"
665
+ },
666
+ "type": "array"
667
+ },
668
+ "languageCode": {
669
+ "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language the API uses the closest match. Allowed values rely on the IETF standard (default = 'en').",
670
+ "type": "string"
671
+ },
672
+ "location": {
673
+ "$ref": "LatLng",
674
+ "description": "Required. The latitude and longitude for which the API looks for air quality data."
675
+ },
676
+ "pageSize": {
677
+ "description": "Optional. The maximum number of hourly info records to return per page (default = 24).",
678
+ "format": "int32",
679
+ "type": "integer"
680
+ },
681
+ "pageToken": {
682
+ "description": "Optional. A page token received from a previous forecast call. It is used to retrieve the subsequent page.",
683
+ "type": "string"
684
+ },
685
+ "period": {
686
+ "$ref": "Interval",
687
+ "description": "Indicates the start and end period for which to get the forecast data. The timestamp is rounded to the previous exact hour."
688
+ },
689
+ "uaqiColorPalette": {
690
+ "description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
691
+ "enum": [
692
+ "COLOR_PALETTE_UNSPECIFIED",
693
+ "RED_GREEN",
694
+ "INDIGO_PERSIAN_DARK",
695
+ "INDIGO_PERSIAN_LIGHT"
696
+ ],
697
+ "enumDescriptions": [
698
+ "The default value. Ignored if passed as a parameter.",
699
+ "Determines whether to use a red/green palette.",
700
+ "Determines whether to use a indigo/persian palette (dark theme).",
701
+ "Determines whether to use a indigo/persian palette (light theme)."
702
+ ],
703
+ "type": "string"
704
+ },
705
+ "universalAqi": {
706
+ "description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response (default = true).",
707
+ "type": "boolean"
708
+ }
709
+ },
710
+ "type": "object"
711
+ },
712
+ "LookupForecastResponse": {
713
+ "description": "The response object of the air quality forecast API.",
714
+ "id": "LookupForecastResponse",
715
+ "properties": {
716
+ "hourlyForecasts": {
717
+ "description": "Optional. Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of forecast there will be 48 elements of hourly forecasts.",
718
+ "items": {
719
+ "$ref": "HourlyForecast"
720
+ },
721
+ "type": "array"
722
+ },
723
+ "nextPageToken": {
724
+ "description": "Optional. The token to retrieve the next page.",
725
+ "type": "string"
726
+ },
727
+ "regionCode": {
728
+ "description": "Optional. The ISO_3166-1 alpha-2 code of the country/region corresponding to the location provided in the request. This field might be omitted from the response if the location provided in the request resides in a disputed territory.",
729
+ "type": "string"
730
+ }
731
+ },
732
+ "type": "object"
733
+ },
734
+ "LookupHistoryRequest": {
735
+ "description": "The request object of the air quality history API.",
736
+ "id": "LookupHistoryRequest",
737
+ "properties": {
738
+ "customLocalAqis": {
739
+ "description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
740
+ "items": {
741
+ "$ref": "CustomLocalAqi"
742
+ },
743
+ "type": "array"
744
+ },
745
+ "dateTime": {
746
+ "description": "A timestamp for which to return historical data. The timestamp is rounded to the previous exact hour. Note: this will return hourly data for the requested timestamp only (i.e. a single hourly info element). For example, a request sent where the dateTime parameter is set to 2023-01-03T11:05:49Z will be rounded down to 2023-01-03T11:00:00Z. A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".",
747
+ "format": "google-datetime",
748
+ "type": "string"
749
+ },
750
+ "extraComputations": {
751
+ "description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
752
+ "items": {
753
+ "enum": [
754
+ "EXTRA_COMPUTATION_UNSPECIFIED",
755
+ "LOCAL_AQI",
756
+ "HEALTH_RECOMMENDATIONS",
757
+ "POLLUTANT_ADDITIONAL_INFO",
758
+ "DOMINANT_POLLUTANT_CONCENTRATION",
759
+ "POLLUTANT_CONCENTRATION"
760
+ ],
761
+ "enumDescriptions": [
762
+ "The default value. The server ignores it if it is passed as a parameter.",
763
+ "Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
764
+ "Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
765
+ "Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
766
+ "Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
767
+ "Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
768
+ ],
769
+ "type": "string"
770
+ },
771
+ "type": "array"
772
+ },
773
+ "hours": {
774
+ "description": "Number from 1 to 720 that indicates the hours range for the request. For example: A value of 48 will yield data from the last 48 hours.",
775
+ "format": "int32",
776
+ "type": "integer"
777
+ },
778
+ "languageCode": {
779
+ "description": "Optional. Allows the client to choose the language for the response. If data cannot be provided for that language the API uses the closest match. Allowed values rely on the IETF standard. Default value is en.",
780
+ "type": "string"
781
+ },
782
+ "location": {
783
+ "$ref": "LatLng",
784
+ "description": "Required. The latitude and longitude for which the API looks for air quality history data."
785
+ },
786
+ "pageSize": {
787
+ "description": "Optional. The maximum number of hourly info records to return per page. The default is 72 and the max value is 168 (7 days of data).",
788
+ "format": "int32",
789
+ "type": "integer"
790
+ },
791
+ "pageToken": {
792
+ "description": "Optional. A page token received from a previous history call. It is used to retrieve the subsequent page. Note that when providing a value for this parameter all other parameters provided must match the call that provided the page token (the previous call).",
793
+ "type": "string"
794
+ },
795
+ "period": {
796
+ "$ref": "Interval",
797
+ "description": "Indicates the start and end period for which to get the historical data. The timestamp is rounded to the previous exact hour."
798
+ },
799
+ "uaqiColorPalette": {
800
+ "description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
801
+ "enum": [
802
+ "COLOR_PALETTE_UNSPECIFIED",
803
+ "RED_GREEN",
804
+ "INDIGO_PERSIAN_DARK",
805
+ "INDIGO_PERSIAN_LIGHT"
806
+ ],
807
+ "enumDescriptions": [
808
+ "The default value. Ignored if passed as a parameter.",
809
+ "Determines whether to use a red/green palette.",
810
+ "Determines whether to use a indigo/persian palette (dark theme).",
811
+ "Determines whether to use a indigo/persian palette (light theme)."
812
+ ],
813
+ "type": "string"
814
+ },
815
+ "universalAqi": {
816
+ "description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response. Default value is true.",
817
+ "type": "boolean"
818
+ }
819
+ },
820
+ "type": "object"
821
+ },
822
+ "LookupHistoryResponse": {
823
+ "id": "LookupHistoryResponse",
824
+ "properties": {
825
+ "hoursInfo": {
826
+ "description": "Optional. Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of history there will be 48 elements of hourly info.",
827
+ "items": {
828
+ "$ref": "HourInfo"
829
+ },
830
+ "type": "array"
831
+ },
832
+ "nextPageToken": {
833
+ "description": "Optional. The token to retrieve the next page.",
834
+ "type": "string"
835
+ },
836
+ "regionCode": {
837
+ "description": "Optional. The ISO_3166-1 alpha-2 code of the country/region corresponding to the location provided in the request. This field might be omitted from the response if the location provided in the request resides in a disputed territory.",
838
+ "type": "string"
839
+ }
840
+ },
841
+ "type": "object"
842
+ },
843
+ "Pollutant": {
844
+ "description": "Data regarding an air quality pollutant.",
845
+ "id": "Pollutant",
846
+ "properties": {
847
+ "additionalInfo": {
848
+ "$ref": "AdditionalInfo",
849
+ "description": "Additional information about the pollutant."
850
+ },
851
+ "code": {
852
+ "description": "The pollutant's code name (for example, \"so2\"). For a list of supported pollutant codes, see [Reported pollutants](/maps/documentation/air-quality/pollutants#reported_pollutants).",
853
+ "type": "string"
854
+ },
855
+ "concentration": {
856
+ "$ref": "Concentration",
857
+ "description": "The pollutant's concentration level measured by one of the standard air pollutation measure units."
858
+ },
859
+ "displayName": {
860
+ "description": "The pollutant's display name. For example: \"NOx\".",
861
+ "type": "string"
862
+ },
863
+ "fullName": {
864
+ "description": "The pollutant's full name. For chemical compounds, this is the IUPAC name. Example: \"Sulfur Dioxide\". For more information about the IUPAC names table, see https://iupac.org/what-we-do/periodic-table-of-elements/.",
865
+ "type": "string"
866
+ }
867
+ },
868
+ "type": "object"
869
+ }
870
+ },
871
+ "servicePath": "",
872
+ "title": "Air Quality API",
873
+ "version": "v1",
874
+ "version_module": true
875
+ }
DiscoveryJson/alertcenter.v1beta1.json ADDED
@@ -0,0 +1,2362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/apps.alerts": {
6
+ "description": "See and delete your domain's Google Workspace alerts, and send alert feedback"
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://alertcenter.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "canonicalName": "AlertCenter",
15
+ "description": "Manages alerts on issues affecting your domain. Note: The current version of this API (v1beta1) is available to all Google Workspace customers. ",
16
+ "discoveryVersion": "v1",
17
+ "documentationLink": "https://developers.google.com/workspace/admin/alertcenter/",
18
+ "fullyEncodeReservedExpansion": true,
19
+ "icons": {
20
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
21
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
22
+ },
23
+ "id": "alertcenter:v1beta1",
24
+ "kind": "discovery#restDescription",
25
+ "mtlsRootUrl": "https://alertcenter.mtls.googleapis.com/",
26
+ "name": "alertcenter",
27
+ "ownerDomain": "google.com",
28
+ "ownerName": "Google",
29
+ "parameters": {
30
+ "$.xgafv": {
31
+ "description": "V1 error format.",
32
+ "enum": [
33
+ "1",
34
+ "2"
35
+ ],
36
+ "enumDescriptions": [
37
+ "v1 error format",
38
+ "v2 error format"
39
+ ],
40
+ "location": "query",
41
+ "type": "string"
42
+ },
43
+ "access_token": {
44
+ "description": "OAuth access token.",
45
+ "location": "query",
46
+ "type": "string"
47
+ },
48
+ "alt": {
49
+ "default": "json",
50
+ "description": "Data format for response.",
51
+ "enum": [
52
+ "json",
53
+ "media",
54
+ "proto"
55
+ ],
56
+ "enumDescriptions": [
57
+ "Responses with Content-Type of application/json",
58
+ "Media download with context-dependent Content-Type",
59
+ "Responses with Content-Type of application/x-protobuf"
60
+ ],
61
+ "location": "query",
62
+ "type": "string"
63
+ },
64
+ "callback": {
65
+ "description": "JSONP",
66
+ "location": "query",
67
+ "type": "string"
68
+ },
69
+ "fields": {
70
+ "description": "Selector specifying which fields to include in a partial response.",
71
+ "location": "query",
72
+ "type": "string"
73
+ },
74
+ "key": {
75
+ "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.",
76
+ "location": "query",
77
+ "type": "string"
78
+ },
79
+ "oauth_token": {
80
+ "description": "OAuth 2.0 token for the current user.",
81
+ "location": "query",
82
+ "type": "string"
83
+ },
84
+ "prettyPrint": {
85
+ "default": "true",
86
+ "description": "Returns response with indentations and line breaks.",
87
+ "location": "query",
88
+ "type": "boolean"
89
+ },
90
+ "quotaUser": {
91
+ "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.",
92
+ "location": "query",
93
+ "type": "string"
94
+ },
95
+ "uploadType": {
96
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97
+ "location": "query",
98
+ "type": "string"
99
+ },
100
+ "upload_protocol": {
101
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102
+ "location": "query",
103
+ "type": "string"
104
+ }
105
+ },
106
+ "protocol": "rest",
107
+ "resources": {
108
+ "alerts": {
109
+ "methods": {
110
+ "batchDelete": {
111
+ "description": "Performs batch delete operation on alerts.",
112
+ "flatPath": "v1beta1/alerts:batchDelete",
113
+ "httpMethod": "POST",
114
+ "id": "alertcenter.alerts.batchDelete",
115
+ "parameterOrder": [],
116
+ "parameters": {},
117
+ "path": "v1beta1/alerts:batchDelete",
118
+ "request": {
119
+ "$ref": "BatchDeleteAlertsRequest"
120
+ },
121
+ "response": {
122
+ "$ref": "BatchDeleteAlertsResponse"
123
+ },
124
+ "scopes": [
125
+ "https://www.googleapis.com/auth/apps.alerts"
126
+ ]
127
+ },
128
+ "batchUndelete": {
129
+ "description": "Performs batch undelete operation on alerts.",
130
+ "flatPath": "v1beta1/alerts:batchUndelete",
131
+ "httpMethod": "POST",
132
+ "id": "alertcenter.alerts.batchUndelete",
133
+ "parameterOrder": [],
134
+ "parameters": {},
135
+ "path": "v1beta1/alerts:batchUndelete",
136
+ "request": {
137
+ "$ref": "BatchUndeleteAlertsRequest"
138
+ },
139
+ "response": {
140
+ "$ref": "BatchUndeleteAlertsResponse"
141
+ },
142
+ "scopes": [
143
+ "https://www.googleapis.com/auth/apps.alerts"
144
+ ]
145
+ },
146
+ "delete": {
147
+ "description": "Marks the specified alert for deletion. An alert that has been marked for deletion is removed from Alert Center after 30 days. Marking an alert for deletion has no effect on an alert which has already been marked for deletion. Attempting to mark a nonexistent alert for deletion results in a `NOT_FOUND` error.",
148
+ "flatPath": "v1beta1/alerts/{alertId}",
149
+ "httpMethod": "DELETE",
150
+ "id": "alertcenter.alerts.delete",
151
+ "parameterOrder": [
152
+ "alertId"
153
+ ],
154
+ "parameters": {
155
+ "alertId": {
156
+ "description": "Required. The identifier of the alert to delete.",
157
+ "location": "path",
158
+ "required": true,
159
+ "type": "string"
160
+ },
161
+ "customerId": {
162
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
163
+ "location": "query",
164
+ "type": "string"
165
+ }
166
+ },
167
+ "path": "v1beta1/alerts/{alertId}",
168
+ "response": {
169
+ "$ref": "Empty"
170
+ },
171
+ "scopes": [
172
+ "https://www.googleapis.com/auth/apps.alerts"
173
+ ]
174
+ },
175
+ "get": {
176
+ "description": "Gets the specified alert. Attempting to get a nonexistent alert returns `NOT_FOUND` error.",
177
+ "flatPath": "v1beta1/alerts/{alertId}",
178
+ "httpMethod": "GET",
179
+ "id": "alertcenter.alerts.get",
180
+ "parameterOrder": [
181
+ "alertId"
182
+ ],
183
+ "parameters": {
184
+ "alertId": {
185
+ "description": "Required. The identifier of the alert to retrieve.",
186
+ "location": "path",
187
+ "required": true,
188
+ "type": "string"
189
+ },
190
+ "customerId": {
191
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
192
+ "location": "query",
193
+ "type": "string"
194
+ }
195
+ },
196
+ "path": "v1beta1/alerts/{alertId}",
197
+ "response": {
198
+ "$ref": "Alert"
199
+ },
200
+ "scopes": [
201
+ "https://www.googleapis.com/auth/apps.alerts"
202
+ ]
203
+ },
204
+ "getMetadata": {
205
+ "description": "Returns the metadata of an alert. Attempting to get metadata for a non-existent alert returns `NOT_FOUND` error.",
206
+ "flatPath": "v1beta1/alerts/{alertId}/metadata",
207
+ "httpMethod": "GET",
208
+ "id": "alertcenter.alerts.getMetadata",
209
+ "parameterOrder": [
210
+ "alertId"
211
+ ],
212
+ "parameters": {
213
+ "alertId": {
214
+ "description": "Required. The identifier of the alert this metadata belongs to.",
215
+ "location": "path",
216
+ "required": true,
217
+ "type": "string"
218
+ },
219
+ "customerId": {
220
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert metadata is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
221
+ "location": "query",
222
+ "type": "string"
223
+ }
224
+ },
225
+ "path": "v1beta1/alerts/{alertId}/metadata",
226
+ "response": {
227
+ "$ref": "AlertMetadata"
228
+ },
229
+ "scopes": [
230
+ "https://www.googleapis.com/auth/apps.alerts"
231
+ ]
232
+ },
233
+ "list": {
234
+ "description": "Lists the alerts.",
235
+ "flatPath": "v1beta1/alerts",
236
+ "httpMethod": "GET",
237
+ "id": "alertcenter.alerts.list",
238
+ "parameterOrder": [],
239
+ "parameters": {
240
+ "customerId": {
241
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
242
+ "location": "query",
243
+ "type": "string"
244
+ },
245
+ "filter": {
246
+ "description": "Optional. A query string for filtering alert results. For more details, see [Query filters](https://developers.google.com/workspace/admin/alertcenter/guides/query-filters) and [Supported query filter fields](https://developers.google.com/workspace/admin/alertcenter/reference/filter-fields#alerts.list).",
247
+ "location": "query",
248
+ "type": "string"
249
+ },
250
+ "orderBy": {
251
+ "description": "Optional. The sort order of the list results. If not specified results may be returned in arbitrary order. You can sort the results in descending order based on the creation timestamp using `order_by=\"create_time desc\"`. Currently, supported sorting are `create_time asc`, `create_time desc`, `update_time desc`",
252
+ "location": "query",
253
+ "type": "string"
254
+ },
255
+ "pageSize": {
256
+ "description": "Optional. The requested page size. Server may return fewer items than requested. If unspecified, server picks an appropriate default.",
257
+ "format": "int32",
258
+ "location": "query",
259
+ "type": "integer"
260
+ },
261
+ "pageToken": {
262
+ "description": "Optional. A token identifying a page of results the server should return. If empty, a new iteration is started. To continue an iteration, pass in the value from the previous ListAlertsResponse's next_page_token field.",
263
+ "location": "query",
264
+ "type": "string"
265
+ }
266
+ },
267
+ "path": "v1beta1/alerts",
268
+ "response": {
269
+ "$ref": "ListAlertsResponse"
270
+ },
271
+ "scopes": [
272
+ "https://www.googleapis.com/auth/apps.alerts"
273
+ ]
274
+ },
275
+ "undelete": {
276
+ "description": "Restores, or \"undeletes\", an alert that was marked for deletion within the past 30 days. Attempting to undelete an alert which was marked for deletion over 30 days ago (which has been removed from the Alert Center database) or a nonexistent alert returns a `NOT_FOUND` error. Attempting to undelete an alert which has not been marked for deletion has no effect.",
277
+ "flatPath": "v1beta1/alerts/{alertId}:undelete",
278
+ "httpMethod": "POST",
279
+ "id": "alertcenter.alerts.undelete",
280
+ "parameterOrder": [
281
+ "alertId"
282
+ ],
283
+ "parameters": {
284
+ "alertId": {
285
+ "description": "Required. The identifier of the alert to undelete.",
286
+ "location": "path",
287
+ "required": true,
288
+ "type": "string"
289
+ }
290
+ },
291
+ "path": "v1beta1/alerts/{alertId}:undelete",
292
+ "request": {
293
+ "$ref": "UndeleteAlertRequest"
294
+ },
295
+ "response": {
296
+ "$ref": "Alert"
297
+ },
298
+ "scopes": [
299
+ "https://www.googleapis.com/auth/apps.alerts"
300
+ ]
301
+ }
302
+ },
303
+ "resources": {
304
+ "feedback": {
305
+ "methods": {
306
+ "create": {
307
+ "description": "Creates new feedback for an alert. Attempting to create a feedback for a non-existent alert returns `NOT_FOUND` error. Attempting to create a feedback for an alert that is marked for deletion returns `FAILED_PRECONDITION' error.",
308
+ "flatPath": "v1beta1/alerts/{alertId}/feedback",
309
+ "httpMethod": "POST",
310
+ "id": "alertcenter.alerts.feedback.create",
311
+ "parameterOrder": [
312
+ "alertId"
313
+ ],
314
+ "parameters": {
315
+ "alertId": {
316
+ "description": "Required. The identifier of the alert this feedback belongs to.",
317
+ "location": "path",
318
+ "required": true,
319
+ "type": "string"
320
+ },
321
+ "customerId": {
322
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
323
+ "location": "query",
324
+ "type": "string"
325
+ }
326
+ },
327
+ "path": "v1beta1/alerts/{alertId}/feedback",
328
+ "request": {
329
+ "$ref": "AlertFeedback"
330
+ },
331
+ "response": {
332
+ "$ref": "AlertFeedback"
333
+ },
334
+ "scopes": [
335
+ "https://www.googleapis.com/auth/apps.alerts"
336
+ ]
337
+ },
338
+ "list": {
339
+ "description": "Lists all the feedback for an alert. Attempting to list feedbacks for a non-existent alert returns `NOT_FOUND` error.",
340
+ "flatPath": "v1beta1/alerts/{alertId}/feedback",
341
+ "httpMethod": "GET",
342
+ "id": "alertcenter.alerts.feedback.list",
343
+ "parameterOrder": [
344
+ "alertId"
345
+ ],
346
+ "parameters": {
347
+ "alertId": {
348
+ "description": "Required. The alert identifier. The \"-\" wildcard could be used to represent all alerts.",
349
+ "location": "path",
350
+ "required": true,
351
+ "type": "string"
352
+ },
353
+ "customerId": {
354
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
355
+ "location": "query",
356
+ "type": "string"
357
+ },
358
+ "filter": {
359
+ "description": "Optional. A query string for filtering alert feedback results. For more details, see [Query filters](https://developers.google.com/workspace/admin/alertcenter/guides/query-filters) and [Supported query filter fields](https://developers.google.com/workspace/admin/alertcenter/reference/filter-fields#alerts.feedback.list).",
360
+ "location": "query",
361
+ "type": "string"
362
+ }
363
+ },
364
+ "path": "v1beta1/alerts/{alertId}/feedback",
365
+ "response": {
366
+ "$ref": "ListAlertFeedbackResponse"
367
+ },
368
+ "scopes": [
369
+ "https://www.googleapis.com/auth/apps.alerts"
370
+ ]
371
+ }
372
+ }
373
+ }
374
+ }
375
+ },
376
+ "v1beta1": {
377
+ "methods": {
378
+ "getSettings": {
379
+ "description": "Returns customer-level settings.",
380
+ "flatPath": "v1beta1/settings",
381
+ "httpMethod": "GET",
382
+ "id": "alertcenter.getSettings",
383
+ "parameterOrder": [],
384
+ "parameters": {
385
+ "customerId": {
386
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert settings are associated with. The `customer_id` must/ have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
387
+ "location": "query",
388
+ "type": "string"
389
+ }
390
+ },
391
+ "path": "v1beta1/settings",
392
+ "response": {
393
+ "$ref": "Settings"
394
+ },
395
+ "scopes": [
396
+ "https://www.googleapis.com/auth/apps.alerts"
397
+ ]
398
+ },
399
+ "updateSettings": {
400
+ "description": "Updates the customer-level settings.",
401
+ "flatPath": "v1beta1/settings",
402
+ "httpMethod": "PATCH",
403
+ "id": "alertcenter.updateSettings",
404
+ "parameterOrder": [],
405
+ "parameters": {
406
+ "customerId": {
407
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert settings are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
408
+ "location": "query",
409
+ "type": "string"
410
+ }
411
+ },
412
+ "path": "v1beta1/settings",
413
+ "request": {
414
+ "$ref": "Settings"
415
+ },
416
+ "response": {
417
+ "$ref": "Settings"
418
+ },
419
+ "scopes": [
420
+ "https://www.googleapis.com/auth/apps.alerts"
421
+ ]
422
+ }
423
+ }
424
+ }
425
+ },
426
+ "revision": "20251117",
427
+ "rootUrl": "https://alertcenter.googleapis.com/",
428
+ "schemas": {
429
+ "AbuseDetected": {
430
+ "description": "A generic alert for abusive user activity occurring with a customer.",
431
+ "id": "AbuseDetected",
432
+ "properties": {
433
+ "additionalDetails": {
434
+ "$ref": "EntityList",
435
+ "description": "List of abusive users/entities to be displayed in a table in the alert."
436
+ },
437
+ "product": {
438
+ "description": "Product that the abuse is originating from.",
439
+ "type": "string"
440
+ },
441
+ "subAlertId": {
442
+ "description": "Unique identifier of each sub alert that is onboarded.",
443
+ "type": "string"
444
+ },
445
+ "variationType": {
446
+ "description": "Variation of AbuseDetected alerts. The variation_type determines the texts displayed the alert details. This differs from sub_alert_id because each sub alert can have multiple variation_types, representing different stages of the alert.",
447
+ "enum": [
448
+ "ABUSE_DETECTED_VARIATION_TYPE_UNSPECIFIED",
449
+ "DRIVE_ABUSIVE_CONTENT",
450
+ "LIMITED_DISABLE"
451
+ ],
452
+ "enumDescriptions": [
453
+ "AbuseDetected alert variation type unspecified. No alert should be unspecified.",
454
+ "Variation displayed for Drive abusive content alerts.",
455
+ "Variation displayed for Limited Disable alerts, when a Google service is disabled for a user, totally or partially, due to the user's abusive behavior."
456
+ ],
457
+ "type": "string"
458
+ }
459
+ },
460
+ "type": "object"
461
+ },
462
+ "AccessApproval": {
463
+ "description": "Alert that is triggered when Google support requests to access customer data.",
464
+ "id": "AccessApproval",
465
+ "properties": {
466
+ "justificationReason": {
467
+ "description": "Justification for data access based on justification enums.",
468
+ "items": {
469
+ "enum": [
470
+ "JUSTIFICATION_UNSPECIFIED",
471
+ "CUSTOMER_INITIATED_SUPPORT",
472
+ "GOOGLE_INITIATED_REVIEW",
473
+ "GOOGLE_INITIATED_SERVICE",
474
+ "THIRD_PARTY_DATA_REQUEST",
475
+ "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT"
476
+ ],
477
+ "enumDescriptions": [
478
+ "Justification unspecified",
479
+ "Customer Initiated Support",
480
+ "Google Initiated Review",
481
+ "Google Initiated Service",
482
+ "Third Party Data Request",
483
+ "Google Response to Production Alert"
484
+ ],
485
+ "type": "string"
486
+ },
487
+ "type": "array"
488
+ },
489
+ "officeLocation": {
490
+ "description": "Office location of Google staff requesting access such as \"US\".",
491
+ "type": "string"
492
+ },
493
+ "products": {
494
+ "description": "Products within scope of the Access Approvals request.",
495
+ "items": {
496
+ "type": "string"
497
+ },
498
+ "type": "array"
499
+ },
500
+ "requestId": {
501
+ "description": "ID of the Access Approvals request. This is a helpful field when requesting support from Google.",
502
+ "type": "string"
503
+ },
504
+ "scope": {
505
+ "description": "Scope of access, also known as a resource. This is further narrowed down by the product field.",
506
+ "type": "string"
507
+ },
508
+ "tickets": {
509
+ "description": "Support tickets related to this Access Approvals request. Populated if there is an associated case number.",
510
+ "items": {
511
+ "$ref": "SupportTicket"
512
+ },
513
+ "type": "array"
514
+ }
515
+ },
516
+ "type": "object"
517
+ },
518
+ "AccountSuspensionDetails": {
519
+ "description": "Details about why an account is receiving an account suspension warning.",
520
+ "id": "AccountSuspensionDetails",
521
+ "properties": {
522
+ "abuseReason": {
523
+ "description": "The reason why this account is receiving an account suspension warning.",
524
+ "enum": [
525
+ "ACCOUNT_SUSPENSION_ABUSE_REASON_UNSPECIFIED",
526
+ "TOS_VIOLATION",
527
+ "SPAM",
528
+ "PHISHING",
529
+ "TRAFFIC_PUMPING",
530
+ "FRAUD",
531
+ "NUMBER_HARVESTING",
532
+ "PAYMENTS_FRAUD",
533
+ "UNWANTED_CONTENT",
534
+ "UNQUALIFIED_EDU"
535
+ ],
536
+ "enumDescriptions": [
537
+ "Abuse reason is unspecified.",
538
+ "This account is being suspended for a Terms of Service violation.",
539
+ "This account is being suspended for spam.",
540
+ "This account is being suspended for phishing.",
541
+ "This account is being suspended for artificially boosting traffic to a website.",
542
+ "This account is being suspended for fraud.",
543
+ "This account is being suspended for number harvesting.",
544
+ "This account is being suspended for payments fraud.",
545
+ "This account is being suspended for unwanted content.",
546
+ "This account is being suspended for being an unqualified educational institution."
547
+ ],
548
+ "type": "string"
549
+ },
550
+ "productName": {
551
+ "description": "The name of the product being abused. This is restricted to only the following values: \"Gmail\" \"Google Workspace\" \"Payments\" \"Voice\" \"YouTube\" \"Other\"",
552
+ "type": "string"
553
+ }
554
+ },
555
+ "type": "object"
556
+ },
557
+ "AccountSuspensionWarning": {
558
+ "description": "A warning that the customer's account is about to be suspended.",
559
+ "id": "AccountSuspensionWarning",
560
+ "properties": {
561
+ "appealWindow": {
562
+ "description": "The amount of time remaining to appeal an imminent suspension. After this window has elapsed, the account will be suspended. Only populated if the account suspension is in WARNING state.",
563
+ "format": "google-duration",
564
+ "type": "string"
565
+ },
566
+ "state": {
567
+ "description": "Account suspension warning state.",
568
+ "enum": [
569
+ "ACCOUNT_SUSPENSION_WARNING_STATE_UNSPECIFIED",
570
+ "WARNING",
571
+ "SUSPENDED",
572
+ "APPEAL_APPROVED",
573
+ "APPEAL_SUBMITTED"
574
+ ],
575
+ "enumDescriptions": [
576
+ "State is unspecified.",
577
+ "Customer is receiving a warning about imminent suspension.",
578
+ "Customer is being notified that their account has been suspended.",
579
+ "Customer is being notified that their suspension appeal was approved.",
580
+ "Customer has submitted their appeal, which is pending review."
581
+ ],
582
+ "type": "string"
583
+ },
584
+ "suspensionDetails": {
585
+ "description": "Details about why an account is being suspended.",
586
+ "items": {
587
+ "$ref": "AccountSuspensionDetails"
588
+ },
589
+ "type": "array"
590
+ }
591
+ },
592
+ "type": "object"
593
+ },
594
+ "AccountWarning": {
595
+ "description": "Alerts for user account warning events.",
596
+ "id": "AccountWarning",
597
+ "properties": {
598
+ "email": {
599
+ "description": "Required. The email of the user that this event belongs to.",
600
+ "type": "string"
601
+ },
602
+ "loginDetails": {
603
+ "$ref": "LoginDetails",
604
+ "description": "Optional. Details of the login action associated with the warning event. This is only available for: * Suspicious login * Suspicious login (less secure app) * Suspicious programmatic login * User suspended (suspicious activity)"
605
+ }
606
+ },
607
+ "type": "object"
608
+ },
609
+ "ActionInfo": {
610
+ "description": "Metadata related to the action.",
611
+ "id": "ActionInfo",
612
+ "properties": {},
613
+ "type": "object"
614
+ },
615
+ "ActivityRule": {
616
+ "description": "Alerts from Google Workspace Security Center rules service configured by an admin.",
617
+ "id": "ActivityRule",
618
+ "properties": {
619
+ "actionNames": {
620
+ "description": "List of action names associated with the rule threshold.",
621
+ "items": {
622
+ "type": "string"
623
+ },
624
+ "type": "array"
625
+ },
626
+ "createTime": {
627
+ "description": "Rule create timestamp.",
628
+ "format": "google-datetime",
629
+ "type": "string"
630
+ },
631
+ "description": {
632
+ "description": "Description of the rule.",
633
+ "type": "string"
634
+ },
635
+ "displayName": {
636
+ "description": "Alert display name.",
637
+ "type": "string"
638
+ },
639
+ "name": {
640
+ "description": "Rule name.",
641
+ "type": "string"
642
+ },
643
+ "query": {
644
+ "description": "Query that is used to get the data from the associated source.",
645
+ "type": "string"
646
+ },
647
+ "supersededAlerts": {
648
+ "description": "List of alert IDs superseded by this alert. It is used to indicate that this alert is essentially extension of superseded alerts and we found the relationship after creating these alerts.",
649
+ "items": {
650
+ "type": "string"
651
+ },
652
+ "type": "array"
653
+ },
654
+ "supersedingAlert": {
655
+ "description": "Alert ID superseding this alert. It is used to indicate that superseding alert is essentially extension of this alert and we found the relationship after creating both alerts.",
656
+ "type": "string"
657
+ },
658
+ "threshold": {
659
+ "description": "Alert threshold is for example \u201cCOUNT > 5\u201d.",
660
+ "type": "string"
661
+ },
662
+ "triggerSource": {
663
+ "description": "The trigger sources for this rule. * GMAIL_EVENTS * DEVICE_EVENTS * USER_EVENTS",
664
+ "type": "string"
665
+ },
666
+ "updateTime": {
667
+ "description": "The timestamp of the last update to the rule.",
668
+ "format": "google-datetime",
669
+ "type": "string"
670
+ },
671
+ "windowSize": {
672
+ "description": "Rule window size. Possible values are 1 hour or 24 hours.",
673
+ "format": "google-duration",
674
+ "type": "string"
675
+ }
676
+ },
677
+ "type": "object"
678
+ },
679
+ "Alert": {
680
+ "description": "An alert affecting a customer.",
681
+ "id": "Alert",
682
+ "properties": {
683
+ "alertId": {
684
+ "description": "Output only. The unique identifier for the alert.",
685
+ "type": "string"
686
+ },
687
+ "createTime": {
688
+ "description": "Output only. The time this alert was created.",
689
+ "format": "google-datetime",
690
+ "type": "string"
691
+ },
692
+ "customerId": {
693
+ "description": "Output only. The unique identifier of the Google Workspace account of the customer.",
694
+ "type": "string"
695
+ },
696
+ "data": {
697
+ "additionalProperties": {
698
+ "description": "Properties of the object. Contains field @type with type URL.",
699
+ "type": "any"
700
+ },
701
+ "description": "Optional. The data associated with this alert, for example google.apps.alertcenter.type.DeviceCompromised.",
702
+ "type": "object"
703
+ },
704
+ "deleted": {
705
+ "description": "Output only. `True` if this alert is marked for deletion.",
706
+ "type": "boolean"
707
+ },
708
+ "endTime": {
709
+ "description": "Optional. The time the event that caused this alert ceased being active. If provided, the end time must not be earlier than the start time. If not provided, it indicates an ongoing alert.",
710
+ "format": "google-datetime",
711
+ "type": "string"
712
+ },
713
+ "etag": {
714
+ "description": "Optional. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of an alert from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform alert updates in order to avoid race conditions: An `etag` is returned in the response which contains alerts, and systems are expected to put that etag in the request to update alert to ensure that their change will be applied to the same version of the alert. If no `etag` is provided in the call to update alert, then the existing alert is overwritten blindly.",
715
+ "type": "string"
716
+ },
717
+ "metadata": {
718
+ "$ref": "AlertMetadata",
719
+ "description": "Output only. The metadata associated with this alert."
720
+ },
721
+ "securityInvestigationToolLink": {
722
+ "description": "Output only. An optional [Security Investigation Tool](https://support.google.com/a/answer/7575955) query for this alert.",
723
+ "type": "string"
724
+ },
725
+ "source": {
726
+ "description": "Required. A unique identifier for the system that reported the alert. This is output only after alert is created. Supported sources are any of the following: * Google Operations * Mobile device management * Gmail phishing * Data Loss Prevention * Domain wide takeout * State sponsored attack * Google identity * Apps outage",
727
+ "type": "string"
728
+ },
729
+ "startTime": {
730
+ "description": "Required. The time the event that caused this alert was started or detected.",
731
+ "format": "google-datetime",
732
+ "type": "string"
733
+ },
734
+ "type": {
735
+ "description": "Required. The type of the alert. This is output only after alert is created. For a list of available alert types see [Google Workspace Alert types](https://developers.google.com/workspace/admin/alertcenter/reference/alert-types).",
736
+ "type": "string"
737
+ },
738
+ "updateTime": {
739
+ "description": "Output only. The time this alert was last updated.",
740
+ "format": "google-datetime",
741
+ "type": "string"
742
+ }
743
+ },
744
+ "type": "object"
745
+ },
746
+ "AlertFeedback": {
747
+ "description": "A customer feedback about an alert.",
748
+ "id": "AlertFeedback",
749
+ "properties": {
750
+ "alertId": {
751
+ "description": "Output only. The alert identifier.",
752
+ "type": "string"
753
+ },
754
+ "createTime": {
755
+ "description": "Output only. The time this feedback was created.",
756
+ "format": "google-datetime",
757
+ "type": "string"
758
+ },
759
+ "customerId": {
760
+ "description": "Output only. The unique identifier of the Google Workspace account of the customer.",
761
+ "type": "string"
762
+ },
763
+ "email": {
764
+ "description": "Output only. The email of the user that provided the feedback.",
765
+ "type": "string"
766
+ },
767
+ "feedbackId": {
768
+ "description": "Output only. The unique identifier for the feedback.",
769
+ "type": "string"
770
+ },
771
+ "type": {
772
+ "description": "Required. The type of the feedback.",
773
+ "enum": [
774
+ "ALERT_FEEDBACK_TYPE_UNSPECIFIED",
775
+ "NOT_USEFUL",
776
+ "SOMEWHAT_USEFUL",
777
+ "VERY_USEFUL"
778
+ ],
779
+ "enumDescriptions": [
780
+ "The feedback type is not specified.",
781
+ "The alert report is not useful.",
782
+ "The alert report is somewhat useful.",
783
+ "The alert report is very useful."
784
+ ],
785
+ "type": "string"
786
+ }
787
+ },
788
+ "type": "object"
789
+ },
790
+ "AlertMetadata": {
791
+ "description": "An alert metadata.",
792
+ "id": "AlertMetadata",
793
+ "properties": {
794
+ "alertId": {
795
+ "description": "Output only. The alert identifier.",
796
+ "type": "string"
797
+ },
798
+ "assignee": {
799
+ "description": "The email address of the user assigned to the alert.",
800
+ "type": "string"
801
+ },
802
+ "customerId": {
803
+ "description": "Output only. The unique identifier of the Google Workspace account of the customer.",
804
+ "type": "string"
805
+ },
806
+ "etag": {
807
+ "description": "Optional. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of an alert metadata from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform metadata updates in order to avoid race conditions: An `etag` is returned in the response which contains alert metadata, and systems are expected to put that etag in the request to update alert metadata to ensure that their change will be applied to the same version of the alert metadata. If no `etag` is provided in the call to update alert metadata, then the existing alert metadata is overwritten blindly.",
808
+ "type": "string"
809
+ },
810
+ "severity": {
811
+ "description": "The severity value of the alert. Alert Center will set this field at alert creation time, default's to an empty string when it could not be determined. The supported values for update actions on this field are the following: * HIGH * MEDIUM * LOW",
812
+ "type": "string"
813
+ },
814
+ "status": {
815
+ "description": "The current status of the alert. The supported values are the following: * NOT_STARTED * IN_PROGRESS * CLOSED",
816
+ "type": "string"
817
+ },
818
+ "updateTime": {
819
+ "description": "Output only. The time this metadata was last updated.",
820
+ "format": "google-datetime",
821
+ "type": "string"
822
+ }
823
+ },
824
+ "type": "object"
825
+ },
826
+ "ApnsCertificateExpirationInfo": {
827
+ "description": "The explanation message associated with \"APNS certificate is expiring soon\" and \"APNS certificate has expired\" alerts.",
828
+ "id": "ApnsCertificateExpirationInfo",
829
+ "properties": {
830
+ "appleId": {
831
+ "description": "The Apple ID used to create the certificate. It may be blank if admins didn't enter it.",
832
+ "type": "string"
833
+ },
834
+ "expirationTime": {
835
+ "description": "The expiration date of the APNS certificate.",
836
+ "format": "google-datetime",
837
+ "type": "string"
838
+ },
839
+ "uid": {
840
+ "description": "The UID of the certificate.",
841
+ "type": "string"
842
+ }
843
+ },
844
+ "type": "object"
845
+ },
846
+ "AppMakerSqlSetupNotification": {
847
+ "description": "Alerts from App Maker to notify admins to set up default SQL instance.",
848
+ "id": "AppMakerSqlSetupNotification",
849
+ "properties": {
850
+ "requestInfo": {
851
+ "description": "List of applications with requests for default SQL set up.",
852
+ "items": {
853
+ "$ref": "RequestInfo"
854
+ },
855
+ "type": "array"
856
+ }
857
+ },
858
+ "type": "object"
859
+ },
860
+ "AppSettingsChanged": {
861
+ "description": "Alerts from AppSettingsChanged bucket Rules configured by Admin which contain the following rules: - Calendar settings changed - Drive settings changed - Email settings changed - Mobile settings changed",
862
+ "id": "AppSettingsChanged",
863
+ "properties": {
864
+ "alertDetails": {
865
+ "description": "Any other associated alert details, for example, AlertConfiguration.",
866
+ "format": "byte",
867
+ "type": "string"
868
+ },
869
+ "name": {
870
+ "description": "Rule name",
871
+ "type": "string"
872
+ }
873
+ },
874
+ "type": "object"
875
+ },
876
+ "AppsOutage": {
877
+ "description": "An outage incident reported for a Google Workspace service.",
878
+ "id": "AppsOutage",
879
+ "properties": {
880
+ "dashboardUri": {
881
+ "description": "Link to the outage event in Google Workspace Status Dashboard",
882
+ "type": "string"
883
+ },
884
+ "incidentTrackingId": {
885
+ "description": "Incident tracking ID.",
886
+ "type": "string"
887
+ },
888
+ "mergeInfo": {
889
+ "$ref": "MergeInfo",
890
+ "description": "Indicates new alert details under which the outage is communicated. Only populated when Status is MERGED."
891
+ },
892
+ "nextUpdateTime": {
893
+ "description": "Timestamp by which the next update is expected to arrive.",
894
+ "format": "google-datetime",
895
+ "type": "string"
896
+ },
897
+ "products": {
898
+ "description": "List of products impacted by the outage.",
899
+ "items": {
900
+ "type": "string"
901
+ },
902
+ "type": "array"
903
+ },
904
+ "resolutionTime": {
905
+ "description": "Timestamp when the outage is expected to be resolved, or has confirmed resolution. Provided only when known.",
906
+ "format": "google-datetime",
907
+ "type": "string"
908
+ },
909
+ "status": {
910
+ "description": "Current outage status.",
911
+ "enum": [
912
+ "STATUS_UNSPECIFIED",
913
+ "NEW",
914
+ "ONGOING",
915
+ "RESOLVED",
916
+ "FALSE_POSITIVE",
917
+ "PARTIALLY_RESOLVED",
918
+ "MERGED",
919
+ "DOWNGRADED"
920
+ ],
921
+ "enumDescriptions": [
922
+ "Status is unspecified.",
923
+ "The incident has just been reported.",
924
+ "The incident is ongoing.",
925
+ "The incident has been resolved.",
926
+ "Further assessment indicated no customer impact.",
927
+ "The incident has been partially resolved.",
928
+ "The incident was merged into a parent.",
929
+ "The incident has lower impact than initially anticipated."
930
+ ],
931
+ "type": "string"
932
+ }
933
+ },
934
+ "type": "object"
935
+ },
936
+ "Attachment": {
937
+ "description": "Attachment with application-specific information about an alert.",
938
+ "id": "Attachment",
939
+ "properties": {
940
+ "csv": {
941
+ "$ref": "Csv",
942
+ "description": "A CSV file attachment."
943
+ }
944
+ },
945
+ "type": "object"
946
+ },
947
+ "BadWhitelist": {
948
+ "description": "Alert for setting the domain or IP that malicious email comes from as whitelisted domain or IP in Gmail advanced settings.",
949
+ "id": "BadWhitelist",
950
+ "properties": {
951
+ "domainId": {
952
+ "$ref": "DomainId",
953
+ "description": "The domain ID."
954
+ },
955
+ "maliciousEntity": {
956
+ "$ref": "MaliciousEntity",
957
+ "description": "The entity whose actions triggered a Gmail phishing alert."
958
+ },
959
+ "messages": {
960
+ "description": "The list of messages contained by this alert.",
961
+ "items": {
962
+ "$ref": "GmailMessageInfo"
963
+ },
964
+ "type": "array"
965
+ },
966
+ "sourceIp": {
967
+ "description": "The source IP address of the malicious email, for example, `127.0.0.1`.",
968
+ "type": "string"
969
+ }
970
+ },
971
+ "type": "object"
972
+ },
973
+ "BatchDeleteAlertsRequest": {
974
+ "description": "A request to perform batch delete on alerts.",
975
+ "id": "BatchDeleteAlertsRequest",
976
+ "properties": {
977
+ "alertId": {
978
+ "description": "Required. The list of alert IDs to delete.",
979
+ "items": {
980
+ "type": "string"
981
+ },
982
+ "type": "array"
983
+ },
984
+ "customerId": {
985
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
986
+ "type": "string"
987
+ }
988
+ },
989
+ "type": "object"
990
+ },
991
+ "BatchDeleteAlertsResponse": {
992
+ "description": "Response to batch delete operation on alerts.",
993
+ "id": "BatchDeleteAlertsResponse",
994
+ "properties": {
995
+ "failedAlertStatus": {
996
+ "additionalProperties": {
997
+ "$ref": "Status"
998
+ },
999
+ "description": "The status details for each failed `alert_id`.",
1000
+ "type": "object"
1001
+ },
1002
+ "successAlertIds": {
1003
+ "description": "The successful list of alert IDs.",
1004
+ "items": {
1005
+ "type": "string"
1006
+ },
1007
+ "type": "array"
1008
+ }
1009
+ },
1010
+ "type": "object"
1011
+ },
1012
+ "BatchUndeleteAlertsRequest": {
1013
+ "description": "A request to perform batch undelete on alerts.",
1014
+ "id": "BatchUndeleteAlertsRequest",
1015
+ "properties": {
1016
+ "alertId": {
1017
+ "description": "Required. The list of alert IDs to undelete.",
1018
+ "items": {
1019
+ "type": "string"
1020
+ },
1021
+ "type": "array"
1022
+ },
1023
+ "customerId": {
1024
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
1025
+ "type": "string"
1026
+ }
1027
+ },
1028
+ "type": "object"
1029
+ },
1030
+ "BatchUndeleteAlertsResponse": {
1031
+ "description": "Response to batch undelete operation on alerts.",
1032
+ "id": "BatchUndeleteAlertsResponse",
1033
+ "properties": {
1034
+ "failedAlertStatus": {
1035
+ "additionalProperties": {
1036
+ "$ref": "Status"
1037
+ },
1038
+ "description": "The status details for each failed `alert_id`.",
1039
+ "type": "object"
1040
+ },
1041
+ "successAlertIds": {
1042
+ "description": "The successful list of alert IDs.",
1043
+ "items": {
1044
+ "type": "string"
1045
+ },
1046
+ "type": "array"
1047
+ }
1048
+ },
1049
+ "type": "object"
1050
+ },
1051
+ "CloudPubsubTopic": {
1052
+ "description": "A reference to a Cloud Pubsub topic. To register for notifications, the owner of the topic must grant `alerts-api-push-notifications@system.gserviceaccount.com` the `projects.topics.publish` permission.",
1053
+ "id": "CloudPubsubTopic",
1054
+ "properties": {
1055
+ "payloadFormat": {
1056
+ "description": "Optional. The format of the payload that would be sent. If not specified the format will be JSON.",
1057
+ "enum": [
1058
+ "PAYLOAD_FORMAT_UNSPECIFIED",
1059
+ "JSON"
1060
+ ],
1061
+ "enumDescriptions": [
1062
+ "Payload format is not specified (will use JSON as default).",
1063
+ "Use JSON."
1064
+ ],
1065
+ "type": "string"
1066
+ },
1067
+ "topicName": {
1068
+ "description": "The `name` field of a Cloud Pubsub [Topic] (https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#Topic).",
1069
+ "type": "string"
1070
+ }
1071
+ },
1072
+ "type": "object"
1073
+ },
1074
+ "Csv": {
1075
+ "description": "A representation of a CSV file attachment, as a list of column headers and a list of data rows.",
1076
+ "id": "Csv",
1077
+ "properties": {
1078
+ "dataRows": {
1079
+ "description": "The list of data rows in a CSV file, as string arrays rather than as a single comma-separated string.",
1080
+ "items": {
1081
+ "$ref": "CsvRow"
1082
+ },
1083
+ "type": "array"
1084
+ },
1085
+ "headers": {
1086
+ "description": "The list of headers for data columns in a CSV file.",
1087
+ "items": {
1088
+ "type": "string"
1089
+ },
1090
+ "type": "array"
1091
+ }
1092
+ },
1093
+ "type": "object"
1094
+ },
1095
+ "CsvRow": {
1096
+ "description": "A representation of a single data row in a CSV file.",
1097
+ "id": "CsvRow",
1098
+ "properties": {
1099
+ "entries": {
1100
+ "description": "The data entries in a CSV file row, as a string array rather than a single comma-separated string.",
1101
+ "items": {
1102
+ "type": "string"
1103
+ },
1104
+ "type": "array"
1105
+ }
1106
+ },
1107
+ "type": "object"
1108
+ },
1109
+ "DeviceCompromised": {
1110
+ "description": "A mobile device compromised alert. Derived from audit logs.",
1111
+ "id": "DeviceCompromised",
1112
+ "properties": {
1113
+ "email": {
1114
+ "description": "The email of the user this alert was created for.",
1115
+ "type": "string"
1116
+ },
1117
+ "events": {
1118
+ "description": "Required. The list of security events.",
1119
+ "items": {
1120
+ "$ref": "DeviceCompromisedSecurityDetail"
1121
+ },
1122
+ "type": "array"
1123
+ }
1124
+ },
1125
+ "type": "object"
1126
+ },
1127
+ "DeviceCompromisedSecurityDetail": {
1128
+ "description": "Detailed information of a single MDM device compromised event.",
1129
+ "id": "DeviceCompromisedSecurityDetail",
1130
+ "properties": {
1131
+ "deviceCompromisedState": {
1132
+ "description": "The device compromised state. Possible values are \"`Compromised`\" or \"`Not Compromised`\".",
1133
+ "type": "string"
1134
+ },
1135
+ "deviceId": {
1136
+ "description": "Required. The device ID.",
1137
+ "type": "string"
1138
+ },
1139
+ "deviceModel": {
1140
+ "description": "The model of the device.",
1141
+ "type": "string"
1142
+ },
1143
+ "deviceType": {
1144
+ "description": "The type of the device.",
1145
+ "type": "string"
1146
+ },
1147
+ "iosVendorId": {
1148
+ "description": "Required for iOS, empty for others.",
1149
+ "type": "string"
1150
+ },
1151
+ "resourceId": {
1152
+ "description": "The device resource ID.",
1153
+ "type": "string"
1154
+ },
1155
+ "serialNumber": {
1156
+ "description": "The serial number of the device.",
1157
+ "type": "string"
1158
+ }
1159
+ },
1160
+ "type": "object"
1161
+ },
1162
+ "DeviceManagementRule": {
1163
+ "description": "Alerts from Device Management Rules configured by Admin.",
1164
+ "id": "DeviceManagementRule",
1165
+ "properties": {
1166
+ "deviceId": {
1167
+ "description": "Required. The device ID.",
1168
+ "type": "string"
1169
+ },
1170
+ "deviceModel": {
1171
+ "description": "The model of the device.",
1172
+ "type": "string"
1173
+ },
1174
+ "deviceType": {
1175
+ "description": "The type of the device.",
1176
+ "type": "string"
1177
+ },
1178
+ "email": {
1179
+ "description": "The email of the user this alert was created for.",
1180
+ "type": "string"
1181
+ },
1182
+ "id": {
1183
+ "description": "ID of the rule that triggered the alert",
1184
+ "type": "string"
1185
+ },
1186
+ "iosVendorId": {
1187
+ "description": "Required for iOS, empty for others.",
1188
+ "type": "string"
1189
+ },
1190
+ "ownerId": {
1191
+ "description": "Obfuscated ID of the owner of the device",
1192
+ "type": "string"
1193
+ },
1194
+ "resourceId": {
1195
+ "description": "The device resource ID.",
1196
+ "type": "string"
1197
+ },
1198
+ "ruleAction": {
1199
+ "description": "Action taken as result of the rule",
1200
+ "type": "string"
1201
+ },
1202
+ "serialNumber": {
1203
+ "description": "The serial number of the device.",
1204
+ "type": "string"
1205
+ }
1206
+ },
1207
+ "type": "object"
1208
+ },
1209
+ "DlpRuleViolation": {
1210
+ "description": "Alerts that get triggered on violations of Data Loss Prevention (DLP) rules.",
1211
+ "id": "DlpRuleViolation",
1212
+ "properties": {
1213
+ "ruleViolationInfo": {
1214
+ "$ref": "RuleViolationInfo",
1215
+ "description": "Details about the violated DLP rule. Admins can use the predefined detectors provided by Google Cloud DLP https://cloud.google.com/dlp/ when setting up a DLP rule. Matched Cloud DLP detectors in this violation if any will be captured in the MatchInfo.predefined_detector."
1216
+ }
1217
+ },
1218
+ "type": "object"
1219
+ },
1220
+ "DomainId": {
1221
+ "description": "Domain ID of Gmail phishing alerts.",
1222
+ "id": "DomainId",
1223
+ "properties": {
1224
+ "customerPrimaryDomain": {
1225
+ "description": "The primary domain for the customer.",
1226
+ "type": "string"
1227
+ }
1228
+ },
1229
+ "type": "object"
1230
+ },
1231
+ "DomainWideTakeoutInitiated": {
1232
+ "description": "A takeout operation for the entire domain was initiated by an admin. Derived from audit logs.",
1233
+ "id": "DomainWideTakeoutInitiated",
1234
+ "properties": {
1235
+ "email": {
1236
+ "description": "The email of the admin who initiated the takeout.",
1237
+ "type": "string"
1238
+ },
1239
+ "takeoutRequestId": {
1240
+ "description": "The takeout request ID.",
1241
+ "type": "string"
1242
+ }
1243
+ },
1244
+ "type": "object"
1245
+ },
1246
+ "Empty": {
1247
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
1248
+ "id": "Empty",
1249
+ "properties": {},
1250
+ "type": "object"
1251
+ },
1252
+ "Entity": {
1253
+ "description": "Individual entity affected by, or related to, an alert.",
1254
+ "id": "Entity",
1255
+ "properties": {
1256
+ "link": {
1257
+ "description": "Link to a Security Investigation Tool search based on this entity, if available.",
1258
+ "type": "string"
1259
+ },
1260
+ "name": {
1261
+ "description": "Human-readable name of this entity, such as an email address, file ID, or device name.",
1262
+ "type": "string"
1263
+ },
1264
+ "values": {
1265
+ "description": "Extra values beyond name. The order of values should align with headers in EntityList.",
1266
+ "items": {
1267
+ "type": "string"
1268
+ },
1269
+ "type": "array"
1270
+ }
1271
+ },
1272
+ "type": "object"
1273
+ },
1274
+ "EntityList": {
1275
+ "description": "EntityList stores entities in a format that can be translated to a table in the Alert Center UI.",
1276
+ "id": "EntityList",
1277
+ "properties": {
1278
+ "entities": {
1279
+ "description": "List of entities affected by the alert.",
1280
+ "items": {
1281
+ "$ref": "Entity"
1282
+ },
1283
+ "type": "array"
1284
+ },
1285
+ "headers": {
1286
+ "description": "Headers of the values in entities. If no value is defined in Entity, this field should be empty.",
1287
+ "items": {
1288
+ "type": "string"
1289
+ },
1290
+ "type": "array"
1291
+ },
1292
+ "name": {
1293
+ "description": "Name of the key detail used to display this entity list.",
1294
+ "type": "string"
1295
+ }
1296
+ },
1297
+ "type": "object"
1298
+ },
1299
+ "GmailMessageInfo": {
1300
+ "description": "Details of a message in phishing spike alert.",
1301
+ "id": "GmailMessageInfo",
1302
+ "properties": {
1303
+ "attachmentsSha256Hash": {
1304
+ "description": "The `SHA256` hash of email's attachment and all MIME parts.",
1305
+ "items": {
1306
+ "type": "string"
1307
+ },
1308
+ "type": "array"
1309
+ },
1310
+ "date": {
1311
+ "description": "The date of the event related to this email.",
1312
+ "format": "google-datetime",
1313
+ "type": "string"
1314
+ },
1315
+ "md5HashMessageBody": {
1316
+ "description": "The hash of the message body text.",
1317
+ "type": "string"
1318
+ },
1319
+ "md5HashSubject": {
1320
+ "description": "The MD5 Hash of email's subject (only available for reported emails).",
1321
+ "type": "string"
1322
+ },
1323
+ "messageBodySnippet": {
1324
+ "description": "The snippet of the message body text (only available for reported emails).",
1325
+ "type": "string"
1326
+ },
1327
+ "messageId": {
1328
+ "description": "The message ID.",
1329
+ "type": "string"
1330
+ },
1331
+ "recipient": {
1332
+ "description": "The recipient of this email.",
1333
+ "type": "string"
1334
+ },
1335
+ "sentTime": {
1336
+ "description": "The sent time of the email.",
1337
+ "format": "google-datetime",
1338
+ "type": "string"
1339
+ },
1340
+ "subjectText": {
1341
+ "description": "The email subject text (only available for reported emails).",
1342
+ "type": "string"
1343
+ }
1344
+ },
1345
+ "type": "object"
1346
+ },
1347
+ "GoogleOperations": {
1348
+ "description": "An incident reported by Google Operations for a Google Workspace application.",
1349
+ "id": "GoogleOperations",
1350
+ "properties": {
1351
+ "affectedUserEmails": {
1352
+ "description": "The list of emails which correspond to the users directly affected by the incident.",
1353
+ "items": {
1354
+ "type": "string"
1355
+ },
1356
+ "type": "array"
1357
+ },
1358
+ "attachmentData": {
1359
+ "$ref": "Attachment",
1360
+ "description": "Optional. Application-specific data for an incident, provided when the Google Workspace application which reported the incident cannot be completely restored to a valid state."
1361
+ },
1362
+ "description": {
1363
+ "description": "A detailed, freeform incident description.",
1364
+ "type": "string"
1365
+ },
1366
+ "domain": {
1367
+ "description": "Customer domain for email template personalization.",
1368
+ "type": "string"
1369
+ },
1370
+ "header": {
1371
+ "description": "A header to display above the incident message. Typically used to attach a localized notice on the timeline for followup comms translations.",
1372
+ "type": "string"
1373
+ },
1374
+ "title": {
1375
+ "description": "A one-line incident description.",
1376
+ "type": "string"
1377
+ }
1378
+ },
1379
+ "type": "object"
1380
+ },
1381
+ "ListAlertFeedbackResponse": {
1382
+ "description": "Response message for an alert feedback listing request.",
1383
+ "id": "ListAlertFeedbackResponse",
1384
+ "properties": {
1385
+ "feedback": {
1386
+ "description": "The list of alert feedback. Feedback entries for each alert are ordered by creation time descending.",
1387
+ "items": {
1388
+ "$ref": "AlertFeedback"
1389
+ },
1390
+ "type": "array"
1391
+ }
1392
+ },
1393
+ "type": "object"
1394
+ },
1395
+ "ListAlertsResponse": {
1396
+ "description": "Response message for an alert listing request.",
1397
+ "id": "ListAlertsResponse",
1398
+ "properties": {
1399
+ "alerts": {
1400
+ "description": "The list of alerts.",
1401
+ "items": {
1402
+ "$ref": "Alert"
1403
+ },
1404
+ "type": "array"
1405
+ },
1406
+ "nextPageToken": {
1407
+ "description": "The token for the next page. If not empty, indicates that there may be more alerts that match the listing request; this value can be used in a subsequent ListAlertsRequest to get alerts continuing from last result of the current list call.",
1408
+ "type": "string"
1409
+ }
1410
+ },
1411
+ "type": "object"
1412
+ },
1413
+ "LoginDetails": {
1414
+ "description": "The details of the login action.",
1415
+ "id": "LoginDetails",
1416
+ "properties": {
1417
+ "ipAddress": {
1418
+ "description": "Optional. The human-readable IP address (for example, `11.22.33.44`) that is associated with the warning event.",
1419
+ "type": "string"
1420
+ },
1421
+ "loginTime": {
1422
+ "description": "Optional. The successful login time that is associated with the warning event. This isn't present for blocked login attempts.",
1423
+ "format": "google-datetime",
1424
+ "type": "string"
1425
+ }
1426
+ },
1427
+ "type": "object"
1428
+ },
1429
+ "MailPhishing": {
1430
+ "description": "Proto for all phishing alerts with common payload. Supported types are any of the following: * User reported phishing * User reported spam spike * Suspicious message reported * Phishing reclassification * Malware reclassification * Gmail potential employee spoofing",
1431
+ "id": "MailPhishing",
1432
+ "properties": {
1433
+ "domainId": {
1434
+ "$ref": "DomainId",
1435
+ "description": "The domain ID."
1436
+ },
1437
+ "isInternal": {
1438
+ "description": "If `true`, the email originated from within the organization.",
1439
+ "type": "boolean"
1440
+ },
1441
+ "maliciousEntity": {
1442
+ "$ref": "MaliciousEntity",
1443
+ "description": "The entity whose actions triggered a Gmail phishing alert."
1444
+ },
1445
+ "messages": {
1446
+ "description": "The list of messages contained by this alert.",
1447
+ "items": {
1448
+ "$ref": "GmailMessageInfo"
1449
+ },
1450
+ "type": "array"
1451
+ },
1452
+ "systemActionType": {
1453
+ "description": "System actions on the messages.",
1454
+ "enum": [
1455
+ "SYSTEM_ACTION_TYPE_UNSPECIFIED",
1456
+ "NO_OPERATION",
1457
+ "REMOVED_FROM_INBOX"
1458
+ ],
1459
+ "enumDescriptions": [
1460
+ "System action is unspecified.",
1461
+ "No operation.",
1462
+ "Messages were removed from the inbox."
1463
+ ],
1464
+ "type": "string"
1465
+ }
1466
+ },
1467
+ "type": "object"
1468
+ },
1469
+ "MaliciousEntity": {
1470
+ "description": "Entity whose actions triggered a Gmail phishing alert.",
1471
+ "id": "MaliciousEntity",
1472
+ "properties": {
1473
+ "displayName": {
1474
+ "description": "The header from display name.",
1475
+ "type": "string"
1476
+ },
1477
+ "entity": {
1478
+ "$ref": "User",
1479
+ "description": "The actor who triggered a gmail phishing alert."
1480
+ },
1481
+ "fromHeader": {
1482
+ "description": "The sender email address.",
1483
+ "type": "string"
1484
+ }
1485
+ },
1486
+ "type": "object"
1487
+ },
1488
+ "MandatoryServiceAnnouncement": {
1489
+ "description": "Alert Created by the MSA team for communications necessary for continued use of Google Workspace Products.",
1490
+ "id": "MandatoryServiceAnnouncement",
1491
+ "properties": {
1492
+ "description": {
1493
+ "description": "Detailed, freeform text describing the announcement",
1494
+ "type": "string"
1495
+ },
1496
+ "title": {
1497
+ "description": "One line summary of the announcement",
1498
+ "type": "string"
1499
+ }
1500
+ },
1501
+ "type": "object"
1502
+ },
1503
+ "MatchInfo": {
1504
+ "description": "Proto that contains match information from the condition part of the rule.",
1505
+ "id": "MatchInfo",
1506
+ "properties": {
1507
+ "predefinedDetector": {
1508
+ "$ref": "PredefinedDetectorInfo",
1509
+ "description": "For matched detector predefined by Google."
1510
+ },
1511
+ "userDefinedDetector": {
1512
+ "$ref": "UserDefinedDetectorInfo",
1513
+ "description": "For matched detector defined by administrators."
1514
+ }
1515
+ },
1516
+ "type": "object"
1517
+ },
1518
+ "MergeInfo": {
1519
+ "description": "New alert tracking numbers.",
1520
+ "id": "MergeInfo",
1521
+ "properties": {
1522
+ "newAlertId": {
1523
+ "description": "Optional. New alert ID. Reference the [google.apps.alertcenter.Alert] with this ID for the current state.",
1524
+ "type": "string"
1525
+ },
1526
+ "newIncidentTrackingId": {
1527
+ "description": "The new tracking ID from the parent incident.",
1528
+ "type": "string"
1529
+ }
1530
+ },
1531
+ "type": "object"
1532
+ },
1533
+ "Notification": {
1534
+ "description": "Settings for callback notifications. For more details see [Google Workspace Alert Notification](https://developers.google.com/workspace/admin/alertcenter/guides/notifications).",
1535
+ "id": "Notification",
1536
+ "properties": {
1537
+ "cloudPubsubTopic": {
1538
+ "$ref": "CloudPubsubTopic",
1539
+ "description": "A Google Cloud Pub/sub topic destination."
1540
+ }
1541
+ },
1542
+ "type": "object"
1543
+ },
1544
+ "PhishingSpike": {
1545
+ "description": "Alert for a spike in user reported phishing. *Warning*: This type has been deprecated. Use [MailPhishing](https://developers.google.com/workspace/admin/alertcenter/reference/rest/v1beta1/MailPhishing) instead.",
1546
+ "id": "PhishingSpike",
1547
+ "properties": {
1548
+ "domainId": {
1549
+ "$ref": "DomainId",
1550
+ "description": "The domain ID."
1551
+ },
1552
+ "isInternal": {
1553
+ "description": "If `true`, the email originated from within the organization.",
1554
+ "type": "boolean"
1555
+ },
1556
+ "maliciousEntity": {
1557
+ "$ref": "MaliciousEntity",
1558
+ "description": "The entity whose actions triggered a Gmail phishing alert."
1559
+ },
1560
+ "messages": {
1561
+ "description": "The list of messages contained by this alert.",
1562
+ "items": {
1563
+ "$ref": "GmailMessageInfo"
1564
+ },
1565
+ "type": "array"
1566
+ }
1567
+ },
1568
+ "type": "object"
1569
+ },
1570
+ "PredefinedDetectorInfo": {
1571
+ "description": "Detector provided by Google.",
1572
+ "id": "PredefinedDetectorInfo",
1573
+ "properties": {
1574
+ "detectorName": {
1575
+ "description": "Name that uniquely identifies the detector.",
1576
+ "type": "string"
1577
+ }
1578
+ },
1579
+ "type": "object"
1580
+ },
1581
+ "PrimaryAdminChangedEvent": {
1582
+ "description": "Event occurred when primary admin changed in customer's account. The event are being received from insight forwarder",
1583
+ "id": "PrimaryAdminChangedEvent",
1584
+ "properties": {
1585
+ "domain": {
1586
+ "description": "domain in which actioned occurred",
1587
+ "type": "string"
1588
+ },
1589
+ "previousAdminEmail": {
1590
+ "description": "Email of person who was the primary admin before the action",
1591
+ "type": "string"
1592
+ },
1593
+ "updatedAdminEmail": {
1594
+ "description": "Email of person who is the primary admin after the action",
1595
+ "type": "string"
1596
+ }
1597
+ },
1598
+ "type": "object"
1599
+ },
1600
+ "ReportingRule": {
1601
+ "description": "Alerts from Reporting Rules configured by Admin.",
1602
+ "id": "ReportingRule",
1603
+ "properties": {
1604
+ "alertDetails": {
1605
+ "description": "Any other associated alert details, for example, AlertConfiguration.",
1606
+ "format": "byte",
1607
+ "type": "string"
1608
+ },
1609
+ "name": {
1610
+ "description": "Rule name",
1611
+ "type": "string"
1612
+ },
1613
+ "query": {
1614
+ "description": "Alert Rule query Sample Query query { condition { filter { expected_application_id: 777491262838 expected_event_name: \"indexable_content_change\" filter_op: IN } } conjunction_operator: OR }",
1615
+ "format": "byte",
1616
+ "type": "string"
1617
+ }
1618
+ },
1619
+ "type": "object"
1620
+ },
1621
+ "RequestInfo": {
1622
+ "description": "Requests for one application that needs default SQL setup.",
1623
+ "id": "RequestInfo",
1624
+ "properties": {
1625
+ "appDeveloperEmail": {
1626
+ "description": "List of app developers who triggered notifications for above application.",
1627
+ "items": {
1628
+ "type": "string"
1629
+ },
1630
+ "type": "array"
1631
+ },
1632
+ "appKey": {
1633
+ "description": "Required. The application that requires the SQL setup.",
1634
+ "type": "string"
1635
+ },
1636
+ "numberOfRequests": {
1637
+ "description": "Required. Number of requests sent for this application to set up default SQL instance.",
1638
+ "format": "int64",
1639
+ "type": "string"
1640
+ }
1641
+ },
1642
+ "type": "object"
1643
+ },
1644
+ "ResourceInfo": {
1645
+ "description": "Proto that contains resource information.",
1646
+ "id": "ResourceInfo",
1647
+ "properties": {
1648
+ "chatAttachmentId": {
1649
+ "description": "Chat attachment ID.",
1650
+ "type": "string"
1651
+ },
1652
+ "chatMessageId": {
1653
+ "description": "Chat message ID.",
1654
+ "type": "string"
1655
+ },
1656
+ "deviceId": {
1657
+ "description": "Id to identify a device. For example, for Android devices, this is the \"Android Device Id\" and for Chrome OS devices, it's the \"Device Virtual Id\".",
1658
+ "type": "string"
1659
+ },
1660
+ "documentId": {
1661
+ "description": "Drive file ID.",
1662
+ "type": "string"
1663
+ },
1664
+ "messageId": {
1665
+ "description": "RFC2822 message ID.",
1666
+ "type": "string"
1667
+ },
1668
+ "resourceTitle": {
1669
+ "description": "Title of the resource, for example email subject, or document title.",
1670
+ "type": "string"
1671
+ }
1672
+ },
1673
+ "type": "object"
1674
+ },
1675
+ "RuleInfo": {
1676
+ "description": "Proto that contains rule information.",
1677
+ "id": "RuleInfo",
1678
+ "properties": {
1679
+ "displayName": {
1680
+ "description": "User provided name of the rule.",
1681
+ "type": "string"
1682
+ },
1683
+ "resourceName": {
1684
+ "description": "Resource name that uniquely identifies the rule.",
1685
+ "type": "string"
1686
+ }
1687
+ },
1688
+ "type": "object"
1689
+ },
1690
+ "RuleViolationInfo": {
1691
+ "description": "Common alert information about violated rules that are configured by Google Workspace administrators.",
1692
+ "id": "RuleViolationInfo",
1693
+ "properties": {
1694
+ "dataSource": {
1695
+ "description": "Source of the data.",
1696
+ "enum": [
1697
+ "DATA_SOURCE_UNSPECIFIED",
1698
+ "DRIVE",
1699
+ "CHROME",
1700
+ "CHAT"
1701
+ ],
1702
+ "enumDescriptions": [
1703
+ "Data source is unspecified.",
1704
+ "Drive data source.",
1705
+ "Chrome data source.",
1706
+ "Chat data source."
1707
+ ],
1708
+ "type": "string"
1709
+ },
1710
+ "eventType": {
1711
+ "description": "Event associated with this alert after applying the rule.",
1712
+ "enum": [
1713
+ "EVENT_TYPE_UNSPECIFIED",
1714
+ "ACCESS_BLOCKED",
1715
+ "SHARING_BLOCKED"
1716
+ ],
1717
+ "enumDescriptions": [
1718
+ "Event type wasn't set.",
1719
+ "An access attempt was blocked.",
1720
+ "A sharing attempt was blocked."
1721
+ ],
1722
+ "type": "string"
1723
+ },
1724
+ "matchInfo": {
1725
+ "description": "List of matches that were found in the resource content.",
1726
+ "items": {
1727
+ "$ref": "MatchInfo"
1728
+ },
1729
+ "type": "array"
1730
+ },
1731
+ "recipients": {
1732
+ "description": "Resource recipients. For Drive, they are grantees that the Drive file was shared with at the time of rule triggering. Valid values include user emails, group emails, domains, or 'anyone' if the file was publicly accessible. If the file was private the recipients list will be empty. For Gmail, they are emails of the users or groups that the Gmail message was sent to.",
1733
+ "items": {
1734
+ "type": "string"
1735
+ },
1736
+ "type": "array"
1737
+ },
1738
+ "resourceInfo": {
1739
+ "$ref": "ResourceInfo",
1740
+ "description": "Details of the resource which violated the rule."
1741
+ },
1742
+ "ruleInfo": {
1743
+ "$ref": "RuleInfo",
1744
+ "description": "Details of the violated rule."
1745
+ },
1746
+ "suppressedActionTypes": {
1747
+ "description": "Actions suppressed due to other actions with higher priority.",
1748
+ "items": {
1749
+ "enum": [
1750
+ "ACTION_TYPE_UNSPECIFIED",
1751
+ "DRIVE_BLOCK_EXTERNAL_SHARING",
1752
+ "DRIVE_WARN_ON_EXTERNAL_SHARING",
1753
+ "DRIVE_RESTRICT_DOWNLOAD_PRINT_COPY",
1754
+ "DRIVE_APPLY_DRIVE_LABELS",
1755
+ "CHROME_BLOCK_FILE_DOWNLOAD",
1756
+ "CHROME_WARN_FILE_DOWNLOAD",
1757
+ "CHROME_BLOCK_FILE_UPLOAD",
1758
+ "CHROME_WARN_FILE_UPLOAD",
1759
+ "CHROME_BLOCK_WEB_CONTENT_UPLOAD",
1760
+ "CHROME_WARN_WEB_CONTENT_UPLOAD",
1761
+ "CHROME_BLOCK_PAGE_PRINT",
1762
+ "CHROME_WARN_PAGE_PRINT",
1763
+ "CHROME_BLOCK_URL_VISITED",
1764
+ "CHROME_WARN_URL_VISITED",
1765
+ "CHROME_BLOCK_SCREENSHOT",
1766
+ "CHROME_STORE_CONTENT",
1767
+ "DELETE_WEBPROTECT_EVIDENCE",
1768
+ "CHAT_BLOCK_CONTENT",
1769
+ "CHAT_WARN_USER",
1770
+ "ALERT",
1771
+ "RULE_ACTIVATE",
1772
+ "RULE_DEACTIVATE"
1773
+ ],
1774
+ "enumDescriptions": [
1775
+ "Action type is unspecified.",
1776
+ "Block sharing a file externally.",
1777
+ "Show a warning message when sharing a file externally.",
1778
+ "Disable download, print, and copy for commenters and viewers in drive.",
1779
+ "Apply customer specified Drive labels to the file.",
1780
+ "Chrome actions. Block file download.",
1781
+ "Warn user about downloaded file.",
1782
+ "Block file upload.",
1783
+ "Warn user about uploaded file.",
1784
+ "Block web content upload.",
1785
+ "Warn user about uploaded web content.",
1786
+ "Block page print.",
1787
+ "Warn user about printed page.",
1788
+ "Block Chrome URL visit.",
1789
+ "Warn user about Chrome URL visited.",
1790
+ "Block screenshot alert.",
1791
+ "Store the content that violated the rule.",
1792
+ "Delete web protect evidence file",
1793
+ "Chat actions. Block Chat content to be sent out.",
1794
+ "Warn end user about Chat content.",
1795
+ "Send alert.",
1796
+ "Activate Rule Action",
1797
+ "Deactivate Rule Action"
1798
+ ],
1799
+ "type": "string"
1800
+ },
1801
+ "type": "array"
1802
+ },
1803
+ "trigger": {
1804
+ "description": "Trigger of the rule.",
1805
+ "enum": [
1806
+ "TRIGGER_UNSPECIFIED",
1807
+ "DRIVE_SHARE",
1808
+ "CHROME_FILE_DOWNLOAD",
1809
+ "CHROME_FILE_UPLOAD",
1810
+ "CHROME_WEB_CONTENT_UPLOAD",
1811
+ "CHAT_MESSAGE_SENT",
1812
+ "CHAT_ATTACHMENT_UPLOADED",
1813
+ "CHROME_PAGE_PRINT",
1814
+ "CHROME_URL_VISITED"
1815
+ ],
1816
+ "enumDescriptions": [
1817
+ "Trigger is unspecified.",
1818
+ "A Drive file is shared.",
1819
+ "A file being downloaded in a Chrome browser.",
1820
+ "A file being uploaded from a Chrome browser.",
1821
+ "Web content being uploaded from a Chrome browser.",
1822
+ "A Chat message is sent.",
1823
+ "A Chat attachment is uploaded.",
1824
+ "A page is being printed by Chrome.",
1825
+ "A URL is visited within Chrome."
1826
+ ],
1827
+ "type": "string"
1828
+ },
1829
+ "triggeredActionInfo": {
1830
+ "description": "Metadata related to the triggered actions.",
1831
+ "items": {
1832
+ "$ref": "ActionInfo"
1833
+ },
1834
+ "type": "array"
1835
+ },
1836
+ "triggeredActionTypes": {
1837
+ "description": "Actions applied as a consequence of the rule being triggered.",
1838
+ "items": {
1839
+ "enum": [
1840
+ "ACTION_TYPE_UNSPECIFIED",
1841
+ "DRIVE_BLOCK_EXTERNAL_SHARING",
1842
+ "DRIVE_WARN_ON_EXTERNAL_SHARING",
1843
+ "DRIVE_RESTRICT_DOWNLOAD_PRINT_COPY",
1844
+ "DRIVE_APPLY_DRIVE_LABELS",
1845
+ "CHROME_BLOCK_FILE_DOWNLOAD",
1846
+ "CHROME_WARN_FILE_DOWNLOAD",
1847
+ "CHROME_BLOCK_FILE_UPLOAD",
1848
+ "CHROME_WARN_FILE_UPLOAD",
1849
+ "CHROME_BLOCK_WEB_CONTENT_UPLOAD",
1850
+ "CHROME_WARN_WEB_CONTENT_UPLOAD",
1851
+ "CHROME_BLOCK_PAGE_PRINT",
1852
+ "CHROME_WARN_PAGE_PRINT",
1853
+ "CHROME_BLOCK_URL_VISITED",
1854
+ "CHROME_WARN_URL_VISITED",
1855
+ "CHROME_BLOCK_SCREENSHOT",
1856
+ "CHROME_STORE_CONTENT",
1857
+ "DELETE_WEBPROTECT_EVIDENCE",
1858
+ "CHAT_BLOCK_CONTENT",
1859
+ "CHAT_WARN_USER",
1860
+ "ALERT",
1861
+ "RULE_ACTIVATE",
1862
+ "RULE_DEACTIVATE"
1863
+ ],
1864
+ "enumDescriptions": [
1865
+ "Action type is unspecified.",
1866
+ "Block sharing a file externally.",
1867
+ "Show a warning message when sharing a file externally.",
1868
+ "Disable download, print, and copy for commenters and viewers in drive.",
1869
+ "Apply customer specified Drive labels to the file.",
1870
+ "Chrome actions. Block file download.",
1871
+ "Warn user about downloaded file.",
1872
+ "Block file upload.",
1873
+ "Warn user about uploaded file.",
1874
+ "Block web content upload.",
1875
+ "Warn user about uploaded web content.",
1876
+ "Block page print.",
1877
+ "Warn user about printed page.",
1878
+ "Block Chrome URL visit.",
1879
+ "Warn user about Chrome URL visited.",
1880
+ "Block screenshot alert.",
1881
+ "Store the content that violated the rule.",
1882
+ "Delete web protect evidence file",
1883
+ "Chat actions. Block Chat content to be sent out.",
1884
+ "Warn end user about Chat content.",
1885
+ "Send alert.",
1886
+ "Activate Rule Action",
1887
+ "Deactivate Rule Action"
1888
+ ],
1889
+ "type": "string"
1890
+ },
1891
+ "type": "array"
1892
+ },
1893
+ "triggeringUserEmail": {
1894
+ "description": "Email of the user who caused the violation. Value could be empty if not applicable, for example, a violation found by drive continuous scan.",
1895
+ "type": "string"
1896
+ }
1897
+ },
1898
+ "type": "object"
1899
+ },
1900
+ "SSOProfileCreatedEvent": {
1901
+ "description": "Event occurred when SSO Profile created in customer's account. The event are being received from insight forwarder",
1902
+ "id": "SSOProfileCreatedEvent",
1903
+ "properties": {
1904
+ "inboundSsoProfileName": {
1905
+ "description": "sso profile name which got created",
1906
+ "type": "string"
1907
+ }
1908
+ },
1909
+ "type": "object"
1910
+ },
1911
+ "SSOProfileDeletedEvent": {
1912
+ "description": "Event occurred when SSO Profile deleted in customer's account. The event are being received from insight forwarder",
1913
+ "id": "SSOProfileDeletedEvent",
1914
+ "properties": {
1915
+ "inboundSsoProfileName": {
1916
+ "description": "sso profile name which got deleted",
1917
+ "type": "string"
1918
+ }
1919
+ },
1920
+ "type": "object"
1921
+ },
1922
+ "SSOProfileUpdatedEvent": {
1923
+ "description": "Event occurred when SSO Profile updated in customer's account. The event are being received from insight forwarder",
1924
+ "id": "SSOProfileUpdatedEvent",
1925
+ "properties": {
1926
+ "inboundSsoProfileChanges": {
1927
+ "description": "changes made to sso profile",
1928
+ "type": "string"
1929
+ },
1930
+ "inboundSsoProfileName": {
1931
+ "description": "sso profile name which got updated",
1932
+ "type": "string"
1933
+ }
1934
+ },
1935
+ "type": "object"
1936
+ },
1937
+ "SensitiveAdminAction": {
1938
+ "description": "Alert that is triggered when Sensitive Admin Action occur in customer account.",
1939
+ "id": "SensitiveAdminAction",
1940
+ "properties": {
1941
+ "actorEmail": {
1942
+ "description": "Email of person who performed the action",
1943
+ "type": "string"
1944
+ },
1945
+ "eventTime": {
1946
+ "description": "The time at which event occurred",
1947
+ "format": "google-datetime",
1948
+ "type": "string"
1949
+ },
1950
+ "primaryAdminChangedEvent": {
1951
+ "$ref": "PrimaryAdminChangedEvent",
1952
+ "description": "Event occurred when primary admin changed in customer's account"
1953
+ },
1954
+ "ssoProfileCreatedEvent": {
1955
+ "$ref": "SSOProfileCreatedEvent",
1956
+ "description": "Event occurred when SSO Profile created in customer's account"
1957
+ },
1958
+ "ssoProfileDeletedEvent": {
1959
+ "$ref": "SSOProfileDeletedEvent",
1960
+ "description": "Event occurred when SSO Profile deleted in customer's account"
1961
+ },
1962
+ "ssoProfileUpdatedEvent": {
1963
+ "$ref": "SSOProfileUpdatedEvent",
1964
+ "description": "Event occurred when SSO Profile updated in customer's account"
1965
+ },
1966
+ "superAdminPasswordResetEvent": {
1967
+ "$ref": "SuperAdminPasswordResetEvent",
1968
+ "description": "Event occurred when password was reset for super admin in customer's account"
1969
+ }
1970
+ },
1971
+ "type": "object"
1972
+ },
1973
+ "Settings": {
1974
+ "description": "Customer-level settings.",
1975
+ "id": "Settings",
1976
+ "properties": {
1977
+ "notifications": {
1978
+ "description": "The list of notifications.",
1979
+ "items": {
1980
+ "$ref": "Notification"
1981
+ },
1982
+ "type": "array"
1983
+ }
1984
+ },
1985
+ "type": "object"
1986
+ },
1987
+ "StateSponsoredAttack": {
1988
+ "description": "A state-sponsored attack alert. Derived from audit logs.",
1989
+ "id": "StateSponsoredAttack",
1990
+ "properties": {
1991
+ "email": {
1992
+ "description": "The email of the user this incident was created for.",
1993
+ "type": "string"
1994
+ }
1995
+ },
1996
+ "type": "object"
1997
+ },
1998
+ "Status": {
1999
+ "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
2000
+ "id": "Status",
2001
+ "properties": {
2002
+ "code": {
2003
+ "description": "The status code, which should be an enum value of google.rpc.Code.",
2004
+ "format": "int32",
2005
+ "type": "integer"
2006
+ },
2007
+ "details": {
2008
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
2009
+ "items": {
2010
+ "additionalProperties": {
2011
+ "description": "Properties of the object. Contains field @type with type URL.",
2012
+ "type": "any"
2013
+ },
2014
+ "type": "object"
2015
+ },
2016
+ "type": "array"
2017
+ },
2018
+ "message": {
2019
+ "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.",
2020
+ "type": "string"
2021
+ }
2022
+ },
2023
+ "type": "object"
2024
+ },
2025
+ "SuperAdminPasswordResetEvent": {
2026
+ "description": "Event occurred when password was reset for super admin in customer's account. The event are being received from insight forwarder",
2027
+ "id": "SuperAdminPasswordResetEvent",
2028
+ "properties": {
2029
+ "userEmail": {
2030
+ "description": "email of person whose password was reset",
2031
+ "type": "string"
2032
+ }
2033
+ },
2034
+ "type": "object"
2035
+ },
2036
+ "SupportTicket": {
2037
+ "description": "Support ticket related to Access Approvals request",
2038
+ "id": "SupportTicket",
2039
+ "properties": {
2040
+ "ticketId": {
2041
+ "description": "Support ticket ID",
2042
+ "type": "string"
2043
+ },
2044
+ "ticketUrl": {
2045
+ "description": "Link to support ticket",
2046
+ "type": "string"
2047
+ }
2048
+ },
2049
+ "type": "object"
2050
+ },
2051
+ "SuspiciousActivity": {
2052
+ "description": "A mobile suspicious activity alert. Derived from audit logs.",
2053
+ "id": "SuspiciousActivity",
2054
+ "properties": {
2055
+ "email": {
2056
+ "description": "The email of the user this alert was created for.",
2057
+ "type": "string"
2058
+ },
2059
+ "events": {
2060
+ "description": "Required. The list of security events.",
2061
+ "items": {
2062
+ "$ref": "SuspiciousActivitySecurityDetail"
2063
+ },
2064
+ "type": "array"
2065
+ }
2066
+ },
2067
+ "type": "object"
2068
+ },
2069
+ "SuspiciousActivitySecurityDetail": {
2070
+ "description": "Detailed information of a single MDM suspicious activity event.",
2071
+ "id": "SuspiciousActivitySecurityDetail",
2072
+ "properties": {
2073
+ "deviceId": {
2074
+ "description": "Required. The device ID.",
2075
+ "type": "string"
2076
+ },
2077
+ "deviceModel": {
2078
+ "description": "The model of the device.",
2079
+ "type": "string"
2080
+ },
2081
+ "deviceProperty": {
2082
+ "description": "The device property which was changed.",
2083
+ "type": "string"
2084
+ },
2085
+ "deviceType": {
2086
+ "description": "The type of the device.",
2087
+ "type": "string"
2088
+ },
2089
+ "iosVendorId": {
2090
+ "description": "Required for iOS, empty for others.",
2091
+ "type": "string"
2092
+ },
2093
+ "newValue": {
2094
+ "description": "The new value of the device property after the change.",
2095
+ "type": "string"
2096
+ },
2097
+ "oldValue": {
2098
+ "description": "The old value of the device property before the change.",
2099
+ "type": "string"
2100
+ },
2101
+ "resourceId": {
2102
+ "description": "The device resource ID.",
2103
+ "type": "string"
2104
+ },
2105
+ "serialNumber": {
2106
+ "description": "The serial number of the device.",
2107
+ "type": "string"
2108
+ }
2109
+ },
2110
+ "type": "object"
2111
+ },
2112
+ "TransferError": {
2113
+ "description": "Details for an invalid transfer or forward.",
2114
+ "id": "TransferError",
2115
+ "properties": {
2116
+ "email": {
2117
+ "description": "User's email address. This may be unavailable if the entity was deleted.",
2118
+ "type": "string"
2119
+ },
2120
+ "entityType": {
2121
+ "description": "Type of entity being transferred to. For ring group members, this should always be USER.",
2122
+ "enum": [
2123
+ "TRANSFER_ENTITY_TYPE_UNSPECIFIED",
2124
+ "TRANSFER_AUTO_ATTENDANT",
2125
+ "TRANSFER_RING_GROUP",
2126
+ "TRANSFER_USER"
2127
+ ],
2128
+ "enumDescriptions": [
2129
+ "Entity type wasn't set.",
2130
+ "Transfer to auto attendant.",
2131
+ "Transfer to ring group.",
2132
+ "Transfer to user."
2133
+ ],
2134
+ "type": "string"
2135
+ },
2136
+ "id": {
2137
+ "description": "Ring group or auto attendant ID. Not set for users.",
2138
+ "type": "string"
2139
+ },
2140
+ "invalidReason": {
2141
+ "description": "Reason for the error.",
2142
+ "enum": [
2143
+ "TRANSFER_INVALID_REASON_UNSPECIFIED",
2144
+ "TRANSFER_TARGET_DELETED",
2145
+ "UNLICENSED",
2146
+ "SUSPENDED",
2147
+ "NO_PHONE_NUMBER"
2148
+ ],
2149
+ "enumDescriptions": [
2150
+ "Reason wasn't specified.",
2151
+ "The transfer target can't be found\u2014most likely it was deleted.",
2152
+ "The user's Google Voice license was removed.",
2153
+ "The user's Google Workspace account was suspended.",
2154
+ "The transfer target no longer has a phone number. This reason should become deprecated once we support numberless transfer."
2155
+ ],
2156
+ "type": "string"
2157
+ },
2158
+ "name": {
2159
+ "description": "User's full name, or the ring group / auto attendant name. This may be unavailable if the entity was deleted.",
2160
+ "type": "string"
2161
+ }
2162
+ },
2163
+ "type": "object"
2164
+ },
2165
+ "TransferMisconfiguration": {
2166
+ "description": "Error related to transferring or forwarding a phone call.",
2167
+ "id": "TransferMisconfiguration",
2168
+ "properties": {
2169
+ "errors": {
2170
+ "description": "Details for each invalid transfer or forward.",
2171
+ "items": {
2172
+ "$ref": "TransferError"
2173
+ },
2174
+ "type": "array"
2175
+ }
2176
+ },
2177
+ "type": "object"
2178
+ },
2179
+ "UndeleteAlertRequest": {
2180
+ "description": "A request to undelete a specific alert that was marked for deletion.",
2181
+ "id": "UndeleteAlertRequest",
2182
+ "properties": {
2183
+ "customerId": {
2184
+ "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).",
2185
+ "type": "string"
2186
+ }
2187
+ },
2188
+ "type": "object"
2189
+ },
2190
+ "User": {
2191
+ "description": "A user.",
2192
+ "id": "User",
2193
+ "properties": {
2194
+ "displayName": {
2195
+ "description": "Display name of the user.",
2196
+ "type": "string"
2197
+ },
2198
+ "emailAddress": {
2199
+ "description": "Email address of the user.",
2200
+ "type": "string"
2201
+ }
2202
+ },
2203
+ "type": "object"
2204
+ },
2205
+ "UserChanges": {
2206
+ "description": "Alerts from UserChanges bucket Rules for predefined rules which contain the following rules: - Suspended user made active - New user added - User suspended (by admin) - User granted admin privileges - User admin privileges revoked - User deleted - Users password changed",
2207
+ "id": "UserChanges",
2208
+ "properties": {
2209
+ "name": {
2210
+ "description": "Rule name",
2211
+ "type": "string"
2212
+ }
2213
+ },
2214
+ "type": "object"
2215
+ },
2216
+ "UserDefinedDetectorInfo": {
2217
+ "description": "Detector defined by administrators.",
2218
+ "id": "UserDefinedDetectorInfo",
2219
+ "properties": {
2220
+ "displayName": {
2221
+ "description": "Display name of the detector.",
2222
+ "type": "string"
2223
+ },
2224
+ "resourceName": {
2225
+ "description": "Resource name that uniquely identifies the detector.",
2226
+ "type": "string"
2227
+ }
2228
+ },
2229
+ "type": "object"
2230
+ },
2231
+ "VaultAcceleratedDeletion": {
2232
+ "description": "Alert that is triggered when a Vault accelerated deletion request is created or canceled.",
2233
+ "id": "VaultAcceleratedDeletion",
2234
+ "properties": {
2235
+ "actionType": {
2236
+ "description": "The action can be one of create and cancel",
2237
+ "enum": [
2238
+ "VAULT_ACCELERATED_DELETION_ACTION_TYPE_UNSPECIFIED",
2239
+ "VAULT_ACCELERATED_DELETION_ACTION_TYPE_CREATE",
2240
+ "VAULT_ACCELERATED_DELETION_ACTION_TYPE_CANCEL"
2241
+ ],
2242
+ "enumDescriptions": [
2243
+ "Unspecified action type",
2244
+ "AD Create action type",
2245
+ "AD Cancel action type"
2246
+ ],
2247
+ "type": "string"
2248
+ },
2249
+ "appType": {
2250
+ "description": "Currentlty only Gmail is supported as app type",
2251
+ "enum": [
2252
+ "VAULT_ACCELERATED_DELETION_APP_TYPE_UNSPECIFIED",
2253
+ "VAULT_ACCELERATED_DELETION_APP_TYPE_GMAIL"
2254
+ ],
2255
+ "enumDescriptions": [
2256
+ "Unspecified app type",
2257
+ "Gmail app type"
2258
+ ],
2259
+ "type": "string"
2260
+ },
2261
+ "createTime": {
2262
+ "description": "The UTC timestamp of when the AD request was created",
2263
+ "format": "google-datetime",
2264
+ "type": "string"
2265
+ },
2266
+ "deletionRequestId": {
2267
+ "description": "Accelerated deletion request ID intended to be used to construct the Vault UI link to the AD request",
2268
+ "type": "string"
2269
+ },
2270
+ "matterId": {
2271
+ "description": "Matter ID of the accelerated deletion request intended to be used to construct the Vault UI link to the AD request",
2272
+ "type": "string"
2273
+ }
2274
+ },
2275
+ "type": "object"
2276
+ },
2277
+ "VoiceMisconfiguration": {
2278
+ "description": "An alert triggered when Google Voice configuration becomes invalid, generally due to an external entity being modified or deleted.",
2279
+ "id": "VoiceMisconfiguration",
2280
+ "properties": {
2281
+ "entityName": {
2282
+ "description": "Name of the entity whose configuration is now invalid.",
2283
+ "type": "string"
2284
+ },
2285
+ "entityType": {
2286
+ "description": "Type of the entity whose configuration is now invalid.",
2287
+ "enum": [
2288
+ "ENTITY_TYPE_UNSPECIFIED",
2289
+ "AUTO_ATTENDANT",
2290
+ "RING_GROUP"
2291
+ ],
2292
+ "enumDescriptions": [
2293
+ "Entity type wasn't set.",
2294
+ "Invalid auto attendant.",
2295
+ "Invalid ring group."
2296
+ ],
2297
+ "type": "string"
2298
+ },
2299
+ "fixUri": {
2300
+ "description": "Link that the admin can follow to fix the issue.",
2301
+ "type": "string"
2302
+ },
2303
+ "membersMisconfiguration": {
2304
+ "$ref": "TransferMisconfiguration",
2305
+ "description": "Issue(s) with members of a ring group."
2306
+ },
2307
+ "transferMisconfiguration": {
2308
+ "$ref": "TransferMisconfiguration",
2309
+ "description": "Issue(s) with transferring or forwarding to an external entity."
2310
+ },
2311
+ "voicemailMisconfiguration": {
2312
+ "$ref": "VoicemailMisconfiguration",
2313
+ "description": "Issue(s) with sending to voicemail."
2314
+ }
2315
+ },
2316
+ "type": "object"
2317
+ },
2318
+ "VoicemailMisconfiguration": {
2319
+ "description": "Issue(s) with sending to voicemail.",
2320
+ "id": "VoicemailMisconfiguration",
2321
+ "properties": {
2322
+ "errors": {
2323
+ "description": "Issue(s) with voicemail recipients.",
2324
+ "items": {
2325
+ "$ref": "VoicemailRecipientError"
2326
+ },
2327
+ "type": "array"
2328
+ }
2329
+ },
2330
+ "type": "object"
2331
+ },
2332
+ "VoicemailRecipientError": {
2333
+ "description": "Issue(s) with a voicemail recipient.",
2334
+ "id": "VoicemailRecipientError",
2335
+ "properties": {
2336
+ "email": {
2337
+ "description": "Email address of the invalid recipient. This may be unavailable if the recipient was deleted.",
2338
+ "type": "string"
2339
+ },
2340
+ "invalidReason": {
2341
+ "description": "Reason for the error.",
2342
+ "enum": [
2343
+ "EMAIL_INVALID_REASON_UNSPECIFIED",
2344
+ "OUT_OF_QUOTA",
2345
+ "RECIPIENT_DELETED"
2346
+ ],
2347
+ "enumDescriptions": [
2348
+ "Reason wasn't specified.",
2349
+ "User can't receive emails due to insufficient quota.",
2350
+ "All recipients were deleted."
2351
+ ],
2352
+ "type": "string"
2353
+ }
2354
+ },
2355
+ "type": "object"
2356
+ }
2357
+ },
2358
+ "servicePath": "",
2359
+ "title": "Google Workspace Alert Center API",
2360
+ "version": "v1beta1",
2361
+ "version_module": true
2362
+ }
DiscoveryJson/alloydb.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/alloydb.v1alpha.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/alloydb.v1beta.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analytics.v3.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analyticsadmin.v1alpha.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analyticsadmin.v1beta.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analyticsdata.v1beta.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analyticshub.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/analyticshub.v1beta1.json ADDED
@@ -0,0 +1,1514 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/bigquery": {
6
+ "description": "View and manage your data in Google BigQuery and see the email address for your Google Account"
7
+ },
8
+ "https://www.googleapis.com/auth/cloud-platform": {
9
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
10
+ }
11
+ }
12
+ }
13
+ },
14
+ "basePath": "",
15
+ "baseUrl": "https://analyticshub.googleapis.com/",
16
+ "batchPath": "batch",
17
+ "canonicalName": "Analytics Hub",
18
+ "description": "Exchange data and analytics assets securely and efficiently.",
19
+ "discoveryVersion": "v1",
20
+ "documentationLink": "https://cloud.google.com/bigquery/docs/analytics-hub-introduction",
21
+ "fullyEncodeReservedExpansion": true,
22
+ "icons": {
23
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
24
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
25
+ },
26
+ "id": "analyticshub:v1beta1",
27
+ "kind": "discovery#restDescription",
28
+ "mtlsRootUrl": "https://analyticshub.mtls.googleapis.com/",
29
+ "name": "analyticshub",
30
+ "ownerDomain": "google.com",
31
+ "ownerName": "Google",
32
+ "parameters": {
33
+ "$.xgafv": {
34
+ "description": "V1 error format.",
35
+ "enum": [
36
+ "1",
37
+ "2"
38
+ ],
39
+ "enumDescriptions": [
40
+ "v1 error format",
41
+ "v2 error format"
42
+ ],
43
+ "location": "query",
44
+ "type": "string"
45
+ },
46
+ "access_token": {
47
+ "description": "OAuth access token.",
48
+ "location": "query",
49
+ "type": "string"
50
+ },
51
+ "alt": {
52
+ "default": "json",
53
+ "description": "Data format for response.",
54
+ "enum": [
55
+ "json",
56
+ "media",
57
+ "proto"
58
+ ],
59
+ "enumDescriptions": [
60
+ "Responses with Content-Type of application/json",
61
+ "Media download with context-dependent Content-Type",
62
+ "Responses with Content-Type of application/x-protobuf"
63
+ ],
64
+ "location": "query",
65
+ "type": "string"
66
+ },
67
+ "callback": {
68
+ "description": "JSONP",
69
+ "location": "query",
70
+ "type": "string"
71
+ },
72
+ "fields": {
73
+ "description": "Selector specifying which fields to include in a partial response.",
74
+ "location": "query",
75
+ "type": "string"
76
+ },
77
+ "key": {
78
+ "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.",
79
+ "location": "query",
80
+ "type": "string"
81
+ },
82
+ "oauth_token": {
83
+ "description": "OAuth 2.0 token for the current user.",
84
+ "location": "query",
85
+ "type": "string"
86
+ },
87
+ "prettyPrint": {
88
+ "default": "true",
89
+ "description": "Returns response with indentations and line breaks.",
90
+ "location": "query",
91
+ "type": "boolean"
92
+ },
93
+ "quotaUser": {
94
+ "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.",
95
+ "location": "query",
96
+ "type": "string"
97
+ },
98
+ "uploadType": {
99
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
100
+ "location": "query",
101
+ "type": "string"
102
+ },
103
+ "upload_protocol": {
104
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
105
+ "location": "query",
106
+ "type": "string"
107
+ }
108
+ },
109
+ "protocol": "rest",
110
+ "resources": {
111
+ "organizations": {
112
+ "resources": {
113
+ "locations": {
114
+ "resources": {
115
+ "dataExchanges": {
116
+ "methods": {
117
+ "list": {
118
+ "description": "Lists all data exchanges from projects in a given organization and location.",
119
+ "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/dataExchanges",
120
+ "httpMethod": "GET",
121
+ "id": "analyticshub.organizations.locations.dataExchanges.list",
122
+ "parameterOrder": [
123
+ "organization"
124
+ ],
125
+ "parameters": {
126
+ "organization": {
127
+ "description": "Required. The organization resource path of the projects containing DataExchanges. e.g. `organizations/myorg/locations/us`.",
128
+ "location": "path",
129
+ "pattern": "^organizations/[^/]+/locations/[^/]+$",
130
+ "required": true,
131
+ "type": "string"
132
+ },
133
+ "pageSize": {
134
+ "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
135
+ "format": "int32",
136
+ "location": "query",
137
+ "type": "integer"
138
+ },
139
+ "pageToken": {
140
+ "description": "Page token, returned by a previous call, to request the next page of results.",
141
+ "location": "query",
142
+ "type": "string"
143
+ }
144
+ },
145
+ "path": "v1beta1/{+organization}/dataExchanges",
146
+ "response": {
147
+ "$ref": "ListOrgDataExchangesResponse"
148
+ },
149
+ "scopes": [
150
+ "https://www.googleapis.com/auth/bigquery",
151
+ "https://www.googleapis.com/auth/cloud-platform"
152
+ ]
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ },
160
+ "projects": {
161
+ "resources": {
162
+ "locations": {
163
+ "resources": {
164
+ "dataExchanges": {
165
+ "methods": {
166
+ "create": {
167
+ "description": "Creates a new data exchange.",
168
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges",
169
+ "httpMethod": "POST",
170
+ "id": "analyticshub.projects.locations.dataExchanges.create",
171
+ "parameterOrder": [
172
+ "parent"
173
+ ],
174
+ "parameters": {
175
+ "dataExchangeId": {
176
+ "description": "Required. The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Max length: 100 bytes.",
177
+ "location": "query",
178
+ "type": "string"
179
+ },
180
+ "parent": {
181
+ "description": "Required. The parent resource path of the data exchange. e.g. `projects/myproject/locations/us`.",
182
+ "location": "path",
183
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
184
+ "required": true,
185
+ "type": "string"
186
+ }
187
+ },
188
+ "path": "v1beta1/{+parent}/dataExchanges",
189
+ "request": {
190
+ "$ref": "DataExchange"
191
+ },
192
+ "response": {
193
+ "$ref": "DataExchange"
194
+ },
195
+ "scopes": [
196
+ "https://www.googleapis.com/auth/bigquery",
197
+ "https://www.googleapis.com/auth/cloud-platform"
198
+ ]
199
+ },
200
+ "delete": {
201
+ "description": "Deletes an existing data exchange.",
202
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}",
203
+ "httpMethod": "DELETE",
204
+ "id": "analyticshub.projects.locations.dataExchanges.delete",
205
+ "parameterOrder": [
206
+ "name"
207
+ ],
208
+ "parameters": {
209
+ "name": {
210
+ "description": "Required. The full name of the data exchange resource that you want to delete. For example, `projects/myproject/locations/us/dataExchanges/123`.",
211
+ "location": "path",
212
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
213
+ "required": true,
214
+ "type": "string"
215
+ }
216
+ },
217
+ "path": "v1beta1/{+name}",
218
+ "response": {
219
+ "$ref": "Empty"
220
+ },
221
+ "scopes": [
222
+ "https://www.googleapis.com/auth/bigquery",
223
+ "https://www.googleapis.com/auth/cloud-platform"
224
+ ]
225
+ },
226
+ "get": {
227
+ "description": "Gets the details of a data exchange.",
228
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}",
229
+ "httpMethod": "GET",
230
+ "id": "analyticshub.projects.locations.dataExchanges.get",
231
+ "parameterOrder": [
232
+ "name"
233
+ ],
234
+ "parameters": {
235
+ "name": {
236
+ "description": "Required. The resource name of the data exchange. e.g. `projects/myproject/locations/us/dataExchanges/123`.",
237
+ "location": "path",
238
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
239
+ "required": true,
240
+ "type": "string"
241
+ }
242
+ },
243
+ "path": "v1beta1/{+name}",
244
+ "response": {
245
+ "$ref": "DataExchange"
246
+ },
247
+ "scopes": [
248
+ "https://www.googleapis.com/auth/bigquery",
249
+ "https://www.googleapis.com/auth/cloud-platform"
250
+ ]
251
+ },
252
+ "getIamPolicy": {
253
+ "description": "Gets the IAM policy.",
254
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:getIamPolicy",
255
+ "httpMethod": "POST",
256
+ "id": "analyticshub.projects.locations.dataExchanges.getIamPolicy",
257
+ "parameterOrder": [
258
+ "resource"
259
+ ],
260
+ "parameters": {
261
+ "resource": {
262
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
263
+ "location": "path",
264
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
265
+ "required": true,
266
+ "type": "string"
267
+ }
268
+ },
269
+ "path": "v1beta1/{+resource}:getIamPolicy",
270
+ "request": {
271
+ "$ref": "GetIamPolicyRequest"
272
+ },
273
+ "response": {
274
+ "$ref": "Policy"
275
+ },
276
+ "scopes": [
277
+ "https://www.googleapis.com/auth/bigquery",
278
+ "https://www.googleapis.com/auth/cloud-platform"
279
+ ]
280
+ },
281
+ "list": {
282
+ "description": "Lists all data exchanges in a given project and location.",
283
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges",
284
+ "httpMethod": "GET",
285
+ "id": "analyticshub.projects.locations.dataExchanges.list",
286
+ "parameterOrder": [
287
+ "parent"
288
+ ],
289
+ "parameters": {
290
+ "pageSize": {
291
+ "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
292
+ "format": "int32",
293
+ "location": "query",
294
+ "type": "integer"
295
+ },
296
+ "pageToken": {
297
+ "description": "Page token, returned by a previous call, to request the next page of results.",
298
+ "location": "query",
299
+ "type": "string"
300
+ },
301
+ "parent": {
302
+ "description": "Required. The parent resource path of the data exchanges. e.g. `projects/myproject/locations/us`.",
303
+ "location": "path",
304
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
305
+ "required": true,
306
+ "type": "string"
307
+ }
308
+ },
309
+ "path": "v1beta1/{+parent}/dataExchanges",
310
+ "response": {
311
+ "$ref": "ListDataExchangesResponse"
312
+ },
313
+ "scopes": [
314
+ "https://www.googleapis.com/auth/bigquery",
315
+ "https://www.googleapis.com/auth/cloud-platform"
316
+ ]
317
+ },
318
+ "patch": {
319
+ "description": "Updates an existing data exchange.",
320
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}",
321
+ "httpMethod": "PATCH",
322
+ "id": "analyticshub.projects.locations.dataExchanges.patch",
323
+ "parameterOrder": [
324
+ "name"
325
+ ],
326
+ "parameters": {
327
+ "name": {
328
+ "description": "Output only. The resource name of the data exchange. e.g. `projects/myproject/locations/us/dataExchanges/123`.",
329
+ "location": "path",
330
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
331
+ "required": true,
332
+ "type": "string"
333
+ },
334
+ "updateMask": {
335
+ "description": "Required. Field mask specifies the fields to update in the data exchange resource. The fields specified in the `updateMask` are relative to the resource and are not a full request.",
336
+ "format": "google-fieldmask",
337
+ "location": "query",
338
+ "type": "string"
339
+ }
340
+ },
341
+ "path": "v1beta1/{+name}",
342
+ "request": {
343
+ "$ref": "DataExchange"
344
+ },
345
+ "response": {
346
+ "$ref": "DataExchange"
347
+ },
348
+ "scopes": [
349
+ "https://www.googleapis.com/auth/bigquery",
350
+ "https://www.googleapis.com/auth/cloud-platform"
351
+ ]
352
+ },
353
+ "setIamPolicy": {
354
+ "description": "Sets the IAM policy.",
355
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:setIamPolicy",
356
+ "httpMethod": "POST",
357
+ "id": "analyticshub.projects.locations.dataExchanges.setIamPolicy",
358
+ "parameterOrder": [
359
+ "resource"
360
+ ],
361
+ "parameters": {
362
+ "resource": {
363
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
364
+ "location": "path",
365
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
366
+ "required": true,
367
+ "type": "string"
368
+ }
369
+ },
370
+ "path": "v1beta1/{+resource}:setIamPolicy",
371
+ "request": {
372
+ "$ref": "SetIamPolicyRequest"
373
+ },
374
+ "response": {
375
+ "$ref": "Policy"
376
+ },
377
+ "scopes": [
378
+ "https://www.googleapis.com/auth/bigquery",
379
+ "https://www.googleapis.com/auth/cloud-platform"
380
+ ]
381
+ },
382
+ "testIamPermissions": {
383
+ "description": "Returns the permissions that a caller has.",
384
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}:testIamPermissions",
385
+ "httpMethod": "POST",
386
+ "id": "analyticshub.projects.locations.dataExchanges.testIamPermissions",
387
+ "parameterOrder": [
388
+ "resource"
389
+ ],
390
+ "parameters": {
391
+ "resource": {
392
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
393
+ "location": "path",
394
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
395
+ "required": true,
396
+ "type": "string"
397
+ }
398
+ },
399
+ "path": "v1beta1/{+resource}:testIamPermissions",
400
+ "request": {
401
+ "$ref": "TestIamPermissionsRequest"
402
+ },
403
+ "response": {
404
+ "$ref": "TestIamPermissionsResponse"
405
+ },
406
+ "scopes": [
407
+ "https://www.googleapis.com/auth/bigquery",
408
+ "https://www.googleapis.com/auth/cloud-platform"
409
+ ]
410
+ }
411
+ },
412
+ "resources": {
413
+ "listings": {
414
+ "methods": {
415
+ "create": {
416
+ "description": "Creates a new listing.",
417
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings",
418
+ "httpMethod": "POST",
419
+ "id": "analyticshub.projects.locations.dataExchanges.listings.create",
420
+ "parameterOrder": [
421
+ "parent"
422
+ ],
423
+ "parameters": {
424
+ "listingId": {
425
+ "description": "Required. The ID of the listing to create. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces. Max length: 100 bytes.",
426
+ "location": "query",
427
+ "type": "string"
428
+ },
429
+ "parent": {
430
+ "description": "Required. The parent resource path of the listing. e.g. `projects/myproject/locations/us/dataExchanges/123`.",
431
+ "location": "path",
432
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
433
+ "required": true,
434
+ "type": "string"
435
+ }
436
+ },
437
+ "path": "v1beta1/{+parent}/listings",
438
+ "request": {
439
+ "$ref": "Listing"
440
+ },
441
+ "response": {
442
+ "$ref": "Listing"
443
+ },
444
+ "scopes": [
445
+ "https://www.googleapis.com/auth/bigquery",
446
+ "https://www.googleapis.com/auth/cloud-platform"
447
+ ]
448
+ },
449
+ "delete": {
450
+ "description": "Deletes a listing.",
451
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}",
452
+ "httpMethod": "DELETE",
453
+ "id": "analyticshub.projects.locations.dataExchanges.listings.delete",
454
+ "parameterOrder": [
455
+ "name"
456
+ ],
457
+ "parameters": {
458
+ "name": {
459
+ "description": "Required. Resource name of the listing to delete. e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.",
460
+ "location": "path",
461
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
462
+ "required": true,
463
+ "type": "string"
464
+ }
465
+ },
466
+ "path": "v1beta1/{+name}",
467
+ "response": {
468
+ "$ref": "Empty"
469
+ },
470
+ "scopes": [
471
+ "https://www.googleapis.com/auth/bigquery",
472
+ "https://www.googleapis.com/auth/cloud-platform"
473
+ ]
474
+ },
475
+ "get": {
476
+ "description": "Gets the details of a listing.",
477
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}",
478
+ "httpMethod": "GET",
479
+ "id": "analyticshub.projects.locations.dataExchanges.listings.get",
480
+ "parameterOrder": [
481
+ "name"
482
+ ],
483
+ "parameters": {
484
+ "name": {
485
+ "description": "Required. The resource name of the listing. e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.",
486
+ "location": "path",
487
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
488
+ "required": true,
489
+ "type": "string"
490
+ }
491
+ },
492
+ "path": "v1beta1/{+name}",
493
+ "response": {
494
+ "$ref": "Listing"
495
+ },
496
+ "scopes": [
497
+ "https://www.googleapis.com/auth/bigquery",
498
+ "https://www.googleapis.com/auth/cloud-platform"
499
+ ]
500
+ },
501
+ "getIamPolicy": {
502
+ "description": "Gets the IAM policy.",
503
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:getIamPolicy",
504
+ "httpMethod": "POST",
505
+ "id": "analyticshub.projects.locations.dataExchanges.listings.getIamPolicy",
506
+ "parameterOrder": [
507
+ "resource"
508
+ ],
509
+ "parameters": {
510
+ "resource": {
511
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
512
+ "location": "path",
513
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
514
+ "required": true,
515
+ "type": "string"
516
+ }
517
+ },
518
+ "path": "v1beta1/{+resource}:getIamPolicy",
519
+ "request": {
520
+ "$ref": "GetIamPolicyRequest"
521
+ },
522
+ "response": {
523
+ "$ref": "Policy"
524
+ },
525
+ "scopes": [
526
+ "https://www.googleapis.com/auth/bigquery",
527
+ "https://www.googleapis.com/auth/cloud-platform"
528
+ ]
529
+ },
530
+ "list": {
531
+ "description": "Lists all listings in a given project and location.",
532
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings",
533
+ "httpMethod": "GET",
534
+ "id": "analyticshub.projects.locations.dataExchanges.listings.list",
535
+ "parameterOrder": [
536
+ "parent"
537
+ ],
538
+ "parameters": {
539
+ "pageSize": {
540
+ "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.",
541
+ "format": "int32",
542
+ "location": "query",
543
+ "type": "integer"
544
+ },
545
+ "pageToken": {
546
+ "description": "Page token, returned by a previous call, to request the next page of results.",
547
+ "location": "query",
548
+ "type": "string"
549
+ },
550
+ "parent": {
551
+ "description": "Required. The parent resource path of the listing. e.g. `projects/myproject/locations/us/dataExchanges/123`.",
552
+ "location": "path",
553
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+$",
554
+ "required": true,
555
+ "type": "string"
556
+ }
557
+ },
558
+ "path": "v1beta1/{+parent}/listings",
559
+ "response": {
560
+ "$ref": "ListListingsResponse"
561
+ },
562
+ "scopes": [
563
+ "https://www.googleapis.com/auth/bigquery",
564
+ "https://www.googleapis.com/auth/cloud-platform"
565
+ ]
566
+ },
567
+ "patch": {
568
+ "description": "Updates an existing listing.",
569
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}",
570
+ "httpMethod": "PATCH",
571
+ "id": "analyticshub.projects.locations.dataExchanges.listings.patch",
572
+ "parameterOrder": [
573
+ "name"
574
+ ],
575
+ "parameters": {
576
+ "name": {
577
+ "description": "Output only. The resource name of the listing. e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`",
578
+ "location": "path",
579
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
580
+ "required": true,
581
+ "type": "string"
582
+ },
583
+ "updateMask": {
584
+ "description": "Required. Field mask specifies the fields to update in the listing resource. The fields specified in the `updateMask` are relative to the resource and are not a full request.",
585
+ "format": "google-fieldmask",
586
+ "location": "query",
587
+ "type": "string"
588
+ }
589
+ },
590
+ "path": "v1beta1/{+name}",
591
+ "request": {
592
+ "$ref": "Listing"
593
+ },
594
+ "response": {
595
+ "$ref": "Listing"
596
+ },
597
+ "scopes": [
598
+ "https://www.googleapis.com/auth/bigquery",
599
+ "https://www.googleapis.com/auth/cloud-platform"
600
+ ]
601
+ },
602
+ "setIamPolicy": {
603
+ "description": "Sets the IAM policy.",
604
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:setIamPolicy",
605
+ "httpMethod": "POST",
606
+ "id": "analyticshub.projects.locations.dataExchanges.listings.setIamPolicy",
607
+ "parameterOrder": [
608
+ "resource"
609
+ ],
610
+ "parameters": {
611
+ "resource": {
612
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
613
+ "location": "path",
614
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
615
+ "required": true,
616
+ "type": "string"
617
+ }
618
+ },
619
+ "path": "v1beta1/{+resource}:setIamPolicy",
620
+ "request": {
621
+ "$ref": "SetIamPolicyRequest"
622
+ },
623
+ "response": {
624
+ "$ref": "Policy"
625
+ },
626
+ "scopes": [
627
+ "https://www.googleapis.com/auth/bigquery",
628
+ "https://www.googleapis.com/auth/cloud-platform"
629
+ ]
630
+ },
631
+ "subscribe": {
632
+ "description": "Subscribes to a listing. Currently, with Analytics Hub, you can create listings that reference only BigQuery datasets. Upon subscription to a listing for a BigQuery dataset, Analytics Hub creates a linked dataset in the subscriber's project.",
633
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:subscribe",
634
+ "httpMethod": "POST",
635
+ "id": "analyticshub.projects.locations.dataExchanges.listings.subscribe",
636
+ "parameterOrder": [
637
+ "name"
638
+ ],
639
+ "parameters": {
640
+ "name": {
641
+ "description": "Required. Resource name of the listing that you want to subscribe to. e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.",
642
+ "location": "path",
643
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
644
+ "required": true,
645
+ "type": "string"
646
+ }
647
+ },
648
+ "path": "v1beta1/{+name}:subscribe",
649
+ "request": {
650
+ "$ref": "SubscribeListingRequest"
651
+ },
652
+ "response": {
653
+ "$ref": "SubscribeListingResponse"
654
+ },
655
+ "scopes": [
656
+ "https://www.googleapis.com/auth/bigquery",
657
+ "https://www.googleapis.com/auth/cloud-platform"
658
+ ]
659
+ },
660
+ "testIamPermissions": {
661
+ "description": "Returns the permissions that a caller has.",
662
+ "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/dataExchanges/{dataExchangesId}/listings/{listingsId}:testIamPermissions",
663
+ "httpMethod": "POST",
664
+ "id": "analyticshub.projects.locations.dataExchanges.listings.testIamPermissions",
665
+ "parameterOrder": [
666
+ "resource"
667
+ ],
668
+ "parameters": {
669
+ "resource": {
670
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
671
+ "location": "path",
672
+ "pattern": "^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/listings/[^/]+$",
673
+ "required": true,
674
+ "type": "string"
675
+ }
676
+ },
677
+ "path": "v1beta1/{+resource}:testIamPermissions",
678
+ "request": {
679
+ "$ref": "TestIamPermissionsRequest"
680
+ },
681
+ "response": {
682
+ "$ref": "TestIamPermissionsResponse"
683
+ },
684
+ "scopes": [
685
+ "https://www.googleapis.com/auth/bigquery",
686
+ "https://www.googleapis.com/auth/cloud-platform"
687
+ ]
688
+ }
689
+ }
690
+ }
691
+ }
692
+ }
693
+ }
694
+ }
695
+ }
696
+ }
697
+ },
698
+ "revision": "20250901",
699
+ "rootUrl": "https://analyticshub.googleapis.com/",
700
+ "schemas": {
701
+ "AuditConfig": {
702
+ "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.",
703
+ "id": "AuditConfig",
704
+ "properties": {
705
+ "auditLogConfigs": {
706
+ "description": "The configuration for logging of each type of permission.",
707
+ "items": {
708
+ "$ref": "AuditLogConfig"
709
+ },
710
+ "type": "array"
711
+ },
712
+ "service": {
713
+ "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.",
714
+ "type": "string"
715
+ }
716
+ },
717
+ "type": "object"
718
+ },
719
+ "AuditLogConfig": {
720
+ "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.",
721
+ "id": "AuditLogConfig",
722
+ "properties": {
723
+ "exemptedMembers": {
724
+ "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
725
+ "items": {
726
+ "type": "string"
727
+ },
728
+ "type": "array"
729
+ },
730
+ "logType": {
731
+ "description": "The log type that this config enables.",
732
+ "enum": [
733
+ "LOG_TYPE_UNSPECIFIED",
734
+ "ADMIN_READ",
735
+ "DATA_WRITE",
736
+ "DATA_READ"
737
+ ],
738
+ "enumDescriptions": [
739
+ "Default case. Should never be this.",
740
+ "Admin reads. Example: CloudIAM getIamPolicy",
741
+ "Data writes. Example: CloudSQL Users create",
742
+ "Data reads. Example: CloudSQL Users list"
743
+ ],
744
+ "type": "string"
745
+ }
746
+ },
747
+ "type": "object"
748
+ },
749
+ "BigQueryDatasetSource": {
750
+ "description": "A reference to a shared dataset. It is an existing BigQuery dataset with a collection of objects such as tables and views that you want to share with subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a linked dataset in the subscriber's project. A Linked dataset is an opaque, read-only BigQuery dataset that serves as a _symbolic link_ to a shared dataset.",
751
+ "id": "BigQueryDatasetSource",
752
+ "properties": {
753
+ "dataset": {
754
+ "description": "Resource name of the dataset source for this listing. e.g. `projects/myproject/datasets/123`",
755
+ "type": "string"
756
+ }
757
+ },
758
+ "type": "object"
759
+ },
760
+ "Binding": {
761
+ "description": "Associates `members`, or principals, with a `role`.",
762
+ "id": "Binding",
763
+ "properties": {
764
+ "condition": {
765
+ "$ref": "Expr",
766
+ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
767
+ },
768
+ "members": {
769
+ "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
770
+ "items": {
771
+ "type": "string"
772
+ },
773
+ "type": "array"
774
+ },
775
+ "role": {
776
+ "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
777
+ "type": "string"
778
+ }
779
+ },
780
+ "type": "object"
781
+ },
782
+ "CommercialInfo": {
783
+ "description": "Commercial info metadata for this subscription.",
784
+ "id": "CommercialInfo",
785
+ "properties": {
786
+ "cloudMarketplace": {
787
+ "$ref": "GoogleCloudMarketplaceInfo",
788
+ "description": "Output only. This is set when the subscription is commercialised via Cloud Marketplace.",
789
+ "readOnly": true
790
+ }
791
+ },
792
+ "type": "object"
793
+ },
794
+ "DataExchange": {
795
+ "description": "A data exchange is a container that lets you share data. Along with the descriptive information about the data exchange, it contains listings that reference shared datasets.",
796
+ "id": "DataExchange",
797
+ "properties": {
798
+ "description": {
799
+ "description": "Optional. Description of the data exchange. The description must not contain Unicode non-characters as well as C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default value is an empty string. Max length: 2000 bytes.",
800
+ "type": "string"
801
+ },
802
+ "displayName": {
803
+ "description": "Required. Human-readable display name of the data exchange. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and must not start or end with spaces. Default value is an empty string. Max length: 63 bytes.",
804
+ "type": "string"
805
+ },
806
+ "documentation": {
807
+ "description": "Optional. Documentation describing the data exchange.",
808
+ "type": "string"
809
+ },
810
+ "icon": {
811
+ "description": "Optional. Base64 encoded image representing the data exchange. Max Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API only performs validation on size of the encoded data. Note: For byte fields, the content of the fields are base64-encoded (which increases the size of the data by 33-36%) when using JSON on the wire.",
812
+ "format": "byte",
813
+ "type": "string"
814
+ },
815
+ "listingCount": {
816
+ "description": "Output only. Number of listings contained in the data exchange.",
817
+ "format": "int32",
818
+ "readOnly": true,
819
+ "type": "integer"
820
+ },
821
+ "name": {
822
+ "description": "Output only. The resource name of the data exchange. e.g. `projects/myproject/locations/us/dataExchanges/123`.",
823
+ "readOnly": true,
824
+ "type": "string"
825
+ },
826
+ "primaryContact": {
827
+ "description": "Optional. Email or URL of the primary point of contact of the data exchange. Max Length: 1000 bytes.",
828
+ "type": "string"
829
+ }
830
+ },
831
+ "type": "object"
832
+ },
833
+ "DataProvider": {
834
+ "description": "Contains details of the data provider.",
835
+ "id": "DataProvider",
836
+ "properties": {
837
+ "name": {
838
+ "description": "Optional. Name of the data provider.",
839
+ "type": "string"
840
+ },
841
+ "primaryContact": {
842
+ "description": "Optional. Email or URL of the data provider. Max Length: 1000 bytes.",
843
+ "type": "string"
844
+ }
845
+ },
846
+ "type": "object"
847
+ },
848
+ "DestinationDataset": {
849
+ "description": "Defines the destination bigquery dataset.",
850
+ "id": "DestinationDataset",
851
+ "properties": {
852
+ "datasetReference": {
853
+ "$ref": "DestinationDatasetReference",
854
+ "description": "Required. A reference that identifies the destination dataset."
855
+ },
856
+ "description": {
857
+ "description": "Optional. A user-friendly description of the dataset.",
858
+ "type": "string"
859
+ },
860
+ "friendlyName": {
861
+ "description": "Optional. A descriptive name for the dataset.",
862
+ "type": "string"
863
+ },
864
+ "labels": {
865
+ "additionalProperties": {
866
+ "type": "string"
867
+ },
868
+ "description": "Optional. The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See https://cloud.google.com/resource-manager/docs/creating-managing-labels for more information.",
869
+ "type": "object"
870
+ },
871
+ "location": {
872
+ "description": "Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.",
873
+ "type": "string"
874
+ },
875
+ "replicaLocations": {
876
+ "description": "Optional. The geographic locations where the dataset should be replicated. See [BigQuery locations](https://cloud.google.com/bigquery/docs/locations) for supported locations.",
877
+ "items": {
878
+ "type": "string"
879
+ },
880
+ "type": "array"
881
+ }
882
+ },
883
+ "type": "object"
884
+ },
885
+ "DestinationDatasetReference": {
886
+ "id": "DestinationDatasetReference",
887
+ "properties": {
888
+ "datasetId": {
889
+ "description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.",
890
+ "type": "string"
891
+ },
892
+ "projectId": {
893
+ "description": "Required. The ID of the project containing this dataset.",
894
+ "type": "string"
895
+ }
896
+ },
897
+ "type": "object"
898
+ },
899
+ "Empty": {
900
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
901
+ "id": "Empty",
902
+ "properties": {},
903
+ "type": "object"
904
+ },
905
+ "Expr": {
906
+ "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
907
+ "id": "Expr",
908
+ "properties": {
909
+ "description": {
910
+ "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
911
+ "type": "string"
912
+ },
913
+ "expression": {
914
+ "description": "Textual representation of an expression in Common Expression Language syntax.",
915
+ "type": "string"
916
+ },
917
+ "location": {
918
+ "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
919
+ "type": "string"
920
+ },
921
+ "title": {
922
+ "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
923
+ "type": "string"
924
+ }
925
+ },
926
+ "type": "object"
927
+ },
928
+ "GetIamPolicyRequest": {
929
+ "description": "Request message for `GetIamPolicy` method.",
930
+ "id": "GetIamPolicyRequest",
931
+ "properties": {
932
+ "options": {
933
+ "$ref": "GetPolicyOptions",
934
+ "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`."
935
+ }
936
+ },
937
+ "type": "object"
938
+ },
939
+ "GetPolicyOptions": {
940
+ "description": "Encapsulates settings provided to GetIamPolicy.",
941
+ "id": "GetPolicyOptions",
942
+ "properties": {
943
+ "requestedPolicyVersion": {
944
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
945
+ "format": "int32",
946
+ "type": "integer"
947
+ }
948
+ },
949
+ "type": "object"
950
+ },
951
+ "GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset": {
952
+ "description": "Defines the destination bigquery dataset.",
953
+ "id": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset",
954
+ "properties": {
955
+ "datasetReference": {
956
+ "$ref": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference",
957
+ "description": "Required. A reference that identifies the destination dataset."
958
+ },
959
+ "description": {
960
+ "description": "Optional. A user-friendly description of the dataset.",
961
+ "type": "string"
962
+ },
963
+ "friendlyName": {
964
+ "description": "Optional. A descriptive name for the dataset.",
965
+ "type": "string"
966
+ },
967
+ "labels": {
968
+ "additionalProperties": {
969
+ "type": "string"
970
+ },
971
+ "description": "Optional. The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See https://cloud.google.com/resource-manager/docs/creating-managing-labels for more information.",
972
+ "type": "object"
973
+ },
974
+ "location": {
975
+ "description": "Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.",
976
+ "type": "string"
977
+ }
978
+ },
979
+ "type": "object"
980
+ },
981
+ "GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference": {
982
+ "id": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDatasetReference",
983
+ "properties": {
984
+ "datasetId": {
985
+ "description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.",
986
+ "type": "string"
987
+ },
988
+ "projectId": {
989
+ "description": "Required. The ID of the project containing this dataset.",
990
+ "type": "string"
991
+ }
992
+ },
993
+ "type": "object"
994
+ },
995
+ "GoogleCloudMarketplaceInfo": {
996
+ "description": "Cloud Marketplace commercial metadata for this subscription.",
997
+ "id": "GoogleCloudMarketplaceInfo",
998
+ "properties": {
999
+ "order": {
1000
+ "description": "Resource name of the Marketplace Order.",
1001
+ "type": "string"
1002
+ }
1003
+ },
1004
+ "type": "object"
1005
+ },
1006
+ "LinkedResource": {
1007
+ "description": "Reference to a linked resource tracked by this Subscription.",
1008
+ "id": "LinkedResource",
1009
+ "properties": {
1010
+ "linkedDataset": {
1011
+ "description": "Output only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linked_dataset",
1012
+ "readOnly": true,
1013
+ "type": "string"
1014
+ },
1015
+ "linkedPubsubSubscription": {
1016
+ "description": "Output only. Name of the Pub/Sub subscription, e.g. projects/subscriberproject/subscriptions/subscriptions/sub_id",
1017
+ "readOnly": true,
1018
+ "type": "string"
1019
+ },
1020
+ "listing": {
1021
+ "description": "Output only. Listing for which linked resource is created.",
1022
+ "readOnly": true,
1023
+ "type": "string"
1024
+ }
1025
+ },
1026
+ "type": "object"
1027
+ },
1028
+ "ListDataExchangesResponse": {
1029
+ "description": "Message for response to the list of data exchanges.",
1030
+ "id": "ListDataExchangesResponse",
1031
+ "properties": {
1032
+ "dataExchanges": {
1033
+ "description": "The list of data exchanges.",
1034
+ "items": {
1035
+ "$ref": "DataExchange"
1036
+ },
1037
+ "type": "array"
1038
+ },
1039
+ "nextPageToken": {
1040
+ "description": "A token to request the next page of results.",
1041
+ "type": "string"
1042
+ }
1043
+ },
1044
+ "type": "object"
1045
+ },
1046
+ "ListListingsResponse": {
1047
+ "description": "Message for response to the list of Listings.",
1048
+ "id": "ListListingsResponse",
1049
+ "properties": {
1050
+ "listings": {
1051
+ "description": "The list of Listing.",
1052
+ "items": {
1053
+ "$ref": "Listing"
1054
+ },
1055
+ "type": "array"
1056
+ },
1057
+ "nextPageToken": {
1058
+ "description": "A token to request the next page of results.",
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "type": "object"
1063
+ },
1064
+ "ListOrgDataExchangesResponse": {
1065
+ "description": "Message for response to listing data exchanges in an organization and location.",
1066
+ "id": "ListOrgDataExchangesResponse",
1067
+ "properties": {
1068
+ "dataExchanges": {
1069
+ "description": "The list of data exchanges.",
1070
+ "items": {
1071
+ "$ref": "DataExchange"
1072
+ },
1073
+ "type": "array"
1074
+ },
1075
+ "nextPageToken": {
1076
+ "description": "A token to request the next page of results.",
1077
+ "type": "string"
1078
+ }
1079
+ },
1080
+ "type": "object"
1081
+ },
1082
+ "Listing": {
1083
+ "description": "A listing is what gets published into a data exchange that a subscriber can subscribe to. It contains a reference to the data source along with descriptive information that will help subscribers find and subscribe the data.",
1084
+ "id": "Listing",
1085
+ "properties": {
1086
+ "allowOnlyMetadataSharing": {
1087
+ "description": "Optional. If true, the listing is only available to get the resource metadata. Listing is non subscribable.",
1088
+ "type": "boolean"
1089
+ },
1090
+ "bigqueryDataset": {
1091
+ "$ref": "BigQueryDatasetSource",
1092
+ "description": "Required. Shared dataset i.e. BigQuery dataset source."
1093
+ },
1094
+ "categories": {
1095
+ "description": "Optional. Categories of the listing. Up to five categories are allowed.",
1096
+ "items": {
1097
+ "enum": [
1098
+ "CATEGORY_UNSPECIFIED",
1099
+ "CATEGORY_OTHERS",
1100
+ "CATEGORY_ADVERTISING_AND_MARKETING",
1101
+ "CATEGORY_COMMERCE",
1102
+ "CATEGORY_CLIMATE_AND_ENVIRONMENT",
1103
+ "CATEGORY_DEMOGRAPHICS",
1104
+ "CATEGORY_ECONOMICS",
1105
+ "CATEGORY_EDUCATION",
1106
+ "CATEGORY_ENERGY",
1107
+ "CATEGORY_FINANCIAL",
1108
+ "CATEGORY_GAMING",
1109
+ "CATEGORY_GEOSPATIAL",
1110
+ "CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE",
1111
+ "CATEGORY_MEDIA",
1112
+ "CATEGORY_PUBLIC_SECTOR",
1113
+ "CATEGORY_RETAIL",
1114
+ "CATEGORY_SPORTS",
1115
+ "CATEGORY_SCIENCE_AND_RESEARCH",
1116
+ "CATEGORY_TRANSPORTATION_AND_LOGISTICS",
1117
+ "CATEGORY_TRAVEL_AND_TOURISM",
1118
+ "CATEGORY_GOOGLE_EARTH_ENGINE"
1119
+ ],
1120
+ "enumDescriptions": [
1121
+ "",
1122
+ "",
1123
+ "",
1124
+ "",
1125
+ "",
1126
+ "",
1127
+ "",
1128
+ "",
1129
+ "",
1130
+ "",
1131
+ "",
1132
+ "",
1133
+ "",
1134
+ "",
1135
+ "",
1136
+ "",
1137
+ "",
1138
+ "",
1139
+ "",
1140
+ "",
1141
+ ""
1142
+ ],
1143
+ "type": "string"
1144
+ },
1145
+ "type": "array"
1146
+ },
1147
+ "dataProvider": {
1148
+ "$ref": "DataProvider",
1149
+ "description": "Optional. Details of the data provider who owns the source data."
1150
+ },
1151
+ "description": {
1152
+ "description": "Optional. Short description of the listing. The description must not contain Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default value is an empty string. Max length: 2000 bytes.",
1153
+ "type": "string"
1154
+ },
1155
+ "displayName": {
1156
+ "description": "Required. Human-readable display name of the listing. The display name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces. Default value is an empty string. Max length: 63 bytes.",
1157
+ "type": "string"
1158
+ },
1159
+ "documentation": {
1160
+ "description": "Optional. Documentation describing the listing.",
1161
+ "type": "string"
1162
+ },
1163
+ "icon": {
1164
+ "description": "Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API only performs validation on size of the encoded data. Note: For byte fields, the contents of the field are base64-encoded (which increases the size of the data by 33-36%) when using JSON on the wire.",
1165
+ "format": "byte",
1166
+ "type": "string"
1167
+ },
1168
+ "name": {
1169
+ "description": "Output only. The resource name of the listing. e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`",
1170
+ "readOnly": true,
1171
+ "type": "string"
1172
+ },
1173
+ "primaryContact": {
1174
+ "description": "Optional. Email or URL of the primary point of contact of the listing. Max Length: 1000 bytes.",
1175
+ "type": "string"
1176
+ },
1177
+ "publisher": {
1178
+ "$ref": "Publisher",
1179
+ "description": "Optional. Details of the publisher who owns the listing and who can share the source data."
1180
+ },
1181
+ "requestAccess": {
1182
+ "description": "Optional. Email or URL of the request access of the listing. Subscribers can use this reference to request access. Max Length: 1000 bytes.",
1183
+ "type": "string"
1184
+ },
1185
+ "restrictedExportConfig": {
1186
+ "$ref": "RestrictedExportConfig",
1187
+ "description": "Optional. If set, restricted export configuration will be propagated and enforced on the linked dataset. This is a required field for data clean room exchanges."
1188
+ },
1189
+ "state": {
1190
+ "description": "Output only. Current state of the listing.",
1191
+ "enum": [
1192
+ "STATE_UNSPECIFIED",
1193
+ "ACTIVE"
1194
+ ],
1195
+ "enumDescriptions": [
1196
+ "Default value. This value is unused.",
1197
+ "Subscribable state. Users with dataexchange.listings.subscribe permission can subscribe to this listing."
1198
+ ],
1199
+ "readOnly": true,
1200
+ "type": "string"
1201
+ }
1202
+ },
1203
+ "type": "object"
1204
+ },
1205
+ "OperationMetadata": {
1206
+ "description": "Represents the metadata of a long-running operation in Analytics Hub.",
1207
+ "id": "OperationMetadata",
1208
+ "properties": {
1209
+ "apiVersion": {
1210
+ "description": "Output only. API version used to start the operation.",
1211
+ "readOnly": true,
1212
+ "type": "string"
1213
+ },
1214
+ "createTime": {
1215
+ "description": "Output only. The time the operation was created.",
1216
+ "format": "google-datetime",
1217
+ "readOnly": true,
1218
+ "type": "string"
1219
+ },
1220
+ "endTime": {
1221
+ "description": "Output only. The time the operation finished running.",
1222
+ "format": "google-datetime",
1223
+ "readOnly": true,
1224
+ "type": "string"
1225
+ },
1226
+ "requestedCancellation": {
1227
+ "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
1228
+ "readOnly": true,
1229
+ "type": "boolean"
1230
+ },
1231
+ "statusMessage": {
1232
+ "description": "Output only. Human-readable status of the operation, if any.",
1233
+ "readOnly": true,
1234
+ "type": "string"
1235
+ },
1236
+ "target": {
1237
+ "description": "Output only. Server-defined resource path for the target of the operation.",
1238
+ "readOnly": true,
1239
+ "type": "string"
1240
+ },
1241
+ "verb": {
1242
+ "description": "Output only. Name of the verb executed by the operation.",
1243
+ "readOnly": true,
1244
+ "type": "string"
1245
+ }
1246
+ },
1247
+ "type": "object"
1248
+ },
1249
+ "Policy": {
1250
+ "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
1251
+ "id": "Policy",
1252
+ "properties": {
1253
+ "auditConfigs": {
1254
+ "description": "Specifies cloud audit logging configuration for this policy.",
1255
+ "items": {
1256
+ "$ref": "AuditConfig"
1257
+ },
1258
+ "type": "array"
1259
+ },
1260
+ "bindings": {
1261
+ "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.",
1262
+ "items": {
1263
+ "$ref": "Binding"
1264
+ },
1265
+ "type": "array"
1266
+ },
1267
+ "etag": {
1268
+ "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
1269
+ "format": "byte",
1270
+ "type": "string"
1271
+ },
1272
+ "version": {
1273
+ "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
1274
+ "format": "int32",
1275
+ "type": "integer"
1276
+ }
1277
+ },
1278
+ "type": "object"
1279
+ },
1280
+ "Publisher": {
1281
+ "description": "Contains details of the listing publisher.",
1282
+ "id": "Publisher",
1283
+ "properties": {
1284
+ "name": {
1285
+ "description": "Optional. Name of the listing publisher.",
1286
+ "type": "string"
1287
+ },
1288
+ "primaryContact": {
1289
+ "description": "Optional. Email or URL of the listing publisher. Max Length: 1000 bytes.",
1290
+ "type": "string"
1291
+ }
1292
+ },
1293
+ "type": "object"
1294
+ },
1295
+ "RefreshSubscriptionResponse": {
1296
+ "description": "Message for response when you refresh a subscription.",
1297
+ "id": "RefreshSubscriptionResponse",
1298
+ "properties": {
1299
+ "subscription": {
1300
+ "$ref": "Subscription",
1301
+ "description": "The refreshed subscription resource."
1302
+ }
1303
+ },
1304
+ "type": "object"
1305
+ },
1306
+ "RestrictedExportConfig": {
1307
+ "description": "Restricted export config, used to configure restricted export on linked dataset.",
1308
+ "id": "RestrictedExportConfig",
1309
+ "properties": {
1310
+ "enabled": {
1311
+ "description": "Optional. If true, enable restricted export.",
1312
+ "type": "boolean"
1313
+ },
1314
+ "restrictDirectTableAccess": {
1315
+ "description": "Output only. If true, restrict direct table access(read api/tabledata.list) on linked table.",
1316
+ "readOnly": true,
1317
+ "type": "boolean"
1318
+ },
1319
+ "restrictQueryResult": {
1320
+ "description": "Optional. If true, restrict export of query result derived from restricted linked dataset table.",
1321
+ "type": "boolean"
1322
+ }
1323
+ },
1324
+ "type": "object"
1325
+ },
1326
+ "SetIamPolicyRequest": {
1327
+ "description": "Request message for `SetIamPolicy` method.",
1328
+ "id": "SetIamPolicyRequest",
1329
+ "properties": {
1330
+ "policy": {
1331
+ "$ref": "Policy",
1332
+ "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them."
1333
+ },
1334
+ "updateMask": {
1335
+ "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
1336
+ "format": "google-fieldmask",
1337
+ "type": "string"
1338
+ }
1339
+ },
1340
+ "type": "object"
1341
+ },
1342
+ "SubscribeDataExchangeResponse": {
1343
+ "description": "Message for response when you subscribe to a Data Exchange.",
1344
+ "id": "SubscribeDataExchangeResponse",
1345
+ "properties": {
1346
+ "subscription": {
1347
+ "$ref": "Subscription",
1348
+ "description": "Subscription object created from this subscribe action."
1349
+ }
1350
+ },
1351
+ "type": "object"
1352
+ },
1353
+ "SubscribeListingRequest": {
1354
+ "description": "Message for subscribing to a listing.",
1355
+ "id": "SubscribeListingRequest",
1356
+ "properties": {
1357
+ "destinationDataset": {
1358
+ "$ref": "GoogleCloudBigqueryDataexchangeV1beta1DestinationDataset",
1359
+ "description": "BigQuery destination dataset to create for the subscriber."
1360
+ }
1361
+ },
1362
+ "type": "object"
1363
+ },
1364
+ "SubscribeListingResponse": {
1365
+ "description": "Message for response when you subscribe to a listing.",
1366
+ "id": "SubscribeListingResponse",
1367
+ "properties": {},
1368
+ "type": "object"
1369
+ },
1370
+ "Subscription": {
1371
+ "description": "A subscription represents a subscribers' access to a particular set of published data. It contains references to associated listings, data exchanges, and linked datasets.",
1372
+ "id": "Subscription",
1373
+ "properties": {
1374
+ "commercialInfo": {
1375
+ "$ref": "CommercialInfo",
1376
+ "description": "Output only. This is set if this is a commercial subscription i.e. if this subscription was created from subscribing to a commercial listing.",
1377
+ "readOnly": true
1378
+ },
1379
+ "creationTime": {
1380
+ "description": "Output only. Timestamp when the subscription was created.",
1381
+ "format": "google-datetime",
1382
+ "readOnly": true,
1383
+ "type": "string"
1384
+ },
1385
+ "dataExchange": {
1386
+ "description": "Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/us/dataExchanges/456",
1387
+ "readOnly": true,
1388
+ "type": "string"
1389
+ },
1390
+ "destinationDataset": {
1391
+ "$ref": "DestinationDataset",
1392
+ "description": "Optional. BigQuery destination dataset to create for the subscriber."
1393
+ },
1394
+ "lastModifyTime": {
1395
+ "description": "Output only. Timestamp when the subscription was last modified.",
1396
+ "format": "google-datetime",
1397
+ "readOnly": true,
1398
+ "type": "string"
1399
+ },
1400
+ "linkedDatasetMap": {
1401
+ "additionalProperties": {
1402
+ "$ref": "LinkedResource"
1403
+ },
1404
+ "description": "Output only. Map of listing resource names to associated linked resource, e.g. projects/123/locations/us/dataExchanges/456/listings/789 -> projects/123/datasets/my_dataset For listing-level subscriptions, this is a map of size 1. Only contains values if state == STATE_ACTIVE.",
1405
+ "readOnly": true,
1406
+ "type": "object"
1407
+ },
1408
+ "linkedResources": {
1409
+ "description": "Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.",
1410
+ "items": {
1411
+ "$ref": "LinkedResource"
1412
+ },
1413
+ "readOnly": true,
1414
+ "type": "array"
1415
+ },
1416
+ "listing": {
1417
+ "description": "Output only. Resource name of the source Listing. e.g. projects/123/locations/us/dataExchanges/456/listings/789",
1418
+ "readOnly": true,
1419
+ "type": "string"
1420
+ },
1421
+ "logLinkedDatasetQueryUserEmail": {
1422
+ "description": "Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for DataExchange/Listing.",
1423
+ "readOnly": true,
1424
+ "type": "boolean"
1425
+ },
1426
+ "name": {
1427
+ "description": "Output only. The resource name of the subscription. e.g. `projects/myproject/locations/us/subscriptions/123`.",
1428
+ "readOnly": true,
1429
+ "type": "string"
1430
+ },
1431
+ "organizationDisplayName": {
1432
+ "description": "Output only. Display name of the project of this subscription.",
1433
+ "readOnly": true,
1434
+ "type": "string"
1435
+ },
1436
+ "organizationId": {
1437
+ "description": "Output only. Organization of the project this subscription belongs to.",
1438
+ "readOnly": true,
1439
+ "type": "string"
1440
+ },
1441
+ "resourceType": {
1442
+ "description": "Output only. Listing shared asset type.",
1443
+ "enum": [
1444
+ "SHARED_RESOURCE_TYPE_UNSPECIFIED",
1445
+ "BIGQUERY_DATASET",
1446
+ "PUBSUB_TOPIC"
1447
+ ],
1448
+ "enumDescriptions": [
1449
+ "Not specified.",
1450
+ "BigQuery Dataset Asset.",
1451
+ "Pub/Sub Topic Asset."
1452
+ ],
1453
+ "readOnly": true,
1454
+ "type": "string"
1455
+ },
1456
+ "state": {
1457
+ "description": "Output only. Current state of the subscription.",
1458
+ "enum": [
1459
+ "STATE_UNSPECIFIED",
1460
+ "STATE_ACTIVE",
1461
+ "STATE_STALE",
1462
+ "STATE_INACTIVE"
1463
+ ],
1464
+ "enumDescriptions": [
1465
+ "Default value. This value is unused.",
1466
+ "This subscription is active and the data is accessible.",
1467
+ "The data referenced by this subscription is out of date and should be refreshed. This can happen when a data provider adds or removes datasets.",
1468
+ "This subscription has been cancelled or revoked and the data is no longer accessible."
1469
+ ],
1470
+ "readOnly": true,
1471
+ "type": "string"
1472
+ },
1473
+ "subscriberContact": {
1474
+ "description": "Output only. Email of the subscriber.",
1475
+ "readOnly": true,
1476
+ "type": "string"
1477
+ }
1478
+ },
1479
+ "type": "object"
1480
+ },
1481
+ "TestIamPermissionsRequest": {
1482
+ "description": "Request message for `TestIamPermissions` method.",
1483
+ "id": "TestIamPermissionsRequest",
1484
+ "properties": {
1485
+ "permissions": {
1486
+ "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).",
1487
+ "items": {
1488
+ "type": "string"
1489
+ },
1490
+ "type": "array"
1491
+ }
1492
+ },
1493
+ "type": "object"
1494
+ },
1495
+ "TestIamPermissionsResponse": {
1496
+ "description": "Response message for `TestIamPermissions` method.",
1497
+ "id": "TestIamPermissionsResponse",
1498
+ "properties": {
1499
+ "permissions": {
1500
+ "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
1501
+ "items": {
1502
+ "type": "string"
1503
+ },
1504
+ "type": "array"
1505
+ }
1506
+ },
1507
+ "type": "object"
1508
+ }
1509
+ },
1510
+ "servicePath": "",
1511
+ "title": "Analytics Hub API",
1512
+ "version": "v1beta1",
1513
+ "version_module": true
1514
+ }
DiscoveryJson/androiddeviceprovisioning.v1.json ADDED
@@ -0,0 +1,1994 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "basePath": "",
3
+ "baseUrl": "https://androiddeviceprovisioning.googleapis.com/",
4
+ "batchPath": "batch",
5
+ "canonicalName": "Android Provisioning Partner",
6
+ "description": "Automates Android zero-touch enrollment for device resellers, customers, and EMMs.",
7
+ "discoveryVersion": "v1",
8
+ "documentationLink": "https://developers.google.com/zero-touch/",
9
+ "fullyEncodeReservedExpansion": true,
10
+ "icons": {
11
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
12
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
13
+ },
14
+ "id": "androiddeviceprovisioning:v1",
15
+ "kind": "discovery#restDescription",
16
+ "mtlsRootUrl": "https://androiddeviceprovisioning.mtls.googleapis.com/",
17
+ "name": "androiddeviceprovisioning",
18
+ "ownerDomain": "google.com",
19
+ "ownerName": "Google",
20
+ "parameters": {
21
+ "$.xgafv": {
22
+ "description": "V1 error format.",
23
+ "enum": [
24
+ "1",
25
+ "2"
26
+ ],
27
+ "enumDescriptions": [
28
+ "v1 error format",
29
+ "v2 error format"
30
+ ],
31
+ "location": "query",
32
+ "type": "string"
33
+ },
34
+ "access_token": {
35
+ "description": "OAuth access token.",
36
+ "location": "query",
37
+ "type": "string"
38
+ },
39
+ "alt": {
40
+ "default": "json",
41
+ "description": "Data format for response.",
42
+ "enum": [
43
+ "json",
44
+ "media",
45
+ "proto"
46
+ ],
47
+ "enumDescriptions": [
48
+ "Responses with Content-Type of application/json",
49
+ "Media download with context-dependent Content-Type",
50
+ "Responses with Content-Type of application/x-protobuf"
51
+ ],
52
+ "location": "query",
53
+ "type": "string"
54
+ },
55
+ "callback": {
56
+ "description": "JSONP",
57
+ "location": "query",
58
+ "type": "string"
59
+ },
60
+ "fields": {
61
+ "description": "Selector specifying which fields to include in a partial response.",
62
+ "location": "query",
63
+ "type": "string"
64
+ },
65
+ "key": {
66
+ "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.",
67
+ "location": "query",
68
+ "type": "string"
69
+ },
70
+ "oauth_token": {
71
+ "description": "OAuth 2.0 token for the current user.",
72
+ "location": "query",
73
+ "type": "string"
74
+ },
75
+ "prettyPrint": {
76
+ "default": "true",
77
+ "description": "Returns response with indentations and line breaks.",
78
+ "location": "query",
79
+ "type": "boolean"
80
+ },
81
+ "quotaUser": {
82
+ "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.",
83
+ "location": "query",
84
+ "type": "string"
85
+ },
86
+ "uploadType": {
87
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
88
+ "location": "query",
89
+ "type": "string"
90
+ },
91
+ "upload_protocol": {
92
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
93
+ "location": "query",
94
+ "type": "string"
95
+ }
96
+ },
97
+ "protocol": "rest",
98
+ "resources": {
99
+ "customers": {
100
+ "methods": {
101
+ "list": {
102
+ "description": "Lists the user's customer accounts.",
103
+ "flatPath": "v1/customers",
104
+ "httpMethod": "GET",
105
+ "id": "androiddeviceprovisioning.customers.list",
106
+ "parameterOrder": [],
107
+ "parameters": {
108
+ "pageSize": {
109
+ "description": "Required. The maximum number of customers to show in a page of results. A number between 1 and 100 (inclusive).",
110
+ "format": "int32",
111
+ "location": "query",
112
+ "type": "integer"
113
+ },
114
+ "pageToken": {
115
+ "description": "A token specifying which result page to return. This field has custom validations in ListCustomersRequestValidator",
116
+ "location": "query",
117
+ "type": "string"
118
+ }
119
+ },
120
+ "path": "v1/customers",
121
+ "response": {
122
+ "$ref": "CustomerListCustomersResponse"
123
+ }
124
+ }
125
+ },
126
+ "resources": {
127
+ "configurations": {
128
+ "methods": {
129
+ "create": {
130
+ "description": "Creates a new configuration. Once created, a customer can apply the configuration to devices.",
131
+ "flatPath": "v1/customers/{customersId}/configurations",
132
+ "httpMethod": "POST",
133
+ "id": "androiddeviceprovisioning.customers.configurations.create",
134
+ "parameterOrder": [
135
+ "parent"
136
+ ],
137
+ "parameters": {
138
+ "parent": {
139
+ "description": "Required. The customer that manages the configuration. An API resource name in the format `customers/[CUSTOMER_ID]`. This field has custom validation in CreateConfigurationRequestValidator",
140
+ "location": "path",
141
+ "pattern": "^customers/[^/]+$",
142
+ "required": true,
143
+ "type": "string"
144
+ }
145
+ },
146
+ "path": "v1/{+parent}/configurations",
147
+ "request": {
148
+ "$ref": "Configuration"
149
+ },
150
+ "response": {
151
+ "$ref": "Configuration"
152
+ }
153
+ },
154
+ "delete": {
155
+ "description": "Deletes an unused configuration. The API call fails if the customer has devices with the configuration applied.",
156
+ "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
157
+ "httpMethod": "DELETE",
158
+ "id": "androiddeviceprovisioning.customers.configurations.delete",
159
+ "parameterOrder": [
160
+ "name"
161
+ ],
162
+ "parameters": {
163
+ "name": {
164
+ "description": "Required. The configuration to delete. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. If the configuration is applied to any devices, the API call fails.",
165
+ "location": "path",
166
+ "pattern": "^customers/[^/]+/configurations/[^/]+$",
167
+ "required": true,
168
+ "type": "string"
169
+ }
170
+ },
171
+ "path": "v1/{+name}",
172
+ "response": {
173
+ "$ref": "Empty"
174
+ }
175
+ },
176
+ "get": {
177
+ "description": "Gets the details of a configuration.",
178
+ "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
179
+ "httpMethod": "GET",
180
+ "id": "androiddeviceprovisioning.customers.configurations.get",
181
+ "parameterOrder": [
182
+ "name"
183
+ ],
184
+ "parameters": {
185
+ "name": {
186
+ "description": "Required. The configuration to get. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.",
187
+ "location": "path",
188
+ "pattern": "^customers/[^/]+/configurations/[^/]+$",
189
+ "required": true,
190
+ "type": "string"
191
+ }
192
+ },
193
+ "path": "v1/{+name}",
194
+ "response": {
195
+ "$ref": "Configuration"
196
+ }
197
+ },
198
+ "list": {
199
+ "description": "Lists a customer's configurations.",
200
+ "flatPath": "v1/customers/{customersId}/configurations",
201
+ "httpMethod": "GET",
202
+ "id": "androiddeviceprovisioning.customers.configurations.list",
203
+ "parameterOrder": [
204
+ "parent"
205
+ ],
206
+ "parameters": {
207
+ "parent": {
208
+ "description": "Required. The customer that manages the listed configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
209
+ "location": "path",
210
+ "pattern": "^customers/[^/]+$",
211
+ "required": true,
212
+ "type": "string"
213
+ }
214
+ },
215
+ "path": "v1/{+parent}/configurations",
216
+ "response": {
217
+ "$ref": "CustomerListConfigurationsResponse"
218
+ }
219
+ },
220
+ "patch": {
221
+ "description": "Updates a configuration's field values.",
222
+ "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
223
+ "httpMethod": "PATCH",
224
+ "id": "androiddeviceprovisioning.customers.configurations.patch",
225
+ "parameterOrder": [
226
+ "name"
227
+ ],
228
+ "parameters": {
229
+ "name": {
230
+ "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.",
231
+ "location": "path",
232
+ "pattern": "^customers/[^/]+/configurations/[^/]+$",
233
+ "required": true,
234
+ "type": "string"
235
+ },
236
+ "updateMask": {
237
+ "description": "Required. The field mask applied to the target `Configuration` before updating the fields. To learn more about using field masks, read [FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) in the Protocol Buffers documentation.",
238
+ "format": "google-fieldmask",
239
+ "location": "query",
240
+ "type": "string"
241
+ }
242
+ },
243
+ "path": "v1/{+name}",
244
+ "request": {
245
+ "$ref": "Configuration"
246
+ },
247
+ "response": {
248
+ "$ref": "Configuration"
249
+ }
250
+ }
251
+ }
252
+ },
253
+ "devices": {
254
+ "methods": {
255
+ "applyConfiguration": {
256
+ "description": "Applies a Configuration to the device to register the device for zero-touch enrollment. After applying a configuration to a device, the device automatically provisions itself on first boot, or next factory reset.",
257
+ "flatPath": "v1/customers/{customersId}/devices:applyConfiguration",
258
+ "httpMethod": "POST",
259
+ "id": "androiddeviceprovisioning.customers.devices.applyConfiguration",
260
+ "parameterOrder": [
261
+ "parent"
262
+ ],
263
+ "parameters": {
264
+ "parent": {
265
+ "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
266
+ "location": "path",
267
+ "pattern": "^customers/[^/]+$",
268
+ "required": true,
269
+ "type": "string"
270
+ }
271
+ },
272
+ "path": "v1/{+parent}/devices:applyConfiguration",
273
+ "request": {
274
+ "$ref": "CustomerApplyConfigurationRequest"
275
+ },
276
+ "response": {
277
+ "$ref": "Empty"
278
+ }
279
+ },
280
+ "get": {
281
+ "description": "Gets the details of a device.",
282
+ "flatPath": "v1/customers/{customersId}/devices/{devicesId}",
283
+ "httpMethod": "GET",
284
+ "id": "androiddeviceprovisioning.customers.devices.get",
285
+ "parameterOrder": [
286
+ "name"
287
+ ],
288
+ "parameters": {
289
+ "name": {
290
+ "description": "Required. The device to get. An API resource name in the format `customers/[CUSTOMER_ID]/devices/[DEVICE_ID]`.",
291
+ "location": "path",
292
+ "pattern": "^customers/[^/]+/devices/[^/]+$",
293
+ "required": true,
294
+ "type": "string"
295
+ }
296
+ },
297
+ "path": "v1/{+name}",
298
+ "response": {
299
+ "$ref": "Device"
300
+ }
301
+ },
302
+ "list": {
303
+ "description": "Lists a customer's devices.",
304
+ "flatPath": "v1/customers/{customersId}/devices",
305
+ "httpMethod": "GET",
306
+ "id": "androiddeviceprovisioning.customers.devices.list",
307
+ "parameterOrder": [
308
+ "parent"
309
+ ],
310
+ "parameters": {
311
+ "pageSize": {
312
+ "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
313
+ "format": "int64",
314
+ "location": "query",
315
+ "type": "string"
316
+ },
317
+ "pageToken": {
318
+ "description": "A token specifying which result page to return.",
319
+ "location": "query",
320
+ "type": "string"
321
+ },
322
+ "parent": {
323
+ "description": "Required. The customer managing the devices. An API resource name in the format `customers/[CUSTOMER_ID]`.",
324
+ "location": "path",
325
+ "pattern": "^customers/[^/]+$",
326
+ "required": true,
327
+ "type": "string"
328
+ }
329
+ },
330
+ "path": "v1/{+parent}/devices",
331
+ "response": {
332
+ "$ref": "CustomerListDevicesResponse"
333
+ }
334
+ },
335
+ "removeConfiguration": {
336
+ "description": "Removes a configuration from device.",
337
+ "flatPath": "v1/customers/{customersId}/devices:removeConfiguration",
338
+ "httpMethod": "POST",
339
+ "id": "androiddeviceprovisioning.customers.devices.removeConfiguration",
340
+ "parameterOrder": [
341
+ "parent"
342
+ ],
343
+ "parameters": {
344
+ "parent": {
345
+ "description": "Required. The customer managing the device in the format `customers/[CUSTOMER_ID]`.",
346
+ "location": "path",
347
+ "pattern": "^customers/[^/]+$",
348
+ "required": true,
349
+ "type": "string"
350
+ }
351
+ },
352
+ "path": "v1/{+parent}/devices:removeConfiguration",
353
+ "request": {
354
+ "$ref": "CustomerRemoveConfigurationRequest"
355
+ },
356
+ "response": {
357
+ "$ref": "Empty"
358
+ }
359
+ },
360
+ "unclaim": {
361
+ "description": "Unclaims a device from a customer and removes it from zero-touch enrollment. After removing a device, a customer must contact their reseller to register the device into zero-touch enrollment again.",
362
+ "flatPath": "v1/customers/{customersId}/devices:unclaim",
363
+ "httpMethod": "POST",
364
+ "id": "androiddeviceprovisioning.customers.devices.unclaim",
365
+ "parameterOrder": [
366
+ "parent"
367
+ ],
368
+ "parameters": {
369
+ "parent": {
370
+ "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
371
+ "location": "path",
372
+ "pattern": "^customers/[^/]+$",
373
+ "required": true,
374
+ "type": "string"
375
+ }
376
+ },
377
+ "path": "v1/{+parent}/devices:unclaim",
378
+ "request": {
379
+ "$ref": "CustomerUnclaimDeviceRequest"
380
+ },
381
+ "response": {
382
+ "$ref": "Empty"
383
+ }
384
+ }
385
+ }
386
+ },
387
+ "dpcs": {
388
+ "methods": {
389
+ "list": {
390
+ "description": "Lists the DPCs (device policy controllers) that support zero-touch enrollment.",
391
+ "flatPath": "v1/customers/{customersId}/dpcs",
392
+ "httpMethod": "GET",
393
+ "id": "androiddeviceprovisioning.customers.dpcs.list",
394
+ "parameterOrder": [
395
+ "parent"
396
+ ],
397
+ "parameters": {
398
+ "parent": {
399
+ "description": "Required. The customer that can use the DPCs in configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
400
+ "location": "path",
401
+ "pattern": "^customers/[^/]+$",
402
+ "required": true,
403
+ "type": "string"
404
+ }
405
+ },
406
+ "path": "v1/{+parent}/dpcs",
407
+ "response": {
408
+ "$ref": "CustomerListDpcsResponse"
409
+ }
410
+ }
411
+ }
412
+ }
413
+ }
414
+ },
415
+ "operations": {
416
+ "methods": {
417
+ "get": {
418
+ "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.",
419
+ "flatPath": "v1/operations/{operationsId}",
420
+ "httpMethod": "GET",
421
+ "id": "androiddeviceprovisioning.operations.get",
422
+ "parameterOrder": [
423
+ "name"
424
+ ],
425
+ "parameters": {
426
+ "name": {
427
+ "description": "The name of the operation resource.",
428
+ "location": "path",
429
+ "pattern": "^operations/.*$",
430
+ "required": true,
431
+ "type": "string"
432
+ }
433
+ },
434
+ "path": "v1/{+name}",
435
+ "response": {
436
+ "$ref": "Operation"
437
+ }
438
+ }
439
+ }
440
+ },
441
+ "partners": {
442
+ "resources": {
443
+ "customers": {
444
+ "methods": {
445
+ "create": {
446
+ "description": "Creates a customer for zero-touch enrollment. After the method returns successfully, admin and owner roles can manage devices and EMM configs by calling API methods or using their zero-touch enrollment portal. The customer receives an email that welcomes them to zero-touch enrollment and explains how to sign into the portal.",
447
+ "flatPath": "v1/partners/{partnersId}/customers",
448
+ "httpMethod": "POST",
449
+ "id": "androiddeviceprovisioning.partners.customers.create",
450
+ "parameterOrder": [
451
+ "parent"
452
+ ],
453
+ "parameters": {
454
+ "parent": {
455
+ "description": "Required. The parent resource ID in the format `partners/[PARTNER_ID]` that identifies the reseller.",
456
+ "location": "path",
457
+ "pattern": "^partners/[^/]+$",
458
+ "required": true,
459
+ "type": "string"
460
+ }
461
+ },
462
+ "path": "v1/{+parent}/customers",
463
+ "request": {
464
+ "$ref": "CreateCustomerRequest"
465
+ },
466
+ "response": {
467
+ "$ref": "Company"
468
+ }
469
+ },
470
+ "list": {
471
+ "description": "Lists the customers that are enrolled to the reseller identified by the `partnerId` argument. This list includes customers that the reseller created and customers that enrolled themselves using the portal.",
472
+ "flatPath": "v1/partners/{partnersId}/customers",
473
+ "httpMethod": "GET",
474
+ "id": "androiddeviceprovisioning.partners.customers.list",
475
+ "parameterOrder": [
476
+ "partnerId"
477
+ ],
478
+ "parameters": {
479
+ "pageSize": {
480
+ "description": "The maximum number of results to be returned. If not specified or 0, all the records are returned.",
481
+ "format": "int32",
482
+ "location": "query",
483
+ "type": "integer"
484
+ },
485
+ "pageToken": {
486
+ "description": "A token identifying a page of results returned by the server.",
487
+ "location": "query",
488
+ "type": "string"
489
+ },
490
+ "partnerId": {
491
+ "description": "Required. The ID of the reseller partner.",
492
+ "format": "int64",
493
+ "location": "path",
494
+ "pattern": "^[^/]+$",
495
+ "required": true,
496
+ "type": "string"
497
+ }
498
+ },
499
+ "path": "v1/partners/{+partnerId}/customers",
500
+ "response": {
501
+ "$ref": "ListCustomersResponse"
502
+ }
503
+ }
504
+ }
505
+ },
506
+ "devices": {
507
+ "methods": {
508
+ "claim": {
509
+ "description": "Claims a device for a customer and adds it to zero-touch enrollment. If the device is already claimed by another customer, the call returns an error.",
510
+ "flatPath": "v1/partners/{partnersId}/devices:claim",
511
+ "httpMethod": "POST",
512
+ "id": "androiddeviceprovisioning.partners.devices.claim",
513
+ "parameterOrder": [
514
+ "partnerId"
515
+ ],
516
+ "parameters": {
517
+ "partnerId": {
518
+ "description": "Required. The ID of the reseller partner.",
519
+ "format": "int64",
520
+ "location": "path",
521
+ "pattern": "^[^/]+$",
522
+ "required": true,
523
+ "type": "string"
524
+ }
525
+ },
526
+ "path": "v1/partners/{+partnerId}/devices:claim",
527
+ "request": {
528
+ "$ref": "ClaimDeviceRequest"
529
+ },
530
+ "response": {
531
+ "$ref": "ClaimDeviceResponse"
532
+ }
533
+ },
534
+ "claimAsync": {
535
+ "description": "Claims a batch of devices for a customer asynchronously. Adds the devices to zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
536
+ "flatPath": "v1/partners/{partnersId}/devices:claimAsync",
537
+ "httpMethod": "POST",
538
+ "id": "androiddeviceprovisioning.partners.devices.claimAsync",
539
+ "parameterOrder": [
540
+ "partnerId"
541
+ ],
542
+ "parameters": {
543
+ "partnerId": {
544
+ "description": "Required. The ID of the reseller partner.",
545
+ "format": "int64",
546
+ "location": "path",
547
+ "pattern": "^[^/]+$",
548
+ "required": true,
549
+ "type": "string"
550
+ }
551
+ },
552
+ "path": "v1/partners/{+partnerId}/devices:claimAsync",
553
+ "request": {
554
+ "$ref": "ClaimDevicesRequest"
555
+ },
556
+ "response": {
557
+ "$ref": "Operation"
558
+ }
559
+ },
560
+ "findByIdentifier": {
561
+ "description": "Finds devices by hardware identifiers, such as IMEI.",
562
+ "flatPath": "v1/partners/{partnersId}/devices:findByIdentifier",
563
+ "httpMethod": "POST",
564
+ "id": "androiddeviceprovisioning.partners.devices.findByIdentifier",
565
+ "parameterOrder": [
566
+ "partnerId"
567
+ ],
568
+ "parameters": {
569
+ "partnerId": {
570
+ "description": "Required. The ID of the reseller partner.",
571
+ "format": "int64",
572
+ "location": "path",
573
+ "pattern": "^[^/]+$",
574
+ "required": true,
575
+ "type": "string"
576
+ }
577
+ },
578
+ "path": "v1/partners/{+partnerId}/devices:findByIdentifier",
579
+ "request": {
580
+ "$ref": "FindDevicesByDeviceIdentifierRequest"
581
+ },
582
+ "response": {
583
+ "$ref": "FindDevicesByDeviceIdentifierResponse"
584
+ }
585
+ },
586
+ "findByOwner": {
587
+ "description": "Finds devices claimed for customers. The results only contain devices registered to the reseller that's identified by the `partnerId` argument. The customer's devices purchased from other resellers don't appear in the results.",
588
+ "flatPath": "v1/partners/{partnersId}/devices:findByOwner",
589
+ "httpMethod": "POST",
590
+ "id": "androiddeviceprovisioning.partners.devices.findByOwner",
591
+ "parameterOrder": [
592
+ "partnerId"
593
+ ],
594
+ "parameters": {
595
+ "partnerId": {
596
+ "description": "Required. The ID of the reseller partner.",
597
+ "format": "int64",
598
+ "location": "path",
599
+ "pattern": "^[^/]+$",
600
+ "required": true,
601
+ "type": "string"
602
+ }
603
+ },
604
+ "path": "v1/partners/{+partnerId}/devices:findByOwner",
605
+ "request": {
606
+ "$ref": "FindDevicesByOwnerRequest"
607
+ },
608
+ "response": {
609
+ "$ref": "FindDevicesByOwnerResponse"
610
+ }
611
+ },
612
+ "get": {
613
+ "description": "Gets a device.",
614
+ "flatPath": "v1/partners/{partnersId}/devices/{devicesId}",
615
+ "httpMethod": "GET",
616
+ "id": "androiddeviceprovisioning.partners.devices.get",
617
+ "parameterOrder": [
618
+ "name"
619
+ ],
620
+ "parameters": {
621
+ "name": {
622
+ "description": "Required. The device API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.",
623
+ "location": "path",
624
+ "pattern": "^partners/[^/]+/devices/[^/]+$",
625
+ "required": true,
626
+ "type": "string"
627
+ }
628
+ },
629
+ "path": "v1/{+name}",
630
+ "response": {
631
+ "$ref": "Device"
632
+ }
633
+ },
634
+ "getSimLockState": {
635
+ "description": "Gets a device's SIM lock state.",
636
+ "flatPath": "v1/partners/{partnersId}/devices:getSimLockState",
637
+ "httpMethod": "POST",
638
+ "id": "androiddeviceprovisioning.partners.devices.getSimLockState",
639
+ "parameterOrder": [
640
+ "partnerId"
641
+ ],
642
+ "parameters": {
643
+ "partnerId": {
644
+ "description": "Required. The ID of the partner.",
645
+ "format": "int64",
646
+ "location": "path",
647
+ "pattern": "^[^/]+$",
648
+ "required": true,
649
+ "type": "string"
650
+ }
651
+ },
652
+ "path": "v1/partners/{+partnerId}/devices:getSimLockState",
653
+ "request": {
654
+ "$ref": "GetDeviceSimLockStateRequest"
655
+ },
656
+ "response": {
657
+ "$ref": "GetDeviceSimLockStateResponse"
658
+ }
659
+ },
660
+ "metadata": {
661
+ "description": "Updates reseller metadata associated with the device. Android devices only.",
662
+ "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata",
663
+ "httpMethod": "POST",
664
+ "id": "androiddeviceprovisioning.partners.devices.metadata",
665
+ "parameterOrder": [
666
+ "metadataOwnerId",
667
+ "deviceId"
668
+ ],
669
+ "parameters": {
670
+ "deviceId": {
671
+ "description": "Required. The ID of the device.",
672
+ "format": "int64",
673
+ "location": "path",
674
+ "pattern": "^[^/]+$",
675
+ "required": true,
676
+ "type": "string"
677
+ },
678
+ "metadataOwnerId": {
679
+ "description": "Required. The owner of the newly set metadata. Set this to the partner ID.",
680
+ "format": "int64",
681
+ "location": "path",
682
+ "pattern": "^[^/]+$",
683
+ "required": true,
684
+ "type": "string"
685
+ }
686
+ },
687
+ "path": "v1/partners/{+metadataOwnerId}/devices/{+deviceId}/metadata",
688
+ "request": {
689
+ "$ref": "UpdateDeviceMetadataRequest"
690
+ },
691
+ "response": {
692
+ "$ref": "DeviceMetadata"
693
+ }
694
+ },
695
+ "unclaim": {
696
+ "description": "Unclaims a device from a customer and removes it from zero-touch enrollment.",
697
+ "flatPath": "v1/partners/{partnersId}/devices:unclaim",
698
+ "httpMethod": "POST",
699
+ "id": "androiddeviceprovisioning.partners.devices.unclaim",
700
+ "parameterOrder": [
701
+ "partnerId"
702
+ ],
703
+ "parameters": {
704
+ "partnerId": {
705
+ "description": "Required. The ID of the reseller partner.",
706
+ "format": "int64",
707
+ "location": "path",
708
+ "pattern": "^[^/]+$",
709
+ "required": true,
710
+ "type": "string"
711
+ }
712
+ },
713
+ "path": "v1/partners/{+partnerId}/devices:unclaim",
714
+ "request": {
715
+ "$ref": "UnclaimDeviceRequest"
716
+ },
717
+ "response": {
718
+ "$ref": "Empty"
719
+ }
720
+ },
721
+ "unclaimAsync": {
722
+ "description": "Unclaims a batch of devices for a customer asynchronously. Removes the devices from zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
723
+ "flatPath": "v1/partners/{partnersId}/devices:unclaimAsync",
724
+ "httpMethod": "POST",
725
+ "id": "androiddeviceprovisioning.partners.devices.unclaimAsync",
726
+ "parameterOrder": [
727
+ "partnerId"
728
+ ],
729
+ "parameters": {
730
+ "partnerId": {
731
+ "description": "Required. The reseller partner ID.",
732
+ "format": "int64",
733
+ "location": "path",
734
+ "pattern": "^[^/]+$",
735
+ "required": true,
736
+ "type": "string"
737
+ }
738
+ },
739
+ "path": "v1/partners/{+partnerId}/devices:unclaimAsync",
740
+ "request": {
741
+ "$ref": "UnclaimDevicesRequest"
742
+ },
743
+ "response": {
744
+ "$ref": "Operation"
745
+ }
746
+ },
747
+ "updateMetadataAsync": {
748
+ "description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations). Android Devices only.",
749
+ "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync",
750
+ "httpMethod": "POST",
751
+ "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync",
752
+ "parameterOrder": [
753
+ "partnerId"
754
+ ],
755
+ "parameters": {
756
+ "partnerId": {
757
+ "description": "Required. The reseller partner ID.",
758
+ "format": "int64",
759
+ "location": "path",
760
+ "pattern": "^[^/]+$",
761
+ "required": true,
762
+ "type": "string"
763
+ }
764
+ },
765
+ "path": "v1/partners/{+partnerId}/devices:updateMetadataAsync",
766
+ "request": {
767
+ "$ref": "UpdateDeviceMetadataInBatchRequest"
768
+ },
769
+ "response": {
770
+ "$ref": "Operation"
771
+ }
772
+ }
773
+ }
774
+ },
775
+ "vendors": {
776
+ "methods": {
777
+ "list": {
778
+ "description": "Lists the vendors of the partner.",
779
+ "flatPath": "v1/partners/{partnersId}/vendors",
780
+ "httpMethod": "GET",
781
+ "id": "androiddeviceprovisioning.partners.vendors.list",
782
+ "parameterOrder": [
783
+ "parent"
784
+ ],
785
+ "parameters": {
786
+ "pageSize": {
787
+ "description": "The maximum number of results to be returned.",
788
+ "format": "int32",
789
+ "location": "query",
790
+ "type": "integer"
791
+ },
792
+ "pageToken": {
793
+ "description": "A token identifying a page of results returned by the server.",
794
+ "location": "query",
795
+ "type": "string"
796
+ },
797
+ "parent": {
798
+ "description": "Required. The resource name in the format `partners/[PARTNER_ID]`.",
799
+ "location": "path",
800
+ "pattern": "^partners/[^/]+$",
801
+ "required": true,
802
+ "type": "string"
803
+ }
804
+ },
805
+ "path": "v1/{+parent}/vendors",
806
+ "response": {
807
+ "$ref": "ListVendorsResponse"
808
+ }
809
+ }
810
+ },
811
+ "resources": {
812
+ "customers": {
813
+ "methods": {
814
+ "list": {
815
+ "description": "Lists the customers of the vendor.",
816
+ "flatPath": "v1/partners/{partnersId}/vendors/{vendorsId}/customers",
817
+ "httpMethod": "GET",
818
+ "id": "androiddeviceprovisioning.partners.vendors.customers.list",
819
+ "parameterOrder": [
820
+ "parent"
821
+ ],
822
+ "parameters": {
823
+ "pageSize": {
824
+ "description": "The maximum number of results to be returned.",
825
+ "format": "int32",
826
+ "location": "query",
827
+ "type": "integer"
828
+ },
829
+ "pageToken": {
830
+ "description": "A token identifying a page of results returned by the server.",
831
+ "location": "query",
832
+ "type": "string"
833
+ },
834
+ "parent": {
835
+ "description": "Required. The resource name in the format `partners/[PARTNER_ID]/vendors/[VENDOR_ID]`.",
836
+ "location": "path",
837
+ "pattern": "^partners/[^/]+/vendors/[^/]+$",
838
+ "required": true,
839
+ "type": "string"
840
+ }
841
+ },
842
+ "path": "v1/{+parent}/customers",
843
+ "response": {
844
+ "$ref": "ListVendorCustomersResponse"
845
+ }
846
+ }
847
+ }
848
+ }
849
+ }
850
+ }
851
+ }
852
+ }
853
+ },
854
+ "revision": "20250331",
855
+ "rootUrl": "https://androiddeviceprovisioning.googleapis.com/",
856
+ "schemas": {
857
+ "ClaimDeviceRequest": {
858
+ "description": "Request message to claim a device on behalf of a customer.",
859
+ "id": "ClaimDeviceRequest",
860
+ "properties": {
861
+ "configurationId": {
862
+ "description": "Optional. The ID of the configuration applied to the device section.",
863
+ "format": "int64",
864
+ "type": "string"
865
+ },
866
+ "customerId": {
867
+ "description": "The ID of the customer for whom the device is being claimed.",
868
+ "format": "int64",
869
+ "type": "string"
870
+ },
871
+ "deviceIdentifier": {
872
+ "$ref": "DeviceIdentifier",
873
+ "description": "Required. Required. The device identifier of the device to claim."
874
+ },
875
+ "deviceMetadata": {
876
+ "$ref": "DeviceMetadata",
877
+ "description": "Optional. The metadata to attach to the device."
878
+ },
879
+ "googleWorkspaceCustomerId": {
880
+ "description": "The Google Workspace customer ID.",
881
+ "type": "string"
882
+ },
883
+ "preProvisioningToken": {
884
+ "description": "Optional. Must and can only be set for Chrome OS devices.",
885
+ "type": "string"
886
+ },
887
+ "sectionType": {
888
+ "description": "Required. The section type of the device's provisioning record.",
889
+ "enum": [
890
+ "SECTION_TYPE_UNSPECIFIED",
891
+ "SECTION_TYPE_SIM_LOCK",
892
+ "SECTION_TYPE_ZERO_TOUCH"
893
+ ],
894
+ "enumDescriptions": [
895
+ "Unspecified section type.",
896
+ "SIM-lock section type.",
897
+ "Zero-touch enrollment section type."
898
+ ],
899
+ "type": "string"
900
+ },
901
+ "simlockProfileId": {
902
+ "description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.",
903
+ "format": "int64",
904
+ "type": "string"
905
+ }
906
+ },
907
+ "type": "object"
908
+ },
909
+ "ClaimDeviceResponse": {
910
+ "description": "Response message containing device id of the claim.",
911
+ "id": "ClaimDeviceResponse",
912
+ "properties": {
913
+ "deviceId": {
914
+ "description": "The device ID of the claimed device.",
915
+ "format": "int64",
916
+ "type": "string"
917
+ },
918
+ "deviceName": {
919
+ "description": "The resource name of the device in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.",
920
+ "type": "string"
921
+ }
922
+ },
923
+ "type": "object"
924
+ },
925
+ "ClaimDevicesRequest": {
926
+ "description": "Request to claim devices asynchronously in batch. Claiming a device adds the device to zero-touch enrollment and shows the device in the customer's view of the portal.",
927
+ "id": "ClaimDevicesRequest",
928
+ "properties": {
929
+ "claims": {
930
+ "description": "Required. A list of device claims.",
931
+ "items": {
932
+ "$ref": "PartnerClaim"
933
+ },
934
+ "type": "array"
935
+ }
936
+ },
937
+ "type": "object"
938
+ },
939
+ "Company": {
940
+ "description": "A reseller, vendor, or customer in the zero-touch reseller and customer APIs.",
941
+ "id": "Company",
942
+ "properties": {
943
+ "adminEmails": {
944
+ "description": "Optional. Email address of customer's users in the admin role. Each email address must be associated with a Google Account.",
945
+ "items": {
946
+ "type": "string"
947
+ },
948
+ "type": "array"
949
+ },
950
+ "companyId": {
951
+ "description": "Output only. The ID of the company. Assigned by the server.",
952
+ "format": "int64",
953
+ "readOnly": true,
954
+ "type": "string"
955
+ },
956
+ "companyName": {
957
+ "description": "Required. The name of the company. For example _XYZ Corp_. Displayed to the company's employees in the zero-touch enrollment portal.",
958
+ "type": "string"
959
+ },
960
+ "googleWorkspaceAccount": {
961
+ "$ref": "GoogleWorkspaceAccount",
962
+ "description": "Output only. The Google Workspace account associated with this customer. Only used for customer Companies.",
963
+ "readOnly": true
964
+ },
965
+ "languageCode": {
966
+ "description": "Input only. The preferred locale of the customer represented as a BCP47 language code. This field is validated on input and requests containing unsupported language codes will be rejected. Supported language codes: Arabic (ar) Chinese (Hong Kong) (zh-HK) Chinese (Simplified) (zh-CN) Chinese (Traditional) (zh-TW) Czech (cs) Danish (da) Dutch (nl) English (UK) (en-GB) English (US) (en-US) Filipino (fil) Finnish (fi) French (fr) German (de) Hebrew (iw) Hindi (hi) Hungarian (hu) Indonesian (id) Italian (it) Japanese (ja) Korean (ko) Norwegian (Bokmal) (no) Polish (pl) Portuguese (Brazil) (pt-BR) Portuguese (Portugal) (pt-PT) Russian (ru) Spanish (es) Spanish (Latin America) (es-419) Swedish (sv) Thai (th) Turkish (tr) Ukrainian (uk) Vietnamese (vi)",
967
+ "type": "string"
968
+ },
969
+ "name": {
970
+ "description": "Output only. The API resource name of the company. The resource name is one of the following formats: * `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]/customers/[CUSTOMER_ID]` Assigned by the server.",
971
+ "readOnly": true,
972
+ "type": "string"
973
+ },
974
+ "ownerEmails": {
975
+ "description": "Required. Input only. Email address of customer's users in the owner role. At least one `owner_email` is required. Owners share the same access as admins but can also add, delete, and edit your organization's portal users.",
976
+ "items": {
977
+ "type": "string"
978
+ },
979
+ "type": "array"
980
+ },
981
+ "skipWelcomeEmail": {
982
+ "description": "Input only. If set to true, welcome email will not be sent to the customer. It is recommended to skip the welcome email if devices will be claimed with additional DEVICE_PROTECTION service, as the customer will receive separate emails at device claim time. This field is ignored if this is not a Zero-touch customer.",
983
+ "type": "boolean"
984
+ },
985
+ "termsStatus": {
986
+ "description": "Output only. Whether any user from the company has accepted the latest Terms of Service (ToS). See TermsStatus.",
987
+ "enum": [
988
+ "TERMS_STATUS_UNSPECIFIED",
989
+ "TERMS_STATUS_NOT_ACCEPTED",
990
+ "TERMS_STATUS_ACCEPTED",
991
+ "TERMS_STATUS_STALE"
992
+ ],
993
+ "enumDescriptions": [
994
+ "Default value. This value should never be set if the enum is present.",
995
+ "None of the company's users have accepted the ToS.",
996
+ "One (or more) of the company's users has accepted the ToS.",
997
+ "None of the company's users has accepted the current ToS but at least one user accepted a previous ToS."
998
+ ],
999
+ "readOnly": true,
1000
+ "type": "string"
1001
+ }
1002
+ },
1003
+ "type": "object"
1004
+ },
1005
+ "Configuration": {
1006
+ "description": "A configuration collects the provisioning options for Android devices. Each configuration combines the following: * The EMM device policy controller (DPC) installed on the devices. * EMM policies enforced on the devices. * Metadata displayed on the device to help users during setup. Customers can add as many configurations as they need. However, zero-touch enrollment works best when a customer sets a default configuration that's applied to any new devices the organization purchases.",
1007
+ "id": "Configuration",
1008
+ "properties": {
1009
+ "companyName": {
1010
+ "description": "Required. The name of the organization. Zero-touch enrollment shows this organization name to device users during device provisioning.",
1011
+ "type": "string"
1012
+ },
1013
+ "configurationId": {
1014
+ "description": "Output only. The ID of the configuration. Assigned by the server.",
1015
+ "format": "int64",
1016
+ "readOnly": true,
1017
+ "type": "string"
1018
+ },
1019
+ "configurationName": {
1020
+ "description": "Required. A short name that describes the configuration's purpose. For example, _Sales team_ or _Temporary employees_. The zero-touch enrollment portal displays this name to IT admins.",
1021
+ "type": "string"
1022
+ },
1023
+ "contactEmail": {
1024
+ "description": "Required. The email address that device users can contact to get help. Zero-touch enrollment shows this email address to device users before device provisioning. The value is validated on input.",
1025
+ "type": "string"
1026
+ },
1027
+ "contactPhone": {
1028
+ "description": "Required. The telephone number that device users can call, using another device, to get help. Zero-touch enrollment shows this number to device users before device provisioning. Accepts numerals, spaces, the plus sign, hyphens, and parentheses.",
1029
+ "type": "string"
1030
+ },
1031
+ "customMessage": {
1032
+ "description": "A message, containing one or two sentences, to help device users get help or give them more details about what\u2019s happening to their device. Zero-touch enrollment shows this message before the device is provisioned.",
1033
+ "type": "string"
1034
+ },
1035
+ "dpcExtras": {
1036
+ "description": "The JSON-formatted EMM provisioning extras that are passed to the DPC.",
1037
+ "type": "string"
1038
+ },
1039
+ "dpcResourcePath": {
1040
+ "description": "Required. The resource name of the selected DPC (device policy controller) in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs, call `customers.dpcs.list`.",
1041
+ "type": "string"
1042
+ },
1043
+ "forcedResetTime": {
1044
+ "description": "Optional. The timeout before forcing factory reset the device if the device doesn't go through provisioning in the setup wizard, usually due to lack of network connectivity during setup wizard. Ranges from 0-6 hours, with 2 hours being the default if unset.",
1045
+ "format": "google-duration",
1046
+ "type": "string"
1047
+ },
1048
+ "isDefault": {
1049
+ "description": "Required. Whether this is the default configuration that zero-touch enrollment applies to any new devices the organization purchases in the future. Only one customer configuration can be the default. Setting this value to `true`, changes the previous default configuration's `isDefault` value to `false`.",
1050
+ "type": "boolean"
1051
+ },
1052
+ "name": {
1053
+ "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.",
1054
+ "readOnly": true,
1055
+ "type": "string"
1056
+ }
1057
+ },
1058
+ "type": "object"
1059
+ },
1060
+ "CreateCustomerRequest": {
1061
+ "description": "Request message to create a customer.",
1062
+ "id": "CreateCustomerRequest",
1063
+ "properties": {
1064
+ "customer": {
1065
+ "$ref": "Company",
1066
+ "description": "Required. The company data to populate the new customer. Must contain a value for `companyName` and at least one `owner_email` that's associated with a Google Account. The values for `companyId` and `name` must be empty."
1067
+ }
1068
+ },
1069
+ "type": "object"
1070
+ },
1071
+ "CustomerApplyConfigurationRequest": {
1072
+ "description": "Request message for customer to assign a configuration to device.",
1073
+ "id": "CustomerApplyConfigurationRequest",
1074
+ "properties": {
1075
+ "configuration": {
1076
+ "description": "Required. The configuration applied to the device in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.",
1077
+ "type": "string"
1078
+ },
1079
+ "device": {
1080
+ "$ref": "DeviceReference",
1081
+ "description": "Required. The device the configuration is applied to. There are custom validations in ApplyConfigurationRequestValidator"
1082
+ }
1083
+ },
1084
+ "type": "object"
1085
+ },
1086
+ "CustomerListConfigurationsResponse": {
1087
+ "description": "Response message of customer's listing configuration.",
1088
+ "id": "CustomerListConfigurationsResponse",
1089
+ "properties": {
1090
+ "configurations": {
1091
+ "description": "The configurations.",
1092
+ "items": {
1093
+ "$ref": "Configuration"
1094
+ },
1095
+ "type": "array"
1096
+ }
1097
+ },
1098
+ "type": "object"
1099
+ },
1100
+ "CustomerListCustomersResponse": {
1101
+ "description": "Response message for listing my customers.",
1102
+ "id": "CustomerListCustomersResponse",
1103
+ "properties": {
1104
+ "customers": {
1105
+ "description": "The customer accounts the calling user is a member of.",
1106
+ "items": {
1107
+ "$ref": "Company"
1108
+ },
1109
+ "type": "array"
1110
+ },
1111
+ "nextPageToken": {
1112
+ "description": "A token used to access the next page of results. Omitted if no further results are available.",
1113
+ "type": "string"
1114
+ }
1115
+ },
1116
+ "type": "object"
1117
+ },
1118
+ "CustomerListDevicesResponse": {
1119
+ "description": "Response message of customer's liting devices.",
1120
+ "id": "CustomerListDevicesResponse",
1121
+ "properties": {
1122
+ "devices": {
1123
+ "description": "The customer's devices.",
1124
+ "items": {
1125
+ "$ref": "Device"
1126
+ },
1127
+ "type": "array"
1128
+ },
1129
+ "nextPageToken": {
1130
+ "description": "A token used to access the next page of results. Omitted if no further results are available.",
1131
+ "type": "string"
1132
+ }
1133
+ },
1134
+ "type": "object"
1135
+ },
1136
+ "CustomerListDpcsResponse": {
1137
+ "description": "Response message of customer's listing DPCs.",
1138
+ "id": "CustomerListDpcsResponse",
1139
+ "properties": {
1140
+ "dpcs": {
1141
+ "description": "The list of DPCs available to the customer that support zero-touch enrollment.",
1142
+ "items": {
1143
+ "$ref": "Dpc"
1144
+ },
1145
+ "type": "array"
1146
+ }
1147
+ },
1148
+ "type": "object"
1149
+ },
1150
+ "CustomerRemoveConfigurationRequest": {
1151
+ "description": "Request message for customer to remove the configuration from device.",
1152
+ "id": "CustomerRemoveConfigurationRequest",
1153
+ "properties": {
1154
+ "device": {
1155
+ "$ref": "DeviceReference",
1156
+ "description": "Required. The device to remove the configuration from. There are custom validations in RemoveConfigurationRequestValidator"
1157
+ }
1158
+ },
1159
+ "type": "object"
1160
+ },
1161
+ "CustomerUnclaimDeviceRequest": {
1162
+ "description": "Request message for customer to unclaim a device.",
1163
+ "id": "CustomerUnclaimDeviceRequest",
1164
+ "properties": {
1165
+ "device": {
1166
+ "$ref": "DeviceReference",
1167
+ "description": "Required. The device to unclaim. There are custom validations in UnclaimDeviceRequestValidator."
1168
+ }
1169
+ },
1170
+ "type": "object"
1171
+ },
1172
+ "Device": {
1173
+ "description": "An Android or Chrome OS device registered for zero-touch enrollment.",
1174
+ "id": "Device",
1175
+ "properties": {
1176
+ "claims": {
1177
+ "description": "Output only. The provisioning claims for a device. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. Call `partners.devices.unclaim` or `partners.devices.unclaimAsync` to remove the device from zero-touch enrollment.",
1178
+ "items": {
1179
+ "$ref": "DeviceClaim"
1180
+ },
1181
+ "readOnly": true,
1182
+ "type": "array"
1183
+ },
1184
+ "configuration": {
1185
+ "description": "Not available to resellers.",
1186
+ "type": "string"
1187
+ },
1188
+ "deviceId": {
1189
+ "description": "Output only. The ID of the device. Assigned by the server.",
1190
+ "format": "int64",
1191
+ "readOnly": true,
1192
+ "type": "string"
1193
+ },
1194
+ "deviceIdentifier": {
1195
+ "$ref": "DeviceIdentifier",
1196
+ "description": "The hardware IDs that identify a manufactured device. To learn more, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers)."
1197
+ },
1198
+ "deviceMetadata": {
1199
+ "$ref": "DeviceMetadata",
1200
+ "description": "The metadata attached to the device. Structured as key-value pairs. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata)."
1201
+ },
1202
+ "name": {
1203
+ "description": "Output only. The API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. Assigned by the server.",
1204
+ "readOnly": true,
1205
+ "type": "string"
1206
+ }
1207
+ },
1208
+ "type": "object"
1209
+ },
1210
+ "DeviceClaim": {
1211
+ "description": "A record of a device claimed by a reseller for a customer. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. To learn more, read [Claim devices for customers](/zero-touch/guides/how-it-works#claim).",
1212
+ "id": "DeviceClaim",
1213
+ "properties": {
1214
+ "additionalService": {
1215
+ "description": "The Additional service registered for the device.",
1216
+ "enum": [
1217
+ "ADDITIONAL_SERVICE_UNSPECIFIED",
1218
+ "DEVICE_PROTECTION"
1219
+ ],
1220
+ "enumDescriptions": [
1221
+ "No additional service.",
1222
+ "Device protection service, also known as Android Enterprise Essentials. To claim a device with the device protection service you must enroll with the partnership team."
1223
+ ],
1224
+ "type": "string"
1225
+ },
1226
+ "googleWorkspaceCustomerId": {
1227
+ "description": "The ID of the Google Workspace account that owns the Chrome OS device.",
1228
+ "type": "string"
1229
+ },
1230
+ "ownerCompanyId": {
1231
+ "description": "The ID of the Customer that purchased the device.",
1232
+ "format": "int64",
1233
+ "type": "string"
1234
+ },
1235
+ "resellerId": {
1236
+ "description": "The ID of the reseller that claimed the device.",
1237
+ "format": "int64",
1238
+ "type": "string"
1239
+ },
1240
+ "sectionType": {
1241
+ "description": "Output only. The type of claim made on the device.",
1242
+ "enum": [
1243
+ "SECTION_TYPE_UNSPECIFIED",
1244
+ "SECTION_TYPE_SIM_LOCK",
1245
+ "SECTION_TYPE_ZERO_TOUCH"
1246
+ ],
1247
+ "enumDescriptions": [
1248
+ "Unspecified section type.",
1249
+ "SIM-lock section type.",
1250
+ "Zero-touch enrollment section type."
1251
+ ],
1252
+ "readOnly": true,
1253
+ "type": "string"
1254
+ },
1255
+ "vacationModeExpireTime": {
1256
+ "description": "The timestamp when the device will exit \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.",
1257
+ "format": "google-datetime",
1258
+ "type": "string"
1259
+ },
1260
+ "vacationModeStartTime": {
1261
+ "description": "The timestamp when the device was put into \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.",
1262
+ "format": "google-datetime",
1263
+ "type": "string"
1264
+ }
1265
+ },
1266
+ "type": "object"
1267
+ },
1268
+ "DeviceIdentifier": {
1269
+ "description": "Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).",
1270
+ "id": "DeviceIdentifier",
1271
+ "properties": {
1272
+ "chromeOsAttestedDeviceId": {
1273
+ "description": "An identifier provided by OEMs, carried through the production and sales process. Only applicable to Chrome OS devices.",
1274
+ "type": "string"
1275
+ },
1276
+ "deviceType": {
1277
+ "description": "The type of the device",
1278
+ "enum": [
1279
+ "DEVICE_TYPE_UNSPECIFIED",
1280
+ "DEVICE_TYPE_ANDROID",
1281
+ "DEVICE_TYPE_CHROME_OS"
1282
+ ],
1283
+ "enumDescriptions": [
1284
+ "Device type is not specified.",
1285
+ "Android device",
1286
+ "Chrome OS device"
1287
+ ],
1288
+ "type": "string"
1289
+ },
1290
+ "imei": {
1291
+ "description": "The device\u2019s IMEI number. Validated on input.",
1292
+ "type": "string"
1293
+ },
1294
+ "imei2": {
1295
+ "description": "The device\u2019s second IMEI number.",
1296
+ "type": "string"
1297
+ },
1298
+ "manufacturer": {
1299
+ "description": "The device manufacturer\u2019s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [Android manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).",
1300
+ "type": "string"
1301
+ },
1302
+ "meid": {
1303
+ "description": "The device\u2019s MEID number.",
1304
+ "type": "string"
1305
+ },
1306
+ "meid2": {
1307
+ "description": "The device\u2019s second MEID number.",
1308
+ "type": "string"
1309
+ },
1310
+ "model": {
1311
+ "description": "The device model's name. Allowed values are listed in [Android models](/zero-touch/resources/manufacturer-names#model-names) and [Chrome OS models](https://support.google.com/chrome/a/answer/10130175#identify_compatible).",
1312
+ "type": "string"
1313
+ },
1314
+ "serialNumber": {
1315
+ "description": "The manufacturer's serial number for the device. This value might not be unique across different device models.",
1316
+ "type": "string"
1317
+ }
1318
+ },
1319
+ "type": "object"
1320
+ },
1321
+ "DeviceMetadata": {
1322
+ "description": "Metadata entries that can be attached to a `Device`. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata).",
1323
+ "id": "DeviceMetadata",
1324
+ "properties": {
1325
+ "entries": {
1326
+ "additionalProperties": {
1327
+ "type": "string"
1328
+ },
1329
+ "description": "Metadata entries recorded as key-value pairs.",
1330
+ "type": "object"
1331
+ }
1332
+ },
1333
+ "type": "object"
1334
+ },
1335
+ "DeviceReference": {
1336
+ "description": "A `DeviceReference` is an API abstraction that lets you supply a _device_ argument to a method using one of the following identifier types: * A numeric API resource ID. * Real-world hardware IDs, such as IMEI number, belonging to the manufactured device. Methods that operate on devices take a `DeviceReference` as a parameter type because it's more flexible for the caller. To learn more about device identifiers, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).",
1337
+ "id": "DeviceReference",
1338
+ "properties": {
1339
+ "deviceId": {
1340
+ "description": "The ID of the device.",
1341
+ "format": "int64",
1342
+ "type": "string"
1343
+ },
1344
+ "deviceIdentifier": {
1345
+ "$ref": "DeviceIdentifier",
1346
+ "description": "The hardware IDs of the device."
1347
+ }
1348
+ },
1349
+ "type": "object"
1350
+ },
1351
+ "DevicesLongRunningOperationMetadata": {
1352
+ "description": "Tracks the status of a long-running operation to asynchronously update a batch of reseller metadata attached to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
1353
+ "id": "DevicesLongRunningOperationMetadata",
1354
+ "properties": {
1355
+ "devicesCount": {
1356
+ "description": "The number of metadata updates in the operation. This might be different from the number of updates in the request if the API can't parse some of the updates.",
1357
+ "format": "int32",
1358
+ "type": "integer"
1359
+ },
1360
+ "processingStatus": {
1361
+ "description": "The processing status of the operation.",
1362
+ "enum": [
1363
+ "BATCH_PROCESS_STATUS_UNSPECIFIED",
1364
+ "BATCH_PROCESS_PENDING",
1365
+ "BATCH_PROCESS_IN_PROGRESS",
1366
+ "BATCH_PROCESS_PROCESSED"
1367
+ ],
1368
+ "enumDescriptions": [
1369
+ "Invalid code. Shouldn't be used.",
1370
+ "Pending.",
1371
+ "In progress.",
1372
+ "Processed. This doesn't mean all items were processed successfully, you should check the `response` field for the result of every item."
1373
+ ],
1374
+ "type": "string"
1375
+ },
1376
+ "progress": {
1377
+ "description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesn't always mean the operation completed\u2014check for the inclusion of a `done` field.",
1378
+ "format": "int32",
1379
+ "type": "integer"
1380
+ }
1381
+ },
1382
+ "type": "object"
1383
+ },
1384
+ "DevicesLongRunningOperationResponse": {
1385
+ "description": "Tracks the status of a long-running operation to claim, unclaim, or attach metadata to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
1386
+ "id": "DevicesLongRunningOperationResponse",
1387
+ "properties": {
1388
+ "perDeviceStatus": {
1389
+ "description": "The processing status for each device in the operation. One `PerDeviceStatus` per device. The list order matches the items in the original request.",
1390
+ "items": {
1391
+ "$ref": "OperationPerDevice"
1392
+ },
1393
+ "type": "array"
1394
+ },
1395
+ "successCount": {
1396
+ "description": "A summary of how many items in the operation the server processed successfully. Updated as the operation progresses.",
1397
+ "format": "int32",
1398
+ "type": "integer"
1399
+ }
1400
+ },
1401
+ "type": "object"
1402
+ },
1403
+ "Dpc": {
1404
+ "description": "An EMM's DPC ([device policy controller](http://developer.android.com/work/dpc/build-dpc.html)). Zero-touch enrollment installs a DPC (listed in the `Configuration`) on a device to maintain the customer's mobile policies. All the DPCs listed by the API support zero-touch enrollment and are available in Google Play.",
1405
+ "id": "Dpc",
1406
+ "properties": {
1407
+ "dpcName": {
1408
+ "description": "Output only. The title of the DPC app in Google Play. For example, _Google Apps Device Policy_. Useful in an application's user interface.",
1409
+ "readOnly": true,
1410
+ "type": "string"
1411
+ },
1412
+ "name": {
1413
+ "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/dpcs/[DPC_ID]`. Assigned by the server. To maintain a reference to a DPC across customer accounts, persist and match the last path component (`DPC_ID`).",
1414
+ "readOnly": true,
1415
+ "type": "string"
1416
+ },
1417
+ "packageName": {
1418
+ "description": "Output only. The DPC's Android application ID that looks like a Java package name. Zero-touch enrollment installs the DPC app onto a device using this identifier.",
1419
+ "readOnly": true,
1420
+ "type": "string"
1421
+ }
1422
+ },
1423
+ "type": "object"
1424
+ },
1425
+ "Empty": {
1426
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
1427
+ "id": "Empty",
1428
+ "properties": {},
1429
+ "type": "object"
1430
+ },
1431
+ "FindDevicesByDeviceIdentifierRequest": {
1432
+ "description": "Request to find devices.",
1433
+ "id": "FindDevicesByDeviceIdentifierRequest",
1434
+ "properties": {
1435
+ "deviceIdentifier": {
1436
+ "$ref": "DeviceIdentifier",
1437
+ "description": "Required. Required. The device identifier to search for. If serial number is provided then case insensitive serial number matches are allowed."
1438
+ },
1439
+ "limit": {
1440
+ "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
1441
+ "format": "int64",
1442
+ "type": "string"
1443
+ },
1444
+ "pageToken": {
1445
+ "description": "A token specifying which result page to return.",
1446
+ "type": "string"
1447
+ }
1448
+ },
1449
+ "type": "object"
1450
+ },
1451
+ "FindDevicesByDeviceIdentifierResponse": {
1452
+ "description": "Response containing found devices.",
1453
+ "id": "FindDevicesByDeviceIdentifierResponse",
1454
+ "properties": {
1455
+ "devices": {
1456
+ "description": "Found devices.",
1457
+ "items": {
1458
+ "$ref": "Device"
1459
+ },
1460
+ "type": "array"
1461
+ },
1462
+ "nextPageToken": {
1463
+ "description": "A token used to access the next page of results. Omitted if no further results are available.",
1464
+ "type": "string"
1465
+ },
1466
+ "totalSize": {
1467
+ "description": "The total count of items in the list irrespective of pagination.",
1468
+ "format": "int32",
1469
+ "type": "integer"
1470
+ }
1471
+ },
1472
+ "type": "object"
1473
+ },
1474
+ "FindDevicesByOwnerRequest": {
1475
+ "description": "Request to find devices by customers.",
1476
+ "id": "FindDevicesByOwnerRequest",
1477
+ "properties": {
1478
+ "customerId": {
1479
+ "description": "The list of customer IDs to search for.",
1480
+ "items": {
1481
+ "format": "int64",
1482
+ "type": "string"
1483
+ },
1484
+ "type": "array"
1485
+ },
1486
+ "googleWorkspaceCustomerId": {
1487
+ "description": "The list of IDs of Google Workspace accounts to search for.",
1488
+ "items": {
1489
+ "type": "string"
1490
+ },
1491
+ "type": "array"
1492
+ },
1493
+ "limit": {
1494
+ "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
1495
+ "format": "int64",
1496
+ "type": "string"
1497
+ },
1498
+ "pageToken": {
1499
+ "description": "A token specifying which result page to return.",
1500
+ "type": "string"
1501
+ },
1502
+ "sectionType": {
1503
+ "description": "Required. The section type of the device's provisioning record.",
1504
+ "enum": [
1505
+ "SECTION_TYPE_UNSPECIFIED",
1506
+ "SECTION_TYPE_SIM_LOCK",
1507
+ "SECTION_TYPE_ZERO_TOUCH"
1508
+ ],
1509
+ "enumDescriptions": [
1510
+ "Unspecified section type.",
1511
+ "SIM-lock section type.",
1512
+ "Zero-touch enrollment section type."
1513
+ ],
1514
+ "type": "string"
1515
+ }
1516
+ },
1517
+ "type": "object"
1518
+ },
1519
+ "FindDevicesByOwnerResponse": {
1520
+ "description": "Response containing found devices.",
1521
+ "id": "FindDevicesByOwnerResponse",
1522
+ "properties": {
1523
+ "devices": {
1524
+ "description": "The customer's devices.",
1525
+ "items": {
1526
+ "$ref": "Device"
1527
+ },
1528
+ "type": "array"
1529
+ },
1530
+ "nextPageToken": {
1531
+ "description": "A token used to access the next page of results. Omitted if no further results are available.",
1532
+ "type": "string"
1533
+ },
1534
+ "totalSize": {
1535
+ "description": "The total count of items in the list irrespective of pagination.",
1536
+ "format": "int32",
1537
+ "type": "integer"
1538
+ }
1539
+ },
1540
+ "type": "object"
1541
+ },
1542
+ "GetDeviceSimLockStateRequest": {
1543
+ "description": "Request to get a device's SIM lock status.",
1544
+ "id": "GetDeviceSimLockStateRequest",
1545
+ "properties": {
1546
+ "deviceIdentifier": {
1547
+ "$ref": "DeviceIdentifier",
1548
+ "description": "Required. Required. The device identifier to search for."
1549
+ }
1550
+ },
1551
+ "type": "object"
1552
+ },
1553
+ "GetDeviceSimLockStateResponse": {
1554
+ "description": "Response containing a device's SimLock state.",
1555
+ "id": "GetDeviceSimLockStateResponse",
1556
+ "properties": {
1557
+ "simLockState": {
1558
+ "enum": [
1559
+ "SIM_LOCK_STATE_UNSPECIFIED",
1560
+ "UNLOCKED",
1561
+ "LOCKED_TO_PARTNER",
1562
+ "LOCKED_TO_OTHER_PARTNER"
1563
+ ],
1564
+ "enumDescriptions": [
1565
+ "Invalid code. Shouldn't be used.",
1566
+ "Device is not SIM locked.",
1567
+ "Device is SIM locked to the partner querying SIM lock state.",
1568
+ "Device is SIM locked to a different partner."
1569
+ ],
1570
+ "type": "string"
1571
+ }
1572
+ },
1573
+ "type": "object"
1574
+ },
1575
+ "GoogleWorkspaceAccount": {
1576
+ "description": "A Google Workspace customer.",
1577
+ "id": "GoogleWorkspaceAccount",
1578
+ "properties": {
1579
+ "customerId": {
1580
+ "description": "Required. The customer ID.",
1581
+ "type": "string"
1582
+ },
1583
+ "preProvisioningTokens": {
1584
+ "description": "Output only. The pre-provisioning tokens previously used to claim devices.",
1585
+ "items": {
1586
+ "type": "string"
1587
+ },
1588
+ "readOnly": true,
1589
+ "type": "array"
1590
+ }
1591
+ },
1592
+ "type": "object"
1593
+ },
1594
+ "ListCustomersResponse": {
1595
+ "description": "Response message of all customers related to this partner.",
1596
+ "id": "ListCustomersResponse",
1597
+ "properties": {
1598
+ "customers": {
1599
+ "description": "List of customers related to this reseller partner.",
1600
+ "items": {
1601
+ "$ref": "Company"
1602
+ },
1603
+ "type": "array"
1604
+ },
1605
+ "nextPageToken": {
1606
+ "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
1607
+ "type": "string"
1608
+ },
1609
+ "totalSize": {
1610
+ "description": "The total count of items in the list irrespective of pagination.",
1611
+ "format": "int32",
1612
+ "type": "integer"
1613
+ }
1614
+ },
1615
+ "type": "object"
1616
+ },
1617
+ "ListVendorCustomersResponse": {
1618
+ "description": "Response message to list customers of the vendor.",
1619
+ "id": "ListVendorCustomersResponse",
1620
+ "properties": {
1621
+ "customers": {
1622
+ "description": "List of customers of the vendor.",
1623
+ "items": {
1624
+ "$ref": "Company"
1625
+ },
1626
+ "type": "array"
1627
+ },
1628
+ "nextPageToken": {
1629
+ "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
1630
+ "type": "string"
1631
+ },
1632
+ "totalSize": {
1633
+ "description": "The total count of items in the list irrespective of pagination.",
1634
+ "format": "int32",
1635
+ "type": "integer"
1636
+ }
1637
+ },
1638
+ "type": "object"
1639
+ },
1640
+ "ListVendorsResponse": {
1641
+ "description": "Response message to list vendors of the partner.",
1642
+ "id": "ListVendorsResponse",
1643
+ "properties": {
1644
+ "nextPageToken": {
1645
+ "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
1646
+ "type": "string"
1647
+ },
1648
+ "totalSize": {
1649
+ "description": "The total count of items in the list irrespective of pagination.",
1650
+ "format": "int32",
1651
+ "type": "integer"
1652
+ },
1653
+ "vendors": {
1654
+ "description": "List of vendors of the reseller partner. Fields `name`, `companyId` and `companyName` are populated to the Company object.",
1655
+ "items": {
1656
+ "$ref": "Company"
1657
+ },
1658
+ "type": "array"
1659
+ }
1660
+ },
1661
+ "type": "object"
1662
+ },
1663
+ "Operation": {
1664
+ "description": "This resource represents a long-running operation that is the result of a network API call.",
1665
+ "id": "Operation",
1666
+ "properties": {
1667
+ "done": {
1668
+ "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.",
1669
+ "type": "boolean"
1670
+ },
1671
+ "error": {
1672
+ "$ref": "Status",
1673
+ "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`."
1674
+ },
1675
+ "metadata": {
1676
+ "additionalProperties": {
1677
+ "description": "Properties of the object. Contains field @type with type URL.",
1678
+ "type": "any"
1679
+ },
1680
+ "description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
1681
+ "type": "object"
1682
+ },
1683
+ "name": {
1684
+ "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
1685
+ "type": "string"
1686
+ },
1687
+ "response": {
1688
+ "additionalProperties": {
1689
+ "description": "Properties of the object. Contains field @type with type URL.",
1690
+ "type": "any"
1691
+ },
1692
+ "description": "This field will contain a `DevicesLongRunningOperationResponse` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
1693
+ "type": "object"
1694
+ }
1695
+ },
1696
+ "type": "object"
1697
+ },
1698
+ "OperationPerDevice": {
1699
+ "description": "A task for each device in the operation. Corresponds to each device change in the request.",
1700
+ "id": "OperationPerDevice",
1701
+ "properties": {
1702
+ "claim": {
1703
+ "$ref": "PartnerClaim",
1704
+ "description": "A copy of the original device-claim request received by the server."
1705
+ },
1706
+ "result": {
1707
+ "$ref": "PerDeviceStatusInBatch",
1708
+ "description": "The processing result for each device."
1709
+ },
1710
+ "unclaim": {
1711
+ "$ref": "PartnerUnclaim",
1712
+ "description": "A copy of the original device-unclaim request received by the server."
1713
+ },
1714
+ "updateMetadata": {
1715
+ "$ref": "UpdateMetadataArguments",
1716
+ "description": "A copy of the original metadata-update request received by the server."
1717
+ }
1718
+ },
1719
+ "type": "object"
1720
+ },
1721
+ "PartnerClaim": {
1722
+ "description": "Identifies one claim request.",
1723
+ "id": "PartnerClaim",
1724
+ "properties": {
1725
+ "configurationId": {
1726
+ "description": "Optional. The ID of the configuration applied to the device section.",
1727
+ "format": "int64",
1728
+ "type": "string"
1729
+ },
1730
+ "customerId": {
1731
+ "description": "The ID of the customer for whom the device is being claimed.",
1732
+ "format": "int64",
1733
+ "type": "string"
1734
+ },
1735
+ "deviceIdentifier": {
1736
+ "$ref": "DeviceIdentifier",
1737
+ "description": "Required. Required. Device identifier of the device."
1738
+ },
1739
+ "deviceMetadata": {
1740
+ "$ref": "DeviceMetadata",
1741
+ "description": "Required. The metadata to attach to the device at claim."
1742
+ },
1743
+ "googleWorkspaceCustomerId": {
1744
+ "description": "The Google Workspace customer ID.",
1745
+ "type": "string"
1746
+ },
1747
+ "preProvisioningToken": {
1748
+ "description": "Optional. Must and can only be set for Chrome OS devices.",
1749
+ "type": "string"
1750
+ },
1751
+ "sectionType": {
1752
+ "description": "Required. The section type of the device's provisioning record.",
1753
+ "enum": [
1754
+ "SECTION_TYPE_UNSPECIFIED",
1755
+ "SECTION_TYPE_SIM_LOCK",
1756
+ "SECTION_TYPE_ZERO_TOUCH"
1757
+ ],
1758
+ "enumDescriptions": [
1759
+ "Unspecified section type.",
1760
+ "SIM-lock section type.",
1761
+ "Zero-touch enrollment section type."
1762
+ ],
1763
+ "type": "string"
1764
+ },
1765
+ "simlockProfileId": {
1766
+ "description": "Optional. Must and can only be set when DeviceProvisioningSectionType is SECTION_TYPE_SIM_LOCK. The unique identifier of the SimLock profile.",
1767
+ "format": "int64",
1768
+ "type": "string"
1769
+ }
1770
+ },
1771
+ "type": "object"
1772
+ },
1773
+ "PartnerUnclaim": {
1774
+ "description": "Identifies one unclaim request.",
1775
+ "id": "PartnerUnclaim",
1776
+ "properties": {
1777
+ "deviceId": {
1778
+ "description": "Required. Device ID of the device.",
1779
+ "format": "int64",
1780
+ "type": "string"
1781
+ },
1782
+ "deviceIdentifier": {
1783
+ "$ref": "DeviceIdentifier",
1784
+ "description": "Required. Device identifier of the device."
1785
+ },
1786
+ "sectionType": {
1787
+ "description": "Required. The section type of the device's provisioning record.",
1788
+ "enum": [
1789
+ "SECTION_TYPE_UNSPECIFIED",
1790
+ "SECTION_TYPE_SIM_LOCK",
1791
+ "SECTION_TYPE_ZERO_TOUCH"
1792
+ ],
1793
+ "enumDescriptions": [
1794
+ "Unspecified section type.",
1795
+ "SIM-lock section type.",
1796
+ "Zero-touch enrollment section type."
1797
+ ],
1798
+ "type": "string"
1799
+ },
1800
+ "vacationModeDays": {
1801
+ "description": "Optional. The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)",
1802
+ "format": "int32",
1803
+ "type": "integer"
1804
+ },
1805
+ "vacationModeExpireTime": {
1806
+ "description": "Optional. The expiration time of the vacation unlock.",
1807
+ "format": "google-datetime",
1808
+ "type": "string"
1809
+ }
1810
+ },
1811
+ "type": "object"
1812
+ },
1813
+ "PerDeviceStatusInBatch": {
1814
+ "description": "Captures the processing status for each device in the operation.",
1815
+ "id": "PerDeviceStatusInBatch",
1816
+ "properties": {
1817
+ "deviceId": {
1818
+ "description": "If processing succeeds, the device ID of the device.",
1819
+ "format": "int64",
1820
+ "type": "string"
1821
+ },
1822
+ "errorIdentifier": {
1823
+ "description": "If processing fails, the error type.",
1824
+ "type": "string"
1825
+ },
1826
+ "errorMessage": {
1827
+ "description": "If processing fails, a developer message explaining what went wrong.",
1828
+ "type": "string"
1829
+ },
1830
+ "status": {
1831
+ "description": "The result status of the device after processing.",
1832
+ "enum": [
1833
+ "SINGLE_DEVICE_STATUS_UNSPECIFIED",
1834
+ "SINGLE_DEVICE_STATUS_UNKNOWN_ERROR",
1835
+ "SINGLE_DEVICE_STATUS_OTHER_ERROR",
1836
+ "SINGLE_DEVICE_STATUS_SUCCESS",
1837
+ "SINGLE_DEVICE_STATUS_PERMISSION_DENIED",
1838
+ "SINGLE_DEVICE_STATUS_INVALID_DEVICE_IDENTIFIER",
1839
+ "SINGLE_DEVICE_STATUS_INVALID_SECTION_TYPE",
1840
+ "SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS",
1841
+ "SINGLE_DEVICE_STATUS_INVALID_TOKEN",
1842
+ "SINGLE_DEVICE_STATUS_REVOKED_TOKEN",
1843
+ "SINGLE_DEVICE_STATUS_DEVICE_LIMIT_EXCEEDED"
1844
+ ],
1845
+ "enumDescriptions": [
1846
+ "Invalid code. Shouldn't be used.",
1847
+ "Unknown error. We don't expect this error to occur here.",
1848
+ "Other error. We know/expect this error, but there's no defined error code for the error.",
1849
+ "Success.",
1850
+ "Permission denied.",
1851
+ "Invalid device identifier.",
1852
+ "Invalid section type.",
1853
+ "This section is claimed by another company.",
1854
+ "Invalid pre-provisioning token.",
1855
+ "Revoked pre-provisioning token.",
1856
+ "Status used to indicate a failure due to a device limit being exceeded"
1857
+ ],
1858
+ "type": "string"
1859
+ }
1860
+ },
1861
+ "type": "object"
1862
+ },
1863
+ "Status": {
1864
+ "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
1865
+ "id": "Status",
1866
+ "properties": {
1867
+ "code": {
1868
+ "description": "The status code, which should be an enum value of google.rpc.Code.",
1869
+ "format": "int32",
1870
+ "type": "integer"
1871
+ },
1872
+ "details": {
1873
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
1874
+ "items": {
1875
+ "additionalProperties": {
1876
+ "description": "Properties of the object. Contains field @type with type URL.",
1877
+ "type": "any"
1878
+ },
1879
+ "type": "object"
1880
+ },
1881
+ "type": "array"
1882
+ },
1883
+ "message": {
1884
+ "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.",
1885
+ "type": "string"
1886
+ }
1887
+ },
1888
+ "type": "object"
1889
+ },
1890
+ "UnclaimDeviceRequest": {
1891
+ "description": "Request message to unclaim a device.",
1892
+ "id": "UnclaimDeviceRequest",
1893
+ "properties": {
1894
+ "deviceId": {
1895
+ "description": "Required. The device ID returned by `ClaimDevice`.",
1896
+ "format": "int64",
1897
+ "type": "string"
1898
+ },
1899
+ "deviceIdentifier": {
1900
+ "$ref": "DeviceIdentifier",
1901
+ "description": "Required. The device identifier you used when you claimed this device."
1902
+ },
1903
+ "sectionType": {
1904
+ "description": "Required. The section type of the device's provisioning record.",
1905
+ "enum": [
1906
+ "SECTION_TYPE_UNSPECIFIED",
1907
+ "SECTION_TYPE_SIM_LOCK",
1908
+ "SECTION_TYPE_ZERO_TOUCH"
1909
+ ],
1910
+ "enumDescriptions": [
1911
+ "Unspecified section type.",
1912
+ "SIM-lock section type.",
1913
+ "Zero-touch enrollment section type."
1914
+ ],
1915
+ "type": "string"
1916
+ },
1917
+ "vacationModeDays": {
1918
+ "description": "The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)",
1919
+ "format": "int32",
1920
+ "type": "integer"
1921
+ },
1922
+ "vacationModeExpireTime": {
1923
+ "description": "The expiration time of the vacation unlock.",
1924
+ "format": "google-datetime",
1925
+ "type": "string"
1926
+ }
1927
+ },
1928
+ "type": "object"
1929
+ },
1930
+ "UnclaimDevicesRequest": {
1931
+ "description": "Request to unclaim devices asynchronously in batch.",
1932
+ "id": "UnclaimDevicesRequest",
1933
+ "properties": {
1934
+ "unclaims": {
1935
+ "description": "Required. The list of devices to unclaim.",
1936
+ "items": {
1937
+ "$ref": "PartnerUnclaim"
1938
+ },
1939
+ "type": "array"
1940
+ }
1941
+ },
1942
+ "type": "object"
1943
+ },
1944
+ "UpdateDeviceMetadataInBatchRequest": {
1945
+ "description": "Request to update device metadata in batch.",
1946
+ "id": "UpdateDeviceMetadataInBatchRequest",
1947
+ "properties": {
1948
+ "updates": {
1949
+ "description": "Required. The list of metadata updates.",
1950
+ "items": {
1951
+ "$ref": "UpdateMetadataArguments"
1952
+ },
1953
+ "type": "array"
1954
+ }
1955
+ },
1956
+ "type": "object"
1957
+ },
1958
+ "UpdateDeviceMetadataRequest": {
1959
+ "description": "Request to set metadata for a device.",
1960
+ "id": "UpdateDeviceMetadataRequest",
1961
+ "properties": {
1962
+ "deviceMetadata": {
1963
+ "$ref": "DeviceMetadata",
1964
+ "description": "Required. The metadata to attach to the device."
1965
+ }
1966
+ },
1967
+ "type": "object"
1968
+ },
1969
+ "UpdateMetadataArguments": {
1970
+ "description": "Identifies metadata updates to one device.",
1971
+ "id": "UpdateMetadataArguments",
1972
+ "properties": {
1973
+ "deviceId": {
1974
+ "description": "Required. Device ID of the device.",
1975
+ "format": "int64",
1976
+ "type": "string"
1977
+ },
1978
+ "deviceIdentifier": {
1979
+ "$ref": "DeviceIdentifier",
1980
+ "description": "Required. Device identifier."
1981
+ },
1982
+ "deviceMetadata": {
1983
+ "$ref": "DeviceMetadata",
1984
+ "description": "Required. The metadata to update."
1985
+ }
1986
+ },
1987
+ "type": "object"
1988
+ }
1989
+ },
1990
+ "servicePath": "",
1991
+ "title": "Android Device Provisioning Partner API",
1992
+ "version": "v1",
1993
+ "version_module": true
1994
+ }
DiscoveryJson/androidenterprise.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/androidmanagement.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/androidpublisher.v3.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/apigateway.v1.json ADDED
@@ -0,0 +1,1824 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://apigateway.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "description": "",
15
+ "discoveryVersion": "v1",
16
+ "documentationLink": "https://cloud.google.com/api-gateway/docs",
17
+ "fullyEncodeReservedExpansion": true,
18
+ "icons": {
19
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
20
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
21
+ },
22
+ "id": "apigateway:v1",
23
+ "kind": "discovery#restDescription",
24
+ "mtlsRootUrl": "https://apigateway.mtls.googleapis.com/",
25
+ "name": "apigateway",
26
+ "ownerDomain": "google.com",
27
+ "ownerName": "Google",
28
+ "parameters": {
29
+ "$.xgafv": {
30
+ "description": "V1 error format.",
31
+ "enum": [
32
+ "1",
33
+ "2"
34
+ ],
35
+ "enumDescriptions": [
36
+ "v1 error format",
37
+ "v2 error format"
38
+ ],
39
+ "location": "query",
40
+ "type": "string"
41
+ },
42
+ "access_token": {
43
+ "description": "OAuth access token.",
44
+ "location": "query",
45
+ "type": "string"
46
+ },
47
+ "alt": {
48
+ "default": "json",
49
+ "description": "Data format for response.",
50
+ "enum": [
51
+ "json",
52
+ "media",
53
+ "proto"
54
+ ],
55
+ "enumDescriptions": [
56
+ "Responses with Content-Type of application/json",
57
+ "Media download with context-dependent Content-Type",
58
+ "Responses with Content-Type of application/x-protobuf"
59
+ ],
60
+ "location": "query",
61
+ "type": "string"
62
+ },
63
+ "callback": {
64
+ "description": "JSONP",
65
+ "location": "query",
66
+ "type": "string"
67
+ },
68
+ "fields": {
69
+ "description": "Selector specifying which fields to include in a partial response.",
70
+ "location": "query",
71
+ "type": "string"
72
+ },
73
+ "key": {
74
+ "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.",
75
+ "location": "query",
76
+ "type": "string"
77
+ },
78
+ "oauth_token": {
79
+ "description": "OAuth 2.0 token for the current user.",
80
+ "location": "query",
81
+ "type": "string"
82
+ },
83
+ "prettyPrint": {
84
+ "default": "true",
85
+ "description": "Returns response with indentations and line breaks.",
86
+ "location": "query",
87
+ "type": "boolean"
88
+ },
89
+ "quotaUser": {
90
+ "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.",
91
+ "location": "query",
92
+ "type": "string"
93
+ },
94
+ "uploadType": {
95
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
96
+ "location": "query",
97
+ "type": "string"
98
+ },
99
+ "upload_protocol": {
100
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
101
+ "location": "query",
102
+ "type": "string"
103
+ }
104
+ },
105
+ "protocol": "rest",
106
+ "resources": {
107
+ "projects": {
108
+ "resources": {
109
+ "locations": {
110
+ "methods": {
111
+ "get": {
112
+ "description": "Gets information about a location.",
113
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
114
+ "httpMethod": "GET",
115
+ "id": "apigateway.projects.locations.get",
116
+ "parameterOrder": [
117
+ "name"
118
+ ],
119
+ "parameters": {
120
+ "name": {
121
+ "description": "Resource name for the location.",
122
+ "location": "path",
123
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
124
+ "required": true,
125
+ "type": "string"
126
+ }
127
+ },
128
+ "path": "v1/{+name}",
129
+ "response": {
130
+ "$ref": "ApigatewayLocation"
131
+ },
132
+ "scopes": [
133
+ "https://www.googleapis.com/auth/cloud-platform"
134
+ ]
135
+ },
136
+ "list": {
137
+ "description": "Lists information about the supported locations for this service.",
138
+ "flatPath": "v1/projects/{projectsId}/locations",
139
+ "httpMethod": "GET",
140
+ "id": "apigateway.projects.locations.list",
141
+ "parameterOrder": [
142
+ "name"
143
+ ],
144
+ "parameters": {
145
+ "extraLocationTypes": {
146
+ "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
147
+ "location": "query",
148
+ "repeated": true,
149
+ "type": "string"
150
+ },
151
+ "filter": {
152
+ "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
153
+ "location": "query",
154
+ "type": "string"
155
+ },
156
+ "name": {
157
+ "description": "The resource that owns the locations collection, if applicable.",
158
+ "location": "path",
159
+ "pattern": "^projects/[^/]+$",
160
+ "required": true,
161
+ "type": "string"
162
+ },
163
+ "pageSize": {
164
+ "description": "The maximum number of results to return. If not set, the service selects a default.",
165
+ "format": "int32",
166
+ "location": "query",
167
+ "type": "integer"
168
+ },
169
+ "pageToken": {
170
+ "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
171
+ "location": "query",
172
+ "type": "string"
173
+ }
174
+ },
175
+ "path": "v1/{+name}/locations",
176
+ "response": {
177
+ "$ref": "ApigatewayListLocationsResponse"
178
+ },
179
+ "scopes": [
180
+ "https://www.googleapis.com/auth/cloud-platform"
181
+ ]
182
+ }
183
+ },
184
+ "resources": {
185
+ "apis": {
186
+ "methods": {
187
+ "create": {
188
+ "description": "Creates a new Api in a given project and location.",
189
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis",
190
+ "httpMethod": "POST",
191
+ "id": "apigateway.projects.locations.apis.create",
192
+ "parameterOrder": [
193
+ "parent"
194
+ ],
195
+ "parameters": {
196
+ "apiId": {
197
+ "description": "Required. Identifier to assign to the API. Must be unique within scope of the parent resource.",
198
+ "location": "query",
199
+ "type": "string"
200
+ },
201
+ "parent": {
202
+ "description": "Required. Parent resource of the API, of the form: `projects/*/locations/global`",
203
+ "location": "path",
204
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
205
+ "required": true,
206
+ "type": "string"
207
+ }
208
+ },
209
+ "path": "v1/{+parent}/apis",
210
+ "request": {
211
+ "$ref": "ApigatewayApi"
212
+ },
213
+ "response": {
214
+ "$ref": "ApigatewayOperation"
215
+ },
216
+ "scopes": [
217
+ "https://www.googleapis.com/auth/cloud-platform"
218
+ ]
219
+ },
220
+ "delete": {
221
+ "description": "Deletes a single Api.",
222
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
223
+ "httpMethod": "DELETE",
224
+ "id": "apigateway.projects.locations.apis.delete",
225
+ "parameterOrder": [
226
+ "name"
227
+ ],
228
+ "parameters": {
229
+ "name": {
230
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*`",
231
+ "location": "path",
232
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
233
+ "required": true,
234
+ "type": "string"
235
+ }
236
+ },
237
+ "path": "v1/{+name}",
238
+ "response": {
239
+ "$ref": "ApigatewayOperation"
240
+ },
241
+ "scopes": [
242
+ "https://www.googleapis.com/auth/cloud-platform"
243
+ ]
244
+ },
245
+ "get": {
246
+ "description": "Gets details of a single Api.",
247
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
248
+ "httpMethod": "GET",
249
+ "id": "apigateway.projects.locations.apis.get",
250
+ "parameterOrder": [
251
+ "name"
252
+ ],
253
+ "parameters": {
254
+ "name": {
255
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*`",
256
+ "location": "path",
257
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
258
+ "required": true,
259
+ "type": "string"
260
+ }
261
+ },
262
+ "path": "v1/{+name}",
263
+ "response": {
264
+ "$ref": "ApigatewayApi"
265
+ },
266
+ "scopes": [
267
+ "https://www.googleapis.com/auth/cloud-platform"
268
+ ]
269
+ },
270
+ "getIamPolicy": {
271
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
272
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:getIamPolicy",
273
+ "httpMethod": "GET",
274
+ "id": "apigateway.projects.locations.apis.getIamPolicy",
275
+ "parameterOrder": [
276
+ "resource"
277
+ ],
278
+ "parameters": {
279
+ "options.requestedPolicyVersion": {
280
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
281
+ "format": "int32",
282
+ "location": "query",
283
+ "type": "integer"
284
+ },
285
+ "resource": {
286
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
287
+ "location": "path",
288
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
289
+ "required": true,
290
+ "type": "string"
291
+ }
292
+ },
293
+ "path": "v1/{+resource}:getIamPolicy",
294
+ "response": {
295
+ "$ref": "ApigatewayPolicy"
296
+ },
297
+ "scopes": [
298
+ "https://www.googleapis.com/auth/cloud-platform"
299
+ ]
300
+ },
301
+ "list": {
302
+ "description": "Lists Apis in a given project and location.",
303
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis",
304
+ "httpMethod": "GET",
305
+ "id": "apigateway.projects.locations.apis.list",
306
+ "parameterOrder": [
307
+ "parent"
308
+ ],
309
+ "parameters": {
310
+ "filter": {
311
+ "description": "Filter.",
312
+ "location": "query",
313
+ "type": "string"
314
+ },
315
+ "orderBy": {
316
+ "description": "Order by parameters.",
317
+ "location": "query",
318
+ "type": "string"
319
+ },
320
+ "pageSize": {
321
+ "description": "Page size.",
322
+ "format": "int32",
323
+ "location": "query",
324
+ "type": "integer"
325
+ },
326
+ "pageToken": {
327
+ "description": "Page token.",
328
+ "location": "query",
329
+ "type": "string"
330
+ },
331
+ "parent": {
332
+ "description": "Required. Parent resource of the API, of the form: `projects/*/locations/global`",
333
+ "location": "path",
334
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
335
+ "required": true,
336
+ "type": "string"
337
+ }
338
+ },
339
+ "path": "v1/{+parent}/apis",
340
+ "response": {
341
+ "$ref": "ApigatewayListApisResponse"
342
+ },
343
+ "scopes": [
344
+ "https://www.googleapis.com/auth/cloud-platform"
345
+ ]
346
+ },
347
+ "patch": {
348
+ "description": "Updates the parameters of a single Api.",
349
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
350
+ "httpMethod": "PATCH",
351
+ "id": "apigateway.projects.locations.apis.patch",
352
+ "parameterOrder": [
353
+ "name"
354
+ ],
355
+ "parameters": {
356
+ "name": {
357
+ "description": "Output only. Resource name of the API. Format: projects/{project}/locations/global/apis/{api}",
358
+ "location": "path",
359
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
360
+ "required": true,
361
+ "type": "string"
362
+ },
363
+ "updateMask": {
364
+ "description": "Field mask is used to specify the fields to be overwritten in the Api resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
365
+ "format": "google-fieldmask",
366
+ "location": "query",
367
+ "type": "string"
368
+ }
369
+ },
370
+ "path": "v1/{+name}",
371
+ "request": {
372
+ "$ref": "ApigatewayApi"
373
+ },
374
+ "response": {
375
+ "$ref": "ApigatewayOperation"
376
+ },
377
+ "scopes": [
378
+ "https://www.googleapis.com/auth/cloud-platform"
379
+ ]
380
+ },
381
+ "setIamPolicy": {
382
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
383
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:setIamPolicy",
384
+ "httpMethod": "POST",
385
+ "id": "apigateway.projects.locations.apis.setIamPolicy",
386
+ "parameterOrder": [
387
+ "resource"
388
+ ],
389
+ "parameters": {
390
+ "resource": {
391
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
392
+ "location": "path",
393
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
394
+ "required": true,
395
+ "type": "string"
396
+ }
397
+ },
398
+ "path": "v1/{+resource}:setIamPolicy",
399
+ "request": {
400
+ "$ref": "ApigatewaySetIamPolicyRequest"
401
+ },
402
+ "response": {
403
+ "$ref": "ApigatewayPolicy"
404
+ },
405
+ "scopes": [
406
+ "https://www.googleapis.com/auth/cloud-platform"
407
+ ]
408
+ },
409
+ "testIamPermissions": {
410
+ "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.",
411
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:testIamPermissions",
412
+ "httpMethod": "POST",
413
+ "id": "apigateway.projects.locations.apis.testIamPermissions",
414
+ "parameterOrder": [
415
+ "resource"
416
+ ],
417
+ "parameters": {
418
+ "resource": {
419
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
420
+ "location": "path",
421
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
422
+ "required": true,
423
+ "type": "string"
424
+ }
425
+ },
426
+ "path": "v1/{+resource}:testIamPermissions",
427
+ "request": {
428
+ "$ref": "ApigatewayTestIamPermissionsRequest"
429
+ },
430
+ "response": {
431
+ "$ref": "ApigatewayTestIamPermissionsResponse"
432
+ },
433
+ "scopes": [
434
+ "https://www.googleapis.com/auth/cloud-platform"
435
+ ]
436
+ }
437
+ },
438
+ "resources": {
439
+ "configs": {
440
+ "methods": {
441
+ "create": {
442
+ "description": "Creates a new ApiConfig in a given project and location.",
443
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs",
444
+ "httpMethod": "POST",
445
+ "id": "apigateway.projects.locations.apis.configs.create",
446
+ "parameterOrder": [
447
+ "parent"
448
+ ],
449
+ "parameters": {
450
+ "apiConfigId": {
451
+ "description": "Required. Identifier to assign to the API Config. Must be unique within scope of the parent resource.",
452
+ "location": "query",
453
+ "type": "string"
454
+ },
455
+ "parent": {
456
+ "description": "Required. Parent resource of the API Config, of the form: `projects/*/locations/global/apis/*`",
457
+ "location": "path",
458
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
459
+ "required": true,
460
+ "type": "string"
461
+ }
462
+ },
463
+ "path": "v1/{+parent}/configs",
464
+ "request": {
465
+ "$ref": "ApigatewayApiConfig"
466
+ },
467
+ "response": {
468
+ "$ref": "ApigatewayOperation"
469
+ },
470
+ "scopes": [
471
+ "https://www.googleapis.com/auth/cloud-platform"
472
+ ]
473
+ },
474
+ "delete": {
475
+ "description": "Deletes a single ApiConfig.",
476
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
477
+ "httpMethod": "DELETE",
478
+ "id": "apigateway.projects.locations.apis.configs.delete",
479
+ "parameterOrder": [
480
+ "name"
481
+ ],
482
+ "parameters": {
483
+ "name": {
484
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*/configs/*`",
485
+ "location": "path",
486
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
487
+ "required": true,
488
+ "type": "string"
489
+ }
490
+ },
491
+ "path": "v1/{+name}",
492
+ "response": {
493
+ "$ref": "ApigatewayOperation"
494
+ },
495
+ "scopes": [
496
+ "https://www.googleapis.com/auth/cloud-platform"
497
+ ]
498
+ },
499
+ "get": {
500
+ "description": "Gets details of a single ApiConfig.",
501
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
502
+ "httpMethod": "GET",
503
+ "id": "apigateway.projects.locations.apis.configs.get",
504
+ "parameterOrder": [
505
+ "name"
506
+ ],
507
+ "parameters": {
508
+ "name": {
509
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*/configs/*`",
510
+ "location": "path",
511
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
512
+ "required": true,
513
+ "type": "string"
514
+ },
515
+ "view": {
516
+ "description": "Specifies which fields of the API Config are returned in the response. Defaults to `BASIC` view.",
517
+ "enum": [
518
+ "CONFIG_VIEW_UNSPECIFIED",
519
+ "BASIC",
520
+ "FULL"
521
+ ],
522
+ "enumDescriptions": [
523
+ "",
524
+ "Do not include configuration source files.",
525
+ "Include configuration source files."
526
+ ],
527
+ "location": "query",
528
+ "type": "string"
529
+ }
530
+ },
531
+ "path": "v1/{+name}",
532
+ "response": {
533
+ "$ref": "ApigatewayApiConfig"
534
+ },
535
+ "scopes": [
536
+ "https://www.googleapis.com/auth/cloud-platform"
537
+ ]
538
+ },
539
+ "getIamPolicy": {
540
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
541
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:getIamPolicy",
542
+ "httpMethod": "GET",
543
+ "id": "apigateway.projects.locations.apis.configs.getIamPolicy",
544
+ "parameterOrder": [
545
+ "resource"
546
+ ],
547
+ "parameters": {
548
+ "options.requestedPolicyVersion": {
549
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
550
+ "format": "int32",
551
+ "location": "query",
552
+ "type": "integer"
553
+ },
554
+ "resource": {
555
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
556
+ "location": "path",
557
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
558
+ "required": true,
559
+ "type": "string"
560
+ }
561
+ },
562
+ "path": "v1/{+resource}:getIamPolicy",
563
+ "response": {
564
+ "$ref": "ApigatewayPolicy"
565
+ },
566
+ "scopes": [
567
+ "https://www.googleapis.com/auth/cloud-platform"
568
+ ]
569
+ },
570
+ "list": {
571
+ "description": "Lists ApiConfigs in a given project and location.",
572
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs",
573
+ "httpMethod": "GET",
574
+ "id": "apigateway.projects.locations.apis.configs.list",
575
+ "parameterOrder": [
576
+ "parent"
577
+ ],
578
+ "parameters": {
579
+ "filter": {
580
+ "description": "Filter.",
581
+ "location": "query",
582
+ "type": "string"
583
+ },
584
+ "orderBy": {
585
+ "description": "Order by parameters.",
586
+ "location": "query",
587
+ "type": "string"
588
+ },
589
+ "pageSize": {
590
+ "description": "Page size.",
591
+ "format": "int32",
592
+ "location": "query",
593
+ "type": "integer"
594
+ },
595
+ "pageToken": {
596
+ "description": "Page token.",
597
+ "location": "query",
598
+ "type": "string"
599
+ },
600
+ "parent": {
601
+ "description": "Required. Parent resource of the API Config, of the form: `projects/*/locations/global/apis/*`",
602
+ "location": "path",
603
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
604
+ "required": true,
605
+ "type": "string"
606
+ }
607
+ },
608
+ "path": "v1/{+parent}/configs",
609
+ "response": {
610
+ "$ref": "ApigatewayListApiConfigsResponse"
611
+ },
612
+ "scopes": [
613
+ "https://www.googleapis.com/auth/cloud-platform"
614
+ ]
615
+ },
616
+ "patch": {
617
+ "description": "Updates the parameters of a single ApiConfig.",
618
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
619
+ "httpMethod": "PATCH",
620
+ "id": "apigateway.projects.locations.apis.configs.patch",
621
+ "parameterOrder": [
622
+ "name"
623
+ ],
624
+ "parameters": {
625
+ "name": {
626
+ "description": "Output only. Resource name of the API Config. Format: projects/{project}/locations/global/apis/{api}/configs/{api_config}",
627
+ "location": "path",
628
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
629
+ "required": true,
630
+ "type": "string"
631
+ },
632
+ "updateMask": {
633
+ "description": "Field mask is used to specify the fields to be overwritten in the ApiConfig resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
634
+ "format": "google-fieldmask",
635
+ "location": "query",
636
+ "type": "string"
637
+ }
638
+ },
639
+ "path": "v1/{+name}",
640
+ "request": {
641
+ "$ref": "ApigatewayApiConfig"
642
+ },
643
+ "response": {
644
+ "$ref": "ApigatewayOperation"
645
+ },
646
+ "scopes": [
647
+ "https://www.googleapis.com/auth/cloud-platform"
648
+ ]
649
+ },
650
+ "setIamPolicy": {
651
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
652
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:setIamPolicy",
653
+ "httpMethod": "POST",
654
+ "id": "apigateway.projects.locations.apis.configs.setIamPolicy",
655
+ "parameterOrder": [
656
+ "resource"
657
+ ],
658
+ "parameters": {
659
+ "resource": {
660
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
661
+ "location": "path",
662
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
663
+ "required": true,
664
+ "type": "string"
665
+ }
666
+ },
667
+ "path": "v1/{+resource}:setIamPolicy",
668
+ "request": {
669
+ "$ref": "ApigatewaySetIamPolicyRequest"
670
+ },
671
+ "response": {
672
+ "$ref": "ApigatewayPolicy"
673
+ },
674
+ "scopes": [
675
+ "https://www.googleapis.com/auth/cloud-platform"
676
+ ]
677
+ },
678
+ "testIamPermissions": {
679
+ "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.",
680
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:testIamPermissions",
681
+ "httpMethod": "POST",
682
+ "id": "apigateway.projects.locations.apis.configs.testIamPermissions",
683
+ "parameterOrder": [
684
+ "resource"
685
+ ],
686
+ "parameters": {
687
+ "resource": {
688
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
689
+ "location": "path",
690
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
691
+ "required": true,
692
+ "type": "string"
693
+ }
694
+ },
695
+ "path": "v1/{+resource}:testIamPermissions",
696
+ "request": {
697
+ "$ref": "ApigatewayTestIamPermissionsRequest"
698
+ },
699
+ "response": {
700
+ "$ref": "ApigatewayTestIamPermissionsResponse"
701
+ },
702
+ "scopes": [
703
+ "https://www.googleapis.com/auth/cloud-platform"
704
+ ]
705
+ }
706
+ }
707
+ }
708
+ }
709
+ },
710
+ "gateways": {
711
+ "methods": {
712
+ "create": {
713
+ "description": "Creates a new Gateway in a given project and location.",
714
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways",
715
+ "httpMethod": "POST",
716
+ "id": "apigateway.projects.locations.gateways.create",
717
+ "parameterOrder": [
718
+ "parent"
719
+ ],
720
+ "parameters": {
721
+ "gatewayId": {
722
+ "description": "Required. Identifier to assign to the Gateway. Must be unique within scope of the parent resource.",
723
+ "location": "query",
724
+ "type": "string"
725
+ },
726
+ "parent": {
727
+ "description": "Required. Parent resource of the Gateway, of the form: `projects/*/locations/*`",
728
+ "location": "path",
729
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
730
+ "required": true,
731
+ "type": "string"
732
+ }
733
+ },
734
+ "path": "v1/{+parent}/gateways",
735
+ "request": {
736
+ "$ref": "ApigatewayGateway"
737
+ },
738
+ "response": {
739
+ "$ref": "ApigatewayOperation"
740
+ },
741
+ "scopes": [
742
+ "https://www.googleapis.com/auth/cloud-platform"
743
+ ]
744
+ },
745
+ "delete": {
746
+ "description": "Deletes a single Gateway.",
747
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
748
+ "httpMethod": "DELETE",
749
+ "id": "apigateway.projects.locations.gateways.delete",
750
+ "parameterOrder": [
751
+ "name"
752
+ ],
753
+ "parameters": {
754
+ "name": {
755
+ "description": "Required. Resource name of the form: `projects/*/locations/*/gateways/*`",
756
+ "location": "path",
757
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
758
+ "required": true,
759
+ "type": "string"
760
+ }
761
+ },
762
+ "path": "v1/{+name}",
763
+ "response": {
764
+ "$ref": "ApigatewayOperation"
765
+ },
766
+ "scopes": [
767
+ "https://www.googleapis.com/auth/cloud-platform"
768
+ ]
769
+ },
770
+ "get": {
771
+ "description": "Gets details of a single Gateway.",
772
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
773
+ "httpMethod": "GET",
774
+ "id": "apigateway.projects.locations.gateways.get",
775
+ "parameterOrder": [
776
+ "name"
777
+ ],
778
+ "parameters": {
779
+ "name": {
780
+ "description": "Required. Resource name of the form: `projects/*/locations/*/gateways/*`",
781
+ "location": "path",
782
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
783
+ "required": true,
784
+ "type": "string"
785
+ }
786
+ },
787
+ "path": "v1/{+name}",
788
+ "response": {
789
+ "$ref": "ApigatewayGateway"
790
+ },
791
+ "scopes": [
792
+ "https://www.googleapis.com/auth/cloud-platform"
793
+ ]
794
+ },
795
+ "getIamPolicy": {
796
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
797
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:getIamPolicy",
798
+ "httpMethod": "GET",
799
+ "id": "apigateway.projects.locations.gateways.getIamPolicy",
800
+ "parameterOrder": [
801
+ "resource"
802
+ ],
803
+ "parameters": {
804
+ "options.requestedPolicyVersion": {
805
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
806
+ "format": "int32",
807
+ "location": "query",
808
+ "type": "integer"
809
+ },
810
+ "resource": {
811
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
812
+ "location": "path",
813
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
814
+ "required": true,
815
+ "type": "string"
816
+ }
817
+ },
818
+ "path": "v1/{+resource}:getIamPolicy",
819
+ "response": {
820
+ "$ref": "ApigatewayPolicy"
821
+ },
822
+ "scopes": [
823
+ "https://www.googleapis.com/auth/cloud-platform"
824
+ ]
825
+ },
826
+ "list": {
827
+ "description": "Lists Gateways in a given project and location.",
828
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways",
829
+ "httpMethod": "GET",
830
+ "id": "apigateway.projects.locations.gateways.list",
831
+ "parameterOrder": [
832
+ "parent"
833
+ ],
834
+ "parameters": {
835
+ "filter": {
836
+ "description": "Filter.",
837
+ "location": "query",
838
+ "type": "string"
839
+ },
840
+ "orderBy": {
841
+ "description": "Order by parameters.",
842
+ "location": "query",
843
+ "type": "string"
844
+ },
845
+ "pageSize": {
846
+ "description": "Page size.",
847
+ "format": "int32",
848
+ "location": "query",
849
+ "type": "integer"
850
+ },
851
+ "pageToken": {
852
+ "description": "Page token.",
853
+ "location": "query",
854
+ "type": "string"
855
+ },
856
+ "parent": {
857
+ "description": "Required. Parent resource of the Gateway, of the form: `projects/*/locations/*`",
858
+ "location": "path",
859
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
860
+ "required": true,
861
+ "type": "string"
862
+ }
863
+ },
864
+ "path": "v1/{+parent}/gateways",
865
+ "response": {
866
+ "$ref": "ApigatewayListGatewaysResponse"
867
+ },
868
+ "scopes": [
869
+ "https://www.googleapis.com/auth/cloud-platform"
870
+ ]
871
+ },
872
+ "patch": {
873
+ "description": "Updates the parameters of a single Gateway.",
874
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
875
+ "httpMethod": "PATCH",
876
+ "id": "apigateway.projects.locations.gateways.patch",
877
+ "parameterOrder": [
878
+ "name"
879
+ ],
880
+ "parameters": {
881
+ "name": {
882
+ "description": "Output only. Resource name of the Gateway. Format: projects/{project}/locations/{location}/gateways/{gateway}",
883
+ "location": "path",
884
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
885
+ "required": true,
886
+ "type": "string"
887
+ },
888
+ "updateMask": {
889
+ "description": "Field mask is used to specify the fields to be overwritten in the Gateway resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
890
+ "format": "google-fieldmask",
891
+ "location": "query",
892
+ "type": "string"
893
+ }
894
+ },
895
+ "path": "v1/{+name}",
896
+ "request": {
897
+ "$ref": "ApigatewayGateway"
898
+ },
899
+ "response": {
900
+ "$ref": "ApigatewayOperation"
901
+ },
902
+ "scopes": [
903
+ "https://www.googleapis.com/auth/cloud-platform"
904
+ ]
905
+ },
906
+ "setIamPolicy": {
907
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
908
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:setIamPolicy",
909
+ "httpMethod": "POST",
910
+ "id": "apigateway.projects.locations.gateways.setIamPolicy",
911
+ "parameterOrder": [
912
+ "resource"
913
+ ],
914
+ "parameters": {
915
+ "resource": {
916
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
917
+ "location": "path",
918
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
919
+ "required": true,
920
+ "type": "string"
921
+ }
922
+ },
923
+ "path": "v1/{+resource}:setIamPolicy",
924
+ "request": {
925
+ "$ref": "ApigatewaySetIamPolicyRequest"
926
+ },
927
+ "response": {
928
+ "$ref": "ApigatewayPolicy"
929
+ },
930
+ "scopes": [
931
+ "https://www.googleapis.com/auth/cloud-platform"
932
+ ]
933
+ },
934
+ "testIamPermissions": {
935
+ "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.",
936
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:testIamPermissions",
937
+ "httpMethod": "POST",
938
+ "id": "apigateway.projects.locations.gateways.testIamPermissions",
939
+ "parameterOrder": [
940
+ "resource"
941
+ ],
942
+ "parameters": {
943
+ "resource": {
944
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
945
+ "location": "path",
946
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
947
+ "required": true,
948
+ "type": "string"
949
+ }
950
+ },
951
+ "path": "v1/{+resource}:testIamPermissions",
952
+ "request": {
953
+ "$ref": "ApigatewayTestIamPermissionsRequest"
954
+ },
955
+ "response": {
956
+ "$ref": "ApigatewayTestIamPermissionsResponse"
957
+ },
958
+ "scopes": [
959
+ "https://www.googleapis.com/auth/cloud-platform"
960
+ ]
961
+ }
962
+ }
963
+ },
964
+ "operations": {
965
+ "methods": {
966
+ "cancel": {
967
+ "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`.",
968
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
969
+ "httpMethod": "POST",
970
+ "id": "apigateway.projects.locations.operations.cancel",
971
+ "parameterOrder": [
972
+ "name"
973
+ ],
974
+ "parameters": {
975
+ "name": {
976
+ "description": "The name of the operation resource to be cancelled.",
977
+ "location": "path",
978
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
979
+ "required": true,
980
+ "type": "string"
981
+ }
982
+ },
983
+ "path": "v1/{+name}:cancel",
984
+ "request": {
985
+ "$ref": "ApigatewayCancelOperationRequest"
986
+ },
987
+ "response": {
988
+ "$ref": "Empty"
989
+ },
990
+ "scopes": [
991
+ "https://www.googleapis.com/auth/cloud-platform"
992
+ ]
993
+ },
994
+ "delete": {
995
+ "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`.",
996
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
997
+ "httpMethod": "DELETE",
998
+ "id": "apigateway.projects.locations.operations.delete",
999
+ "parameterOrder": [
1000
+ "name"
1001
+ ],
1002
+ "parameters": {
1003
+ "name": {
1004
+ "description": "The name of the operation resource to be deleted.",
1005
+ "location": "path",
1006
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
1007
+ "required": true,
1008
+ "type": "string"
1009
+ }
1010
+ },
1011
+ "path": "v1/{+name}",
1012
+ "response": {
1013
+ "$ref": "Empty"
1014
+ },
1015
+ "scopes": [
1016
+ "https://www.googleapis.com/auth/cloud-platform"
1017
+ ]
1018
+ },
1019
+ "get": {
1020
+ "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.",
1021
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
1022
+ "httpMethod": "GET",
1023
+ "id": "apigateway.projects.locations.operations.get",
1024
+ "parameterOrder": [
1025
+ "name"
1026
+ ],
1027
+ "parameters": {
1028
+ "name": {
1029
+ "description": "The name of the operation resource.",
1030
+ "location": "path",
1031
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
1032
+ "required": true,
1033
+ "type": "string"
1034
+ }
1035
+ },
1036
+ "path": "v1/{+name}",
1037
+ "response": {
1038
+ "$ref": "ApigatewayOperation"
1039
+ },
1040
+ "scopes": [
1041
+ "https://www.googleapis.com/auth/cloud-platform"
1042
+ ]
1043
+ },
1044
+ "list": {
1045
+ "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
1046
+ "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
1047
+ "httpMethod": "GET",
1048
+ "id": "apigateway.projects.locations.operations.list",
1049
+ "parameterOrder": [
1050
+ "name"
1051
+ ],
1052
+ "parameters": {
1053
+ "filter": {
1054
+ "description": "The standard list filter.",
1055
+ "location": "query",
1056
+ "type": "string"
1057
+ },
1058
+ "name": {
1059
+ "description": "The name of the operation's parent resource.",
1060
+ "location": "path",
1061
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
1062
+ "required": true,
1063
+ "type": "string"
1064
+ },
1065
+ "pageSize": {
1066
+ "description": "The standard list page size.",
1067
+ "format": "int32",
1068
+ "location": "query",
1069
+ "type": "integer"
1070
+ },
1071
+ "pageToken": {
1072
+ "description": "The standard list page token.",
1073
+ "location": "query",
1074
+ "type": "string"
1075
+ },
1076
+ "returnPartialSuccess": {
1077
+ "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
1078
+ "location": "query",
1079
+ "type": "boolean"
1080
+ }
1081
+ },
1082
+ "path": "v1/{+name}/operations",
1083
+ "response": {
1084
+ "$ref": "ApigatewayListOperationsResponse"
1085
+ },
1086
+ "scopes": [
1087
+ "https://www.googleapis.com/auth/cloud-platform"
1088
+ ]
1089
+ }
1090
+ }
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ },
1097
+ "revision": "20251210",
1098
+ "rootUrl": "https://apigateway.googleapis.com/",
1099
+ "schemas": {
1100
+ "ApigatewayApi": {
1101
+ "description": "An API that can be served by one or more Gateways.",
1102
+ "id": "ApigatewayApi",
1103
+ "properties": {
1104
+ "createTime": {
1105
+ "description": "Output only. Created time.",
1106
+ "format": "google-datetime",
1107
+ "readOnly": true,
1108
+ "type": "string"
1109
+ },
1110
+ "displayName": {
1111
+ "description": "Optional. Display name.",
1112
+ "type": "string"
1113
+ },
1114
+ "labels": {
1115
+ "additionalProperties": {
1116
+ "type": "string"
1117
+ },
1118
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1119
+ "type": "object"
1120
+ },
1121
+ "managedService": {
1122
+ "description": "Optional. Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed). If not specified, a new Service will automatically be created in the same project as this API.",
1123
+ "type": "string"
1124
+ },
1125
+ "name": {
1126
+ "description": "Output only. Resource name of the API. Format: projects/{project}/locations/global/apis/{api}",
1127
+ "readOnly": true,
1128
+ "type": "string"
1129
+ },
1130
+ "state": {
1131
+ "description": "Output only. State of the API.",
1132
+ "enum": [
1133
+ "STATE_UNSPECIFIED",
1134
+ "CREATING",
1135
+ "ACTIVE",
1136
+ "FAILED",
1137
+ "DELETING",
1138
+ "UPDATING"
1139
+ ],
1140
+ "enumDescriptions": [
1141
+ "API does not have a state yet.",
1142
+ "API is being created.",
1143
+ "API is active.",
1144
+ "API creation failed.",
1145
+ "API is being deleted.",
1146
+ "API is being updated."
1147
+ ],
1148
+ "readOnly": true,
1149
+ "type": "string"
1150
+ },
1151
+ "updateTime": {
1152
+ "description": "Output only. Updated time.",
1153
+ "format": "google-datetime",
1154
+ "readOnly": true,
1155
+ "type": "string"
1156
+ }
1157
+ },
1158
+ "type": "object"
1159
+ },
1160
+ "ApigatewayApiConfig": {
1161
+ "description": "An API Configuration is a combination of settings for both the Managed Service and Gateways serving this API Config.",
1162
+ "id": "ApigatewayApiConfig",
1163
+ "properties": {
1164
+ "createTime": {
1165
+ "description": "Output only. Created time.",
1166
+ "format": "google-datetime",
1167
+ "readOnly": true,
1168
+ "type": "string"
1169
+ },
1170
+ "displayName": {
1171
+ "description": "Optional. Display name.",
1172
+ "type": "string"
1173
+ },
1174
+ "gatewayServiceAccount": {
1175
+ "description": "Immutable. The Google Cloud IAM Service Account that Gateways serving this config should use to authenticate to other services. This may either be the Service Account's email (`{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`) or its full resource name (`projects/{PROJECT}/accounts/{UNIQUE_ID}`). This is most often used when the service is a GCP resource such as a Cloud Run Service or an IAP-secured service.",
1176
+ "type": "string"
1177
+ },
1178
+ "grpcServices": {
1179
+ "description": "Optional. gRPC service definition files. If specified, openapi_documents must not be included.",
1180
+ "items": {
1181
+ "$ref": "ApigatewayApiConfigGrpcServiceDefinition"
1182
+ },
1183
+ "type": "array"
1184
+ },
1185
+ "labels": {
1186
+ "additionalProperties": {
1187
+ "type": "string"
1188
+ },
1189
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1190
+ "type": "object"
1191
+ },
1192
+ "managedServiceConfigs": {
1193
+ "description": "Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents. If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using \"last one wins\" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields.",
1194
+ "items": {
1195
+ "$ref": "ApigatewayApiConfigFile"
1196
+ },
1197
+ "type": "array"
1198
+ },
1199
+ "name": {
1200
+ "description": "Output only. Resource name of the API Config. Format: projects/{project}/locations/global/apis/{api}/configs/{api_config}",
1201
+ "readOnly": true,
1202
+ "type": "string"
1203
+ },
1204
+ "openapiDocuments": {
1205
+ "description": "Optional. OpenAPI specification documents. If specified, grpc_services and managed_service_configs must not be included.",
1206
+ "items": {
1207
+ "$ref": "ApigatewayApiConfigOpenApiDocument"
1208
+ },
1209
+ "type": "array"
1210
+ },
1211
+ "serviceConfigId": {
1212
+ "description": "Output only. The ID of the associated Service Config ( https://cloud.google.com/service-infrastructure/docs/glossary#config).",
1213
+ "readOnly": true,
1214
+ "type": "string"
1215
+ },
1216
+ "state": {
1217
+ "description": "Output only. State of the API Config.",
1218
+ "enum": [
1219
+ "STATE_UNSPECIFIED",
1220
+ "CREATING",
1221
+ "ACTIVE",
1222
+ "FAILED",
1223
+ "DELETING",
1224
+ "UPDATING",
1225
+ "ACTIVATING"
1226
+ ],
1227
+ "enumDescriptions": [
1228
+ "API Config does not have a state yet.",
1229
+ "API Config is being created and deployed to the API Controller.",
1230
+ "API Config is ready for use by Gateways.",
1231
+ "API Config creation failed.",
1232
+ "API Config is being deleted.",
1233
+ "API Config is being updated.",
1234
+ "API Config settings are being activated in downstream systems. API Configs in this state cannot be used by Gateways."
1235
+ ],
1236
+ "readOnly": true,
1237
+ "type": "string"
1238
+ },
1239
+ "updateTime": {
1240
+ "description": "Output only. Updated time.",
1241
+ "format": "google-datetime",
1242
+ "readOnly": true,
1243
+ "type": "string"
1244
+ }
1245
+ },
1246
+ "type": "object"
1247
+ },
1248
+ "ApigatewayApiConfigFile": {
1249
+ "description": "A lightweight description of a file.",
1250
+ "id": "ApigatewayApiConfigFile",
1251
+ "properties": {
1252
+ "contents": {
1253
+ "description": "The bytes that constitute the file.",
1254
+ "format": "byte",
1255
+ "type": "string"
1256
+ },
1257
+ "path": {
1258
+ "description": "The file path (full or relative path). This is typically the path of the file when it is uploaded.",
1259
+ "type": "string"
1260
+ }
1261
+ },
1262
+ "type": "object"
1263
+ },
1264
+ "ApigatewayApiConfigGrpcServiceDefinition": {
1265
+ "description": "A gRPC service definition.",
1266
+ "id": "ApigatewayApiConfigGrpcServiceDefinition",
1267
+ "properties": {
1268
+ "fileDescriptorSet": {
1269
+ "$ref": "ApigatewayApiConfigFile",
1270
+ "description": "Input only. File descriptor set, generated by protoc. To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb. $ protoc --include_imports --include_source_info test.proto -o out.pb"
1271
+ },
1272
+ "source": {
1273
+ "description": "Optional. Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate file_descriptor_set.",
1274
+ "items": {
1275
+ "$ref": "ApigatewayApiConfigFile"
1276
+ },
1277
+ "type": "array"
1278
+ }
1279
+ },
1280
+ "type": "object"
1281
+ },
1282
+ "ApigatewayApiConfigOpenApiDocument": {
1283
+ "description": "An OpenAPI Specification Document describing an API.",
1284
+ "id": "ApigatewayApiConfigOpenApiDocument",
1285
+ "properties": {
1286
+ "document": {
1287
+ "$ref": "ApigatewayApiConfigFile",
1288
+ "description": "The OpenAPI Specification document file."
1289
+ }
1290
+ },
1291
+ "type": "object"
1292
+ },
1293
+ "ApigatewayAuditConfig": {
1294
+ "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.",
1295
+ "id": "ApigatewayAuditConfig",
1296
+ "properties": {
1297
+ "auditLogConfigs": {
1298
+ "description": "The configuration for logging of each type of permission.",
1299
+ "items": {
1300
+ "$ref": "ApigatewayAuditLogConfig"
1301
+ },
1302
+ "type": "array"
1303
+ },
1304
+ "service": {
1305
+ "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.",
1306
+ "type": "string"
1307
+ }
1308
+ },
1309
+ "type": "object"
1310
+ },
1311
+ "ApigatewayAuditLogConfig": {
1312
+ "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.",
1313
+ "id": "ApigatewayAuditLogConfig",
1314
+ "properties": {
1315
+ "exemptedMembers": {
1316
+ "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
1317
+ "items": {
1318
+ "type": "string"
1319
+ },
1320
+ "type": "array"
1321
+ },
1322
+ "logType": {
1323
+ "description": "The log type that this config enables.",
1324
+ "enum": [
1325
+ "LOG_TYPE_UNSPECIFIED",
1326
+ "ADMIN_READ",
1327
+ "DATA_WRITE",
1328
+ "DATA_READ"
1329
+ ],
1330
+ "enumDescriptions": [
1331
+ "Default case. Should never be this.",
1332
+ "Admin reads. Example: CloudIAM getIamPolicy",
1333
+ "Data writes. Example: CloudSQL Users create",
1334
+ "Data reads. Example: CloudSQL Users list"
1335
+ ],
1336
+ "type": "string"
1337
+ }
1338
+ },
1339
+ "type": "object"
1340
+ },
1341
+ "ApigatewayBinding": {
1342
+ "description": "Associates `members`, or principals, with a `role`.",
1343
+ "id": "ApigatewayBinding",
1344
+ "properties": {
1345
+ "condition": {
1346
+ "$ref": "ApigatewayExpr",
1347
+ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
1348
+ },
1349
+ "members": {
1350
+ "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
1351
+ "items": {
1352
+ "type": "string"
1353
+ },
1354
+ "type": "array"
1355
+ },
1356
+ "role": {
1357
+ "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
1358
+ "type": "string"
1359
+ }
1360
+ },
1361
+ "type": "object"
1362
+ },
1363
+ "ApigatewayCancelOperationRequest": {
1364
+ "description": "The request message for Operations.CancelOperation.",
1365
+ "id": "ApigatewayCancelOperationRequest",
1366
+ "properties": {},
1367
+ "type": "object"
1368
+ },
1369
+ "ApigatewayExpr": {
1370
+ "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
1371
+ "id": "ApigatewayExpr",
1372
+ "properties": {
1373
+ "description": {
1374
+ "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
1375
+ "type": "string"
1376
+ },
1377
+ "expression": {
1378
+ "description": "Textual representation of an expression in Common Expression Language syntax.",
1379
+ "type": "string"
1380
+ },
1381
+ "location": {
1382
+ "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
1383
+ "type": "string"
1384
+ },
1385
+ "title": {
1386
+ "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
1387
+ "type": "string"
1388
+ }
1389
+ },
1390
+ "type": "object"
1391
+ },
1392
+ "ApigatewayGateway": {
1393
+ "description": "A Gateway is an API-aware HTTP proxy. It performs API-Method and/or API-Consumer specific actions based on an API Config such as authentication, policy enforcement, and backend selection.",
1394
+ "id": "ApigatewayGateway",
1395
+ "properties": {
1396
+ "apiConfig": {
1397
+ "description": "Required. Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}",
1398
+ "type": "string"
1399
+ },
1400
+ "createTime": {
1401
+ "description": "Output only. Created time.",
1402
+ "format": "google-datetime",
1403
+ "readOnly": true,
1404
+ "type": "string"
1405
+ },
1406
+ "defaultHostname": {
1407
+ "description": "Output only. The default API Gateway host name of the form `{gateway_id}-{hash}.{region_code}.gateway.dev`.",
1408
+ "readOnly": true,
1409
+ "type": "string"
1410
+ },
1411
+ "displayName": {
1412
+ "description": "Optional. Display name.",
1413
+ "type": "string"
1414
+ },
1415
+ "labels": {
1416
+ "additionalProperties": {
1417
+ "type": "string"
1418
+ },
1419
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1420
+ "type": "object"
1421
+ },
1422
+ "name": {
1423
+ "description": "Output only. Resource name of the Gateway. Format: projects/{project}/locations/{location}/gateways/{gateway}",
1424
+ "readOnly": true,
1425
+ "type": "string"
1426
+ },
1427
+ "state": {
1428
+ "description": "Output only. The current state of the Gateway.",
1429
+ "enum": [
1430
+ "STATE_UNSPECIFIED",
1431
+ "CREATING",
1432
+ "ACTIVE",
1433
+ "FAILED",
1434
+ "DELETING",
1435
+ "UPDATING"
1436
+ ],
1437
+ "enumDescriptions": [
1438
+ "Gateway does not have a state yet.",
1439
+ "Gateway is being created.",
1440
+ "Gateway is running and ready for requests.",
1441
+ "Gateway creation failed.",
1442
+ "Gateway is being deleted.",
1443
+ "Gateway is being updated."
1444
+ ],
1445
+ "readOnly": true,
1446
+ "type": "string"
1447
+ },
1448
+ "updateTime": {
1449
+ "description": "Output only. Updated time.",
1450
+ "format": "google-datetime",
1451
+ "readOnly": true,
1452
+ "type": "string"
1453
+ }
1454
+ },
1455
+ "type": "object"
1456
+ },
1457
+ "ApigatewayListApiConfigsResponse": {
1458
+ "description": "Response message for ApiGatewayService.ListApiConfigs",
1459
+ "id": "ApigatewayListApiConfigsResponse",
1460
+ "properties": {
1461
+ "apiConfigs": {
1462
+ "description": "API Configs.",
1463
+ "items": {
1464
+ "$ref": "ApigatewayApiConfig"
1465
+ },
1466
+ "type": "array"
1467
+ },
1468
+ "nextPageToken": {
1469
+ "description": "Next page token.",
1470
+ "type": "string"
1471
+ },
1472
+ "unreachableLocations": {
1473
+ "description": "Locations that could not be reached.",
1474
+ "items": {
1475
+ "type": "string"
1476
+ },
1477
+ "type": "array"
1478
+ }
1479
+ },
1480
+ "type": "object"
1481
+ },
1482
+ "ApigatewayListApisResponse": {
1483
+ "description": "Response message for ApiGatewayService.ListApis",
1484
+ "id": "ApigatewayListApisResponse",
1485
+ "properties": {
1486
+ "apis": {
1487
+ "description": "APIs.",
1488
+ "items": {
1489
+ "$ref": "ApigatewayApi"
1490
+ },
1491
+ "type": "array"
1492
+ },
1493
+ "nextPageToken": {
1494
+ "description": "Next page token.",
1495
+ "type": "string"
1496
+ },
1497
+ "unreachableLocations": {
1498
+ "description": "Locations that could not be reached.",
1499
+ "items": {
1500
+ "type": "string"
1501
+ },
1502
+ "type": "array"
1503
+ }
1504
+ },
1505
+ "type": "object"
1506
+ },
1507
+ "ApigatewayListGatewaysResponse": {
1508
+ "description": "Response message for ApiGatewayService.ListGateways",
1509
+ "id": "ApigatewayListGatewaysResponse",
1510
+ "properties": {
1511
+ "gateways": {
1512
+ "description": "Gateways.",
1513
+ "items": {
1514
+ "$ref": "ApigatewayGateway"
1515
+ },
1516
+ "type": "array"
1517
+ },
1518
+ "nextPageToken": {
1519
+ "description": "Next page token.",
1520
+ "type": "string"
1521
+ },
1522
+ "unreachableLocations": {
1523
+ "description": "Locations that could not be reached.",
1524
+ "items": {
1525
+ "type": "string"
1526
+ },
1527
+ "type": "array"
1528
+ }
1529
+ },
1530
+ "type": "object"
1531
+ },
1532
+ "ApigatewayListLocationsResponse": {
1533
+ "description": "The response message for Locations.ListLocations.",
1534
+ "id": "ApigatewayListLocationsResponse",
1535
+ "properties": {
1536
+ "locations": {
1537
+ "description": "A list of locations that matches the specified filter in the request.",
1538
+ "items": {
1539
+ "$ref": "ApigatewayLocation"
1540
+ },
1541
+ "type": "array"
1542
+ },
1543
+ "nextPageToken": {
1544
+ "description": "The standard List next-page token.",
1545
+ "type": "string"
1546
+ }
1547
+ },
1548
+ "type": "object"
1549
+ },
1550
+ "ApigatewayListOperationsResponse": {
1551
+ "description": "The response message for Operations.ListOperations.",
1552
+ "id": "ApigatewayListOperationsResponse",
1553
+ "properties": {
1554
+ "nextPageToken": {
1555
+ "description": "The standard List next-page token.",
1556
+ "type": "string"
1557
+ },
1558
+ "operations": {
1559
+ "description": "A list of operations that matches the specified filter in the request.",
1560
+ "items": {
1561
+ "$ref": "ApigatewayOperation"
1562
+ },
1563
+ "type": "array"
1564
+ },
1565
+ "unreachable": {
1566
+ "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
1567
+ "items": {
1568
+ "type": "string"
1569
+ },
1570
+ "type": "array"
1571
+ }
1572
+ },
1573
+ "type": "object"
1574
+ },
1575
+ "ApigatewayLocation": {
1576
+ "description": "A resource that represents a Google Cloud location.",
1577
+ "id": "ApigatewayLocation",
1578
+ "properties": {
1579
+ "displayName": {
1580
+ "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
1581
+ "type": "string"
1582
+ },
1583
+ "labels": {
1584
+ "additionalProperties": {
1585
+ "type": "string"
1586
+ },
1587
+ "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
1588
+ "type": "object"
1589
+ },
1590
+ "locationId": {
1591
+ "description": "The canonical id for this location. For example: `\"us-east1\"`.",
1592
+ "type": "string"
1593
+ },
1594
+ "metadata": {
1595
+ "additionalProperties": {
1596
+ "description": "Properties of the object. Contains field @type with type URL.",
1597
+ "type": "any"
1598
+ },
1599
+ "description": "Service-specific metadata. For example the available capacity at the given location.",
1600
+ "type": "object"
1601
+ },
1602
+ "name": {
1603
+ "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
1604
+ "type": "string"
1605
+ }
1606
+ },
1607
+ "type": "object"
1608
+ },
1609
+ "ApigatewayOperation": {
1610
+ "description": "This resource represents a long-running operation that is the result of a network API call.",
1611
+ "id": "ApigatewayOperation",
1612
+ "properties": {
1613
+ "done": {
1614
+ "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.",
1615
+ "type": "boolean"
1616
+ },
1617
+ "error": {
1618
+ "$ref": "ApigatewayStatus",
1619
+ "description": "The error result of the operation in case of failure or cancellation."
1620
+ },
1621
+ "metadata": {
1622
+ "additionalProperties": {
1623
+ "description": "Properties of the object. Contains field @type with type URL.",
1624
+ "type": "any"
1625
+ },
1626
+ "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.",
1627
+ "type": "object"
1628
+ },
1629
+ "name": {
1630
+ "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
1631
+ "type": "string"
1632
+ },
1633
+ "response": {
1634
+ "additionalProperties": {
1635
+ "description": "Properties of the object. Contains field @type with type URL.",
1636
+ "type": "any"
1637
+ },
1638
+ "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
1639
+ "type": "object"
1640
+ }
1641
+ },
1642
+ "type": "object"
1643
+ },
1644
+ "ApigatewayOperationMetadata": {
1645
+ "description": "Represents the metadata of the long-running operation.",
1646
+ "id": "ApigatewayOperationMetadata",
1647
+ "properties": {
1648
+ "apiVersion": {
1649
+ "description": "Output only. API version used to start the operation.",
1650
+ "readOnly": true,
1651
+ "type": "string"
1652
+ },
1653
+ "createTime": {
1654
+ "description": "Output only. The time the operation was created.",
1655
+ "format": "google-datetime",
1656
+ "readOnly": true,
1657
+ "type": "string"
1658
+ },
1659
+ "diagnostics": {
1660
+ "description": "Output only. Diagnostics generated during processing of configuration source files.",
1661
+ "items": {
1662
+ "$ref": "ApigatewayOperationMetadataDiagnostic"
1663
+ },
1664
+ "readOnly": true,
1665
+ "type": "array"
1666
+ },
1667
+ "endTime": {
1668
+ "description": "Output only. The time the operation finished running.",
1669
+ "format": "google-datetime",
1670
+ "readOnly": true,
1671
+ "type": "string"
1672
+ },
1673
+ "requestedCancellation": {
1674
+ "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
1675
+ "readOnly": true,
1676
+ "type": "boolean"
1677
+ },
1678
+ "statusMessage": {
1679
+ "description": "Output only. Human-readable status of the operation, if any.",
1680
+ "readOnly": true,
1681
+ "type": "string"
1682
+ },
1683
+ "target": {
1684
+ "description": "Output only. Server-defined resource path for the target of the operation.",
1685
+ "readOnly": true,
1686
+ "type": "string"
1687
+ },
1688
+ "verb": {
1689
+ "description": "Output only. Name of the verb executed by the operation.",
1690
+ "readOnly": true,
1691
+ "type": "string"
1692
+ }
1693
+ },
1694
+ "type": "object"
1695
+ },
1696
+ "ApigatewayOperationMetadataDiagnostic": {
1697
+ "description": "Diagnostic information from configuration processing.",
1698
+ "id": "ApigatewayOperationMetadataDiagnostic",
1699
+ "properties": {
1700
+ "location": {
1701
+ "description": "Location of the diagnostic.",
1702
+ "type": "string"
1703
+ },
1704
+ "message": {
1705
+ "description": "The diagnostic message.",
1706
+ "type": "string"
1707
+ }
1708
+ },
1709
+ "type": "object"
1710
+ },
1711
+ "ApigatewayPolicy": {
1712
+ "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
1713
+ "id": "ApigatewayPolicy",
1714
+ "properties": {
1715
+ "auditConfigs": {
1716
+ "description": "Specifies cloud audit logging configuration for this policy.",
1717
+ "items": {
1718
+ "$ref": "ApigatewayAuditConfig"
1719
+ },
1720
+ "type": "array"
1721
+ },
1722
+ "bindings": {
1723
+ "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.",
1724
+ "items": {
1725
+ "$ref": "ApigatewayBinding"
1726
+ },
1727
+ "type": "array"
1728
+ },
1729
+ "etag": {
1730
+ "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
1731
+ "format": "byte",
1732
+ "type": "string"
1733
+ },
1734
+ "version": {
1735
+ "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
1736
+ "format": "int32",
1737
+ "type": "integer"
1738
+ }
1739
+ },
1740
+ "type": "object"
1741
+ },
1742
+ "ApigatewaySetIamPolicyRequest": {
1743
+ "description": "Request message for `SetIamPolicy` method.",
1744
+ "id": "ApigatewaySetIamPolicyRequest",
1745
+ "properties": {
1746
+ "policy": {
1747
+ "$ref": "ApigatewayPolicy",
1748
+ "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them."
1749
+ },
1750
+ "updateMask": {
1751
+ "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
1752
+ "format": "google-fieldmask",
1753
+ "type": "string"
1754
+ }
1755
+ },
1756
+ "type": "object"
1757
+ },
1758
+ "ApigatewayStatus": {
1759
+ "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
1760
+ "id": "ApigatewayStatus",
1761
+ "properties": {
1762
+ "code": {
1763
+ "description": "The status code, which should be an enum value of google.rpc.Code.",
1764
+ "format": "int32",
1765
+ "type": "integer"
1766
+ },
1767
+ "details": {
1768
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
1769
+ "items": {
1770
+ "additionalProperties": {
1771
+ "description": "Properties of the object. Contains field @type with type URL.",
1772
+ "type": "any"
1773
+ },
1774
+ "type": "object"
1775
+ },
1776
+ "type": "array"
1777
+ },
1778
+ "message": {
1779
+ "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.",
1780
+ "type": "string"
1781
+ }
1782
+ },
1783
+ "type": "object"
1784
+ },
1785
+ "ApigatewayTestIamPermissionsRequest": {
1786
+ "description": "Request message for `TestIamPermissions` method.",
1787
+ "id": "ApigatewayTestIamPermissionsRequest",
1788
+ "properties": {
1789
+ "permissions": {
1790
+ "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).",
1791
+ "items": {
1792
+ "type": "string"
1793
+ },
1794
+ "type": "array"
1795
+ }
1796
+ },
1797
+ "type": "object"
1798
+ },
1799
+ "ApigatewayTestIamPermissionsResponse": {
1800
+ "description": "Response message for `TestIamPermissions` method.",
1801
+ "id": "ApigatewayTestIamPermissionsResponse",
1802
+ "properties": {
1803
+ "permissions": {
1804
+ "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
1805
+ "items": {
1806
+ "type": "string"
1807
+ },
1808
+ "type": "array"
1809
+ }
1810
+ },
1811
+ "type": "object"
1812
+ },
1813
+ "Empty": {
1814
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
1815
+ "id": "Empty",
1816
+ "properties": {},
1817
+ "type": "object"
1818
+ }
1819
+ },
1820
+ "servicePath": "",
1821
+ "title": "API Gateway API",
1822
+ "version": "v1",
1823
+ "version_module": true
1824
+ }
DiscoveryJson/apigateway.v1beta.json ADDED
@@ -0,0 +1,1852 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auth": {
3
+ "oauth2": {
4
+ "scopes": {
5
+ "https://www.googleapis.com/auth/cloud-platform": {
6
+ "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
7
+ }
8
+ }
9
+ }
10
+ },
11
+ "basePath": "",
12
+ "baseUrl": "https://apigateway.googleapis.com/",
13
+ "batchPath": "batch",
14
+ "description": "",
15
+ "discoveryVersion": "v1",
16
+ "documentationLink": "https://cloud.google.com/api-gateway/docs",
17
+ "fullyEncodeReservedExpansion": true,
18
+ "icons": {
19
+ "x16": "http://www.google.com/images/icons/product/search-16.gif",
20
+ "x32": "http://www.google.com/images/icons/product/search-32.gif"
21
+ },
22
+ "id": "apigateway:v1beta",
23
+ "kind": "discovery#restDescription",
24
+ "mtlsRootUrl": "https://apigateway.mtls.googleapis.com/",
25
+ "name": "apigateway",
26
+ "ownerDomain": "google.com",
27
+ "ownerName": "Google",
28
+ "parameters": {
29
+ "$.xgafv": {
30
+ "description": "V1 error format.",
31
+ "enum": [
32
+ "1",
33
+ "2"
34
+ ],
35
+ "enumDescriptions": [
36
+ "v1 error format",
37
+ "v2 error format"
38
+ ],
39
+ "location": "query",
40
+ "type": "string"
41
+ },
42
+ "access_token": {
43
+ "description": "OAuth access token.",
44
+ "location": "query",
45
+ "type": "string"
46
+ },
47
+ "alt": {
48
+ "default": "json",
49
+ "description": "Data format for response.",
50
+ "enum": [
51
+ "json",
52
+ "media",
53
+ "proto"
54
+ ],
55
+ "enumDescriptions": [
56
+ "Responses with Content-Type of application/json",
57
+ "Media download with context-dependent Content-Type",
58
+ "Responses with Content-Type of application/x-protobuf"
59
+ ],
60
+ "location": "query",
61
+ "type": "string"
62
+ },
63
+ "callback": {
64
+ "description": "JSONP",
65
+ "location": "query",
66
+ "type": "string"
67
+ },
68
+ "fields": {
69
+ "description": "Selector specifying which fields to include in a partial response.",
70
+ "location": "query",
71
+ "type": "string"
72
+ },
73
+ "key": {
74
+ "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.",
75
+ "location": "query",
76
+ "type": "string"
77
+ },
78
+ "oauth_token": {
79
+ "description": "OAuth 2.0 token for the current user.",
80
+ "location": "query",
81
+ "type": "string"
82
+ },
83
+ "prettyPrint": {
84
+ "default": "true",
85
+ "description": "Returns response with indentations and line breaks.",
86
+ "location": "query",
87
+ "type": "boolean"
88
+ },
89
+ "quotaUser": {
90
+ "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.",
91
+ "location": "query",
92
+ "type": "string"
93
+ },
94
+ "uploadType": {
95
+ "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
96
+ "location": "query",
97
+ "type": "string"
98
+ },
99
+ "upload_protocol": {
100
+ "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
101
+ "location": "query",
102
+ "type": "string"
103
+ }
104
+ },
105
+ "protocol": "rest",
106
+ "resources": {
107
+ "projects": {
108
+ "resources": {
109
+ "locations": {
110
+ "methods": {
111
+ "get": {
112
+ "description": "Gets information about a location.",
113
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}",
114
+ "httpMethod": "GET",
115
+ "id": "apigateway.projects.locations.get",
116
+ "parameterOrder": [
117
+ "name"
118
+ ],
119
+ "parameters": {
120
+ "name": {
121
+ "description": "Resource name for the location.",
122
+ "location": "path",
123
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
124
+ "required": true,
125
+ "type": "string"
126
+ }
127
+ },
128
+ "path": "v1beta/{+name}",
129
+ "response": {
130
+ "$ref": "ApigatewayLocation"
131
+ },
132
+ "scopes": [
133
+ "https://www.googleapis.com/auth/cloud-platform"
134
+ ]
135
+ },
136
+ "list": {
137
+ "description": "Lists information about the supported locations for this service.",
138
+ "flatPath": "v1beta/projects/{projectsId}/locations",
139
+ "httpMethod": "GET",
140
+ "id": "apigateway.projects.locations.list",
141
+ "parameterOrder": [
142
+ "name"
143
+ ],
144
+ "parameters": {
145
+ "extraLocationTypes": {
146
+ "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
147
+ "location": "query",
148
+ "repeated": true,
149
+ "type": "string"
150
+ },
151
+ "filter": {
152
+ "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
153
+ "location": "query",
154
+ "type": "string"
155
+ },
156
+ "name": {
157
+ "description": "The resource that owns the locations collection, if applicable.",
158
+ "location": "path",
159
+ "pattern": "^projects/[^/]+$",
160
+ "required": true,
161
+ "type": "string"
162
+ },
163
+ "pageSize": {
164
+ "description": "The maximum number of results to return. If not set, the service selects a default.",
165
+ "format": "int32",
166
+ "location": "query",
167
+ "type": "integer"
168
+ },
169
+ "pageToken": {
170
+ "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
171
+ "location": "query",
172
+ "type": "string"
173
+ }
174
+ },
175
+ "path": "v1beta/{+name}/locations",
176
+ "response": {
177
+ "$ref": "ApigatewayListLocationsResponse"
178
+ },
179
+ "scopes": [
180
+ "https://www.googleapis.com/auth/cloud-platform"
181
+ ]
182
+ }
183
+ },
184
+ "resources": {
185
+ "apis": {
186
+ "methods": {
187
+ "create": {
188
+ "description": "Creates a new Api in a given project and location.",
189
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis",
190
+ "httpMethod": "POST",
191
+ "id": "apigateway.projects.locations.apis.create",
192
+ "parameterOrder": [
193
+ "parent"
194
+ ],
195
+ "parameters": {
196
+ "apiId": {
197
+ "description": "Required. Identifier to assign to the API. Must be unique within scope of the parent resource.",
198
+ "location": "query",
199
+ "type": "string"
200
+ },
201
+ "parent": {
202
+ "description": "Required. Parent resource of the API, of the form: `projects/*/locations/global`",
203
+ "location": "path",
204
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
205
+ "required": true,
206
+ "type": "string"
207
+ }
208
+ },
209
+ "path": "v1beta/{+parent}/apis",
210
+ "request": {
211
+ "$ref": "ApigatewayApi"
212
+ },
213
+ "response": {
214
+ "$ref": "ApigatewayOperation"
215
+ },
216
+ "scopes": [
217
+ "https://www.googleapis.com/auth/cloud-platform"
218
+ ]
219
+ },
220
+ "delete": {
221
+ "description": "Deletes a single Api.",
222
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
223
+ "httpMethod": "DELETE",
224
+ "id": "apigateway.projects.locations.apis.delete",
225
+ "parameterOrder": [
226
+ "name"
227
+ ],
228
+ "parameters": {
229
+ "name": {
230
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*`",
231
+ "location": "path",
232
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
233
+ "required": true,
234
+ "type": "string"
235
+ }
236
+ },
237
+ "path": "v1beta/{+name}",
238
+ "response": {
239
+ "$ref": "ApigatewayOperation"
240
+ },
241
+ "scopes": [
242
+ "https://www.googleapis.com/auth/cloud-platform"
243
+ ]
244
+ },
245
+ "get": {
246
+ "description": "Gets details of a single Api.",
247
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
248
+ "httpMethod": "GET",
249
+ "id": "apigateway.projects.locations.apis.get",
250
+ "parameterOrder": [
251
+ "name"
252
+ ],
253
+ "parameters": {
254
+ "name": {
255
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*`",
256
+ "location": "path",
257
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
258
+ "required": true,
259
+ "type": "string"
260
+ }
261
+ },
262
+ "path": "v1beta/{+name}",
263
+ "response": {
264
+ "$ref": "ApigatewayApi"
265
+ },
266
+ "scopes": [
267
+ "https://www.googleapis.com/auth/cloud-platform"
268
+ ]
269
+ },
270
+ "getIamPolicy": {
271
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
272
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:getIamPolicy",
273
+ "httpMethod": "GET",
274
+ "id": "apigateway.projects.locations.apis.getIamPolicy",
275
+ "parameterOrder": [
276
+ "resource"
277
+ ],
278
+ "parameters": {
279
+ "options.requestedPolicyVersion": {
280
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
281
+ "format": "int32",
282
+ "location": "query",
283
+ "type": "integer"
284
+ },
285
+ "resource": {
286
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
287
+ "location": "path",
288
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
289
+ "required": true,
290
+ "type": "string"
291
+ }
292
+ },
293
+ "path": "v1beta/{+resource}:getIamPolicy",
294
+ "response": {
295
+ "$ref": "ApigatewayPolicy"
296
+ },
297
+ "scopes": [
298
+ "https://www.googleapis.com/auth/cloud-platform"
299
+ ]
300
+ },
301
+ "list": {
302
+ "description": "Lists Apis in a given project and location.",
303
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis",
304
+ "httpMethod": "GET",
305
+ "id": "apigateway.projects.locations.apis.list",
306
+ "parameterOrder": [
307
+ "parent"
308
+ ],
309
+ "parameters": {
310
+ "filter": {
311
+ "description": "Filter.",
312
+ "location": "query",
313
+ "type": "string"
314
+ },
315
+ "orderBy": {
316
+ "description": "Order by parameters.",
317
+ "location": "query",
318
+ "type": "string"
319
+ },
320
+ "pageSize": {
321
+ "description": "Page size.",
322
+ "format": "int32",
323
+ "location": "query",
324
+ "type": "integer"
325
+ },
326
+ "pageToken": {
327
+ "description": "Page token.",
328
+ "location": "query",
329
+ "type": "string"
330
+ },
331
+ "parent": {
332
+ "description": "Required. Parent resource of the API, of the form: `projects/*/locations/global`",
333
+ "location": "path",
334
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
335
+ "required": true,
336
+ "type": "string"
337
+ }
338
+ },
339
+ "path": "v1beta/{+parent}/apis",
340
+ "response": {
341
+ "$ref": "ApigatewayListApisResponse"
342
+ },
343
+ "scopes": [
344
+ "https://www.googleapis.com/auth/cloud-platform"
345
+ ]
346
+ },
347
+ "patch": {
348
+ "description": "Updates the parameters of a single Api.",
349
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}",
350
+ "httpMethod": "PATCH",
351
+ "id": "apigateway.projects.locations.apis.patch",
352
+ "parameterOrder": [
353
+ "name"
354
+ ],
355
+ "parameters": {
356
+ "name": {
357
+ "description": "Output only. Resource name of the API. Format: projects/{project}/locations/global/apis/{api}",
358
+ "location": "path",
359
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
360
+ "required": true,
361
+ "type": "string"
362
+ },
363
+ "updateMask": {
364
+ "description": "Field mask is used to specify the fields to be overwritten in the Api resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
365
+ "format": "google-fieldmask",
366
+ "location": "query",
367
+ "type": "string"
368
+ }
369
+ },
370
+ "path": "v1beta/{+name}",
371
+ "request": {
372
+ "$ref": "ApigatewayApi"
373
+ },
374
+ "response": {
375
+ "$ref": "ApigatewayOperation"
376
+ },
377
+ "scopes": [
378
+ "https://www.googleapis.com/auth/cloud-platform"
379
+ ]
380
+ },
381
+ "setIamPolicy": {
382
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
383
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:setIamPolicy",
384
+ "httpMethod": "POST",
385
+ "id": "apigateway.projects.locations.apis.setIamPolicy",
386
+ "parameterOrder": [
387
+ "resource"
388
+ ],
389
+ "parameters": {
390
+ "resource": {
391
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
392
+ "location": "path",
393
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
394
+ "required": true,
395
+ "type": "string"
396
+ }
397
+ },
398
+ "path": "v1beta/{+resource}:setIamPolicy",
399
+ "request": {
400
+ "$ref": "ApigatewaySetIamPolicyRequest"
401
+ },
402
+ "response": {
403
+ "$ref": "ApigatewayPolicy"
404
+ },
405
+ "scopes": [
406
+ "https://www.googleapis.com/auth/cloud-platform"
407
+ ]
408
+ },
409
+ "testIamPermissions": {
410
+ "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.",
411
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}:testIamPermissions",
412
+ "httpMethod": "POST",
413
+ "id": "apigateway.projects.locations.apis.testIamPermissions",
414
+ "parameterOrder": [
415
+ "resource"
416
+ ],
417
+ "parameters": {
418
+ "resource": {
419
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
420
+ "location": "path",
421
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
422
+ "required": true,
423
+ "type": "string"
424
+ }
425
+ },
426
+ "path": "v1beta/{+resource}:testIamPermissions",
427
+ "request": {
428
+ "$ref": "ApigatewayTestIamPermissionsRequest"
429
+ },
430
+ "response": {
431
+ "$ref": "ApigatewayTestIamPermissionsResponse"
432
+ },
433
+ "scopes": [
434
+ "https://www.googleapis.com/auth/cloud-platform"
435
+ ]
436
+ }
437
+ },
438
+ "resources": {
439
+ "configs": {
440
+ "methods": {
441
+ "create": {
442
+ "description": "Creates a new ApiConfig in a given project and location.",
443
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs",
444
+ "httpMethod": "POST",
445
+ "id": "apigateway.projects.locations.apis.configs.create",
446
+ "parameterOrder": [
447
+ "parent"
448
+ ],
449
+ "parameters": {
450
+ "apiConfigId": {
451
+ "description": "Required. Identifier to assign to the API Config. Must be unique within scope of the parent resource.",
452
+ "location": "query",
453
+ "type": "string"
454
+ },
455
+ "parent": {
456
+ "description": "Required. Parent resource of the API Config, of the form: `projects/*/locations/global/apis/*`",
457
+ "location": "path",
458
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
459
+ "required": true,
460
+ "type": "string"
461
+ }
462
+ },
463
+ "path": "v1beta/{+parent}/configs",
464
+ "request": {
465
+ "$ref": "ApigatewayApiConfig"
466
+ },
467
+ "response": {
468
+ "$ref": "ApigatewayOperation"
469
+ },
470
+ "scopes": [
471
+ "https://www.googleapis.com/auth/cloud-platform"
472
+ ]
473
+ },
474
+ "delete": {
475
+ "description": "Deletes a single ApiConfig.",
476
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
477
+ "httpMethod": "DELETE",
478
+ "id": "apigateway.projects.locations.apis.configs.delete",
479
+ "parameterOrder": [
480
+ "name"
481
+ ],
482
+ "parameters": {
483
+ "name": {
484
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*/configs/*`",
485
+ "location": "path",
486
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
487
+ "required": true,
488
+ "type": "string"
489
+ }
490
+ },
491
+ "path": "v1beta/{+name}",
492
+ "response": {
493
+ "$ref": "ApigatewayOperation"
494
+ },
495
+ "scopes": [
496
+ "https://www.googleapis.com/auth/cloud-platform"
497
+ ]
498
+ },
499
+ "get": {
500
+ "description": "Gets details of a single ApiConfig.",
501
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
502
+ "httpMethod": "GET",
503
+ "id": "apigateway.projects.locations.apis.configs.get",
504
+ "parameterOrder": [
505
+ "name"
506
+ ],
507
+ "parameters": {
508
+ "name": {
509
+ "description": "Required. Resource name of the form: `projects/*/locations/global/apis/*/configs/*`",
510
+ "location": "path",
511
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
512
+ "required": true,
513
+ "type": "string"
514
+ },
515
+ "view": {
516
+ "description": "Specifies which fields of the API Config are returned in the response. Defaults to `BASIC` view.",
517
+ "enum": [
518
+ "CONFIG_VIEW_UNSPECIFIED",
519
+ "BASIC",
520
+ "FULL"
521
+ ],
522
+ "enumDescriptions": [
523
+ "",
524
+ "Do not include configuration source files.",
525
+ "Include configuration source files."
526
+ ],
527
+ "location": "query",
528
+ "type": "string"
529
+ }
530
+ },
531
+ "path": "v1beta/{+name}",
532
+ "response": {
533
+ "$ref": "ApigatewayApiConfig"
534
+ },
535
+ "scopes": [
536
+ "https://www.googleapis.com/auth/cloud-platform"
537
+ ]
538
+ },
539
+ "getIamPolicy": {
540
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
541
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:getIamPolicy",
542
+ "httpMethod": "GET",
543
+ "id": "apigateway.projects.locations.apis.configs.getIamPolicy",
544
+ "parameterOrder": [
545
+ "resource"
546
+ ],
547
+ "parameters": {
548
+ "options.requestedPolicyVersion": {
549
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
550
+ "format": "int32",
551
+ "location": "query",
552
+ "type": "integer"
553
+ },
554
+ "resource": {
555
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
556
+ "location": "path",
557
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
558
+ "required": true,
559
+ "type": "string"
560
+ }
561
+ },
562
+ "path": "v1beta/{+resource}:getIamPolicy",
563
+ "response": {
564
+ "$ref": "ApigatewayPolicy"
565
+ },
566
+ "scopes": [
567
+ "https://www.googleapis.com/auth/cloud-platform"
568
+ ]
569
+ },
570
+ "list": {
571
+ "description": "Lists ApiConfigs in a given project and location.",
572
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs",
573
+ "httpMethod": "GET",
574
+ "id": "apigateway.projects.locations.apis.configs.list",
575
+ "parameterOrder": [
576
+ "parent"
577
+ ],
578
+ "parameters": {
579
+ "filter": {
580
+ "description": "Filter.",
581
+ "location": "query",
582
+ "type": "string"
583
+ },
584
+ "orderBy": {
585
+ "description": "Order by parameters.",
586
+ "location": "query",
587
+ "type": "string"
588
+ },
589
+ "pageSize": {
590
+ "description": "Page size.",
591
+ "format": "int32",
592
+ "location": "query",
593
+ "type": "integer"
594
+ },
595
+ "pageToken": {
596
+ "description": "Page token.",
597
+ "location": "query",
598
+ "type": "string"
599
+ },
600
+ "parent": {
601
+ "description": "Required. Parent resource of the API Config, of the form: `projects/*/locations/global/apis/*`",
602
+ "location": "path",
603
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+$",
604
+ "required": true,
605
+ "type": "string"
606
+ }
607
+ },
608
+ "path": "v1beta/{+parent}/configs",
609
+ "response": {
610
+ "$ref": "ApigatewayListApiConfigsResponse"
611
+ },
612
+ "scopes": [
613
+ "https://www.googleapis.com/auth/cloud-platform"
614
+ ]
615
+ },
616
+ "patch": {
617
+ "description": "Updates the parameters of a single ApiConfig.",
618
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}",
619
+ "httpMethod": "PATCH",
620
+ "id": "apigateway.projects.locations.apis.configs.patch",
621
+ "parameterOrder": [
622
+ "name"
623
+ ],
624
+ "parameters": {
625
+ "name": {
626
+ "description": "Output only. Resource name of the API Config. Format: projects/{project}/locations/global/apis/{api}/configs/{api_config}",
627
+ "location": "path",
628
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
629
+ "required": true,
630
+ "type": "string"
631
+ },
632
+ "updateMask": {
633
+ "description": "Field mask is used to specify the fields to be overwritten in the ApiConfig resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
634
+ "format": "google-fieldmask",
635
+ "location": "query",
636
+ "type": "string"
637
+ }
638
+ },
639
+ "path": "v1beta/{+name}",
640
+ "request": {
641
+ "$ref": "ApigatewayApiConfig"
642
+ },
643
+ "response": {
644
+ "$ref": "ApigatewayOperation"
645
+ },
646
+ "scopes": [
647
+ "https://www.googleapis.com/auth/cloud-platform"
648
+ ]
649
+ },
650
+ "setIamPolicy": {
651
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
652
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:setIamPolicy",
653
+ "httpMethod": "POST",
654
+ "id": "apigateway.projects.locations.apis.configs.setIamPolicy",
655
+ "parameterOrder": [
656
+ "resource"
657
+ ],
658
+ "parameters": {
659
+ "resource": {
660
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
661
+ "location": "path",
662
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
663
+ "required": true,
664
+ "type": "string"
665
+ }
666
+ },
667
+ "path": "v1beta/{+resource}:setIamPolicy",
668
+ "request": {
669
+ "$ref": "ApigatewaySetIamPolicyRequest"
670
+ },
671
+ "response": {
672
+ "$ref": "ApigatewayPolicy"
673
+ },
674
+ "scopes": [
675
+ "https://www.googleapis.com/auth/cloud-platform"
676
+ ]
677
+ },
678
+ "testIamPermissions": {
679
+ "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.",
680
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/apis/{apisId}/configs/{configsId}:testIamPermissions",
681
+ "httpMethod": "POST",
682
+ "id": "apigateway.projects.locations.apis.configs.testIamPermissions",
683
+ "parameterOrder": [
684
+ "resource"
685
+ ],
686
+ "parameters": {
687
+ "resource": {
688
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
689
+ "location": "path",
690
+ "pattern": "^projects/[^/]+/locations/[^/]+/apis/[^/]+/configs/[^/]+$",
691
+ "required": true,
692
+ "type": "string"
693
+ }
694
+ },
695
+ "path": "v1beta/{+resource}:testIamPermissions",
696
+ "request": {
697
+ "$ref": "ApigatewayTestIamPermissionsRequest"
698
+ },
699
+ "response": {
700
+ "$ref": "ApigatewayTestIamPermissionsResponse"
701
+ },
702
+ "scopes": [
703
+ "https://www.googleapis.com/auth/cloud-platform"
704
+ ]
705
+ }
706
+ }
707
+ }
708
+ }
709
+ },
710
+ "gateways": {
711
+ "methods": {
712
+ "create": {
713
+ "description": "Creates a new Gateway in a given project and location.",
714
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways",
715
+ "httpMethod": "POST",
716
+ "id": "apigateway.projects.locations.gateways.create",
717
+ "parameterOrder": [
718
+ "parent"
719
+ ],
720
+ "parameters": {
721
+ "gatewayId": {
722
+ "description": "Required. Identifier to assign to the Gateway. Must be unique within scope of the parent resource.",
723
+ "location": "query",
724
+ "type": "string"
725
+ },
726
+ "parent": {
727
+ "description": "Required. Parent resource of the Gateway, of the form: `projects/*/locations/*`",
728
+ "location": "path",
729
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
730
+ "required": true,
731
+ "type": "string"
732
+ }
733
+ },
734
+ "path": "v1beta/{+parent}/gateways",
735
+ "request": {
736
+ "$ref": "ApigatewayGateway"
737
+ },
738
+ "response": {
739
+ "$ref": "ApigatewayOperation"
740
+ },
741
+ "scopes": [
742
+ "https://www.googleapis.com/auth/cloud-platform"
743
+ ]
744
+ },
745
+ "delete": {
746
+ "description": "Deletes a single Gateway.",
747
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
748
+ "httpMethod": "DELETE",
749
+ "id": "apigateway.projects.locations.gateways.delete",
750
+ "parameterOrder": [
751
+ "name"
752
+ ],
753
+ "parameters": {
754
+ "name": {
755
+ "description": "Required. Resource name of the form: `projects/*/locations/*/gateways/*`",
756
+ "location": "path",
757
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
758
+ "required": true,
759
+ "type": "string"
760
+ }
761
+ },
762
+ "path": "v1beta/{+name}",
763
+ "response": {
764
+ "$ref": "ApigatewayOperation"
765
+ },
766
+ "scopes": [
767
+ "https://www.googleapis.com/auth/cloud-platform"
768
+ ]
769
+ },
770
+ "get": {
771
+ "description": "Gets details of a single Gateway.",
772
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
773
+ "httpMethod": "GET",
774
+ "id": "apigateway.projects.locations.gateways.get",
775
+ "parameterOrder": [
776
+ "name"
777
+ ],
778
+ "parameters": {
779
+ "name": {
780
+ "description": "Required. Resource name of the form: `projects/*/locations/*/gateways/*`",
781
+ "location": "path",
782
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
783
+ "required": true,
784
+ "type": "string"
785
+ }
786
+ },
787
+ "path": "v1beta/{+name}",
788
+ "response": {
789
+ "$ref": "ApigatewayGateway"
790
+ },
791
+ "scopes": [
792
+ "https://www.googleapis.com/auth/cloud-platform"
793
+ ]
794
+ },
795
+ "getIamPolicy": {
796
+ "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
797
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:getIamPolicy",
798
+ "httpMethod": "GET",
799
+ "id": "apigateway.projects.locations.gateways.getIamPolicy",
800
+ "parameterOrder": [
801
+ "resource"
802
+ ],
803
+ "parameters": {
804
+ "options.requestedPolicyVersion": {
805
+ "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
806
+ "format": "int32",
807
+ "location": "query",
808
+ "type": "integer"
809
+ },
810
+ "resource": {
811
+ "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
812
+ "location": "path",
813
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
814
+ "required": true,
815
+ "type": "string"
816
+ }
817
+ },
818
+ "path": "v1beta/{+resource}:getIamPolicy",
819
+ "response": {
820
+ "$ref": "ApigatewayPolicy"
821
+ },
822
+ "scopes": [
823
+ "https://www.googleapis.com/auth/cloud-platform"
824
+ ]
825
+ },
826
+ "list": {
827
+ "description": "Lists Gateways in a given project and location.",
828
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways",
829
+ "httpMethod": "GET",
830
+ "id": "apigateway.projects.locations.gateways.list",
831
+ "parameterOrder": [
832
+ "parent"
833
+ ],
834
+ "parameters": {
835
+ "filter": {
836
+ "description": "Filter.",
837
+ "location": "query",
838
+ "type": "string"
839
+ },
840
+ "orderBy": {
841
+ "description": "Order by parameters.",
842
+ "location": "query",
843
+ "type": "string"
844
+ },
845
+ "pageSize": {
846
+ "description": "Page size.",
847
+ "format": "int32",
848
+ "location": "query",
849
+ "type": "integer"
850
+ },
851
+ "pageToken": {
852
+ "description": "Page token.",
853
+ "location": "query",
854
+ "type": "string"
855
+ },
856
+ "parent": {
857
+ "description": "Required. Parent resource of the Gateway, of the form: `projects/*/locations/*`",
858
+ "location": "path",
859
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
860
+ "required": true,
861
+ "type": "string"
862
+ }
863
+ },
864
+ "path": "v1beta/{+parent}/gateways",
865
+ "response": {
866
+ "$ref": "ApigatewayListGatewaysResponse"
867
+ },
868
+ "scopes": [
869
+ "https://www.googleapis.com/auth/cloud-platform"
870
+ ]
871
+ },
872
+ "patch": {
873
+ "description": "Updates the parameters of a single Gateway.",
874
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}",
875
+ "httpMethod": "PATCH",
876
+ "id": "apigateway.projects.locations.gateways.patch",
877
+ "parameterOrder": [
878
+ "name"
879
+ ],
880
+ "parameters": {
881
+ "name": {
882
+ "description": "Output only. Resource name of the Gateway. Format: projects/{project}/locations/{location}/gateways/{gateway}",
883
+ "location": "path",
884
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
885
+ "required": true,
886
+ "type": "string"
887
+ },
888
+ "updateMask": {
889
+ "description": "Field mask is used to specify the fields to be overwritten in the Gateway resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
890
+ "format": "google-fieldmask",
891
+ "location": "query",
892
+ "type": "string"
893
+ }
894
+ },
895
+ "path": "v1beta/{+name}",
896
+ "request": {
897
+ "$ref": "ApigatewayGateway"
898
+ },
899
+ "response": {
900
+ "$ref": "ApigatewayOperation"
901
+ },
902
+ "scopes": [
903
+ "https://www.googleapis.com/auth/cloud-platform"
904
+ ]
905
+ },
906
+ "setIamPolicy": {
907
+ "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
908
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:setIamPolicy",
909
+ "httpMethod": "POST",
910
+ "id": "apigateway.projects.locations.gateways.setIamPolicy",
911
+ "parameterOrder": [
912
+ "resource"
913
+ ],
914
+ "parameters": {
915
+ "resource": {
916
+ "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
917
+ "location": "path",
918
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
919
+ "required": true,
920
+ "type": "string"
921
+ }
922
+ },
923
+ "path": "v1beta/{+resource}:setIamPolicy",
924
+ "request": {
925
+ "$ref": "ApigatewaySetIamPolicyRequest"
926
+ },
927
+ "response": {
928
+ "$ref": "ApigatewayPolicy"
929
+ },
930
+ "scopes": [
931
+ "https://www.googleapis.com/auth/cloud-platform"
932
+ ]
933
+ },
934
+ "testIamPermissions": {
935
+ "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.",
936
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}:testIamPermissions",
937
+ "httpMethod": "POST",
938
+ "id": "apigateway.projects.locations.gateways.testIamPermissions",
939
+ "parameterOrder": [
940
+ "resource"
941
+ ],
942
+ "parameters": {
943
+ "resource": {
944
+ "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
945
+ "location": "path",
946
+ "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$",
947
+ "required": true,
948
+ "type": "string"
949
+ }
950
+ },
951
+ "path": "v1beta/{+resource}:testIamPermissions",
952
+ "request": {
953
+ "$ref": "ApigatewayTestIamPermissionsRequest"
954
+ },
955
+ "response": {
956
+ "$ref": "ApigatewayTestIamPermissionsResponse"
957
+ },
958
+ "scopes": [
959
+ "https://www.googleapis.com/auth/cloud-platform"
960
+ ]
961
+ }
962
+ }
963
+ },
964
+ "operations": {
965
+ "methods": {
966
+ "cancel": {
967
+ "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`.",
968
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
969
+ "httpMethod": "POST",
970
+ "id": "apigateway.projects.locations.operations.cancel",
971
+ "parameterOrder": [
972
+ "name"
973
+ ],
974
+ "parameters": {
975
+ "name": {
976
+ "description": "The name of the operation resource to be cancelled.",
977
+ "location": "path",
978
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
979
+ "required": true,
980
+ "type": "string"
981
+ }
982
+ },
983
+ "path": "v1beta/{+name}:cancel",
984
+ "request": {
985
+ "$ref": "ApigatewayCancelOperationRequest"
986
+ },
987
+ "response": {
988
+ "$ref": "Empty"
989
+ },
990
+ "scopes": [
991
+ "https://www.googleapis.com/auth/cloud-platform"
992
+ ]
993
+ },
994
+ "delete": {
995
+ "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`.",
996
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
997
+ "httpMethod": "DELETE",
998
+ "id": "apigateway.projects.locations.operations.delete",
999
+ "parameterOrder": [
1000
+ "name"
1001
+ ],
1002
+ "parameters": {
1003
+ "name": {
1004
+ "description": "The name of the operation resource to be deleted.",
1005
+ "location": "path",
1006
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
1007
+ "required": true,
1008
+ "type": "string"
1009
+ }
1010
+ },
1011
+ "path": "v1beta/{+name}",
1012
+ "response": {
1013
+ "$ref": "Empty"
1014
+ },
1015
+ "scopes": [
1016
+ "https://www.googleapis.com/auth/cloud-platform"
1017
+ ]
1018
+ },
1019
+ "get": {
1020
+ "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.",
1021
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
1022
+ "httpMethod": "GET",
1023
+ "id": "apigateway.projects.locations.operations.get",
1024
+ "parameterOrder": [
1025
+ "name"
1026
+ ],
1027
+ "parameters": {
1028
+ "name": {
1029
+ "description": "The name of the operation resource.",
1030
+ "location": "path",
1031
+ "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
1032
+ "required": true,
1033
+ "type": "string"
1034
+ }
1035
+ },
1036
+ "path": "v1beta/{+name}",
1037
+ "response": {
1038
+ "$ref": "ApigatewayOperation"
1039
+ },
1040
+ "scopes": [
1041
+ "https://www.googleapis.com/auth/cloud-platform"
1042
+ ]
1043
+ },
1044
+ "list": {
1045
+ "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
1046
+ "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations",
1047
+ "httpMethod": "GET",
1048
+ "id": "apigateway.projects.locations.operations.list",
1049
+ "parameterOrder": [
1050
+ "name"
1051
+ ],
1052
+ "parameters": {
1053
+ "filter": {
1054
+ "description": "The standard list filter.",
1055
+ "location": "query",
1056
+ "type": "string"
1057
+ },
1058
+ "name": {
1059
+ "description": "The name of the operation's parent resource.",
1060
+ "location": "path",
1061
+ "pattern": "^projects/[^/]+/locations/[^/]+$",
1062
+ "required": true,
1063
+ "type": "string"
1064
+ },
1065
+ "pageSize": {
1066
+ "description": "The standard list page size.",
1067
+ "format": "int32",
1068
+ "location": "query",
1069
+ "type": "integer"
1070
+ },
1071
+ "pageToken": {
1072
+ "description": "The standard list page token.",
1073
+ "location": "query",
1074
+ "type": "string"
1075
+ },
1076
+ "returnPartialSuccess": {
1077
+ "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
1078
+ "location": "query",
1079
+ "type": "boolean"
1080
+ }
1081
+ },
1082
+ "path": "v1beta/{+name}/operations",
1083
+ "response": {
1084
+ "$ref": "ApigatewayListOperationsResponse"
1085
+ },
1086
+ "scopes": [
1087
+ "https://www.googleapis.com/auth/cloud-platform"
1088
+ ]
1089
+ }
1090
+ }
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+ }
1096
+ },
1097
+ "revision": "20251210",
1098
+ "rootUrl": "https://apigateway.googleapis.com/",
1099
+ "schemas": {
1100
+ "ApigatewayApi": {
1101
+ "description": "An API that can be served by one or more Gateways.",
1102
+ "id": "ApigatewayApi",
1103
+ "properties": {
1104
+ "createTime": {
1105
+ "description": "Output only. Created time.",
1106
+ "format": "google-datetime",
1107
+ "readOnly": true,
1108
+ "type": "string"
1109
+ },
1110
+ "displayName": {
1111
+ "description": "Optional. Display name.",
1112
+ "type": "string"
1113
+ },
1114
+ "labels": {
1115
+ "additionalProperties": {
1116
+ "type": "string"
1117
+ },
1118
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1119
+ "type": "object"
1120
+ },
1121
+ "managedService": {
1122
+ "description": "Optional. Immutable. The name of a Google Managed Service ( https://cloud.google.com/service-infrastructure/docs/glossary#managed). If not specified, a new Service will automatically be created in the same project as this API.",
1123
+ "type": "string"
1124
+ },
1125
+ "name": {
1126
+ "description": "Output only. Resource name of the API. Format: projects/{project}/locations/global/apis/{api}",
1127
+ "readOnly": true,
1128
+ "type": "string"
1129
+ },
1130
+ "state": {
1131
+ "description": "Output only. State of the API.",
1132
+ "enum": [
1133
+ "STATE_UNSPECIFIED",
1134
+ "CREATING",
1135
+ "ACTIVE",
1136
+ "FAILED",
1137
+ "DELETING",
1138
+ "UPDATING"
1139
+ ],
1140
+ "enumDescriptions": [
1141
+ "API does not have a state yet.",
1142
+ "API is being created.",
1143
+ "API is active.",
1144
+ "API creation failed.",
1145
+ "API is being deleted.",
1146
+ "API is being updated."
1147
+ ],
1148
+ "readOnly": true,
1149
+ "type": "string"
1150
+ },
1151
+ "updateTime": {
1152
+ "description": "Output only. Updated time.",
1153
+ "format": "google-datetime",
1154
+ "readOnly": true,
1155
+ "type": "string"
1156
+ }
1157
+ },
1158
+ "type": "object"
1159
+ },
1160
+ "ApigatewayApiConfig": {
1161
+ "description": "An API Configuration is a combination of settings for both the Managed Service and Gateways serving this API Config.",
1162
+ "id": "ApigatewayApiConfig",
1163
+ "properties": {
1164
+ "createTime": {
1165
+ "description": "Output only. Created time.",
1166
+ "format": "google-datetime",
1167
+ "readOnly": true,
1168
+ "type": "string"
1169
+ },
1170
+ "displayName": {
1171
+ "description": "Optional. Display name.",
1172
+ "type": "string"
1173
+ },
1174
+ "gatewayConfig": {
1175
+ "$ref": "ApigatewayGatewayConfig",
1176
+ "description": "Immutable. Gateway specific configuration."
1177
+ },
1178
+ "gatewayServiceAccount": {
1179
+ "description": "Immutable. The Google Cloud IAM Service Account that Gateways serving this config should use to authenticate to other services. This may either be the Service Account's email (`{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`) or its full resource name (`projects/{PROJECT}/accounts/{UNIQUE_ID}`). This is most often used when the service is a GCP resource such as a Cloud Run Service or an IAP-secured service.",
1180
+ "type": "string"
1181
+ },
1182
+ "grpcServices": {
1183
+ "description": "Optional. gRPC service definition files. If specified, openapi_documents must not be included.",
1184
+ "items": {
1185
+ "$ref": "ApigatewayApiConfigGrpcServiceDefinition"
1186
+ },
1187
+ "type": "array"
1188
+ },
1189
+ "labels": {
1190
+ "additionalProperties": {
1191
+ "type": "string"
1192
+ },
1193
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1194
+ "type": "object"
1195
+ },
1196
+ "managedServiceConfigs": {
1197
+ "description": "Optional. Service Configuration files. At least one must be included when using gRPC service definitions. See https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview for the expected file contents. If multiple files are specified, the files are merged with the following rules: * All singular scalar fields are merged using \"last one wins\" semantics in the order of the files uploaded. * Repeated fields are concatenated. * Singular embedded messages are merged using these rules for nested fields.",
1198
+ "items": {
1199
+ "$ref": "ApigatewayApiConfigFile"
1200
+ },
1201
+ "type": "array"
1202
+ },
1203
+ "name": {
1204
+ "description": "Output only. Resource name of the API Config. Format: projects/{project}/locations/global/apis/{api}/configs/{api_config}",
1205
+ "readOnly": true,
1206
+ "type": "string"
1207
+ },
1208
+ "openapiDocuments": {
1209
+ "description": "Optional. OpenAPI specification documents. If specified, grpc_services and managed_service_configs must not be included.",
1210
+ "items": {
1211
+ "$ref": "ApigatewayApiConfigOpenApiDocument"
1212
+ },
1213
+ "type": "array"
1214
+ },
1215
+ "serviceConfigId": {
1216
+ "description": "Output only. The ID of the associated Service Config ( https://cloud.google.com/service-infrastructure/docs/glossary#config).",
1217
+ "readOnly": true,
1218
+ "type": "string"
1219
+ },
1220
+ "state": {
1221
+ "description": "Output only. State of the API Config.",
1222
+ "enum": [
1223
+ "STATE_UNSPECIFIED",
1224
+ "CREATING",
1225
+ "ACTIVE",
1226
+ "FAILED",
1227
+ "DELETING",
1228
+ "UPDATING",
1229
+ "ACTIVATING"
1230
+ ],
1231
+ "enumDescriptions": [
1232
+ "API Config does not have a state yet.",
1233
+ "API Config is being created and deployed to the API Controller.",
1234
+ "API Config is ready for use by Gateways.",
1235
+ "API Config creation failed.",
1236
+ "API Config is being deleted.",
1237
+ "API Config is being updated.",
1238
+ "API Config settings are being activated in downstream systems. API Configs in this state cannot be used by Gateways."
1239
+ ],
1240
+ "readOnly": true,
1241
+ "type": "string"
1242
+ },
1243
+ "updateTime": {
1244
+ "description": "Output only. Updated time.",
1245
+ "format": "google-datetime",
1246
+ "readOnly": true,
1247
+ "type": "string"
1248
+ }
1249
+ },
1250
+ "type": "object"
1251
+ },
1252
+ "ApigatewayApiConfigFile": {
1253
+ "description": "A lightweight description of a file.",
1254
+ "id": "ApigatewayApiConfigFile",
1255
+ "properties": {
1256
+ "contents": {
1257
+ "description": "The bytes that constitute the file.",
1258
+ "format": "byte",
1259
+ "type": "string"
1260
+ },
1261
+ "path": {
1262
+ "description": "The file path (full or relative path). This is typically the path of the file when it is uploaded.",
1263
+ "type": "string"
1264
+ }
1265
+ },
1266
+ "type": "object"
1267
+ },
1268
+ "ApigatewayApiConfigGrpcServiceDefinition": {
1269
+ "description": "A gRPC service definition.",
1270
+ "id": "ApigatewayApiConfigGrpcServiceDefinition",
1271
+ "properties": {
1272
+ "fileDescriptorSet": {
1273
+ "$ref": "ApigatewayApiConfigFile",
1274
+ "description": "Input only. File descriptor set, generated by protoc. To generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb. $ protoc --include_imports --include_source_info test.proto -o out.pb"
1275
+ },
1276
+ "source": {
1277
+ "description": "Optional. Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate file_descriptor_set.",
1278
+ "items": {
1279
+ "$ref": "ApigatewayApiConfigFile"
1280
+ },
1281
+ "type": "array"
1282
+ }
1283
+ },
1284
+ "type": "object"
1285
+ },
1286
+ "ApigatewayApiConfigOpenApiDocument": {
1287
+ "description": "An OpenAPI Specification Document describing an API.",
1288
+ "id": "ApigatewayApiConfigOpenApiDocument",
1289
+ "properties": {
1290
+ "document": {
1291
+ "$ref": "ApigatewayApiConfigFile",
1292
+ "description": "The OpenAPI Specification document file."
1293
+ }
1294
+ },
1295
+ "type": "object"
1296
+ },
1297
+ "ApigatewayAuditConfig": {
1298
+ "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.",
1299
+ "id": "ApigatewayAuditConfig",
1300
+ "properties": {
1301
+ "auditLogConfigs": {
1302
+ "description": "The configuration for logging of each type of permission.",
1303
+ "items": {
1304
+ "$ref": "ApigatewayAuditLogConfig"
1305
+ },
1306
+ "type": "array"
1307
+ },
1308
+ "service": {
1309
+ "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.",
1310
+ "type": "string"
1311
+ }
1312
+ },
1313
+ "type": "object"
1314
+ },
1315
+ "ApigatewayAuditLogConfig": {
1316
+ "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.",
1317
+ "id": "ApigatewayAuditLogConfig",
1318
+ "properties": {
1319
+ "exemptedMembers": {
1320
+ "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
1321
+ "items": {
1322
+ "type": "string"
1323
+ },
1324
+ "type": "array"
1325
+ },
1326
+ "logType": {
1327
+ "description": "The log type that this config enables.",
1328
+ "enum": [
1329
+ "LOG_TYPE_UNSPECIFIED",
1330
+ "ADMIN_READ",
1331
+ "DATA_WRITE",
1332
+ "DATA_READ"
1333
+ ],
1334
+ "enumDescriptions": [
1335
+ "Default case. Should never be this.",
1336
+ "Admin reads. Example: CloudIAM getIamPolicy",
1337
+ "Data writes. Example: CloudSQL Users create",
1338
+ "Data reads. Example: CloudSQL Users list"
1339
+ ],
1340
+ "type": "string"
1341
+ }
1342
+ },
1343
+ "type": "object"
1344
+ },
1345
+ "ApigatewayBackendConfig": {
1346
+ "deprecated": true,
1347
+ "description": "Configuration for all backends.",
1348
+ "id": "ApigatewayBackendConfig",
1349
+ "properties": {
1350
+ "googleServiceAccount": {
1351
+ "description": "Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured (https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend). This may either be the Service Account's email (i.e. \"{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com\") or its full resource name (i.e. \"projects/{PROJECT}/accounts/{UNIQUE_ID}\"). This is most often used when the backend is a GCP resource such as a Cloud Run Service or an IAP-secured service. Note that this token is always sent as an authorization header bearer token. The audience of the OIDC token is configured in the associated Service Config in the BackendRule option (https://github.com/googleapis/googleapis/blob/master/google/api/backend.proto#L125).",
1352
+ "type": "string"
1353
+ }
1354
+ },
1355
+ "type": "object"
1356
+ },
1357
+ "ApigatewayBinding": {
1358
+ "description": "Associates `members`, or principals, with a `role`.",
1359
+ "id": "ApigatewayBinding",
1360
+ "properties": {
1361
+ "condition": {
1362
+ "$ref": "ApigatewayExpr",
1363
+ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
1364
+ },
1365
+ "members": {
1366
+ "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
1367
+ "items": {
1368
+ "type": "string"
1369
+ },
1370
+ "type": "array"
1371
+ },
1372
+ "role": {
1373
+ "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
1374
+ "type": "string"
1375
+ }
1376
+ },
1377
+ "type": "object"
1378
+ },
1379
+ "ApigatewayCancelOperationRequest": {
1380
+ "description": "The request message for Operations.CancelOperation.",
1381
+ "id": "ApigatewayCancelOperationRequest",
1382
+ "properties": {},
1383
+ "type": "object"
1384
+ },
1385
+ "ApigatewayExpr": {
1386
+ "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
1387
+ "id": "ApigatewayExpr",
1388
+ "properties": {
1389
+ "description": {
1390
+ "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
1391
+ "type": "string"
1392
+ },
1393
+ "expression": {
1394
+ "description": "Textual representation of an expression in Common Expression Language syntax.",
1395
+ "type": "string"
1396
+ },
1397
+ "location": {
1398
+ "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
1399
+ "type": "string"
1400
+ },
1401
+ "title": {
1402
+ "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
1403
+ "type": "string"
1404
+ }
1405
+ },
1406
+ "type": "object"
1407
+ },
1408
+ "ApigatewayGateway": {
1409
+ "description": "A Gateway is an API-aware HTTP proxy. It performs API-Method and/or API-Consumer specific actions based on an API Config such as authentication, policy enforcement, and backend selection.",
1410
+ "id": "ApigatewayGateway",
1411
+ "properties": {
1412
+ "apiConfig": {
1413
+ "description": "Required. Resource name of the API Config for this Gateway. Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}",
1414
+ "type": "string"
1415
+ },
1416
+ "createTime": {
1417
+ "description": "Output only. Created time.",
1418
+ "format": "google-datetime",
1419
+ "readOnly": true,
1420
+ "type": "string"
1421
+ },
1422
+ "defaultHostname": {
1423
+ "description": "Output only. The default API Gateway host name of the form `{gateway_id}-{hash}.{region_code}.gateway.dev`.",
1424
+ "readOnly": true,
1425
+ "type": "string"
1426
+ },
1427
+ "displayName": {
1428
+ "description": "Optional. Display name.",
1429
+ "type": "string"
1430
+ },
1431
+ "labels": {
1432
+ "additionalProperties": {
1433
+ "type": "string"
1434
+ },
1435
+ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources",
1436
+ "type": "object"
1437
+ },
1438
+ "name": {
1439
+ "description": "Output only. Resource name of the Gateway. Format: projects/{project}/locations/{location}/gateways/{gateway}",
1440
+ "readOnly": true,
1441
+ "type": "string"
1442
+ },
1443
+ "state": {
1444
+ "description": "Output only. The current state of the Gateway.",
1445
+ "enum": [
1446
+ "STATE_UNSPECIFIED",
1447
+ "CREATING",
1448
+ "ACTIVE",
1449
+ "FAILED",
1450
+ "DELETING",
1451
+ "UPDATING"
1452
+ ],
1453
+ "enumDescriptions": [
1454
+ "Gateway does not have a state yet.",
1455
+ "Gateway is being created.",
1456
+ "Gateway is running and ready for requests.",
1457
+ "Gateway creation failed.",
1458
+ "Gateway is being deleted.",
1459
+ "Gateway is being updated."
1460
+ ],
1461
+ "readOnly": true,
1462
+ "type": "string"
1463
+ },
1464
+ "updateTime": {
1465
+ "description": "Output only. Updated time.",
1466
+ "format": "google-datetime",
1467
+ "readOnly": true,
1468
+ "type": "string"
1469
+ }
1470
+ },
1471
+ "type": "object"
1472
+ },
1473
+ "ApigatewayGatewayConfig": {
1474
+ "description": "Configuration settings for Gateways.",
1475
+ "id": "ApigatewayGatewayConfig",
1476
+ "properties": {
1477
+ "backendConfig": {
1478
+ "$ref": "ApigatewayBackendConfig",
1479
+ "deprecated": true,
1480
+ "description": "Required. Backend settings that are applied to all backends of the Gateway."
1481
+ }
1482
+ },
1483
+ "type": "object"
1484
+ },
1485
+ "ApigatewayListApiConfigsResponse": {
1486
+ "description": "Response message for ApiGatewayService.ListApiConfigs",
1487
+ "id": "ApigatewayListApiConfigsResponse",
1488
+ "properties": {
1489
+ "apiConfigs": {
1490
+ "description": "API Configs.",
1491
+ "items": {
1492
+ "$ref": "ApigatewayApiConfig"
1493
+ },
1494
+ "type": "array"
1495
+ },
1496
+ "nextPageToken": {
1497
+ "description": "Next page token.",
1498
+ "type": "string"
1499
+ },
1500
+ "unreachableLocations": {
1501
+ "description": "Locations that could not be reached.",
1502
+ "items": {
1503
+ "type": "string"
1504
+ },
1505
+ "type": "array"
1506
+ }
1507
+ },
1508
+ "type": "object"
1509
+ },
1510
+ "ApigatewayListApisResponse": {
1511
+ "description": "Response message for ApiGatewayService.ListApis",
1512
+ "id": "ApigatewayListApisResponse",
1513
+ "properties": {
1514
+ "apis": {
1515
+ "description": "APIs.",
1516
+ "items": {
1517
+ "$ref": "ApigatewayApi"
1518
+ },
1519
+ "type": "array"
1520
+ },
1521
+ "nextPageToken": {
1522
+ "description": "Next page token.",
1523
+ "type": "string"
1524
+ },
1525
+ "unreachableLocations": {
1526
+ "description": "Locations that could not be reached.",
1527
+ "items": {
1528
+ "type": "string"
1529
+ },
1530
+ "type": "array"
1531
+ }
1532
+ },
1533
+ "type": "object"
1534
+ },
1535
+ "ApigatewayListGatewaysResponse": {
1536
+ "description": "Response message for ApiGatewayService.ListGateways",
1537
+ "id": "ApigatewayListGatewaysResponse",
1538
+ "properties": {
1539
+ "gateways": {
1540
+ "description": "Gateways.",
1541
+ "items": {
1542
+ "$ref": "ApigatewayGateway"
1543
+ },
1544
+ "type": "array"
1545
+ },
1546
+ "nextPageToken": {
1547
+ "description": "Next page token.",
1548
+ "type": "string"
1549
+ },
1550
+ "unreachableLocations": {
1551
+ "description": "Locations that could not be reached.",
1552
+ "items": {
1553
+ "type": "string"
1554
+ },
1555
+ "type": "array"
1556
+ }
1557
+ },
1558
+ "type": "object"
1559
+ },
1560
+ "ApigatewayListLocationsResponse": {
1561
+ "description": "The response message for Locations.ListLocations.",
1562
+ "id": "ApigatewayListLocationsResponse",
1563
+ "properties": {
1564
+ "locations": {
1565
+ "description": "A list of locations that matches the specified filter in the request.",
1566
+ "items": {
1567
+ "$ref": "ApigatewayLocation"
1568
+ },
1569
+ "type": "array"
1570
+ },
1571
+ "nextPageToken": {
1572
+ "description": "The standard List next-page token.",
1573
+ "type": "string"
1574
+ }
1575
+ },
1576
+ "type": "object"
1577
+ },
1578
+ "ApigatewayListOperationsResponse": {
1579
+ "description": "The response message for Operations.ListOperations.",
1580
+ "id": "ApigatewayListOperationsResponse",
1581
+ "properties": {
1582
+ "nextPageToken": {
1583
+ "description": "The standard List next-page token.",
1584
+ "type": "string"
1585
+ },
1586
+ "operations": {
1587
+ "description": "A list of operations that matches the specified filter in the request.",
1588
+ "items": {
1589
+ "$ref": "ApigatewayOperation"
1590
+ },
1591
+ "type": "array"
1592
+ },
1593
+ "unreachable": {
1594
+ "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
1595
+ "items": {
1596
+ "type": "string"
1597
+ },
1598
+ "type": "array"
1599
+ }
1600
+ },
1601
+ "type": "object"
1602
+ },
1603
+ "ApigatewayLocation": {
1604
+ "description": "A resource that represents a Google Cloud location.",
1605
+ "id": "ApigatewayLocation",
1606
+ "properties": {
1607
+ "displayName": {
1608
+ "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
1609
+ "type": "string"
1610
+ },
1611
+ "labels": {
1612
+ "additionalProperties": {
1613
+ "type": "string"
1614
+ },
1615
+ "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
1616
+ "type": "object"
1617
+ },
1618
+ "locationId": {
1619
+ "description": "The canonical id for this location. For example: `\"us-east1\"`.",
1620
+ "type": "string"
1621
+ },
1622
+ "metadata": {
1623
+ "additionalProperties": {
1624
+ "description": "Properties of the object. Contains field @type with type URL.",
1625
+ "type": "any"
1626
+ },
1627
+ "description": "Service-specific metadata. For example the available capacity at the given location.",
1628
+ "type": "object"
1629
+ },
1630
+ "name": {
1631
+ "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
1632
+ "type": "string"
1633
+ }
1634
+ },
1635
+ "type": "object"
1636
+ },
1637
+ "ApigatewayOperation": {
1638
+ "description": "This resource represents a long-running operation that is the result of a network API call.",
1639
+ "id": "ApigatewayOperation",
1640
+ "properties": {
1641
+ "done": {
1642
+ "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.",
1643
+ "type": "boolean"
1644
+ },
1645
+ "error": {
1646
+ "$ref": "ApigatewayStatus",
1647
+ "description": "The error result of the operation in case of failure or cancellation."
1648
+ },
1649
+ "metadata": {
1650
+ "additionalProperties": {
1651
+ "description": "Properties of the object. Contains field @type with type URL.",
1652
+ "type": "any"
1653
+ },
1654
+ "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.",
1655
+ "type": "object"
1656
+ },
1657
+ "name": {
1658
+ "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
1659
+ "type": "string"
1660
+ },
1661
+ "response": {
1662
+ "additionalProperties": {
1663
+ "description": "Properties of the object. Contains field @type with type URL.",
1664
+ "type": "any"
1665
+ },
1666
+ "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
1667
+ "type": "object"
1668
+ }
1669
+ },
1670
+ "type": "object"
1671
+ },
1672
+ "ApigatewayOperationMetadata": {
1673
+ "description": "Represents the metadata of the long-running operation.",
1674
+ "id": "ApigatewayOperationMetadata",
1675
+ "properties": {
1676
+ "apiVersion": {
1677
+ "description": "Output only. API version used to start the operation.",
1678
+ "readOnly": true,
1679
+ "type": "string"
1680
+ },
1681
+ "createTime": {
1682
+ "description": "Output only. The time the operation was created.",
1683
+ "format": "google-datetime",
1684
+ "readOnly": true,
1685
+ "type": "string"
1686
+ },
1687
+ "diagnostics": {
1688
+ "description": "Output only. Diagnostics generated during processing of configuration source files.",
1689
+ "items": {
1690
+ "$ref": "ApigatewayOperationMetadataDiagnostic"
1691
+ },
1692
+ "readOnly": true,
1693
+ "type": "array"
1694
+ },
1695
+ "endTime": {
1696
+ "description": "Output only. The time the operation finished running.",
1697
+ "format": "google-datetime",
1698
+ "readOnly": true,
1699
+ "type": "string"
1700
+ },
1701
+ "requestedCancellation": {
1702
+ "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
1703
+ "readOnly": true,
1704
+ "type": "boolean"
1705
+ },
1706
+ "statusMessage": {
1707
+ "description": "Output only. Human-readable status of the operation, if any.",
1708
+ "readOnly": true,
1709
+ "type": "string"
1710
+ },
1711
+ "target": {
1712
+ "description": "Output only. Server-defined resource path for the target of the operation.",
1713
+ "readOnly": true,
1714
+ "type": "string"
1715
+ },
1716
+ "verb": {
1717
+ "description": "Output only. Name of the verb executed by the operation.",
1718
+ "readOnly": true,
1719
+ "type": "string"
1720
+ }
1721
+ },
1722
+ "type": "object"
1723
+ },
1724
+ "ApigatewayOperationMetadataDiagnostic": {
1725
+ "description": "Diagnostic information from configuration processing.",
1726
+ "id": "ApigatewayOperationMetadataDiagnostic",
1727
+ "properties": {
1728
+ "location": {
1729
+ "description": "Location of the diagnostic.",
1730
+ "type": "string"
1731
+ },
1732
+ "message": {
1733
+ "description": "The diagnostic message.",
1734
+ "type": "string"
1735
+ }
1736
+ },
1737
+ "type": "object"
1738
+ },
1739
+ "ApigatewayPolicy": {
1740
+ "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
1741
+ "id": "ApigatewayPolicy",
1742
+ "properties": {
1743
+ "auditConfigs": {
1744
+ "description": "Specifies cloud audit logging configuration for this policy.",
1745
+ "items": {
1746
+ "$ref": "ApigatewayAuditConfig"
1747
+ },
1748
+ "type": "array"
1749
+ },
1750
+ "bindings": {
1751
+ "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.",
1752
+ "items": {
1753
+ "$ref": "ApigatewayBinding"
1754
+ },
1755
+ "type": "array"
1756
+ },
1757
+ "etag": {
1758
+ "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
1759
+ "format": "byte",
1760
+ "type": "string"
1761
+ },
1762
+ "version": {
1763
+ "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
1764
+ "format": "int32",
1765
+ "type": "integer"
1766
+ }
1767
+ },
1768
+ "type": "object"
1769
+ },
1770
+ "ApigatewaySetIamPolicyRequest": {
1771
+ "description": "Request message for `SetIamPolicy` method.",
1772
+ "id": "ApigatewaySetIamPolicyRequest",
1773
+ "properties": {
1774
+ "policy": {
1775
+ "$ref": "ApigatewayPolicy",
1776
+ "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them."
1777
+ },
1778
+ "updateMask": {
1779
+ "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
1780
+ "format": "google-fieldmask",
1781
+ "type": "string"
1782
+ }
1783
+ },
1784
+ "type": "object"
1785
+ },
1786
+ "ApigatewayStatus": {
1787
+ "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
1788
+ "id": "ApigatewayStatus",
1789
+ "properties": {
1790
+ "code": {
1791
+ "description": "The status code, which should be an enum value of google.rpc.Code.",
1792
+ "format": "int32",
1793
+ "type": "integer"
1794
+ },
1795
+ "details": {
1796
+ "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
1797
+ "items": {
1798
+ "additionalProperties": {
1799
+ "description": "Properties of the object. Contains field @type with type URL.",
1800
+ "type": "any"
1801
+ },
1802
+ "type": "object"
1803
+ },
1804
+ "type": "array"
1805
+ },
1806
+ "message": {
1807
+ "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.",
1808
+ "type": "string"
1809
+ }
1810
+ },
1811
+ "type": "object"
1812
+ },
1813
+ "ApigatewayTestIamPermissionsRequest": {
1814
+ "description": "Request message for `TestIamPermissions` method.",
1815
+ "id": "ApigatewayTestIamPermissionsRequest",
1816
+ "properties": {
1817
+ "permissions": {
1818
+ "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).",
1819
+ "items": {
1820
+ "type": "string"
1821
+ },
1822
+ "type": "array"
1823
+ }
1824
+ },
1825
+ "type": "object"
1826
+ },
1827
+ "ApigatewayTestIamPermissionsResponse": {
1828
+ "description": "Response message for `TestIamPermissions` method.",
1829
+ "id": "ApigatewayTestIamPermissionsResponse",
1830
+ "properties": {
1831
+ "permissions": {
1832
+ "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
1833
+ "items": {
1834
+ "type": "string"
1835
+ },
1836
+ "type": "array"
1837
+ }
1838
+ },
1839
+ "type": "object"
1840
+ },
1841
+ "Empty": {
1842
+ "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
1843
+ "id": "Empty",
1844
+ "properties": {},
1845
+ "type": "object"
1846
+ }
1847
+ },
1848
+ "servicePath": "",
1849
+ "title": "API Gateway API",
1850
+ "version": "v1beta",
1851
+ "version_module": true
1852
+ }
DiscoveryJson/apigeeregistry.v1.json ADDED
The diff for this file is too large to render. See raw diff
 
DiscoveryJson/apihub.v1.json ADDED
The diff for this file is too large to render. See raw diff