diff --git a/.rspec b/.rspec index 7438fbe51..16f9cdb01 100644 --- a/.rspec +++ b/.rspec @@ -1,2 +1,2 @@ ---colour +--color --format documentation diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 000000000..33d647ecf --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,7 @@ +inherit_from: .rubocop_todo.yml + +Metrics/LineLength: + Max: 120 + +Style/FormatString: + EnforcedStyle: sprintf diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 000000000..5f8512603 --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,63 @@ +# This configuration was generated by `rubocop --auto-gen-config` +# on 2015-03-25 23:30:36 -0700 using RuboCop version 0.29.1. +# The point is for the user to remove these configuration records +# one by one as the offenses are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of RuboCop, may require this file to be generated again. + +# Offense count: 19 +Metrics/AbcSize: + Max: 79 + +# Offense count: 2 +# Configuration parameters: CountComments. +Metrics/ClassLength: + Max: 220 + +# Offense count: 5 +Metrics/CyclomaticComplexity: + Max: 10 + +# Offense count: 99 +# Configuration parameters: AllowURI, URISchemes. +Metrics/LineLength: + Max: 127 + +# Offense count: 18 +# Configuration parameters: CountComments. +Metrics/MethodLength: + Max: 43 + +# Offense count: 1 +# Configuration parameters: CountKeywordArgs. +Metrics/ParameterLists: + Max: 6 + +# Offense count: 4 +Metrics/PerceivedComplexity: + Max: 11 + +# Offense count: 14 +Style/Documentation: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +Style/EmptyLines: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +Style/EmptyLinesAroundClassBody: + Enabled: false + +# Offense count: 2 +# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles. +Style/Next: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +Style/RedundantSelf: + Enabled: false diff --git a/.travis.yml b/.travis.yml index 2a453720d..fb752eda9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,15 +3,13 @@ rvm: - 2.2 - 2.0.0 - 2.1 - - 1.9.3 - - rbx-2 - - jruby + - jruby-9000 env: - RAILS_VERSION="~>3.2" - RAILS_VERSION="~>4.0.0" - RAILS_VERSION="~>4.1.0" - RAILS_VERSION="~>4.2.0" -script: "bundle exec rake spec:all" +script: "rake spec:all" before_install: - sudo apt-get update - sudo apt-get install idn diff --git a/.yardopts b/.yardopts index fa8f29d03..00feaac9c 100644 --- a/.yardopts +++ b/.yardopts @@ -1,7 +1,12 @@ ---markup markdown +--hide-void-return +--no-private +--verbose +--markup-provider=redcarpet +--markup=markdown lib/**/*.rb -ext/**/*.c +generated/**/*.rb - README.md -CHANGELOG.md +MIGRATING.md +CONTRIBUTING.md LICENSE diff --git a/CHANGELOG.md b/CHANGELOG.md index 049eff05c..1c0af91b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 0.9.0 +* WARNING: Please see [MIGRATING](MIGRATING.md) for important information. +* API classes are now generated ahead of time instead of at runtime. +* Drop support for Ruby versions < 2.0 +* Switch from Faraday to Hurley for HTTP client + # 0.8.6 * Use discovered 'rootUrl' as base URI for services * Respect discovered methods with colons in path diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1e65911f8..448f78ab4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ ## Contributor License Agreements -We'd love to accept your sample apps and patches! Before we can take them, we +We'd love to accept your sample apps and patches! Before we can take them, we have to jump a couple of legal hurdles. Please fill out either the individual or corporate Contributor License Agreement @@ -29,4 +29,3 @@ accept your pull requests. 1. Ensure that your code is clear and comprehensible. 1. Ensure that your code has an appropriate set of unit tests which all pass. 1. Submit a pull request. - diff --git a/Gemfile b/Gemfile index 9e6d43ad8..837bdf48c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,35 @@ source 'https://rubygems.org' +# Specify your gem's dependencies in google-apis.gemspec gemspec -gem 'jruby-openssl', :platforms => :jruby + +group :development do + gem 'bundler', '~> 1.7' + gem 'rake', '~> 10.0' + gem 'rspec', '~> 3.1' + gem 'json_spec', '~> 1.1' + gem 'webmock', '~> 1.21' + gem 'simplecov', '~> 0.9' + gem 'coveralls', '~> 0.7.11' + gem 'rubocop', '~> 0.29' + gem 'launchy', '~> 2.4' +end + +platforms :jruby do + group :development do + gem 'jruby-openssl' + end +end + +platforms :ruby do + group :development do + gem 'yard', '~> 0.8' + gem 'redcarpet', '~> 3.2' + gem 'github-markup', '~> 1.3' + end +end if ENV['RAILS_VERSION'] gem 'rails', ENV['RAILS_VERSION'] -end \ No newline at end of file +end diff --git a/MIGRATING.md b/MIGRATING.md new file mode 100644 index 000000000..f86eec363 --- /dev/null +++ b/MIGRATING.md @@ -0,0 +1,171 @@ +# Migrating from version `0.8.x` to `0.9` + +Many changes and improvements have been made to the `google-api-ruby-client` +library to bring it to `0.9`. If you are starting a new project or haven't used +this library before version `0.9`, see the [README][readme] to get started +as you won't need to migrate anything. + +Code written against the `0.8.x` version of this library will not work with the `0.9` +version without modification. + +## Discovery + +In `0.8.x` the library would "discover" APIs on the fly, introducing +additional network calls and instability. That has been fixed in `0.9`. + +To get the `drive` client in `0.8.x` required this: + +```ruby +require 'google/api_client' + +client = Google::APIClient.new +drive = client.discovered_api('drive', 'v2') +``` + +In `0.9` the same thing can be accomplished like this: + +```ruby +require 'google/apis/drive_v2' + +drive = Google::Apis::DriveV2::DriveService.new +``` + +All APIs are immediately accessible without requiring additional network calls or runtime code generation. + +## API Methods + +The calling style for API methods has changed. In `0.8.x` all calls were via a generic `execute` method. In `0.9` +the generated services have fully defined method signatures for all available methods. + +To get a file using the Google Drive API in `0.8.x` required this: + +```ruby +file = client.execute(:api_method => drive.file.get, :parameters => { 'id' => 'abc123' }) +``` + +In `0.9` the same thing can be accomplished like this: + +```ruby +file = drive.get_file('abc123') +``` + +Full API definitions including available methods, parameters, and data classes can be found in the `generated` directory. + +## Authorization + +In the 0.9 version of this library, the authentication and authorization code was moved +to the new [googleauth](https://github.com/google/google-auth-library-ruby) library. While the new library provides +significantly simpler APIs for some use cases, not all features have been migrated. Missing features +are expected to be added by end of Q2 2015. + +The underlying [Signet](https://github.com/google/signet) is still used for authorization. OAuth 2 credentials obtained +previously will continue to work with the `0.9` version. OAuth 1 is no longer supported. + +## Media uploads + +Media uploads are significantly simpler in `0.9`. + +The old `0.8.x` way of uploading media: + +```ruby +media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4') +metadata = { + 'title' => 'My movie', + 'description' => 'The best home movie ever made' +} +client.execute(:api_method => drive.files.insert, + :parameters => { 'uploadType' => 'multipart' }, + :body_object => metadata, + :media => media ) +``` + +The new way in `0.9` using `upload_source` and `content_type` parameters: + +```ruby +metadata = { + title: 'My movie', + description: 'The best home movie ever made' +} +drive.insert_file(metadata, upload_source: 'mymovie.m4v', content_type: 'video/mp4') +``` + +`upload_source` can be either a path to a file, an `IO` stream, or a `StringIO` instance. + +Uploads are resumable and will be automatically retried if interrupted. + +## Media downloads + +`0.9` introduces support for media downloads (`alt=media`). To download content, use the `download_dest` parameter: + +```ruby +drive.get_file('abc123', download_dest: '/tmp/myfile.txt') +``` + +`download_dest` may be either a path to a file or an `IO` stream. + +## Batch Requests + +The old `0.8.x` way of performing batch requests: + +```ruby +client = Google::APIClient.new +urlshortener = client.discovered_api('urlshortener') + +batch = Google::APIClient::BatchRequest.new do |result| + puts result.data +end + +batch.add(:api_method => urlshortener.url.insert, + :body_object => { 'longUrl' => 'http://example.com/foo' }) +batch.add(:api_method => urlshortener.url.insert, + :body_object => { 'longUrl' => 'http://example.com/bar' }) +client.execute(batch) +``` + +In `0.9`, the equivalent code is: + +```ruby +require 'google/apis/urlshortner_v1' + +urlshortener = Google::Apis::UrlshortenerV1::UrlshortenerService.new + +urlshortener.batch do |urlshortener| + urlshortner.insert_url({long_url: 'http://example.com/foo'}) do |res, err| + puts res + end + urlshortner.insert_url({long_url: 'http://example.com/bar'}) do |res, err| + puts res + end +end +``` + +Or if sharing the same block: + +```ruby +require 'google/apis/urlshortner_v1' + +urlshortener = Google::Apis::UrlshortenerV1::UrlshortenerService.new + +callback = lambda { |res, err| puts res } +urlshortener.batch do |urlshortener| + urlshortner.insert_url({long_url: 'http://example.com/foo'}, &callback) + urlshortner.insert_url({long_url: 'http://example.com/bar'}, &callback) +end +``` + +## JRuby + +Jruby 1.7.4 in 2.0 compatibility mode is supported. To enable for a specific script: + +``` +jruby --2.0 myscript.rb +``` + +Or set as the default: + +``` +export JRUBY_OPTS=--2.0 +``` + +JRuby 9000 will be supported once released. + diff --git a/README.md b/README.md index 510ae817e..974f4ea08 100644 --- a/README.md +++ b/README.md @@ -1,218 +1,226 @@ # Google API Client -
-
Homepage
http://www.github.com/google/google-api-ruby-client
-
Authors
Bob Aman, Steven Bazyl
-
Copyright
Copyright © 2011 Google, Inc.
-
License
Apache 2.0
-
- -[![Build Status](https://secure.travis-ci.org/google/google-api-ruby-client.png)](http://travis-ci.org/google/google-api-ruby-client) -[![Dependency Status](https://gemnasium.com/google/google-api-ruby-client.png)](https://gemnasium.com/google/google-api-ruby-client) - -## Description - -The Google API Ruby Client makes it trivial to discover and access supported -APIs. - ## Alpha -This library is in Alpha. We will make an effort to support the library, but we reserve the right to make incompatible changes when necessary. +This library is in Alpha. We will make an effort to support the library, but we reserve the right to make incompatible +changes when necessary. -## Install +## Migrating from 0.8.x -Be sure `https://rubygems.org/` is in your gem sources. +Version 0.9 is not compatible with previous versions. See [MIGRATING](MIGRATING.md) for additional details on how to +migrate to the latest version. -For normal client usage, this is sufficient: +## Installation -```bash -$ gem install google-api-client -``` - -## Example Usage +Add this line to your application's Gemfile: ```ruby -require 'google/api_client' -require 'google/api_client/client_secrets' -require 'google/api_client/auth/installed_app' - -# Initialize the client. -client = Google::APIClient.new( - :application_name => 'Example Ruby application', - :application_version => '1.0.0' -) - -# Initialize Google+ API. Note this will make a request to the -# discovery service every time, so be sure to use serialization -# in your production code. Check the samples for more details. -plus = client.discovered_api('plus') - -# Load client secrets from your client_secrets.json. -client_secrets = Google::APIClient::ClientSecrets.load - -# Run installed application flow. Check the samples for a more -# complete example that saves the credentials between runs. -flow = Google::APIClient::InstalledAppFlow.new( - :client_id => client_secrets.client_id, - :client_secret => client_secrets.client_secret, - :scope => ['https://www.googleapis.com/auth/plus.me'] -) -client.authorization = flow.authorize - -# Make an API call. -result = client.execute( - :api_method => plus.activities.list, - :parameters => {'collection' => 'public', 'userId' => 'me'} -) - -puts result.data +gem 'google-api-client' ``` -## API Features +And then execute: -### API Discovery + $ bundle -To take full advantage of the client, load API definitions prior to use. To load an API: +Or install it yourself as: + + $ gem install google-api-client + +## Usage + +### Basic usage + +To use an API, include the corresponding generated file and instantiate the service. For example to use the Drive API: ```ruby -urlshortener = client.discovered_api('urlshortener') -``` +require 'google/apis/drive_v2' -Specific versions of the API can be loaded as well: +Drive = Google::Apis::DriveV2 # Alias the module +drive = Drive::DriveService.new +drive.authorization = authorization # See Googleauth or Signet libraries -```ruby -drive = client.discovered_api('drive', 'v2') -``` - -Locally cached discovery documents may be used as well. To load an API from a local file: - -```ruby -# Output discovery document to JSON -File.open('my-api.json', 'w') do |f| f.puts MultiJson.dump(client.discovery_document('myapi', 'v1')) end - -# Read discovery document and load API -doc = File.read('my-api.json') -client.register_discovery_document('myapi', 'v1', doc) -my_api = client.discovered_api('myapi', 'v1') -``` - -### Authorization - -Most interactions with Google APIs require users to authorize applications via OAuth 2.0. The client library uses [Signet](https://github.com/google/signet) to handle most aspects of authorization. For additional details about Google's OAuth support, see [Google Developers](https://developers.google.com/accounts/docs/OAuth2). - -Credentials can be managed at the connection level, as shown, or supplied on a per-request basis when calling `execute`. - -For server-to-server interactions, like those between a web application and Google Cloud Storage, Prediction, or BigQuery APIs, use service accounts. - -As of version 0.8.3, service accounts can be configured using -[Application Default Credentials][1], which rely on the credentials being -available in a well-known location. If the credentials are not present -and it's being used on a Compute Engine VM, it will use the VM's default credentials. - -```ruby -client.authorization = :google_app_default # in a later version, this will become the default -client.authorization.fetch_access_token! -client.execute(...) -``` - -This is simpler API to use than in previous versions, although that is still available: - -```ruby -key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret') -client.authorization = Signet::OAuth2::Client.new( - :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', - :audience => 'https://accounts.google.com/o/oauth2/token', - :scope => 'https://www.googleapis.com/auth/prediction', - :issuer => '123456-abcdef@developer.gserviceaccount.com', - :signing_key => key) -client.authorization.fetch_access_token! -client.execute(...) -``` - -Service accounts are also used for delegation in Google Apps domains. The target user for impersonation is specified by setting the `:person` parameter to the user's email address -in the credentials. Detailed instructions on how to enable delegation for your domain can be found at [developers.google.com](https://developers.google.com/drive/delegation). - -### Automatic Retries & Backoff - -The API client can automatically retry requests for recoverable errors. To enable retries, set the `client.retries` property to -the number of additional attempts. To avoid flooding servers, retries invovle a 1 second delay that increases on each subsequent retry. -In the case of authentication token expiry, the API client will attempt to refresh the token and retry the failed operation - this -is a specific exception to the retry rules. - -The default value for retries is 0, but will be enabled by default in future releases. - -### Batching Requests - -Some Google APIs support batching requests into a single HTTP request. Use `Google::APIClient::BatchRequest` -to bundle multiple requests together. - -Example: - -```ruby -client = Google::APIClient.new -urlshortener = client.discovered_api('urlshortener') - -batch = Google::APIClient::BatchRequest.new do |result| - puts result.data +# Search for files in Drive (first page only) +files = drive.list_files(q: "title contains 'finances'") +files.items.each do |file| + puts file.title end -batch.add(:api_method => urlshortener.url.insert, - :body_object => { 'longUrl' => 'http://example.com/foo' }) -batch.add(:api_method => urlshortener.url.insert, - :body_object => { 'longUrl' => 'http://example.com/bar' }) -client.execute(batch) +# Upload a file +metadata = Drive::File.new(title: 'My document') +metadata = drive.insert_file(metadata, upload_source: 'test.txt', content_type: 'text/plain') + +# Download a file +drive.get_file(metadata.id, download_dest: '/tmp/myfile.txt') ``` -Blocks for handling responses can be specified either at the batch level or when adding an individual API call. For example: +### Media + +Methods that allow media operations have additional parameters to specify the upload source or download destination. + +For uploads, the `upload_source` parameter can be specified with either a path to a file, an `IO` stream, or `StringIO` +instance. + +For downloads, the `download_dest` parameter can also be either a path to a file, an `IO` stream, or `StringIO` instance. + +Both uploads & downloads are resumable. If an error occurs during transmission the request will be automatically +retried from the last received byte. + +### Errors & Retries + +Retries are disabled by default, but enabling retries is strongly encouraged. The number of retries can be configured +via `Google::Apis::RequestOptions`. Any number greater than 0 will enable retries. + +To enable retries for all services: ```ruby -batch.add(:api_method=>urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) do |result| - puts result.data +Google::Apis::RequestOptions.default.retries = 5 +``` + +With retries enabled globally, retries can be disabled for specific calls by including a retry value of 0 in the +request options: + +```ruby +drive.insert_file(metadata, upload_source: 'test.txt', content_type: 'text/plain', options: { retries: 0 }) +``` + +When retries are enabled, if a server or rate limit error occurs during a request it is automatically retried with +an exponentially increasing delay on subsequent retries. If a request can not be retried or if the maximum number +of retries is exceeded, an exception is thrown. + +### Callbacks + +A block an be specified when making calls. If present, the block will be called with the result or error, rather than +returning the result from the call or raising the error. Example: + +```ruby +# Search for files in Drive (first page only) +drive.list_files(q: "title contains 'finances'") do |res, err| + if err + # Handle error + else + # Handle response + end end ``` -### Media Upload +This calling style is required when making batch requests as responses are not available until the entire batch +is complete. + +### Batches + +Multiple requests can be batched together into a single HTTP request to reduce overhead. Batched calls are executed +in parallel and the responses processed once all results are available -For APIs that support file uploads, use `Google::APIClient::UploadIO` to load the stream. Both multipart and resumable -uploads can be used. For example, to upload a file to Google Drive using multipart ```ruby -drive = client.discovered_api('drive', 'v2') - -media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4') -metadata = { - 'title' => 'My movie', - 'description' => 'The best home movie ever made' -} -client.execute(:api_method => drive.files.insert, - :parameters => { 'uploadType' => 'multipart' }, - :body_object => metadata, - :media => media ) -``` - -To use resumable uploads, change the `uploadType` parameter to `resumable`. To check the status of the upload -and continue if necessary, check `result.resumable_upload`. - -```ruby -client.execute(:api_method => drive.files.insert, - :parameters => { 'uploadType' => 'resumable' }, - :body_object => metadata, - :media => media ) -upload = result.resumable_upload - -# Resume if needed -if upload.resumable? - client.execute(upload) +# Fetch a bunch of files by ID +ids = ['file_id_1', 'file_id_2', 'file_id_3', 'file_id_4'] +drive.batch do |drive| + ids.each do |id| + drive.get_file(id) do |res, err| + # Handle response + end + end end ``` -## Samples +Media operations -- uploads & downloads -- can not be included in batch with other requests. -See the full list of [samples on Github](https://github.com/google/google-api-ruby-client-samples). +However, some APIs support batch uploads. To upload multiple files in a batch, use the `batch_upload` method instead. +Batch uploads should only be used when uploading multiple small files. For large files, upload files individually to +take advantage of the libraries built-in reusmable upload support. +### Hashes + +While the API will always return instances of schema classes, plain hashes are accepted in method calls for +convenience. Hash keys must be symbols matching the attribute names on the corresponding object the hash is meant +to replace. For example: + +```ruby +file = {id: '123', title: 'My document', labels: { starred: true }} +file = drive.insert_file(file) # Returns a Drive::File instance +``` + +is equivalent to: + +```ruby +file = Drive::File.new(id: '123', title: 'My document') +file.labels = Drive::File::Labels.new(starred: true) +file = drive.update_file(file) # Returns a Drive::File instance +``` + +## Authorization + +[OAuth 2](https://developers.google.com/accounts/docs/OAuth2) is used to authorize applications. This library uses +both [Signet](https://github.com/google/signet) and +[Google Auth Library for Ruby](https://github.com/google/google-auth-library-ruby) for OAuth 2 support. + +The [Google Auth Library for Ruby](https://github.com/google/google-auth-library-ruby) provides an implementation of +[application default credentials] for Ruby. It offers a simple way to get authorization credentials for use in +calling Google APIs, best suited for cases when the call needs to have the same identity +and authorization level for the application independent of the user. This is +the recommended approach to authorize calls to Cloud APIs, particularly when +you're building an application that uses Google Compute Engine. + +For per-user authorization, use [Signet](https://github.com/google/signet) to obtain user authorization. + +### Passing authorization to requests + +Authorization can be specified for the entire client, for an individual service instance, or on a per-request basis. + +Set authorization for all service: + +```ruby +Google::Apis::RequestOptions.default.authorization = authorization +# Services instantiated after this will inherit the authorization +``` + +On a per-service level: + +```ruby +drive = Google::Apis::DriveV2::DriveService.new +drive.authorization = authorization + +# All requests made with this service will use the same authorization +``` + +Per-request: + +```ruby +drive.get_file('123', options: { authorization: authorization }) +``` + +## Generating APIs + +For [Cloud Endpoints](https://cloud.google.com/endpoints/) or other APIs not included in the gem, ruby code can be +generated from the discovery document. + +To generate from a local discovery file: + + $ generate-api gen --file= + +A URL can also be specified: + + $ generate-api gen --url= + +## TODO + +* ETag support (if-not-modified) +* Auto-paging results (maybe) +* Caching +* Model validations + +## License + +This library is licensed under Apache 2.0. Full license text is +available in [LICENSE.txt](LICENSE.txt). + +## Contributing + +See [CONTRIBUTING](contributing). ## Support -Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com). - -[1]: https://developers.google.com/accounts/docs/application-default-credentials +Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't +hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs +on [StackOverflow](http://stackoverflow.com). diff --git a/Rakefile b/Rakefile index dca3b0903..809eb5616 100644 --- a/Rakefile +++ b/Rakefile @@ -1,41 +1,2 @@ -# -*- ruby -*- -lib_dir = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! +require "bundler/gem_tasks" -require 'bundler/gem_tasks' -require 'rubygems' -require 'rake' - -require File.join(File.dirname(__FILE__), 'lib/google/api_client', 'version') - -PKG_DISPLAY_NAME = 'Google API Client' -PKG_NAME = PKG_DISPLAY_NAME.downcase.gsub(/\s/, '-') -PKG_VERSION = Google::APIClient::VERSION::STRING -PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" -PKG_HOMEPAGE = 'https://github.com/google/google-api-ruby-client' - -RELEASE_NAME = "REL #{PKG_VERSION}" - -PKG_AUTHOR = ["Bob Aman", "Steve Bazyl"] -PKG_AUTHOR_EMAIL = "sbazyl@google.com" -PKG_SUMMARY = 'Package Summary' -PKG_DESCRIPTION = <<-TEXT -The Google API Ruby Client makes it trivial to discover and access supported -APIs. -TEXT - -list = FileList[ - 'lib/**/*', 'spec/**/*', 'vendor/**/*', - 'tasks/**/*', 'website/**/*', - '[A-Z]*', 'Rakefile' -].exclude(/[_\.]git$/) -(open(".gitignore") { |file| file.read }).split("\n").each do |pattern| - list.exclude(pattern) -end -PKG_FILES = list - -task :default => 'spec' - -WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false -SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS']) diff --git a/api_names.yaml b/api_names.yaml new file mode 100644 index 000000000..22cbd8a33 --- /dev/null +++ b/api_names.yaml @@ -0,0 +1,871 @@ +--- +"/adexchangebuyer:v1.3/PerformanceReport/latency50thPercentile": latency_50th_percentile +"/adexchangebuyer:v1.3/PerformanceReport/latency85thPercentile": latency_85th_percentile +"/adexchangebuyer:v1.3/PerformanceReport/latency95thPercentile": latency_95th_percentile +"/adexchangeseller:v2.0/adexchangeseller.accounts.adclients.list": list_account_ad_clients +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.get": get_account_custom_channel +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list": list_account_custom_channels +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.dimensions.list": list_account_metadata_dimensions +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.metrics.list": list_account_metadata_metrics +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.get": get_account_preferred_deal +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.list": list_account_preferred_deals +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate": generate_account_saved_report +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.list": list_account_saved_reports +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list": list_account_url_channels +"/admin:directory_v1/directory.chromeosdevices.get": get_chrome_os_device +"/admin:directory_v1/directory.chromeosdevices.list": list_chrome_os_devices +"/admin:directory_v1/directory.chromeosdevices.patch": patch_chrome_os_device +"/admin:directory_v1/directory.chromeosdevices.update": update_chrome_os_device +"/admin:directory_v1/directory.groups.aliases.delete/alias": group_alias +"/admin:directory_v1/directory.mobiledevices.action": action_mobile_device +"/admin:directory_v1/directory.mobiledevices.delete": delete_mobile_device +"/admin:directory_v1/directory.mobiledevices.get": get_mobile_device +"/admin:directory_v1/directory.mobiledevices.list": list_mobile_devices +"/admin:directory_v1/directory.orgunits.delete": delete_org_unit +"/admin:directory_v1/directory.orgunits.get": get_org_unit +"/admin:directory_v1/directory.orgunits.insert": insert_org_unit +"/admin:directory_v1/directory.orgunits.list": list_org_units +"/admin:directory_v1/directory.orgunits.patch": patch_org_unit +"/admin:directory_v1/directory.orgunits.update": update_org_unit +"/admin:directory_v1/directory.users.aliases.delete/alias": user_alias +"/adsense:v1.4/AdsenseReportsGenerateResponse": generate_report_response +"/adsense:v1.4/adsense.accounts.adclients.list": list_account_ad_clients +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list": list_account_ad_unit_custom_channels +"/adsense:v1.4/adsense.accounts.adunits.get": get_account_ad_unit +"/adsense:v1.4/adsense.accounts.adunits.getAdCode": get_account_ad_unit_ad_code +"/adsense:v1.4/adsense.accounts.adunits.list": list_account_ad_units +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list": list_account_custom_channel_ad_units +"/adsense:v1.4/adsense.accounts.customchannels.get": get_account_custom_channel +"/adsense:v1.4/adsense.accounts.customchannels.list": list_account_custom_channels +"/adsense:v1.4/adsense.accounts.reports.saved.generate": generate_account_saved_report +"/adsense:v1.4/adsense.accounts.reports.saved.list": list_account_saved_reports +"/adsense:v1.4/adsense.accounts.savedadstyles.get": get_account_saved_ad_style +"/adsense:v1.4/adsense.accounts.savedadstyles.list": list_account_saved_ad_styles +"/adsense:v1.4/adsense.accounts.urlchannels.list": list_account_url_channels +"/adsense:v1.4/adsense.adclients.list": list_ad_clients +"/adsense:v1.4/adsense.adunits.customchannels.list": list_ad_unit_custom_channels +"/adsense:v1.4/adsense.adunits.get": get_ad_unit +"/adsense:v1.4/adsense.adunits.getAdCode": get_ad_code_ad_unit +"/adsense:v1.4/adsense.adunits.list": list_ad_units +"/adsense:v1.4/adsense.customchannels.adunits.list": list_custom_channel_ad_units +"/adsense:v1.4/adsense.customchannels.get": get_custom_channel +"/adsense:v1.4/adsense.customchannels.list": list_custom_channels +"/adsense:v1.4/adsense.metadata.dimensions.list": list_metadata_dimensions +"/adsense:v1.4/adsense.metadata.metrics.list": list_metadata_metrics +"/adsense:v1.4/adsense.reports.saved.generate": generate_saved_report +"/adsense:v1.4/adsense.reports.saved.list": list_saved_reports +"/adsense:v1.4/adsense.savedadstyles.get": get_saved_ad_style +"/adsense:v1.4/adsense.savedadstyles.list": list_saved_ad_styles +"/adsense:v1.4/adsense.urlchannels.list": list_url_channels +"/adsensehost:v4.1/adsensehost.accounts.adclients.get": get_account_ad_client +"/adsensehost:v4.1/adsensehost.accounts.adclients.list": list_account_ad_clients +"/adsensehost:v4.1/adsensehost.accounts.adunits.delete": delete_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.get": get_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode": get_account_ad_unit_ad_code +"/adsensehost:v4.1/adsensehost.accounts.adunits.insert": insert_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.list": list_account_ad_units +"/adsensehost:v4.1/adsensehost.accounts.adunits.patch": patch_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.update": update_account_ad_unit +"/adsensehost:v4.1/adsensehost.adclients.get": get_ad_client +"/adsensehost:v4.1/adsensehost.adclients.list": list_ad_clients +"/adsensehost:v4.1/adsensehost.associationsessions.start": start_association_session +"/adsensehost:v4.1/adsensehost.associationsessions.verify": verify_association_session +"/adsensehost:v4.1/adsensehost.customchannels.delete": delete_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.get": get_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.insert": insert_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.list": list_custom_channels +"/adsensehost:v4.1/adsensehost.customchannels.patch": patch_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.update": update_custom_channel +"/adsensehost:v4.1/adsensehost.urlchannels.delete": delete_url_channel +"/adsensehost:v4.1/adsensehost.urlchannels.insert": insert_url_channel +"/adsensehost:v4.1/adsensehost.urlchannels.list": list_url_channels +"/analytics:v3/AnalyticsDataimportDeleteUploadDataRequest": delete_upload_data_request +"/analytics:v3/UnsampledReport/cloudStorageDownloadDetails/objectId": obj_id +"/analytics:v3/analytics.data.ga.get": get_ga_data +"/analytics:v3/analytics.data.mcf.get": get_mcf_data +"/analytics:v3/analytics.data.realtime.get": get_realtime_data +"/analytics:v3/analytics.management.accountSummaries.list": list_account_summaries +"/analytics:v3/analytics.management.accountUserLinks.delete": delete_account_user_link +"/analytics:v3/analytics.management.accountUserLinks.insert": insert_account_user_link +"/analytics:v3/analytics.management.accountUserLinks.list": list_account_user_links +"/analytics:v3/analytics.management.accountUserLinks.update": update_account_user_link +"/analytics:v3/analytics.management.accounts.list": list_accounts +"/analytics:v3/analytics.management.customDataSources.list": list_custom_data_sources +"/analytics:v3/analytics.management.customDimensions.get": get_custom_dimension +"/analytics:v3/analytics.management.customDimensions.insert": insert_custom_dimension +"/analytics:v3/analytics.management.customDimensions.list": list_custom_dimensions +"/analytics:v3/analytics.management.customDimensions.patch": patch_custom_dimension +"/analytics:v3/analytics.management.customDimensions.update": update_custom_dimension +"/analytics:v3/analytics.management.customMetrics.get": get_custom_metric +"/analytics:v3/analytics.management.customMetrics.insert": insert_custom_metric +"/analytics:v3/analytics.management.customMetrics.list": list_custom_metrics +"/analytics:v3/analytics.management.customMetrics.patch": patch_custom_metric +"/analytics:v3/analytics.management.customMetrics.update": update_custom_metric +"/analytics:v3/analytics.management.experiments.delete": delete_experiment +"/analytics:v3/analytics.management.experiments.get": get_experiment +"/analytics:v3/analytics.management.experiments.insert": insert_experiment +"/analytics:v3/analytics.management.experiments.list": list_experiments +"/analytics:v3/analytics.management.experiments.patch": patch_experiment +"/analytics:v3/analytics.management.experiments.update": update_experiment +"/analytics:v3/analytics.management.filters.delete": delete_filter +"/analytics:v3/analytics.management.filters.get": get_filter +"/analytics:v3/analytics.management.filters.insert": insert_filter +"/analytics:v3/analytics.management.filters.list": list_filters +"/analytics:v3/analytics.management.filters.patch": patch_filter +"/analytics:v3/analytics.management.filters.update": update_filter +"/analytics:v3/analytics.management.goals.get": get_goal +"/analytics:v3/analytics.management.goals.insert": insert_goal +"/analytics:v3/analytics.management.goals.list": list_goals +"/analytics:v3/analytics.management.goals.patch": patch_goal +"/analytics:v3/analytics.management.goals.update": update_goal +"/analytics:v3/analytics.management.profileFilterLinks.delete": delete_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.get": get_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.insert": insert_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.list": list_profile_filter_links +"/analytics:v3/analytics.management.profileFilterLinks.patch": patch_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.update": update_profile_filter_link +"/analytics:v3/analytics.management.profileUserLinks.delete": delete_profile_user_link +"/analytics:v3/analytics.management.profileUserLinks.insert": insert_profile_user_link +"/analytics:v3/analytics.management.profileUserLinks.list": list_profile_user_links +"/analytics:v3/analytics.management.profileUserLinks.update": update_profile_user_link +"/analytics:v3/analytics.management.profiles.delete": delete_profile +"/analytics:v3/analytics.management.profiles.get": get_profile +"/analytics:v3/analytics.management.profiles.insert": insert_profile +"/analytics:v3/analytics.management.profiles.list": list_profiles +"/analytics:v3/analytics.management.profiles.patch": patch_profile +"/analytics:v3/analytics.management.profiles.update": update_profile +"/analytics:v3/analytics.management.segments.list": list_segments +"/analytics:v3/analytics.management.unsampledReports.get": get_unsampled_report +"/analytics:v3/analytics.management.unsampledReports.insert": insert_unsampled_report +"/analytics:v3/analytics.management.unsampledReports.list": list_unsampled_reports +"/analytics:v3/analytics.management.uploads.deleteUploadData": delete_upload_data +"/analytics:v3/analytics.management.uploads.get": get_upload +"/analytics:v3/analytics.management.uploads.list": list_uploads +"/analytics:v3/analytics.management.uploads.uploadData": upload_data +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.delete": delete_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.get": get_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.insert": insert_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list": list_web_property_ad_words_links +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.patch": patch_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.update": update_web_property_ad_words_link +"/analytics:v3/analytics.management.webproperties.get": get_web_property +"/analytics:v3/analytics.management.webproperties.insert": insert_web_property +"/analytics:v3/analytics.management.webproperties.list": list_web_properties +"/analytics:v3/analytics.management.webproperties.patch": patch_web_property +"/analytics:v3/analytics.management.webproperties.update": update_web_property +"/analytics:v3/analytics.management.webpropertyUserLinks.delete": delete_web_property_user_link +"/analytics:v3/analytics.management.webpropertyUserLinks.insert": insert_web_property_user_link +"/analytics:v3/analytics.management.webpropertyUserLinks.list": list_web_property_user_links +"/analytics:v3/analytics.management.webpropertyUserLinks.update": update_web_property_user_link +"/analytics:v3/analytics.metadata.columns.list": list_metadata_columns +"/analytics:v3/analytics.provisioning.createAccountTicket": create_account_ticket +"/androidenterprise:v1/CollectionViewersListResponse": list_collection_viewers_response +"/androidenterprise:v1/CollectionsListResponse": list_collections_response +"/androidenterprise:v1/DevicesListResponse": list_devices_response +"/androidenterprise:v1/EnterprisesListResponse": list_enterprises_response +"/androidenterprise:v1/EntitlementsListResponse": list_entitlements_response +"/androidenterprise:v1/GroupLicenseUsersListResponse": list_group_license_users_response +"/androidenterprise:v1/GroupLicensesListResponse": list_group_licenses_response +"/androidenterprise:v1/InstallsListResponse": list_installs_response +"/androidenterprise:v1/UsersListResponse": list_users_response +"/androidenterprise:v1/androidenterprise.collectionviewers.delete": delete_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.get": get_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.list": list_collection_viewers +"/androidenterprise:v1/androidenterprise.collectionviewers.patch": patch_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.update": update_collection_viewer +"/androidenterprise:v1/androidenterprise.grouplicenses.get": get_group_license +"/androidenterprise:v1/androidenterprise.grouplicenses.list": list_group_licenses +"/androidenterprise:v1/androidenterprise.grouplicenseusers.list": list_group_license_users +"/androidenterprise:v1/androidenterprise.products.generateApprovalUrl": generate_product_approval_url +"/androidenterprise:v1/androidenterprise.products.getAppRestrictionsSchema": get_product_app_restrictions_schema +"/androidenterprise:v1/androidenterprise.products.getPermissions": get_product_permissions +"/androidenterprise:v1/androidenterprise.products.updatePermissions": update_product_permissions +"/androidenterprise:v1/androidenterprise.users.generateToken": generate_user_token +"/androidenterprise:v1/androidenterprise.users.revokeToken": revoke_user_token +"/androidenterprise:v1/ProductsGenerateApprovalUrlResponse": generate_product_approval_url_response +"/androidenterprise:v1/ProductsApproveRequest": approve_product_request +"/androidpublisher:v2/ApkListingsListResponse": list_apk_listings_response +"/androidpublisher:v2/ApksAddExternallyHostedRequest": apks_add_externally_hosted_request +"/androidpublisher:v2/ApksAddExternallyHostedResponse": apks_add_externally_hosted_response +"/androidpublisher:v2/ApksListResponse": list_apks_response +"/androidpublisher:v2/EntitlementsListResponse": list_entitlements_response +"/androidpublisher:v2/ExpansionFilesUploadResponse": upload_expansion_files_response +"/androidpublisher:v2/ImagesDeleteAllResponse": images_delete_all_response +"/androidpublisher:v2/ImagesListResponse": list_images_response +"/androidpublisher:v2/ImagesUploadResponse": upload_images_response +"/androidpublisher:v2/InappproductsBatchRequest": in_app_products_batch_request +"/androidpublisher:v2/InappproductsBatchRequestEntry": in_app_products_batch_request_entry +"/androidpublisher:v2/InappproductsBatchResponse": in_app_products_batch_response +"/androidpublisher:v2/InappproductsBatchResponseEntry": in_app_products_batch_response_entry +"/androidpublisher:v2/InappproductsInsertRequest": insert_in_app_products_request +"/androidpublisher:v2/InappproductsInsertResponse": insert_in_app_products_response +"/androidpublisher:v2/InappproductsListResponse": list_in_app_products_response +"/androidpublisher:v2/InappproductsUpdateRequest": update_in_app_products_request +"/androidpublisher:v2/InappproductsUpdateResponse": update_in_app_products_response +"/androidpublisher:v2/ListingsListResponse": list_listings_response +"/androidpublisher:v2/SubscriptionPurchasesDeferRequest": defer_subscription_purchases_request +"/androidpublisher:v2/SubscriptionPurchasesDeferResponse": defer_subscription_purchases_response +"/androidpublisher:v2/TracksListResponse": list_tracks_response +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete": delete_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.deleteall": delete_all_apk_listings +"/androidpublisher:v2/androidpublisher.edits.apklistings.get": get_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.list": list_apk_listings +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch": patch_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.update": update_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apks.addexternallyhosted": add_externally_hosted_apk +"/androidpublisher:v2/androidpublisher.edits.apks.list": list_apks +"/androidpublisher:v2/androidpublisher.edits.apks.upload": upload_apk +"/androidpublisher:v2/androidpublisher.edits.details.get": get_detail +"/androidpublisher:v2/androidpublisher.edits.details.patch": patch_detail +"/androidpublisher:v2/androidpublisher.edits.details.update": update_detail +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get": get_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch": patch_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update": update_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload": upload_expansion_file +"/androidpublisher:v2/androidpublisher.edits.images.delete": delete_image +"/androidpublisher:v2/androidpublisher.edits.images.deleteall": delete_all_images +"/androidpublisher:v2/androidpublisher.edits.images.list": list_images +"/androidpublisher:v2/androidpublisher.edits.images.upload": upload_image +"/androidpublisher:v2/androidpublisher.edits.listings.delete": delete_listing +"/androidpublisher:v2/androidpublisher.edits.listings.deleteall": delete_all_listings +"/androidpublisher:v2/androidpublisher.edits.listings.get": get_listing +"/androidpublisher:v2/androidpublisher.edits.listings.list": list_listings +"/androidpublisher:v2/androidpublisher.edits.listings.patch": patch_listing +"/androidpublisher:v2/androidpublisher.edits.listings.update": update_listing +"/androidpublisher:v2/androidpublisher.edits.testers.get": get_tester +"/androidpublisher:v2/androidpublisher.edits.testers.patch": patch_tester +"/androidpublisher:v2/androidpublisher.edits.testers.update": update_tester +"/androidpublisher:v2/androidpublisher.edits.tracks.get": get_track +"/androidpublisher:v2/androidpublisher.edits.tracks.list": list_tracks +"/androidpublisher:v2/androidpublisher.edits.tracks.patch": patch_track +"/androidpublisher:v2/androidpublisher.edits.tracks.update": update_track +"/androidpublisher:v2/androidpublisher.entitlements.list": list_entitlements +"/androidpublisher:v2/androidpublisher.inappproducts.batch": batch_update_in_app_products +"/androidpublisher:v2/androidpublisher.inappproducts.delete": delete_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.get": get_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.insert": insert_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.list": list_in_app_products +"/androidpublisher:v2/androidpublisher.inappproducts.patch": patch_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.update": update_in_app_product +"/androidpublisher:v2/androidpublisher.purchases.products.get": get_purchase_product +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.cancel": cancel_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.defer": defer_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.get": get_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.refund": refund_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.revoke": revoke_purchase_subscription +"/autoscaler:v1beta2/AutoscalerListResponse": list_autoscaler_response +"/bigquery:v2/TableDataInsertAllRequest": insert_all_table_data_request +"/bigquery:v2/TableDataInsertAllResponse": insert_all_table_data_response +"/bigquery:v2/bigquery.jobs.getQueryResults": get_job_query_results +"/bigquery:v2/bigquery.tabledata.insertAll": insert_all_table_data +"/bigquery:v2/bigquery.tabledata.list": list_table_data +"/bigquery:v2/JobCancelResponse": cancel_job_response +"/blogger:v3/blogger.blogs.getByUrl": get_blog_by_url +"/blogger:v3/blogger.blogs.listByUser": list_blogs_by_user +"/blogger:v3/blogger.comments.listByBlog": list_comments_by_blog +"/blogger:v3/blogger.comments.markAsSpam": mark_comment_as_spam +"/blogger:v3/blogger.comments.removeContent": remove_comment_content +"/blogger:v3/blogger.postUserInfos.get": get_post_user_info +"/blogger:v3/blogger.postUserInfos.list": list_post_user_info +"/blogger:v3/blogger.posts.getByPath": get_post_by_path +"/books:v1/Annotationdata": annotation_data +"/books:v1/AnnotationsSummary": annotations_summary +"/books:v1/Annotationsdata": annotations_data +"/books:v1/BooksAnnotationsRange": annotatins_Range +"/books:v1/BooksCloudloadingResource": loading_resource +"/books:v1/BooksVolumesRecommendedRateResponse": rate_recommended_volume_response +"/books:v1/Dictlayerdata": dict_layer_data +"/books:v1/Geolayerdata": geo_layer_data +"/books:v1/Layersummaries": layer_summaries +"/books:v1/Layersummary": layer_summary +"/books:v1/Usersettings": user_settings +"/books:v1/Volumeannotation": volume_annotation +"/books:v1/books.bookshelves.get": get_bookshelf +"/books:v1/books.bookshelves.list": list_bookshelves +"/books:v1/books.bookshelves.volumes.list": list_bookshelf_volumes +"/books:v1/books.cloudloading.addBook": add_book +"/books:v1/books.cloudloading.deleteBook": delete_book +"/books:v1/books.cloudloading.updateBook": update_book +"/books:v1/books.dictionary.listOfflineMetadata": list_offline_metadata_dictionary +"/books:v1/books.layers.annotationData.get": get_layer_annotation_data +"/books:v1/books.layers.annotationData.list": list_layer_annotation_data +"/books:v1/books.layers.get": get_layer +"/books:v1/books.layers.list": list_layers +"/books:v1/books.layers.volumeAnnotations.get": get_layer_volume_annotation +"/books:v1/books.layers.volumeAnnotations.list": list_layer_volume_annotations +"/books:v1/books.myconfig.getUserSettings": get_user_settings +"/books:v1/books.myconfig.releaseDownloadAccess": release_download_access +"/books:v1/books.myconfig.requestAccess": request_access +"/books:v1/books.myconfig.syncVolumeLicenses": sync_volume_licenses +"/books:v1/books.myconfig.updateUserSettings": update_user_settings +"/books:v1/books.mylibrary.annotations.delete": delete_my_library_annotation +"/books:v1/books.mylibrary.annotations.insert": insert_my_library_annotation +"/books:v1/books.mylibrary.annotations.list": list_my_library_annotations +"/books:v1/books.mylibrary.annotations.summary": summarize_my_library_annotation +"/books:v1/books.mylibrary.annotations.update": update_my_library_annotation +"/books:v1/books.mylibrary.bookshelves.addVolume": add_my_library_volume +"/books:v1/books.mylibrary.bookshelves.clearVolumes": clear_my_library_volumes +"/books:v1/books.mylibrary.bookshelves.get": get_my_library_bookshelf +"/books:v1/books.mylibrary.bookshelves.list": list_my_library_bookshelves +"/books:v1/books.mylibrary.bookshelves.moveVolume": move_my_library_volume +"/books:v1/books.mylibrary.bookshelves.removeVolume": remove_my_library_volume +"/books:v1/books.mylibrary.bookshelves.volumes.list": list_my_library_volumes +"/books:v1/books.mylibrary.readingpositions.get": get_my_library_reading_position +"/books:v1/books.mylibrary.readingpositions.setPosition": set_my_library_reading_position +"/books:v1/books.onboarding.listCategories": list_onboarding_categories +"/books:v1/books.onboarding.listCategoryVolumes": list_onboarding_category_volumes +"/books:v1/books.promooffer.accept": accept_promo_offer +"/books:v1/books.promooffer.dismiss": dismiss_promo_offer +"/books:v1/books.promooffer.get": get_promo_offer +"/books:v1/books.volumes.associated.list": list_associated_volumes +"/books:v1/books.volumes.mybooks.list": list_my_books +"/books:v1/books.volumes.recommended.list": list_recommended_volumes +"/books:v1/books.volumes.recommended.rate": rate_recommended_volume +"/books:v1/books.volumes.useruploaded.list": list_user_uploaded_volumes +"/calendar:v3/CalendarNotification/method": delivery_method +"/calendar:v3/Event/gadget/display": display_mode +"/calendar:v3/EventReminder/method": reminder_method +"/civicinfo:v2/DivisionSearchResponse": search_division_response +"/civicinfo:v2/ElectionsQueryResponse": query_elections_response +"/civicinfo:v2/civicinfo.divisions.search": search_divisions +"/civicinfo:v2/civicinfo.elections.electionQuery": query_election +"/civicinfo:v2/civicinfo.elections.voterInfoQuery": query_voter_info +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress": representative_info_by_address +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision": representative_info_by_division +"/compute:v1/DiskMoveRequest": move_disk_request +"/compute:v1/InstanceMoveRequest": move_instance_request +"/compute:v1/TargetPoolsAddHealthCheckRequest": add_target_pools_health_check_request +"/compute:v1/TargetPoolsAddInstanceRequest": add_target_pools_instance_request +"/compute:v1/TargetPoolsRemoveHealthCheckRequest": remove_target_pools_health_check_request +"/compute:v1/TargetPoolsRemoveInstanceRequest": remove_target_pools_instance_request +"/compute:v1/UrlMapsValidateRequest": validate_url_maps_request +"/compute:v1/UrlMapsValidateResponse": validate_url_maps_response +"/compute:v1/compute.addresses.aggregatedList": list_aggregated_addresses +"/compute:v1/compute.backendServices.getHealth": get_backend_service_health +"/compute:v1/compute.diskTypes.aggregatedList": list_aggregated_disk_types +"/compute:v1/compute.disks.aggregatedList": list_aggregated_disk +"/compute:v1/compute.disks.createSnapshot": create_disk_snapshot +"/compute:v1/compute.forwardingRules.aggregatedList": list_aggregated_forwarding_rules +"/compute:v1/compute.forwardingRules.setTarget": set_forwarding_rule_target +"/compute:v1/compute.globalForwardingRules.setTarget": set_global_forwarding_rule_target +"/compute:v1/compute.globalOperations.aggregatedList": list_aggregated_global_operation +"/compute:v1/compute.instances.addAccessConfig": add_instance_access_config +"/compute:v1/compute.instances.aggregatedList": list_aggregated_instances +"/compute:v1/compute.instances.attachDisk": attach_disk +"/compute:v1/compute.instances.deleteAccessConfig": delete_instance_access_config +"/compute:v1/compute.instances.detachDisk": detach_disk +"/compute:v1/compute.instances.getSerialPortOutput": get_instance_serial_port_output +"/compute:v1/compute.instances.setDiskAutoDelete": set_disk_auto_delete +"/compute:v1/compute.instances.setMetadata": set_instance_metadata +"/compute:v1/compute.instances.setScheduling": set_instance_scheduling +"/compute:v1/compute.instances.setTags": set_instance_tags +"/compute:v1/compute.machineTypes.aggregatedList": list_aggregated_machine_types +"/compute:v1/compute.projects.moveDisk": move_disk +"/compute:v1/compute.projects.moveInstance": move_instance +"/compute:v1/compute.projects.setCommonInstanceMetadata": set_common_instance_metadata +"/compute:v1/compute.projects.setUsageExportBucket": set_usage_export_bucket +"/compute:v1/compute.targetHttpProxies.setUrlMap": set_target_http_proxy_url_map +"/compute:v1/compute.targetInstances.aggregatedList": list_aggregated_target_instance +"/compute:v1/compute.targetPools.addHealthCheck": add_target_pool_health_check +"/compute:v1/compute.targetPools.addInstance": add_target_pool_instance +"/compute:v1/compute.targetPools.aggregatedList": list_aggregated_target_pools +"/compute:v1/compute.targetPools.getHealth": get_target_pool_health +"/compute:v1/compute.targetPools.removeHealthCheck": remove_target_pool_health_check +"/compute:v1/compute.targetPools.removeInstance": remove_target_pool_instance +"/compute:v1/compute.targetPools.setBackup": set_target_pool_backup +"/compute:v1/compute.targetVpnGateways.aggregatedList": list_aggregated_target_vpn_gateways +"/compute:v1/compute.targetVpnGateways.delete": delete_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.get": get_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.insert": insert_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.list": list_target_vpn_gateways +"/compute:v1/compute.vpnTunnels.aggregatedList": list_aggregated_vpn_tunnel +"/container:v1beta1/container.projects.clusters.list": list_clusters +"/container:v1beta1/container.projects.operations.list": list_operations +"/container:v1beta1/container.projects.zones.clusters.create": create_cluster +"/container:v1beta1/container.projects.zones.clusters.delete": delete_zone_cluster +"/container:v1beta1/container.projects.zones.clusters.get": get_zone_cluster +"/container:v1beta1/container.projects.zones.clusters.list": list_zone_clusters +"/container:v1beta1/container.projects.zones.operations.get": get_zone_operation +"/container:v1beta1/container.projects.zones.operations.list": list_zone_operations +"/container:v1beta1/container.projects.zones.tokens.get": get_zone_token +"/content:v2/AccountsAuthInfoResponse": accounts_auth_info_response +"/content:v2/AccountsCustomBatchRequest": accounts_custom_batch_request +"/content:v2/AccountsCustomBatchRequest": batch_accounts_request +"/content:v2/AccountsCustomBatchRequestEntry": accounts_batch_request_entry +"/content:v2/AccountsCustomBatchRequestEntry/method": request_method +"/content:v2/AccountsCustomBatchResponse": batch_accounts_response +"/content:v2/AccountsCustomBatchResponse": batch_accounts_response +"/content:v2/AccountsCustomBatchResponseEntry": accounts_batch_response_entry +"/content:v2/AccountsListResponse": list_accounts_response +"/content:v2/AccountshippingCustomBatchRequest": batch_account_shipping_request +"/content:v2/AccountshippingCustomBatchRequest": batch_account_shipping_request +"/content:v2/AccountshippingCustomBatchRequestEntry": account_shipping_batch_request_entry +"/content:v2/AccountshippingCustomBatchRequestEntry/method": request_method +"/content:v2/AccountshippingCustomBatchResponse": batch_account_shipping_response +"/content:v2/AccountshippingCustomBatchResponse": batch_account_shipping_response +"/content:v2/AccountshippingCustomBatchResponseEntry": account_shipping_batch_response_entry +"/content:v2/AccountshippingListResponse": list_account_shipping_response +"/content:v2/AccountstatusesCustomBatchRequest": batch_account_statuses_request +"/content:v2/AccountstatusesCustomBatchRequest": batch_account_statuses_request +"/content:v2/AccountstatusesCustomBatchRequestEntry": account_statuses_batch_request_entry +"/content:v2/AccountstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/AccountstatusesCustomBatchResponse": batch_account_statuses_response +"/content:v2/AccountstatusesCustomBatchResponse": batch_account_statuses_response +"/content:v2/AccountstatusesCustomBatchResponseEntry": account_statuses_batch_response_entry +"/content:v2/AccountstatusesListResponse": list_account_statuses_response +"/content:v2/AccounttaxCustomBatchRequest": batch_account_tax_request +"/content:v2/AccounttaxCustomBatchRequest": batch_account_tax_request +"/content:v2/AccounttaxCustomBatchRequestEntry": account_tax_batch_request_entry +"/content:v2/AccounttaxCustomBatchRequestEntry/method": request_method +"/content:v2/AccounttaxCustomBatchResponse": batch_account_tax_response +"/content:v2/AccounttaxCustomBatchResponse": batch_account_tax_response +"/content:v2/AccounttaxCustomBatchResponseEntry": account_tax_batch_response_entry +"/content:v2/AccounttaxListResponse": list_account_tax_response +"/content:v2/DatafeedsCustomBatchRequest": batch_datafeeds_request +"/content:v2/DatafeedsCustomBatchRequest": batch_datafeeds_request +"/content:v2/DatafeedsCustomBatchRequestEntry": datafeeds_batch_request_entry +"/content:v2/DatafeedsCustomBatchRequestEntry/method": request_method +"/content:v2/DatafeedsCustomBatchResponse": batch_datafeeds_response +"/content:v2/DatafeedsCustomBatchResponse": batch_datafeeds_response +"/content:v2/DatafeedsCustomBatchResponseEntry": datafeeds_batch_response_entry +"/content:v2/DatafeedsListResponse": list_datafeeds_response +"/content:v2/DatafeedstatusesCustomBatchRequest": batch_datafeed_statuses_request +"/content:v2/DatafeedstatusesCustomBatchRequest": batch_datafeed_statuses_request +"/content:v2/DatafeedstatusesCustomBatchRequestEntry": datafeed_statuses_batch_request_entry +"/content:v2/DatafeedstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/DatafeedstatusesCustomBatchResponse": batch_datafeed_statuses_response +"/content:v2/DatafeedstatusesCustomBatchResponse": batch_datafeed_statuses_response +"/content:v2/DatafeedstatusesCustomBatchResponseEntry": datafeed_statuses_batch_response_entry +"/content:v2/DatafeedstatusesListResponse": list_datafeed_statuses_response +"/content:v2/InventoryCustomBatchRequest": batch_inventory_request +"/content:v2/InventoryCustomBatchRequest": batch_inventory_request +"/content:v2/InventoryCustomBatchRequestEntry": inventory_batch_request_entry +"/content:v2/InventoryCustomBatchResponse": batch_inventory_response +"/content:v2/InventoryCustomBatchResponse": batch_inventory_response +"/content:v2/InventoryCustomBatchResponseEntry": inventory_batch_response_entry +"/content:v2/InventorySetRequest": set_inventory_request +"/content:v2/InventorySetResponse": set_inventory_response +"/content:v2/ProductsCustomBatchRequest": batch_products_request +"/content:v2/ProductsCustomBatchRequest": batch_products_request +"/content:v2/ProductsCustomBatchRequestEntry": products_batch_request_entry +"/content:v2/ProductsCustomBatchRequestEntry/method": request_method +"/content:v2/ProductsCustomBatchResponse": batch_products_response +"/content:v2/ProductsCustomBatchResponse": batch_products_response +"/content:v2/ProductsCustomBatchResponseEntry": products_batch_response_entry +"/content:v2/ProductsListResponse": list_products_response +"/content:v2/ProductstatusesCustomBatchRequest": batch_product_statuses_request +"/content:v2/ProductstatusesCustomBatchRequest": batch_product_statuses_request +"/content:v2/ProductstatusesCustomBatchRequestEntry": product_statuses_batch_request_entry +"/content:v2/ProductstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/ProductstatusesCustomBatchResponse": batch_product_statuses_response +"/content:v2/ProductstatusesCustomBatchResponse": batch_product_statuses_response +"/content:v2/ProductstatusesCustomBatchResponseEntry": product_statuses_batch_response_entry +"/content:v2/ProductstatusesListResponse": list_product_statuses_response +"/content:v2/content.accounts.authinfo": get_account_authinfo +"/content:v2/content.accounts.custombatch": batch_account +"/content:v2/content.accountshipping.custombatch": batch_account_shipping +"/content:v2/content.accountshipping.get": get_account_shipping +"/content:v2/content.accountshipping.list": list_account_shippings +"/content:v2/content.accountshipping.patch": patch_account_shipping +"/content:v2/content.accountshipping.update": update_account_shipping +"/content:v2/content.accountstatuses.custombatch": batch_account_status +"/content:v2/content.accountstatuses.get": get_account_status +"/content:v2/content.accountstatuses.list": list_account_statuses +"/content:v2/content.accounttax.custombatch": batch_account_tax +"/content:v2/content.accounttax.get": get_account_tax +"/content:v2/content.accounttax.list": list_account_taxes +"/content:v2/content.accounttax.patch": patch_account_tax +"/content:v2/content.accounttax.update": update_account_tax +"/content:v2/content.datafeeds.custombatch": batch_datafeed +"/content:v2/content.datafeedstatuses.custombatch": batch_datafeed_status +"/content:v2/content.datafeedstatuses.get": get_datafeed_status +"/content:v2/content.datafeedstatuses.list": list_datafeed_statuses +"/content:v2/content.inventory.custombatch": batch_inventory +"/content:v2/content.inventory.set": set_inventory +"/content:v2/content.products.custombatch": batch_product +"/content:v2/content.productstatuses.custombatch": batch_product_status +"/content:v2/content.productstatuses.get": get_product_status +"/content:v2/content.productstatuses.list": list_product_statuses +"/coordinate:v1/CustomFieldDefListResponse": list_custom_field_def_response +"/coordinate:v1/JobListResponse": list_job_response +"/coordinate:v1/LocationListResponse": list_location_response +"/coordinate:v1/TeamListResponse": list_team_response +"/coordinate:v1/WorkerListResponse": list_worker_response +"/datastore:v1beta2/AllocateIdsRequest": allocate_ids_request +"/datastore:v1beta2/AllocateIdsResponse": allocate_ids_response +"/datastore:v1beta2/BeginTransactionRequest": begin_transaction_request +"/datastore:v1beta2/BeginTransactionResponse": begin_transaction_response +"/deploymentmanager:v2beta1/DeploymentsListResponse": list_deployments_response +"/deploymentmanager:v2beta1/ManifestsListResponse": list_manifests_response +"/deploymentmanager:v2beta1/OperationsListResponse": list_operations_response +"/deploymentmanager:v2beta1/ResourcesListResponse": list_resources_response +"/deploymentmanager:v2beta1/TypesListResponse": list_types_response +"/deploymentmanager:v2beta2/DeploymentsListResponse": list_deployments_response +"/deploymentmanager:v2beta2/ManifestsListResponse": list_manifests_response +"/deploymentmanager:v2beta2/OperationsListResponse": list_operations_response +"/deploymentmanager:v2beta2/ResourcesListResponse": list_resources_response +"/deploymentmanager:v2beta2/TypesListResponse": list_types_response +"/dfareporting:v2.1/AccountPermissionGroupsListResponse": list_account_permission_groups_response +"/dfareporting:v2.1/AccountPermissionsListResponse": list_account_permissions_response +"/dfareporting:v2.1/AccountUserProfilesListResponse": list_account_user_profiles_response +"/dfareporting:v2.1/AccountsListResponse": list_accounts_response +"/dfareporting:v2.1/AdsListResponse": list_ads_response +"/dfareporting:v2.1/AdvertiserGroupsListResponse": list_advertiser_groups_response +"/dfareporting:v2.1/AdvertisersListResponse": list_advertisers_response +"/dfareporting:v2.1/BrowsersListResponse": list_browsers_response +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse": list_campaign_creative_associations_response +"/dfareporting:v2.1/CampaignsListResponse": list_campaigns_response +"/dfareporting:v2.1/ChangeLog/objectId": obj_id +"/dfareporting:v2.1/ChangeLogsListResponse": list_change_logs_response +"/dfareporting:v2.1/CitiesListResponse": list_cities_response +"/dfareporting:v2.1/ConnectionTypesListResponse": list_connection_types_response +"/dfareporting:v2.1/ContentCategoriesListResponse": list_content_categories_response +"/dfareporting:v2.1/CountriesListResponse": list_countries_response +"/dfareporting:v2.1/CreativeFieldValuesListResponse": list_creative_field_values_response +"/dfareporting:v2.1/CreativeFieldsListResponse": list_creative_fields_response +"/dfareporting:v2.1/CreativeGroupsListResponse": list_creative_groups_response +"/dfareporting:v2.1/CreativesListResponse": list_creatives_response +"/dfareporting:v2.1/DimensionValueRequest": dimension_value_request +"/dfareporting:v2.1/DirectorySiteContactsListResponse": list_directory_site_contacts_response +"/dfareporting:v2.1/DirectorySitesListResponse": list_directory_sites_response +"/dfareporting:v2.1/EventTagsListResponse": list_event_tags_response +"/dfareporting:v2.1/FloodlightActivitiesGenerateTagResponse": floodlight_activities_generate_tag_response +"/dfareporting:v2.1/FloodlightActivitiesListResponse": list_floodlight_activities_response +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse": list_floodlight_activity_groups_response +"/dfareporting:v2.1/FloodlightConfigurationsListResponse": list_floodlight_configurations_response +"/dfareporting:v2.1/InventoryItemsListResponse": list_inventory_items_response +"/dfareporting:v2.1/LandingPagesListResponse": list_landing_pages_response +"/dfareporting:v2.1/MetrosListResponse": list_metros_response +"/dfareporting:v2.1/MobileCarriersListResponse": list_mobile_carriers_response +"/dfareporting:v2.1/ObjectFilter/objectIds/object_id": obj_id +"/dfareporting:v2.1/OperatingSystemVersionsListResponse": list_operating_system_versions_response +"/dfareporting:v2.1/OperatingSystemsListResponse": list_operating_systems_response +"/dfareporting:v2.1/OrderDocumentsListResponse": list_order_documents_response +"/dfareporting:v2.1/OrdersListResponse": list_orders_response +"/dfareporting:v2.1/PlacementGroupsListResponse": list_placement_groups_response +"/dfareporting:v2.1/PlacementStrategiesListResponse": list_placement_strategies_response +"/dfareporting:v2.1/PlacementsGenerateTagsResponse": generate_placements_tags_response +"/dfareporting:v2.1/PlacementsListResponse": list_placements_response +"/dfareporting:v2.1/PlatformTypesListResponse": list_platform_types_response +"/dfareporting:v2.1/PostalCodesListResponse": list_postal_codes_response +"/dfareporting:v2.1/ProjectsListResponse": list_projects_response +"/dfareporting:v2.1/RegionsListResponse": list_regions_response +"/dfareporting:v2.1/RemarketingListsListResponse": list_remarketing_lists_response +"/dfareporting:v2.1/SitesListResponse": list_sites_response +"/dfareporting:v2.1/SizesListResponse": list_sizes_response +"/dfareporting:v2.1/SubaccountsListResponse": list_subaccounts_response +"/dfareporting:v2.1/TargetableRemarketingListsListResponse": list_targetable_remarketing_lists_response +"/dfareporting:v2.1/UserRolePermissionGroupsListResponse": list_user_role_permission_groups_response +"/dfareporting:v2.1/UserRolePermissionsListResponse": list_user_role_permissions_response +"/dfareporting:v2.1/UserRolesListResponse": list_user_roles_response +"/dfareporting:v2.1/dfareporting.floodlightActivities.generatetag": generate_floodlight_activity_tag +"/dfareporting:v2.1/dfareporting.placements.generatetags": generate_placement_tags +"/discovery:v1/RestDescription/methods": api_methods +"/discovery:v1/RestResource/methods": api_methods +"/dns:v1/ChangesListResponse": list_changes_response +"/dns:v1/ManagedZonesListResponse": list_managed_zones_response +"/dns:v1/ResourceRecordSetsListResponse": list_resource_record_sets_response +"/doubleclickbidmanager:v1/DownloadLineItemsRequest": download_line_items_request +"/doubleclickbidmanager:v1/DownloadLineItemsResponse": download_line_items_response +"/doubleclickbidmanager:v1/ListQueriesResponse": list_queries_response +"/doubleclickbidmanager:v1/ListReportsResponse": list_reports_response +"/doubleclickbidmanager:v1/RunQueryRequest": run_query_request +"/doubleclickbidmanager:v1/UploadLineItemsRequest": upload_line_items_request +"/doubleclickbidmanager:v1/UploadLineItemsResponse": upload_line_items_response +"/doubleclickbidmanager:v1/doubleclickbidmanager.lineitems.downloadlineitems": download_line_items +"/doubleclickbidmanager:v1/doubleclickbidmanager.lineitems.uploadlineitems": upload_line_items +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.createquery": create_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.deletequery": deletequery +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.getquery": get_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.listqueries": list_queries +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.runquery": run_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.reports.listreports": list_reports +"/doubleclicksearch:v2/ReportRequest": report_request +"/doubleclicksearch:v2/UpdateAvailabilityRequest": update_availability_request +"/doubleclicksearch:v2/UpdateAvailabilityResponse": update_availability_response +"/drive:v2/drive.files.emptyTrash": empty_trash +"/drive:v2/drive.permissions.getIdForEmail": get_permission_id_for_email +"/fusiontables:v2/fusiontables.table.importRows": import_rows +"/fusiontables:v2/fusiontables.table.importTable": import_table +"/games:v1/AchievementDefinitionsListResponse": list_achievement_definitions_response +"/games:v1/AchievementIncrementResponse": achievement_increment_response +"/games:v1/AchievementRevealResponse": achievement_reveal_response +"/games:v1/AchievementSetStepsAtLeastResponse": achievement_set_steps_at_least_response +"/games:v1/AchievementUnlockResponse": achievement_unlock_response +"/games:v1/AchievementUpdateMultipleRequest": achievement_update_multiple_request +"/games:v1/AchievementUpdateMultipleResponse": achievement_update_multiple_response +"/games:v1/AchievementUpdateRequest": update_achievement_request +"/games:v1/AchievementUpdateResponse": update_achievement_response +"/games:v1/CategoryListResponse": list_category_response +"/games:v1/EventDefinitionListResponse": list_event_definition_response +"/games:v1/EventRecordRequest": event_record_request +"/games:v1/EventUpdateRequest": update_event_request +"/games:v1/EventUpdateResponse": update_event_response +"/games:v1/LeaderboardListResponse": list_leaderboard_response +"/games:v1/PlayerAchievementListResponse": list_player_achievement_response +"/games:v1/PlayerEventListResponse": list_player_event_response +"/games:v1/PlayerLeaderboardScoreListResponse": list_player_leaderboard_score_response +"/games:v1/PlayerListResponse": list_player_response +"/games:v1/PlayerScoreListResponse": list_player_score_response +"/games:v1/PlayerScoreResponse": player_score_response +"/games:v1/QuestListResponse": list_quest_response +"/games:v1/RevisionCheckResponse": check_revision_response +"/games:v1/RoomCreateRequest": create_room_request +"/games:v1/RoomJoinRequest": join_room_request +"/games:v1/RoomLeaveRequest": leave_room_request +"/games:v1/SnapshotListResponse": list_snapshot_response +"/games:v1/TurnBasedMatchCreateRequest": create_turn_based_match_request +"/games:v1/TurnBasedMatchDataRequest": turn_based_match_data_request +"/games:v1/games.achievements.updateMultiple": update_multiple_achievements +"/games:v1/games.events.listDefinitions": list_event_definitions +"/games:v1/games.metagame.getMetagameConfig": get_metagame_config +"/games:v1/games.rooms.reportStatus": report_room_status +"/games:v1/games.turnBasedMatches.leaveTurn": leave_turn +"/games:v1/games.turnBasedMatches.takeTurn": take_turn +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse": list_achievement_configuration_response +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse": list_leaderboard_configuration_response +"/genomics:v1beta2/genomics.callsets.create": create_call_set +"/genomics:v1beta2/genomics.callsets.delete": delete_call_set +"/genomics:v1beta2/genomics.callsets.get": get_call_set +"/genomics:v1beta2/genomics.callsets.patch": patch_call_set +"/genomics:v1beta2/genomics.callsets.search": search_call_sets +"/genomics:v1beta2/genomics.callsets.update": update_call_set +"/genomics:v1beta2/genomics.readgroupsets.align": align_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.call": call_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list": list_coverage_buckets +"/genomics:v1beta2/genomics.readgroupsets.delete": delete_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.export": export_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.get": get_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.import": import_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.patch": patch_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.search": search_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.update": update_read_group_set +"/genomics:v1beta2/genomics.references.bases.list/end": end_position +"/genomics:v1beta2/genomics.references.bases.list/start": start_position +"/genomics:v1beta2/genomics.referencesets.get": get_reference_set +"/genomics:v1beta2/genomics.streamingReadstore.streamreads": stream_reads +"/gmail:v1/gmail.users.getProfile": get_user_profile +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest": create_auth_uri_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDeleteAccountRequest": delete_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDownloadAccountRequest": download_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest": get_account_info_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetPublicKeysResponse": get_public_keys_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetPublicKeysResponse/get_public_keys_response": get_public_keys_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest": reset_password_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest": set_account_info_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest": upload_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest": verify_assertion_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest": verify_password_request +"/identitytoolkit:v3/identitytoolkit.relyingparty.createAuthUri": create_auth_uri +"/identitytoolkit:v3/identitytoolkit.relyingparty.deleteAccount": delete_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.downloadAccount": download_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.getAccountInfo": get_account_info +"/identitytoolkit:v3/identitytoolkit.relyingparty.getOobConfirmationCode": get_oob_confirmation_code +"/identitytoolkit:v3/identitytoolkit.relyingparty.getPublicKeys": get_public_keys +"/identitytoolkit:v3/identitytoolkit.relyingparty.getRecaptchaParam": get_recaptcha_param +"/identitytoolkit:v3/identitytoolkit.relyingparty.resetPassword": reset_password +"/identitytoolkit:v3/identitytoolkit.relyingparty.setAccountInfo": set_account_info +"/identitytoolkit:v3/identitytoolkit.relyingparty.uploadAccount": upload_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.verifyAssertion": verify_assertion +"/identitytoolkit:v3/identitytoolkit.relyingparty.verifyPassword": verify_password +"/licensing:v1/licensing.licenseAssignments.listForProduct": list_license_assignment_for_product +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku": list_license_assignment_for_product_and_sku +"/logging:v1beta3/logging.projects.logServices.indexes.list": list_log_service_indexes +"/logging:v1beta3/logging.projects.logServices.list": list_log_services +"/logging:v1beta3/logging.projects.logServices.sinks.create": create_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.delete": delete_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.get": get_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.list": list_log_service_sinks +"/logging:v1beta3/logging.projects.logServices.sinks.update": update_log_service_sink +"/logging:v1beta3/logging.projects.logs.delete": delete_log +"/logging:v1beta3/logging.projects.logs.list": list_logs +"/logging:v1beta3/logging.projects.logs.sinks.create": create_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.delete": delete_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.get": get_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.list": list_log_sinks +"/logging:v1beta3/logging.projects.logs.sinks.update": update_log_sink +"/manager:v1beta2/DeploymentsListResponse": list_deployments_response +"/manager:v1beta2/TemplatesListResponse": list_templates_response +"/mapsengine:v1/AssetsListResponse": list_assets_response +"/mapsengine:v1/FeaturesBatchDeleteRequest": batch_delete_features_request +"/mapsengine:v1/FeaturesBatchInsertRequest": batch_insert_features_request +"/mapsengine:v1/FeaturesBatchPatchRequest": batch_patch_features_request +"/mapsengine:v1/FeaturesListResponse": list_features_response +"/mapsengine:v1/IconsListResponse": list_icons_response +"/mapsengine:v1/LayersListResponse": list_layers_response +"/mapsengine:v1/MapsListResponse": list_maps_response +"/mapsengine:v1/ParentsListResponse": list_parents_response +"/mapsengine:v1/PermissionsBatchDeleteRequest": batch_delete_permissions_request +"/mapsengine:v1/PermissionsBatchDeleteResponse": batch_delete_permissions_response +"/mapsengine:v1/PermissionsBatchUpdateRequest": batch_update_permissions_request +"/mapsengine:v1/PermissionsBatchUpdateResponse": batch_update_permissions_response +"/mapsengine:v1/PermissionsListResponse": list_permissions_response +"/mapsengine:v1/ProjectsListResponse": list_projects_response +"/mapsengine:v1/PublishedLayersListResponse": list_published_layers_response +"/mapsengine:v1/PublishedMapsListResponse": list_published_maps_response +"/mapsengine:v1/RasterCollectionsListResponse": list_raster_collections_response +"/mapsengine:v1/RasterCollectionsRasterBatchDeleteRequest": batch_delete_raster_collections_raster_request +"/mapsengine:v1/RasterCollectionsRastersBatchDeleteResponse": batch_delete_raster_collections_rasters_response +"/mapsengine:v1/RasterCollectionsRastersBatchInsertRequest": batch_insert_raster_collections_rasters_request +"/mapsengine:v1/RasterCollectionsRastersBatchInsertResponse": batch_insert_raster_collections_rasters_response +"/mapsengine:v1/RasterCollectionsRastersListResponse": list_raster_collections_rasters_response +"/mapsengine:v1/RastersListResponse": list_rasters_response +"/mapsengine:v1/TablesListResponse": list_tables_response +"/mirror:v1/AttachmentsListResponse": list_attachments_response +"/mirror:v1/ContactsListResponse": list_contacts_response +"/mirror:v1/LocationsListResponse": list_locations_response +"/mirror:v1/SubscriptionsListResponse": list_subscriptions_response +"/mirror:v1/TimelineListResponse": list_timeline_response +"/oauth2:v2/oauth2.userinfo.v2.me.get": get_userinfo_v2 +"/pagespeedonline:v2/PagespeedApiFormatStringV2": format_string +"/pagespeedonline:v2/PagespeedApiImageV2": image +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed": run_pagespeed +"/plus:v1/plus.people.listByActivity": list_people_by_activity +"/plusDomains:v1/plusDomains.circles.addPeople": add_people +"/plusDomains:v1/plusDomains.circles.removePeople": remove_people +"/plusDomains:v1/plusDomains.people.listByActivity": list_people_by_activity +"/plusDomains:v1/plusDomains.people.listByCircle": list_people_by_circle +"/prediction:v1.6/prediction.hostedmodels.predict": predict_hosted_model +"/prediction:v1.6/prediction.trainedmodels.analyze": analyze_trained_model +"/prediction:v1.6/prediction.trainedmodels.delete": delete_trained_model +"/prediction:v1.6/prediction.trainedmodels.get": get_trained_model +"/prediction:v1.6/prediction.trainedmodels.insert": insert_trained_model +"/prediction:v1.6/prediction.trainedmodels.list": list_trained_models +"/prediction:v1.6/prediction.trainedmodels.predict": predict_trained_model +"/prediction:v1.6/prediction.trainedmodels.update": update_trained_model +"/pubsub:v1beta2/PubsubMessage": message +"/pubsub:v1beta2/pubsub.projects.subscriptions.create": create_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.delete": delete_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.get": get_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.list": list_subscriptions +"/pubsub:v1beta2/pubsub.projects.subscriptions.setIamPolicy": set_subscription_policy +"/pubsub:v1beta2/pubsub.projects.subscriptions.testIamPermissions": test_subscription_permissions +"/pubsub:v1beta2/pubsub.projects.topics.create": create_topic +"/pubsub:v1beta2/pubsub.projects.topics.delete": delete_topic +"/pubsub:v1beta2/pubsub.projects.topics.get": get_topic +"/pubsub:v1beta2/pubsub.projects.topics.list": list_topics +"/pubsub:v1beta2/pubsub.projects.topics.setIamPolicy": set_topic_policy +"/pubsub:v1beta2/pubsub.projects.topics.testIamPermissions": test_topic_permissions +"/pubsub:v1beta2/pubsub.projects.topics.subscriptions.list": list_topic_subscriptions +"/qpxExpress:v1/TripsSearchRequest": search_trips_request +"/qpxExpress:v1/TripsSearchResponse": search_trips_response +"/replicapool:v1beta2/InstanceGroupManagersAbandonInstancesRequest": abandon_instances_request +"/replicapool:v1beta2/InstanceGroupManagersDeleteInstancesRequest": delete_instances_request +"/replicapool:v1beta2/InstanceGroupManagersRecreateInstancesRequest": recreate_instances_request +"/replicapool:v1beta2/InstanceGroupManagersSetInstanceTemplateRequest": set_instance_template_request +"/replicapool:v1beta2/InstanceGroupManagersSetTargetPoolsRequest": set_target_pools_request +"/replicapool:v1beta2/replicapool.instanceGroupManagers.abandonInstances": abandon_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.deleteInstances": delete_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.recreateInstances": recreate_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize": resize_instance +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setInstanceTemplate": set_instance_template +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setTargetPools": set_target_pools +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates": list_instance_updates +"/reseller:v1/ChangePlanRequest": change_plan_request +"/reseller:v1/reseller.subscriptions.changeRenewalSettings": change_subscription_renewal_settings +"/reseller:v1/reseller.subscriptions.changeSeats": change_subscription_seats +"/resourceviews:v1beta2/ZoneViewsAddResourcesRequest": add_resources_request +"/resourceviews:v1beta2/ZoneViewsGetServiceResponse": get_service_response +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse": list_resources_response +"/resourceviews:v1beta2/ZoneViewsRemoveResourcesRequest": remove_resources_request +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest": set_service_request +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest": get_web_resource_token_request +"/siteVerification:v1/SiteVerificationWebResourceGettokenResponse": get_web_resource_token_response +"/siteVerification:v1/SiteVerificationWebResourceGettokenResponse/method": verification_method +"/siteVerification:v1/SiteVerificationWebResourceListResponse": list_web_resource_response +"/sqladmin:v1beta4/BackupRunsListResponse": list_backup_runs_response +"/sqladmin:v1beta4/DatabasesListResponse": list_databases_response +"/sqladmin:v1beta4/FlagsListResponse": list_flags_response +"/sqladmin:v1beta4/InstancesCloneRequest": clone_instances_request +"/sqladmin:v1beta4/InstancesExportRequest": export_instances_request +"/sqladmin:v1beta4/InstancesImportRequest": import_instances_request +"/sqladmin:v1beta4/InstancesListResponse": list_instances_response +"/sqladmin:v1beta4/InstancesRestoreBackupRequest": restore_instances_backup_request +"/sqladmin:v1beta4/OperationsListResponse": list_operations_response +"/sqladmin:v1beta4/SslCertsInsertRequest": insert_ssl_certs_request +"/sqladmin:v1beta4/SslCertsInsertResponse": insert_ssl_certs_response +"/sqladmin:v1beta4/SslCertsListResponse": list_ssl_certs_response +"/sqladmin:v1beta4/TiersListResponse": list_tiers_response +"/sqladmin:v1beta4/UsersListResponse": list_users_response +"/storage:v1/Bucket/cors": cors_configurations +"/storage:v1/Bucket/cors/cors_configuration/method": http_method +"/tagmanager:v1/tagmanager.accounts.containers.create": create_container +"/tagmanager:v1/tagmanager.accounts.containers.delete": delete_container +"/tagmanager:v1/tagmanager.accounts.containers.get": get_container +"/tagmanager:v1/tagmanager.accounts.containers.list": list_containers +"/tagmanager:v1/tagmanager.accounts.containers.macros.create": create_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.delete": delete_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.get": get_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.list": list_macros +"/tagmanager:v1/tagmanager.accounts.containers.macros.update": update_macro +"/tagmanager:v1/tagmanager.accounts.containers.rules.create": create_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.delete": delete_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.get": get_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.list": list_rules +"/tagmanager:v1/tagmanager.accounts.containers.rules.update": update_rule +"/tagmanager:v1/tagmanager.accounts.containers.tags.create": create_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.delete": delete_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.get": get_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.list": list_tags +"/tagmanager:v1/tagmanager.accounts.containers.tags.update": update_tag +"/tagmanager:v1/tagmanager.accounts.containers.triggers.create": create_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.delete": delete_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.get": get_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.list": list_triggers +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update": update_trigger +"/tagmanager:v1/tagmanager.accounts.containers.update": update_container +"/tagmanager:v1/tagmanager.accounts.containers.variables.create": create_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.delete": delete_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.get": get_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.list": list_variables +"/tagmanager:v1/tagmanager.accounts.containers.variables.update": update_variable +"/tagmanager:v1/tagmanager.accounts.containers.versions.create": create_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.delete": delete_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.get": get_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.list": list_versions +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish": publish_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.restore": restore_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.undelete": undelete_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.update": update_version +"/tagmanager:v1/tagmanager.accounts.get": get_account +"/tagmanager:v1/tagmanager.accounts.list": list_accounts +"/tagmanager:v1/tagmanager.accounts.permissions.create": create_permission +"/tagmanager:v1/tagmanager.accounts.permissions.delete": delete_permission +"/tagmanager:v1/tagmanager.accounts.permissions.get": get_permission +"/tagmanager:v1/tagmanager.accounts.permissions.list": list_permissions +"/tagmanager:v1/tagmanager.accounts.permissions.update": update_permission +"/tagmanager:v1/tagmanager.accounts.update": update_account +"/translate:v2/DetectionsListResponse": list_detections_response +"/translate:v2/LanguagesListResponse": list_languages_response +"/translate:v2/TranslationsListResponse": list_translations_response +"/webmasters:v3/SitemapsListResponse": list_sitemaps_response +"/webmasters:v3/SitesListResponse": list_sites_response +"/webmasters:v3/UrlCrawlErrorsCountsQueryResponse": query_url_crawl_errors_counts_response +"/webmasters:v3/UrlCrawlErrorsSamplesListResponse": list_url_crawl_errors_samples_response +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query": query_errors_count +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get": get_errors_sample +"/webmasters:v3/webmasters.urlcrawlerrorssamples.list": list_errors_samples +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed": mark_as_fixed +"/youtube:v3/youtube.comments.setModerationStatus": set_comment_moderation_status +"/youtube:v3/ActivityListResponse": list_activities_response +"/youtube:v3/CaptionListResponse": list_captions_response +"/youtube:v3/ChannelListResponse": list_channels_response +"/youtube:v3/ChannelSectionListResponse": list_channel_sections_response +"/youtube:v3/CommentListResponse": list_comments_response +"/youtube:v3/CommentThreadListResponse": list_comment_threads_response +"/youtube:v3/GuideCategoryListResponse": list_guide_categories_response +"/youtube:v3/I18nLanguageListResponse": list_i18n_languages_response +"/youtube:v3/I18nRegionListResponse": list_i18n_regions_response +"/youtube:v3/LiveBroadcastListResponse": list_live_broadcasts_response +"/youtube:v3/LiveStreamListResponse": list_live_streams_response +"/youtube:v3/PlaylistItemListResponse": list_playlist_items_response +"/youtube:v3/PlaylistListResponse": list_playlist_response +"/youtube:v3/SearchListResponse": search_lists_response +"/youtube:v3/SubscriptionListResponse": list_subscription_response +"/youtube:v3/ThumbnailSetResponse": set_thumbnail_response +"/youtube:v3/VideoAbuseReportReasonListResponse": list_video_abuse_report_reason_response +"/youtube:v3/VideoCategoryListResponse": list_video_category_response +"/youtube:v3/VideoGetRatingResponse": get_video_rating_response +"/youtube:v3/VideoListResponse": list_videos_response +"/youtubeAnalytics:v1/GroupItemListResponse": list_group_item_response +"/youtubeAnalytics:v1/GroupListResponse": list_groups_response diff --git a/api_names_out.yaml b/api_names_out.yaml new file mode 100644 index 000000000..6be5fe86e --- /dev/null +++ b/api_names_out.yaml @@ -0,0 +1,20797 @@ +--- +"/adexchangebuyer:v1.3/PerformanceReport/latency50thPercentile": latency_50th_percentile +"/adexchangebuyer:v1.3/PerformanceReport/latency85thPercentile": latency_85th_percentile +"/adexchangebuyer:v1.3/PerformanceReport/latency95thPercentile": latency_95th_percentile +"/adexchangeseller:v2.0/adexchangeseller.accounts.adclients.list": list_account_ad_clients +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.get": get_account_custom_channel +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list": list_account_custom_channels +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.dimensions.list": list_account_metadata_dimensions +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.metrics.list": list_account_metadata_metrics +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.get": get_account_preferred_deal +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.list": list_account_preferred_deals +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate": generate_account_saved_report +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.list": list_account_saved_reports +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list": list_account_url_channels +"/admin:directory_v1/directory.chromeosdevices.get": get_chrome_os_device +"/admin:directory_v1/directory.chromeosdevices.list": list_chrome_os_devices +"/admin:directory_v1/directory.chromeosdevices.patch": patch_chrome_os_device +"/admin:directory_v1/directory.chromeosdevices.update": update_chrome_os_device +"/admin:directory_v1/directory.groups.aliases.delete/alias": group_alias +"/admin:directory_v1/directory.mobiledevices.action": action_mobile_device +"/admin:directory_v1/directory.mobiledevices.delete": delete_mobile_device +"/admin:directory_v1/directory.mobiledevices.get": get_mobile_device +"/admin:directory_v1/directory.mobiledevices.list": list_mobile_devices +"/admin:directory_v1/directory.orgunits.delete": delete_org_unit +"/admin:directory_v1/directory.orgunits.get": get_org_unit +"/admin:directory_v1/directory.orgunits.insert": insert_org_unit +"/admin:directory_v1/directory.orgunits.list": list_org_units +"/admin:directory_v1/directory.orgunits.patch": patch_org_unit +"/admin:directory_v1/directory.orgunits.update": update_org_unit +"/admin:directory_v1/directory.users.aliases.delete/alias": user_alias +"/adsense:v1.4/AdsenseReportsGenerateResponse": generate_report_response +"/adsense:v1.4/adsense.accounts.adclients.list": list_account_ad_clients +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list": list_account_ad_unit_custom_channels +"/adsense:v1.4/adsense.accounts.adunits.get": get_account_ad_unit +"/adsense:v1.4/adsense.accounts.adunits.getAdCode": get_account_ad_unit_ad_code +"/adsense:v1.4/adsense.accounts.adunits.list": list_account_ad_units +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list": list_account_custom_channel_ad_units +"/adsense:v1.4/adsense.accounts.customchannels.get": get_account_custom_channel +"/adsense:v1.4/adsense.accounts.customchannels.list": list_account_custom_channels +"/adsense:v1.4/adsense.accounts.reports.saved.generate": generate_account_saved_report +"/adsense:v1.4/adsense.accounts.reports.saved.list": list_account_saved_reports +"/adsense:v1.4/adsense.accounts.savedadstyles.get": get_account_saved_ad_style +"/adsense:v1.4/adsense.accounts.savedadstyles.list": list_account_saved_ad_styles +"/adsense:v1.4/adsense.accounts.urlchannels.list": list_account_url_channels +"/adsense:v1.4/adsense.adclients.list": list_ad_clients +"/adsense:v1.4/adsense.adunits.customchannels.list": list_ad_unit_custom_channels +"/adsense:v1.4/adsense.adunits.get": get_ad_unit +"/adsense:v1.4/adsense.adunits.getAdCode": get_ad_code_ad_unit +"/adsense:v1.4/adsense.adunits.list": list_ad_units +"/adsense:v1.4/adsense.customchannels.adunits.list": list_custom_channel_ad_units +"/adsense:v1.4/adsense.customchannels.get": get_custom_channel +"/adsense:v1.4/adsense.customchannels.list": list_custom_channels +"/adsense:v1.4/adsense.metadata.dimensions.list": list_metadata_dimensions +"/adsense:v1.4/adsense.metadata.metrics.list": list_metadata_metrics +"/adsense:v1.4/adsense.reports.saved.generate": generate_saved_report +"/adsense:v1.4/adsense.reports.saved.list": list_saved_reports +"/adsense:v1.4/adsense.savedadstyles.get": get_saved_ad_style +"/adsense:v1.4/adsense.savedadstyles.list": list_saved_ad_styles +"/adsense:v1.4/adsense.urlchannels.list": list_url_channels +"/adsensehost:v4.1/adsensehost.accounts.adclients.get": get_account_ad_client +"/adsensehost:v4.1/adsensehost.accounts.adclients.list": list_account_ad_clients +"/adsensehost:v4.1/adsensehost.accounts.adunits.delete": delete_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.get": get_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode": get_account_ad_unit_ad_code +"/adsensehost:v4.1/adsensehost.accounts.adunits.insert": insert_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.list": list_account_ad_units +"/adsensehost:v4.1/adsensehost.accounts.adunits.patch": patch_account_ad_unit +"/adsensehost:v4.1/adsensehost.accounts.adunits.update": update_account_ad_unit +"/adsensehost:v4.1/adsensehost.adclients.get": get_ad_client +"/adsensehost:v4.1/adsensehost.adclients.list": list_ad_clients +"/adsensehost:v4.1/adsensehost.associationsessions.start": start_association_session +"/adsensehost:v4.1/adsensehost.associationsessions.verify": verify_association_session +"/adsensehost:v4.1/adsensehost.customchannels.delete": delete_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.get": get_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.insert": insert_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.list": list_custom_channels +"/adsensehost:v4.1/adsensehost.customchannels.patch": patch_custom_channel +"/adsensehost:v4.1/adsensehost.customchannels.update": update_custom_channel +"/adsensehost:v4.1/adsensehost.urlchannels.delete": delete_url_channel +"/adsensehost:v4.1/adsensehost.urlchannels.insert": insert_url_channel +"/adsensehost:v4.1/adsensehost.urlchannels.list": list_url_channels +"/analytics:v3/AnalyticsDataimportDeleteUploadDataRequest": delete_upload_data_request +"/analytics:v3/UnsampledReport/cloudStorageDownloadDetails/objectId": obj_id +"/analytics:v3/analytics.data.ga.get": get_ga_data +"/analytics:v3/analytics.data.mcf.get": get_mcf_data +"/analytics:v3/analytics.data.realtime.get": get_realtime_data +"/analytics:v3/analytics.management.accountSummaries.list": list_account_summaries +"/analytics:v3/analytics.management.accountUserLinks.delete": delete_account_user_link +"/analytics:v3/analytics.management.accountUserLinks.insert": insert_account_user_link +"/analytics:v3/analytics.management.accountUserLinks.list": list_account_user_links +"/analytics:v3/analytics.management.accountUserLinks.update": update_account_user_link +"/analytics:v3/analytics.management.accounts.list": list_accounts +"/analytics:v3/analytics.management.customDataSources.list": list_custom_data_sources +"/analytics:v3/analytics.management.customDimensions.get": get_custom_dimension +"/analytics:v3/analytics.management.customDimensions.insert": insert_custom_dimension +"/analytics:v3/analytics.management.customDimensions.list": list_custom_dimensions +"/analytics:v3/analytics.management.customDimensions.patch": patch_custom_dimension +"/analytics:v3/analytics.management.customDimensions.update": update_custom_dimension +"/analytics:v3/analytics.management.customMetrics.get": get_custom_metric +"/analytics:v3/analytics.management.customMetrics.insert": insert_custom_metric +"/analytics:v3/analytics.management.customMetrics.list": list_custom_metrics +"/analytics:v3/analytics.management.customMetrics.patch": patch_custom_metric +"/analytics:v3/analytics.management.customMetrics.update": update_custom_metric +"/analytics:v3/analytics.management.experiments.delete": delete_experiment +"/analytics:v3/analytics.management.experiments.get": get_experiment +"/analytics:v3/analytics.management.experiments.insert": insert_experiment +"/analytics:v3/analytics.management.experiments.list": list_experiments +"/analytics:v3/analytics.management.experiments.patch": patch_experiment +"/analytics:v3/analytics.management.experiments.update": update_experiment +"/analytics:v3/analytics.management.filters.delete": delete_filter +"/analytics:v3/analytics.management.filters.get": get_filter +"/analytics:v3/analytics.management.filters.insert": insert_filter +"/analytics:v3/analytics.management.filters.list": list_filters +"/analytics:v3/analytics.management.filters.patch": patch_filter +"/analytics:v3/analytics.management.filters.update": update_filter +"/analytics:v3/analytics.management.goals.get": get_goal +"/analytics:v3/analytics.management.goals.insert": insert_goal +"/analytics:v3/analytics.management.goals.list": list_goals +"/analytics:v3/analytics.management.goals.patch": patch_goal +"/analytics:v3/analytics.management.goals.update": update_goal +"/analytics:v3/analytics.management.profileFilterLinks.delete": delete_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.get": get_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.insert": insert_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.list": list_profile_filter_links +"/analytics:v3/analytics.management.profileFilterLinks.patch": patch_profile_filter_link +"/analytics:v3/analytics.management.profileFilterLinks.update": update_profile_filter_link +"/analytics:v3/analytics.management.profileUserLinks.delete": delete_profile_user_link +"/analytics:v3/analytics.management.profileUserLinks.insert": insert_profile_user_link +"/analytics:v3/analytics.management.profileUserLinks.list": list_profile_user_links +"/analytics:v3/analytics.management.profileUserLinks.update": update_profile_user_link +"/analytics:v3/analytics.management.profiles.delete": delete_profile +"/analytics:v3/analytics.management.profiles.get": get_profile +"/analytics:v3/analytics.management.profiles.insert": insert_profile +"/analytics:v3/analytics.management.profiles.list": list_profiles +"/analytics:v3/analytics.management.profiles.patch": patch_profile +"/analytics:v3/analytics.management.profiles.update": update_profile +"/analytics:v3/analytics.management.segments.list": list_segments +"/analytics:v3/analytics.management.unsampledReports.get": get_unsampled_report +"/analytics:v3/analytics.management.unsampledReports.insert": insert_unsampled_report +"/analytics:v3/analytics.management.unsampledReports.list": list_unsampled_reports +"/analytics:v3/analytics.management.uploads.deleteUploadData": delete_upload_data +"/analytics:v3/analytics.management.uploads.get": get_upload +"/analytics:v3/analytics.management.uploads.list": list_uploads +"/analytics:v3/analytics.management.uploads.uploadData": upload_data +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.delete": delete_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.get": get_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.insert": insert_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list": list_web_property_ad_words_links +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.patch": patch_web_property_ad_words_link +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.update": update_web_property_ad_words_link +"/analytics:v3/analytics.management.webproperties.get": get_web_property +"/analytics:v3/analytics.management.webproperties.insert": insert_web_property +"/analytics:v3/analytics.management.webproperties.list": list_web_properties +"/analytics:v3/analytics.management.webproperties.patch": patch_web_property +"/analytics:v3/analytics.management.webproperties.update": update_web_property +"/analytics:v3/analytics.management.webpropertyUserLinks.delete": delete_web_property_user_link +"/analytics:v3/analytics.management.webpropertyUserLinks.insert": insert_web_property_user_link +"/analytics:v3/analytics.management.webpropertyUserLinks.list": list_web_property_user_links +"/analytics:v3/analytics.management.webpropertyUserLinks.update": update_web_property_user_link +"/analytics:v3/analytics.metadata.columns.list": list_metadata_columns +"/analytics:v3/analytics.provisioning.createAccountTicket": create_account_ticket +"/androidenterprise:v1/CollectionViewersListResponse": list_collection_viewers_response +"/androidenterprise:v1/CollectionsListResponse": list_collections_response +"/androidenterprise:v1/DevicesListResponse": list_devices_response +"/androidenterprise:v1/EnterprisesListResponse": list_enterprises_response +"/androidenterprise:v1/EntitlementsListResponse": list_entitlements_response +"/androidenterprise:v1/GroupLicenseUsersListResponse": list_group_license_users_response +"/androidenterprise:v1/GroupLicensesListResponse": list_group_licenses_response +"/androidenterprise:v1/InstallsListResponse": list_installs_response +"/androidenterprise:v1/UsersListResponse": list_users_response +"/androidenterprise:v1/androidenterprise.collectionviewers.delete": delete_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.get": get_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.list": list_collection_viewers +"/androidenterprise:v1/androidenterprise.collectionviewers.patch": patch_collection_viewer +"/androidenterprise:v1/androidenterprise.collectionviewers.update": update_collection_viewer +"/androidenterprise:v1/androidenterprise.grouplicenses.get": get_group_license +"/androidenterprise:v1/androidenterprise.grouplicenses.list": list_group_licenses +"/androidenterprise:v1/androidenterprise.grouplicenseusers.list": list_group_license_users +"/androidenterprise:v1/androidenterprise.products.generateApprovalUrl": generate_product_approval_url +"/androidenterprise:v1/androidenterprise.products.getAppRestrictionsSchema": get_product_app_restrictions_schema +"/androidenterprise:v1/androidenterprise.products.getPermissions": get_product_permissions +"/androidenterprise:v1/androidenterprise.products.updatePermissions": update_product_permissions +"/androidenterprise:v1/androidenterprise.users.generateToken": generate_user_token +"/androidenterprise:v1/androidenterprise.users.revokeToken": revoke_user_token +"/androidenterprise:v1/ProductsGenerateApprovalUrlResponse": generate_product_approval_url_response +"/androidenterprise:v1/ProductsApproveRequest": approve_product_request +"/androidpublisher:v2/ApkListingsListResponse": list_apk_listings_response +"/androidpublisher:v2/ApksAddExternallyHostedRequest": apks_add_externally_hosted_request +"/androidpublisher:v2/ApksAddExternallyHostedResponse": apks_add_externally_hosted_response +"/androidpublisher:v2/ApksListResponse": list_apks_response +"/androidpublisher:v2/EntitlementsListResponse": list_entitlements_response +"/androidpublisher:v2/ExpansionFilesUploadResponse": upload_expansion_files_response +"/androidpublisher:v2/ImagesDeleteAllResponse": images_delete_all_response +"/androidpublisher:v2/ImagesListResponse": list_images_response +"/androidpublisher:v2/ImagesUploadResponse": upload_images_response +"/androidpublisher:v2/InappproductsBatchRequest": in_app_products_batch_request +"/androidpublisher:v2/InappproductsBatchRequestEntry": in_app_products_batch_request_entry +"/androidpublisher:v2/InappproductsBatchResponse": in_app_products_batch_response +"/androidpublisher:v2/InappproductsBatchResponseEntry": in_app_products_batch_response_entry +"/androidpublisher:v2/InappproductsInsertRequest": insert_in_app_products_request +"/androidpublisher:v2/InappproductsInsertResponse": insert_in_app_products_response +"/androidpublisher:v2/InappproductsListResponse": list_in_app_products_response +"/androidpublisher:v2/InappproductsUpdateRequest": update_in_app_products_request +"/androidpublisher:v2/InappproductsUpdateResponse": update_in_app_products_response +"/androidpublisher:v2/ListingsListResponse": list_listings_response +"/androidpublisher:v2/SubscriptionPurchasesDeferRequest": defer_subscription_purchases_request +"/androidpublisher:v2/SubscriptionPurchasesDeferResponse": defer_subscription_purchases_response +"/androidpublisher:v2/TracksListResponse": list_tracks_response +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete": delete_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.deleteall": delete_all_apk_listings +"/androidpublisher:v2/androidpublisher.edits.apklistings.get": get_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.list": list_apk_listings +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch": patch_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apklistings.update": update_apk_listing +"/androidpublisher:v2/androidpublisher.edits.apks.addexternallyhosted": add_externally_hosted_apk +"/androidpublisher:v2/androidpublisher.edits.apks.list": list_apks +"/androidpublisher:v2/androidpublisher.edits.apks.upload": upload_apk +"/androidpublisher:v2/androidpublisher.edits.details.get": get_detail +"/androidpublisher:v2/androidpublisher.edits.details.patch": patch_detail +"/androidpublisher:v2/androidpublisher.edits.details.update": update_detail +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get": get_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch": patch_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update": update_expansion_file +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload": upload_expansion_file +"/androidpublisher:v2/androidpublisher.edits.images.delete": delete_image +"/androidpublisher:v2/androidpublisher.edits.images.deleteall": delete_all_images +"/androidpublisher:v2/androidpublisher.edits.images.list": list_images +"/androidpublisher:v2/androidpublisher.edits.images.upload": upload_image +"/androidpublisher:v2/androidpublisher.edits.listings.delete": delete_listing +"/androidpublisher:v2/androidpublisher.edits.listings.deleteall": delete_all_listings +"/androidpublisher:v2/androidpublisher.edits.listings.get": get_listing +"/androidpublisher:v2/androidpublisher.edits.listings.list": list_listings +"/androidpublisher:v2/androidpublisher.edits.listings.patch": patch_listing +"/androidpublisher:v2/androidpublisher.edits.listings.update": update_listing +"/androidpublisher:v2/androidpublisher.edits.testers.get": get_tester +"/androidpublisher:v2/androidpublisher.edits.testers.patch": patch_tester +"/androidpublisher:v2/androidpublisher.edits.testers.update": update_tester +"/androidpublisher:v2/androidpublisher.edits.tracks.get": get_track +"/androidpublisher:v2/androidpublisher.edits.tracks.list": list_tracks +"/androidpublisher:v2/androidpublisher.edits.tracks.patch": patch_track +"/androidpublisher:v2/androidpublisher.edits.tracks.update": update_track +"/androidpublisher:v2/androidpublisher.entitlements.list": list_entitlements +"/androidpublisher:v2/androidpublisher.inappproducts.batch": batch_update_in_app_products +"/androidpublisher:v2/androidpublisher.inappproducts.delete": delete_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.get": get_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.insert": insert_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.list": list_in_app_products +"/androidpublisher:v2/androidpublisher.inappproducts.patch": patch_in_app_product +"/androidpublisher:v2/androidpublisher.inappproducts.update": update_in_app_product +"/androidpublisher:v2/androidpublisher.purchases.products.get": get_purchase_product +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.cancel": cancel_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.defer": defer_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.get": get_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.refund": refund_purchase_subscription +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.revoke": revoke_purchase_subscription +"/autoscaler:v1beta2/AutoscalerListResponse": list_autoscaler_response +"/bigquery:v2/TableDataInsertAllRequest": insert_all_table_data_request +"/bigquery:v2/TableDataInsertAllResponse": insert_all_table_data_response +"/bigquery:v2/bigquery.jobs.getQueryResults": get_job_query_results +"/bigquery:v2/bigquery.tabledata.insertAll": insert_all_table_data +"/bigquery:v2/bigquery.tabledata.list": list_table_data +"/bigquery:v2/JobCancelResponse": cancel_job_response +"/blogger:v3/blogger.blogs.getByUrl": get_blog_by_url +"/blogger:v3/blogger.blogs.listByUser": list_blogs_by_user +"/blogger:v3/blogger.comments.listByBlog": list_comments_by_blog +"/blogger:v3/blogger.comments.markAsSpam": mark_comment_as_spam +"/blogger:v3/blogger.comments.removeContent": remove_comment_content +"/blogger:v3/blogger.postUserInfos.get": get_post_user_info +"/blogger:v3/blogger.postUserInfos.list": list_post_user_info +"/blogger:v3/blogger.posts.getByPath": get_post_by_path +"/books:v1/Annotationdata": annotation_data +"/books:v1/AnnotationsSummary": annotations_summary +"/books:v1/Annotationsdata": annotations_data +"/books:v1/BooksAnnotationsRange": annotatins_Range +"/books:v1/BooksCloudloadingResource": loading_resource +"/books:v1/BooksVolumesRecommendedRateResponse": rate_recommended_volume_response +"/books:v1/Dictlayerdata": dict_layer_data +"/books:v1/Geolayerdata": geo_layer_data +"/books:v1/Layersummaries": layer_summaries +"/books:v1/Layersummary": layer_summary +"/books:v1/Usersettings": user_settings +"/books:v1/Volumeannotation": volume_annotation +"/books:v1/books.bookshelves.get": get_bookshelf +"/books:v1/books.bookshelves.list": list_bookshelves +"/books:v1/books.bookshelves.volumes.list": list_bookshelf_volumes +"/books:v1/books.cloudloading.addBook": add_book +"/books:v1/books.cloudloading.deleteBook": delete_book +"/books:v1/books.cloudloading.updateBook": update_book +"/books:v1/books.dictionary.listOfflineMetadata": list_offline_metadata_dictionary +"/books:v1/books.layers.annotationData.get": get_layer_annotation_data +"/books:v1/books.layers.annotationData.list": list_layer_annotation_data +"/books:v1/books.layers.get": get_layer +"/books:v1/books.layers.list": list_layers +"/books:v1/books.layers.volumeAnnotations.get": get_layer_volume_annotation +"/books:v1/books.layers.volumeAnnotations.list": list_layer_volume_annotations +"/books:v1/books.myconfig.getUserSettings": get_user_settings +"/books:v1/books.myconfig.releaseDownloadAccess": release_download_access +"/books:v1/books.myconfig.requestAccess": request_access +"/books:v1/books.myconfig.syncVolumeLicenses": sync_volume_licenses +"/books:v1/books.myconfig.updateUserSettings": update_user_settings +"/books:v1/books.mylibrary.annotations.delete": delete_my_library_annotation +"/books:v1/books.mylibrary.annotations.insert": insert_my_library_annotation +"/books:v1/books.mylibrary.annotations.list": list_my_library_annotations +"/books:v1/books.mylibrary.annotations.summary": summarize_my_library_annotation +"/books:v1/books.mylibrary.annotations.update": update_my_library_annotation +"/books:v1/books.mylibrary.bookshelves.addVolume": add_my_library_volume +"/books:v1/books.mylibrary.bookshelves.clearVolumes": clear_my_library_volumes +"/books:v1/books.mylibrary.bookshelves.get": get_my_library_bookshelf +"/books:v1/books.mylibrary.bookshelves.list": list_my_library_bookshelves +"/books:v1/books.mylibrary.bookshelves.moveVolume": move_my_library_volume +"/books:v1/books.mylibrary.bookshelves.removeVolume": remove_my_library_volume +"/books:v1/books.mylibrary.bookshelves.volumes.list": list_my_library_volumes +"/books:v1/books.mylibrary.readingpositions.get": get_my_library_reading_position +"/books:v1/books.mylibrary.readingpositions.setPosition": set_my_library_reading_position +"/books:v1/books.onboarding.listCategories": list_onboarding_categories +"/books:v1/books.onboarding.listCategoryVolumes": list_onboarding_category_volumes +"/books:v1/books.promooffer.accept": accept_promo_offer +"/books:v1/books.promooffer.dismiss": dismiss_promo_offer +"/books:v1/books.promooffer.get": get_promo_offer +"/books:v1/books.volumes.associated.list": list_associated_volumes +"/books:v1/books.volumes.mybooks.list": list_my_books +"/books:v1/books.volumes.recommended.list": list_recommended_volumes +"/books:v1/books.volumes.recommended.rate": rate_recommended_volume +"/books:v1/books.volumes.useruploaded.list": list_user_uploaded_volumes +"/calendar:v3/CalendarNotification/method": delivery_method +"/calendar:v3/Event/gadget/display": display_mode +"/calendar:v3/EventReminder/method": reminder_method +"/civicinfo:v2/DivisionSearchResponse": search_division_response +"/civicinfo:v2/ElectionsQueryResponse": query_elections_response +"/civicinfo:v2/civicinfo.divisions.search": search_divisions +"/civicinfo:v2/civicinfo.elections.electionQuery": query_election +"/civicinfo:v2/civicinfo.elections.voterInfoQuery": query_voter_info +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress": representative_info_by_address +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision": representative_info_by_division +"/compute:v1/DiskMoveRequest": move_disk_request +"/compute:v1/InstanceMoveRequest": move_instance_request +"/compute:v1/TargetPoolsAddHealthCheckRequest": add_target_pools_health_check_request +"/compute:v1/TargetPoolsAddInstanceRequest": add_target_pools_instance_request +"/compute:v1/TargetPoolsRemoveHealthCheckRequest": remove_target_pools_health_check_request +"/compute:v1/TargetPoolsRemoveInstanceRequest": remove_target_pools_instance_request +"/compute:v1/UrlMapsValidateRequest": validate_url_maps_request +"/compute:v1/UrlMapsValidateResponse": validate_url_maps_response +"/compute:v1/compute.addresses.aggregatedList": list_aggregated_addresses +"/compute:v1/compute.backendServices.getHealth": get_backend_service_health +"/compute:v1/compute.diskTypes.aggregatedList": list_aggregated_disk_types +"/compute:v1/compute.disks.aggregatedList": list_aggregated_disk +"/compute:v1/compute.disks.createSnapshot": create_disk_snapshot +"/compute:v1/compute.forwardingRules.aggregatedList": list_aggregated_forwarding_rules +"/compute:v1/compute.forwardingRules.setTarget": set_forwarding_rule_target +"/compute:v1/compute.globalForwardingRules.setTarget": set_global_forwarding_rule_target +"/compute:v1/compute.globalOperations.aggregatedList": list_aggregated_global_operation +"/compute:v1/compute.instances.addAccessConfig": add_instance_access_config +"/compute:v1/compute.instances.aggregatedList": list_aggregated_instances +"/compute:v1/compute.instances.attachDisk": attach_disk +"/compute:v1/compute.instances.deleteAccessConfig": delete_instance_access_config +"/compute:v1/compute.instances.detachDisk": detach_disk +"/compute:v1/compute.instances.getSerialPortOutput": get_instance_serial_port_output +"/compute:v1/compute.instances.setDiskAutoDelete": set_disk_auto_delete +"/compute:v1/compute.instances.setMetadata": set_instance_metadata +"/compute:v1/compute.instances.setScheduling": set_instance_scheduling +"/compute:v1/compute.instances.setTags": set_instance_tags +"/compute:v1/compute.machineTypes.aggregatedList": list_aggregated_machine_types +"/compute:v1/compute.projects.moveDisk": move_disk +"/compute:v1/compute.projects.moveInstance": move_instance +"/compute:v1/compute.projects.setCommonInstanceMetadata": set_common_instance_metadata +"/compute:v1/compute.projects.setUsageExportBucket": set_usage_export_bucket +"/compute:v1/compute.targetHttpProxies.setUrlMap": set_target_http_proxy_url_map +"/compute:v1/compute.targetInstances.aggregatedList": list_aggregated_target_instance +"/compute:v1/compute.targetPools.addHealthCheck": add_target_pool_health_check +"/compute:v1/compute.targetPools.addInstance": add_target_pool_instance +"/compute:v1/compute.targetPools.aggregatedList": list_aggregated_target_pools +"/compute:v1/compute.targetPools.getHealth": get_target_pool_health +"/compute:v1/compute.targetPools.removeHealthCheck": remove_target_pool_health_check +"/compute:v1/compute.targetPools.removeInstance": remove_target_pool_instance +"/compute:v1/compute.targetPools.setBackup": set_target_pool_backup +"/compute:v1/compute.targetVpnGateways.aggregatedList": list_aggregated_target_vpn_gateways +"/compute:v1/compute.targetVpnGateways.delete": delete_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.get": get_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.insert": insert_target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.list": list_target_vpn_gateways +"/compute:v1/compute.vpnTunnels.aggregatedList": list_aggregated_vpn_tunnel +"/container:v1beta1/container.projects.clusters.list": list_clusters +"/container:v1beta1/container.projects.operations.list": list_operations +"/container:v1beta1/container.projects.zones.clusters.create": create_cluster +"/container:v1beta1/container.projects.zones.clusters.delete": delete_zone_cluster +"/container:v1beta1/container.projects.zones.clusters.get": get_zone_cluster +"/container:v1beta1/container.projects.zones.clusters.list": list_zone_clusters +"/container:v1beta1/container.projects.zones.operations.get": get_zone_operation +"/container:v1beta1/container.projects.zones.operations.list": list_zone_operations +"/container:v1beta1/container.projects.zones.tokens.get": get_zone_token +"/content:v2/AccountsAuthInfoResponse": accounts_auth_info_response +"/content:v2/AccountsCustomBatchRequest": batch_accounts_request +"/content:v2/AccountsCustomBatchRequestEntry": accounts_batch_request_entry +"/content:v2/AccountsCustomBatchRequestEntry/method": request_method +"/content:v2/AccountsCustomBatchResponse": batch_accounts_response +"/content:v2/AccountsCustomBatchResponseEntry": accounts_batch_response_entry +"/content:v2/AccountsListResponse": list_accounts_response +"/content:v2/AccountshippingCustomBatchRequest": batch_account_shipping_request +"/content:v2/AccountshippingCustomBatchRequestEntry": account_shipping_batch_request_entry +"/content:v2/AccountshippingCustomBatchRequestEntry/method": request_method +"/content:v2/AccountshippingCustomBatchResponse": batch_account_shipping_response +"/content:v2/AccountshippingCustomBatchResponseEntry": account_shipping_batch_response_entry +"/content:v2/AccountshippingListResponse": list_account_shipping_response +"/content:v2/AccountstatusesCustomBatchRequest": batch_account_statuses_request +"/content:v2/AccountstatusesCustomBatchRequestEntry": account_statuses_batch_request_entry +"/content:v2/AccountstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/AccountstatusesCustomBatchResponse": batch_account_statuses_response +"/content:v2/AccountstatusesCustomBatchResponseEntry": account_statuses_batch_response_entry +"/content:v2/AccountstatusesListResponse": list_account_statuses_response +"/content:v2/AccounttaxCustomBatchRequest": batch_account_tax_request +"/content:v2/AccounttaxCustomBatchRequestEntry": account_tax_batch_request_entry +"/content:v2/AccounttaxCustomBatchRequestEntry/method": request_method +"/content:v2/AccounttaxCustomBatchResponse": batch_account_tax_response +"/content:v2/AccounttaxCustomBatchResponseEntry": account_tax_batch_response_entry +"/content:v2/AccounttaxListResponse": list_account_tax_response +"/content:v2/DatafeedsCustomBatchRequest": batch_datafeeds_request +"/content:v2/DatafeedsCustomBatchRequestEntry": datafeeds_batch_request_entry +"/content:v2/DatafeedsCustomBatchRequestEntry/method": request_method +"/content:v2/DatafeedsCustomBatchResponse": batch_datafeeds_response +"/content:v2/DatafeedsCustomBatchResponseEntry": datafeeds_batch_response_entry +"/content:v2/DatafeedsListResponse": list_datafeeds_response +"/content:v2/DatafeedstatusesCustomBatchRequest": batch_datafeed_statuses_request +"/content:v2/DatafeedstatusesCustomBatchRequestEntry": datafeed_statuses_batch_request_entry +"/content:v2/DatafeedstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/DatafeedstatusesCustomBatchResponse": batch_datafeed_statuses_response +"/content:v2/DatafeedstatusesCustomBatchResponseEntry": datafeed_statuses_batch_response_entry +"/content:v2/DatafeedstatusesListResponse": list_datafeed_statuses_response +"/content:v2/InventoryCustomBatchRequest": batch_inventory_request +"/content:v2/InventoryCustomBatchRequestEntry": inventory_batch_request_entry +"/content:v2/InventoryCustomBatchResponse": batch_inventory_response +"/content:v2/InventoryCustomBatchResponseEntry": inventory_batch_response_entry +"/content:v2/InventorySetRequest": set_inventory_request +"/content:v2/InventorySetResponse": set_inventory_response +"/content:v2/ProductsCustomBatchRequest": batch_products_request +"/content:v2/ProductsCustomBatchRequestEntry": products_batch_request_entry +"/content:v2/ProductsCustomBatchRequestEntry/method": request_method +"/content:v2/ProductsCustomBatchResponse": batch_products_response +"/content:v2/ProductsCustomBatchResponseEntry": products_batch_response_entry +"/content:v2/ProductsListResponse": list_products_response +"/content:v2/ProductstatusesCustomBatchRequest": batch_product_statuses_request +"/content:v2/ProductstatusesCustomBatchRequestEntry": product_statuses_batch_request_entry +"/content:v2/ProductstatusesCustomBatchRequestEntry/method": request_method +"/content:v2/ProductstatusesCustomBatchResponse": batch_product_statuses_response +"/content:v2/ProductstatusesCustomBatchResponseEntry": product_statuses_batch_response_entry +"/content:v2/ProductstatusesListResponse": list_product_statuses_response +"/content:v2/content.accounts.authinfo": get_account_authinfo +"/content:v2/content.accounts.custombatch": batch_account +"/content:v2/content.accountshipping.custombatch": batch_account_shipping +"/content:v2/content.accountshipping.get": get_account_shipping +"/content:v2/content.accountshipping.list": list_account_shippings +"/content:v2/content.accountshipping.patch": patch_account_shipping +"/content:v2/content.accountshipping.update": update_account_shipping +"/content:v2/content.accountstatuses.custombatch": batch_account_status +"/content:v2/content.accountstatuses.get": get_account_status +"/content:v2/content.accountstatuses.list": list_account_statuses +"/content:v2/content.accounttax.custombatch": batch_account_tax +"/content:v2/content.accounttax.get": get_account_tax +"/content:v2/content.accounttax.list": list_account_taxes +"/content:v2/content.accounttax.patch": patch_account_tax +"/content:v2/content.accounttax.update": update_account_tax +"/content:v2/content.datafeeds.custombatch": batch_datafeed +"/content:v2/content.datafeedstatuses.custombatch": batch_datafeed_status +"/content:v2/content.datafeedstatuses.get": get_datafeed_status +"/content:v2/content.datafeedstatuses.list": list_datafeed_statuses +"/content:v2/content.inventory.custombatch": batch_inventory +"/content:v2/content.inventory.set": set_inventory +"/content:v2/content.products.custombatch": batch_product +"/content:v2/content.productstatuses.custombatch": batch_product_status +"/content:v2/content.productstatuses.get": get_product_status +"/content:v2/content.productstatuses.list": list_product_statuses +"/coordinate:v1/CustomFieldDefListResponse": list_custom_field_def_response +"/coordinate:v1/JobListResponse": list_job_response +"/coordinate:v1/LocationListResponse": list_location_response +"/coordinate:v1/TeamListResponse": list_team_response +"/coordinate:v1/WorkerListResponse": list_worker_response +"/datastore:v1beta2/AllocateIdsRequest": allocate_ids_request +"/datastore:v1beta2/AllocateIdsResponse": allocate_ids_response +"/datastore:v1beta2/BeginTransactionRequest": begin_transaction_request +"/datastore:v1beta2/BeginTransactionResponse": begin_transaction_response +"/deploymentmanager:v2beta1/DeploymentsListResponse": list_deployments_response +"/deploymentmanager:v2beta1/ManifestsListResponse": list_manifests_response +"/deploymentmanager:v2beta1/OperationsListResponse": list_operations_response +"/deploymentmanager:v2beta1/ResourcesListResponse": list_resources_response +"/deploymentmanager:v2beta1/TypesListResponse": list_types_response +"/deploymentmanager:v2beta2/DeploymentsListResponse": list_deployments_response +"/deploymentmanager:v2beta2/ManifestsListResponse": list_manifests_response +"/deploymentmanager:v2beta2/OperationsListResponse": list_operations_response +"/deploymentmanager:v2beta2/ResourcesListResponse": list_resources_response +"/deploymentmanager:v2beta2/TypesListResponse": list_types_response +"/dfareporting:v2.1/AccountPermissionGroupsListResponse": list_account_permission_groups_response +"/dfareporting:v2.1/AccountPermissionsListResponse": list_account_permissions_response +"/dfareporting:v2.1/AccountUserProfilesListResponse": list_account_user_profiles_response +"/dfareporting:v2.1/AccountsListResponse": list_accounts_response +"/dfareporting:v2.1/AdsListResponse": list_ads_response +"/dfareporting:v2.1/AdvertiserGroupsListResponse": list_advertiser_groups_response +"/dfareporting:v2.1/AdvertisersListResponse": list_advertisers_response +"/dfareporting:v2.1/BrowsersListResponse": list_browsers_response +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse": list_campaign_creative_associations_response +"/dfareporting:v2.1/CampaignsListResponse": list_campaigns_response +"/dfareporting:v2.1/ChangeLog/objectId": obj_id +"/dfareporting:v2.1/ChangeLogsListResponse": list_change_logs_response +"/dfareporting:v2.1/CitiesListResponse": list_cities_response +"/dfareporting:v2.1/ConnectionTypesListResponse": list_connection_types_response +"/dfareporting:v2.1/ContentCategoriesListResponse": list_content_categories_response +"/dfareporting:v2.1/CountriesListResponse": list_countries_response +"/dfareporting:v2.1/CreativeFieldValuesListResponse": list_creative_field_values_response +"/dfareporting:v2.1/CreativeFieldsListResponse": list_creative_fields_response +"/dfareporting:v2.1/CreativeGroupsListResponse": list_creative_groups_response +"/dfareporting:v2.1/CreativesListResponse": list_creatives_response +"/dfareporting:v2.1/DimensionValueRequest": dimension_value_request +"/dfareporting:v2.1/DirectorySiteContactsListResponse": list_directory_site_contacts_response +"/dfareporting:v2.1/DirectorySitesListResponse": list_directory_sites_response +"/dfareporting:v2.1/EventTagsListResponse": list_event_tags_response +"/dfareporting:v2.1/FloodlightActivitiesGenerateTagResponse": floodlight_activities_generate_tag_response +"/dfareporting:v2.1/FloodlightActivitiesListResponse": list_floodlight_activities_response +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse": list_floodlight_activity_groups_response +"/dfareporting:v2.1/FloodlightConfigurationsListResponse": list_floodlight_configurations_response +"/dfareporting:v2.1/InventoryItemsListResponse": list_inventory_items_response +"/dfareporting:v2.1/LandingPagesListResponse": list_landing_pages_response +"/dfareporting:v2.1/MetrosListResponse": list_metros_response +"/dfareporting:v2.1/MobileCarriersListResponse": list_mobile_carriers_response +"/dfareporting:v2.1/ObjectFilter/objectIds/object_id": obj_id +"/dfareporting:v2.1/OperatingSystemVersionsListResponse": list_operating_system_versions_response +"/dfareporting:v2.1/OperatingSystemsListResponse": list_operating_systems_response +"/dfareporting:v2.1/OrderDocumentsListResponse": list_order_documents_response +"/dfareporting:v2.1/OrdersListResponse": list_orders_response +"/dfareporting:v2.1/PlacementGroupsListResponse": list_placement_groups_response +"/dfareporting:v2.1/PlacementStrategiesListResponse": list_placement_strategies_response +"/dfareporting:v2.1/PlacementsGenerateTagsResponse": generate_placements_tags_response +"/dfareporting:v2.1/PlacementsListResponse": list_placements_response +"/dfareporting:v2.1/PlatformTypesListResponse": list_platform_types_response +"/dfareporting:v2.1/PostalCodesListResponse": list_postal_codes_response +"/dfareporting:v2.1/ProjectsListResponse": list_projects_response +"/dfareporting:v2.1/RegionsListResponse": list_regions_response +"/dfareporting:v2.1/RemarketingListsListResponse": list_remarketing_lists_response +"/dfareporting:v2.1/SitesListResponse": list_sites_response +"/dfareporting:v2.1/SizesListResponse": list_sizes_response +"/dfareporting:v2.1/SubaccountsListResponse": list_subaccounts_response +"/dfareporting:v2.1/TargetableRemarketingListsListResponse": list_targetable_remarketing_lists_response +"/dfareporting:v2.1/UserRolePermissionGroupsListResponse": list_user_role_permission_groups_response +"/dfareporting:v2.1/UserRolePermissionsListResponse": list_user_role_permissions_response +"/dfareporting:v2.1/UserRolesListResponse": list_user_roles_response +"/dfareporting:v2.1/dfareporting.floodlightActivities.generatetag": generate_floodlight_activity_tag +"/dfareporting:v2.1/dfareporting.placements.generatetags": generate_placement_tags +"/discovery:v1/RestDescription/methods": api_methods +"/discovery:v1/RestResource/methods": api_methods +"/dns:v1/ChangesListResponse": list_changes_response +"/dns:v1/ManagedZonesListResponse": list_managed_zones_response +"/dns:v1/ResourceRecordSetsListResponse": list_resource_record_sets_response +"/doubleclickbidmanager:v1/DownloadLineItemsRequest": download_line_items_request +"/doubleclickbidmanager:v1/DownloadLineItemsResponse": download_line_items_response +"/doubleclickbidmanager:v1/ListQueriesResponse": list_queries_response +"/doubleclickbidmanager:v1/ListReportsResponse": list_reports_response +"/doubleclickbidmanager:v1/RunQueryRequest": run_query_request +"/doubleclickbidmanager:v1/UploadLineItemsRequest": upload_line_items_request +"/doubleclickbidmanager:v1/UploadLineItemsResponse": upload_line_items_response +"/doubleclickbidmanager:v1/doubleclickbidmanager.lineitems.downloadlineitems": download_line_items +"/doubleclickbidmanager:v1/doubleclickbidmanager.lineitems.uploadlineitems": upload_line_items +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.createquery": create_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.deletequery": deletequery +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.getquery": get_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.listqueries": list_queries +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.runquery": run_query +"/doubleclickbidmanager:v1/doubleclickbidmanager.reports.listreports": list_reports +"/doubleclicksearch:v2/ReportRequest": report_request +"/doubleclicksearch:v2/UpdateAvailabilityRequest": update_availability_request +"/doubleclicksearch:v2/UpdateAvailabilityResponse": update_availability_response +"/drive:v2/drive.files.emptyTrash": empty_trash +"/drive:v2/drive.permissions.getIdForEmail": get_permission_id_for_email +"/fusiontables:v2/fusiontables.table.importRows": import_rows +"/fusiontables:v2/fusiontables.table.importTable": import_table +"/games:v1/AchievementDefinitionsListResponse": list_achievement_definitions_response +"/games:v1/AchievementIncrementResponse": achievement_increment_response +"/games:v1/AchievementRevealResponse": achievement_reveal_response +"/games:v1/AchievementSetStepsAtLeastResponse": achievement_set_steps_at_least_response +"/games:v1/AchievementUnlockResponse": achievement_unlock_response +"/games:v1/AchievementUpdateMultipleRequest": achievement_update_multiple_request +"/games:v1/AchievementUpdateMultipleResponse": achievement_update_multiple_response +"/games:v1/AchievementUpdateRequest": update_achievement_request +"/games:v1/AchievementUpdateResponse": update_achievement_response +"/games:v1/CategoryListResponse": list_category_response +"/games:v1/EventDefinitionListResponse": list_event_definition_response +"/games:v1/EventRecordRequest": event_record_request +"/games:v1/EventUpdateRequest": update_event_request +"/games:v1/EventUpdateResponse": update_event_response +"/games:v1/LeaderboardListResponse": list_leaderboard_response +"/games:v1/PlayerAchievementListResponse": list_player_achievement_response +"/games:v1/PlayerEventListResponse": list_player_event_response +"/games:v1/PlayerLeaderboardScoreListResponse": list_player_leaderboard_score_response +"/games:v1/PlayerListResponse": list_player_response +"/games:v1/PlayerScoreListResponse": list_player_score_response +"/games:v1/PlayerScoreResponse": player_score_response +"/games:v1/QuestListResponse": list_quest_response +"/games:v1/RevisionCheckResponse": check_revision_response +"/games:v1/RoomCreateRequest": create_room_request +"/games:v1/RoomJoinRequest": join_room_request +"/games:v1/RoomLeaveRequest": leave_room_request +"/games:v1/SnapshotListResponse": list_snapshot_response +"/games:v1/TurnBasedMatchCreateRequest": create_turn_based_match_request +"/games:v1/TurnBasedMatchDataRequest": turn_based_match_data_request +"/games:v1/games.achievements.updateMultiple": update_multiple_achievements +"/games:v1/games.events.listDefinitions": list_event_definitions +"/games:v1/games.metagame.getMetagameConfig": get_metagame_config +"/games:v1/games.rooms.reportStatus": report_room_status +"/games:v1/games.turnBasedMatches.leaveTurn": leave_turn +"/games:v1/games.turnBasedMatches.takeTurn": take_turn +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse": list_achievement_configuration_response +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse": list_leaderboard_configuration_response +"/genomics:v1beta2/genomics.callsets.create": create_call_set +"/genomics:v1beta2/genomics.callsets.delete": delete_call_set +"/genomics:v1beta2/genomics.callsets.get": get_call_set +"/genomics:v1beta2/genomics.callsets.patch": patch_call_set +"/genomics:v1beta2/genomics.callsets.search": search_call_sets +"/genomics:v1beta2/genomics.callsets.update": update_call_set +"/genomics:v1beta2/genomics.readgroupsets.align": align_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.call": call_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list": list_coverage_buckets +"/genomics:v1beta2/genomics.readgroupsets.delete": delete_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.export": export_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.get": get_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.import": import_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.patch": patch_read_group_set +"/genomics:v1beta2/genomics.readgroupsets.search": search_read_group_sets +"/genomics:v1beta2/genomics.readgroupsets.update": update_read_group_set +"/genomics:v1beta2/genomics.references.bases.list/end": end_position +"/genomics:v1beta2/genomics.references.bases.list/start": start_position +"/genomics:v1beta2/genomics.referencesets.get": get_reference_set +"/genomics:v1beta2/genomics.streamingReadstore.streamreads": stream_reads +"/gmail:v1/gmail.users.getProfile": get_user_profile +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest": create_auth_uri_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDeleteAccountRequest": delete_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDownloadAccountRequest": download_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest": get_account_info_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetPublicKeysResponse": get_public_keys_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetPublicKeysResponse/get_public_keys_response": get_public_keys_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest": reset_password_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest": set_account_info_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest": upload_account_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest": verify_assertion_request +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest": verify_password_request +"/identitytoolkit:v3/identitytoolkit.relyingparty.createAuthUri": create_auth_uri +"/identitytoolkit:v3/identitytoolkit.relyingparty.deleteAccount": delete_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.downloadAccount": download_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.getAccountInfo": get_account_info +"/identitytoolkit:v3/identitytoolkit.relyingparty.getOobConfirmationCode": get_oob_confirmation_code +"/identitytoolkit:v3/identitytoolkit.relyingparty.getPublicKeys": get_public_keys +"/identitytoolkit:v3/identitytoolkit.relyingparty.getRecaptchaParam": get_recaptcha_param +"/identitytoolkit:v3/identitytoolkit.relyingparty.resetPassword": reset_password +"/identitytoolkit:v3/identitytoolkit.relyingparty.setAccountInfo": set_account_info +"/identitytoolkit:v3/identitytoolkit.relyingparty.uploadAccount": upload_account +"/identitytoolkit:v3/identitytoolkit.relyingparty.verifyAssertion": verify_assertion +"/identitytoolkit:v3/identitytoolkit.relyingparty.verifyPassword": verify_password +"/licensing:v1/licensing.licenseAssignments.listForProduct": list_license_assignment_for_product +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku": list_license_assignment_for_product_and_sku +"/logging:v1beta3/logging.projects.logServices.indexes.list": list_log_service_indexes +"/logging:v1beta3/logging.projects.logServices.list": list_log_services +"/logging:v1beta3/logging.projects.logServices.sinks.create": create_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.delete": delete_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.get": get_log_service_sink +"/logging:v1beta3/logging.projects.logServices.sinks.list": list_log_service_sinks +"/logging:v1beta3/logging.projects.logServices.sinks.update": update_log_service_sink +"/logging:v1beta3/logging.projects.logs.delete": delete_log +"/logging:v1beta3/logging.projects.logs.list": list_logs +"/logging:v1beta3/logging.projects.logs.sinks.create": create_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.delete": delete_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.get": get_log_sink +"/logging:v1beta3/logging.projects.logs.sinks.list": list_log_sinks +"/logging:v1beta3/logging.projects.logs.sinks.update": update_log_sink +"/manager:v1beta2/DeploymentsListResponse": list_deployments_response +"/manager:v1beta2/TemplatesListResponse": list_templates_response +"/mapsengine:v1/AssetsListResponse": list_assets_response +"/mapsengine:v1/FeaturesBatchDeleteRequest": batch_delete_features_request +"/mapsengine:v1/FeaturesBatchInsertRequest": batch_insert_features_request +"/mapsengine:v1/FeaturesBatchPatchRequest": batch_patch_features_request +"/mapsengine:v1/FeaturesListResponse": list_features_response +"/mapsengine:v1/IconsListResponse": list_icons_response +"/mapsengine:v1/LayersListResponse": list_layers_response +"/mapsengine:v1/MapsListResponse": list_maps_response +"/mapsengine:v1/ParentsListResponse": list_parents_response +"/mapsengine:v1/PermissionsBatchDeleteRequest": batch_delete_permissions_request +"/mapsengine:v1/PermissionsBatchDeleteResponse": batch_delete_permissions_response +"/mapsengine:v1/PermissionsBatchUpdateRequest": batch_update_permissions_request +"/mapsengine:v1/PermissionsBatchUpdateResponse": batch_update_permissions_response +"/mapsengine:v1/PermissionsListResponse": list_permissions_response +"/mapsengine:v1/ProjectsListResponse": list_projects_response +"/mapsengine:v1/PublishedLayersListResponse": list_published_layers_response +"/mapsengine:v1/PublishedMapsListResponse": list_published_maps_response +"/mapsengine:v1/RasterCollectionsListResponse": list_raster_collections_response +"/mapsengine:v1/RasterCollectionsRasterBatchDeleteRequest": batch_delete_raster_collections_raster_request +"/mapsengine:v1/RasterCollectionsRastersBatchDeleteResponse": batch_delete_raster_collections_rasters_response +"/mapsengine:v1/RasterCollectionsRastersBatchInsertRequest": batch_insert_raster_collections_rasters_request +"/mapsengine:v1/RasterCollectionsRastersBatchInsertResponse": batch_insert_raster_collections_rasters_response +"/mapsengine:v1/RasterCollectionsRastersListResponse": list_raster_collections_rasters_response +"/mapsengine:v1/RastersListResponse": list_rasters_response +"/mapsengine:v1/TablesListResponse": list_tables_response +"/mirror:v1/AttachmentsListResponse": list_attachments_response +"/mirror:v1/ContactsListResponse": list_contacts_response +"/mirror:v1/LocationsListResponse": list_locations_response +"/mirror:v1/SubscriptionsListResponse": list_subscriptions_response +"/mirror:v1/TimelineListResponse": list_timeline_response +"/oauth2:v2/oauth2.userinfo.v2.me.get": get_userinfo_v2 +"/pagespeedonline:v2/PagespeedApiFormatStringV2": format_string +"/pagespeedonline:v2/PagespeedApiImageV2": image +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed": run_pagespeed +"/plus:v1/plus.people.listByActivity": list_people_by_activity +"/plusDomains:v1/plusDomains.circles.addPeople": add_people +"/plusDomains:v1/plusDomains.circles.removePeople": remove_people +"/plusDomains:v1/plusDomains.people.listByActivity": list_people_by_activity +"/plusDomains:v1/plusDomains.people.listByCircle": list_people_by_circle +"/prediction:v1.6/prediction.hostedmodels.predict": predict_hosted_model +"/prediction:v1.6/prediction.trainedmodels.analyze": analyze_trained_model +"/prediction:v1.6/prediction.trainedmodels.delete": delete_trained_model +"/prediction:v1.6/prediction.trainedmodels.get": get_trained_model +"/prediction:v1.6/prediction.trainedmodels.insert": insert_trained_model +"/prediction:v1.6/prediction.trainedmodels.list": list_trained_models +"/prediction:v1.6/prediction.trainedmodels.predict": predict_trained_model +"/prediction:v1.6/prediction.trainedmodels.update": update_trained_model +"/pubsub:v1beta2/PubsubMessage": message +"/pubsub:v1beta2/pubsub.projects.subscriptions.create": create_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.delete": delete_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.get": get_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.list": list_subscriptions +"/pubsub:v1beta2/pubsub.projects.subscriptions.setIamPolicy": set_subscription_policy +"/pubsub:v1beta2/pubsub.projects.subscriptions.testIamPermissions": test_subscription_permissions +"/pubsub:v1beta2/pubsub.projects.topics.create": create_topic +"/pubsub:v1beta2/pubsub.projects.topics.delete": delete_topic +"/pubsub:v1beta2/pubsub.projects.topics.get": get_topic +"/pubsub:v1beta2/pubsub.projects.topics.list": list_topics +"/pubsub:v1beta2/pubsub.projects.topics.setIamPolicy": set_topic_policy +"/pubsub:v1beta2/pubsub.projects.topics.testIamPermissions": test_topic_permissions +"/pubsub:v1beta2/pubsub.projects.topics.subscriptions.list": list_topic_subscriptions +"/qpxExpress:v1/TripsSearchRequest": search_trips_request +"/qpxExpress:v1/TripsSearchResponse": search_trips_response +"/replicapool:v1beta2/InstanceGroupManagersAbandonInstancesRequest": abandon_instances_request +"/replicapool:v1beta2/InstanceGroupManagersDeleteInstancesRequest": delete_instances_request +"/replicapool:v1beta2/InstanceGroupManagersRecreateInstancesRequest": recreate_instances_request +"/replicapool:v1beta2/InstanceGroupManagersSetInstanceTemplateRequest": set_instance_template_request +"/replicapool:v1beta2/InstanceGroupManagersSetTargetPoolsRequest": set_target_pools_request +"/replicapool:v1beta2/replicapool.instanceGroupManagers.abandonInstances": abandon_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.deleteInstances": delete_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.recreateInstances": recreate_instances +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize": resize_instance +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setInstanceTemplate": set_instance_template +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setTargetPools": set_target_pools +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates": list_instance_updates +"/reseller:v1/ChangePlanRequest": change_plan_request +"/reseller:v1/reseller.subscriptions.changeRenewalSettings": change_subscription_renewal_settings +"/reseller:v1/reseller.subscriptions.changeSeats": change_subscription_seats +"/resourceviews:v1beta2/ZoneViewsAddResourcesRequest": add_resources_request +"/resourceviews:v1beta2/ZoneViewsGetServiceResponse": get_service_response +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse": list_resources_response +"/resourceviews:v1beta2/ZoneViewsRemoveResourcesRequest": remove_resources_request +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest": set_service_request +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest": get_web_resource_token_request +"/siteVerification:v1/SiteVerificationWebResourceGettokenResponse": get_web_resource_token_response +"/siteVerification:v1/SiteVerificationWebResourceGettokenResponse/method": verification_method +"/siteVerification:v1/SiteVerificationWebResourceListResponse": list_web_resource_response +"/sqladmin:v1beta4/BackupRunsListResponse": list_backup_runs_response +"/sqladmin:v1beta4/DatabasesListResponse": list_databases_response +"/sqladmin:v1beta4/FlagsListResponse": list_flags_response +"/sqladmin:v1beta4/InstancesCloneRequest": clone_instances_request +"/sqladmin:v1beta4/InstancesExportRequest": export_instances_request +"/sqladmin:v1beta4/InstancesImportRequest": import_instances_request +"/sqladmin:v1beta4/InstancesListResponse": list_instances_response +"/sqladmin:v1beta4/InstancesRestoreBackupRequest": restore_instances_backup_request +"/sqladmin:v1beta4/OperationsListResponse": list_operations_response +"/sqladmin:v1beta4/SslCertsInsertRequest": insert_ssl_certs_request +"/sqladmin:v1beta4/SslCertsInsertResponse": insert_ssl_certs_response +"/sqladmin:v1beta4/SslCertsListResponse": list_ssl_certs_response +"/sqladmin:v1beta4/TiersListResponse": list_tiers_response +"/sqladmin:v1beta4/UsersListResponse": list_users_response +"/storage:v1/Bucket/cors": cors_configurations +"/storage:v1/Bucket/cors/cors_configuration/method": http_method +"/tagmanager:v1/tagmanager.accounts.containers.create": create_container +"/tagmanager:v1/tagmanager.accounts.containers.delete": delete_container +"/tagmanager:v1/tagmanager.accounts.containers.get": get_container +"/tagmanager:v1/tagmanager.accounts.containers.list": list_containers +"/tagmanager:v1/tagmanager.accounts.containers.macros.create": create_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.delete": delete_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.get": get_macro +"/tagmanager:v1/tagmanager.accounts.containers.macros.list": list_macros +"/tagmanager:v1/tagmanager.accounts.containers.macros.update": update_macro +"/tagmanager:v1/tagmanager.accounts.containers.rules.create": create_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.delete": delete_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.get": get_rule +"/tagmanager:v1/tagmanager.accounts.containers.rules.list": list_rules +"/tagmanager:v1/tagmanager.accounts.containers.rules.update": update_rule +"/tagmanager:v1/tagmanager.accounts.containers.tags.create": create_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.delete": delete_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.get": get_tag +"/tagmanager:v1/tagmanager.accounts.containers.tags.list": list_tags +"/tagmanager:v1/tagmanager.accounts.containers.tags.update": update_tag +"/tagmanager:v1/tagmanager.accounts.containers.triggers.create": create_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.delete": delete_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.get": get_trigger +"/tagmanager:v1/tagmanager.accounts.containers.triggers.list": list_triggers +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update": update_trigger +"/tagmanager:v1/tagmanager.accounts.containers.update": update_container +"/tagmanager:v1/tagmanager.accounts.containers.variables.create": create_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.delete": delete_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.get": get_variable +"/tagmanager:v1/tagmanager.accounts.containers.variables.list": list_variables +"/tagmanager:v1/tagmanager.accounts.containers.variables.update": update_variable +"/tagmanager:v1/tagmanager.accounts.containers.versions.create": create_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.delete": delete_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.get": get_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.list": list_versions +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish": publish_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.restore": restore_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.undelete": undelete_version +"/tagmanager:v1/tagmanager.accounts.containers.versions.update": update_version +"/tagmanager:v1/tagmanager.accounts.get": get_account +"/tagmanager:v1/tagmanager.accounts.list": list_accounts +"/tagmanager:v1/tagmanager.accounts.permissions.create": create_permission +"/tagmanager:v1/tagmanager.accounts.permissions.delete": delete_permission +"/tagmanager:v1/tagmanager.accounts.permissions.get": get_permission +"/tagmanager:v1/tagmanager.accounts.permissions.list": list_permissions +"/tagmanager:v1/tagmanager.accounts.permissions.update": update_permission +"/tagmanager:v1/tagmanager.accounts.update": update_account +"/translate:v2/DetectionsListResponse": list_detections_response +"/translate:v2/LanguagesListResponse": list_languages_response +"/translate:v2/TranslationsListResponse": list_translations_response +"/webmasters:v3/SitemapsListResponse": list_sitemaps_response +"/webmasters:v3/SitesListResponse": list_sites_response +"/webmasters:v3/UrlCrawlErrorsCountsQueryResponse": query_url_crawl_errors_counts_response +"/webmasters:v3/UrlCrawlErrorsSamplesListResponse": list_url_crawl_errors_samples_response +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query": query_errors_count +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get": get_errors_sample +"/webmasters:v3/webmasters.urlcrawlerrorssamples.list": list_errors_samples +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed": mark_as_fixed +"/youtube:v3/youtube.comments.setModerationStatus": set_comment_moderation_status +"/youtube:v3/ActivityListResponse": list_activities_response +"/youtube:v3/CaptionListResponse": list_captions_response +"/youtube:v3/ChannelListResponse": list_channels_response +"/youtube:v3/ChannelSectionListResponse": list_channel_sections_response +"/youtube:v3/CommentListResponse": list_comments_response +"/youtube:v3/CommentThreadListResponse": list_comment_threads_response +"/youtube:v3/GuideCategoryListResponse": list_guide_categories_response +"/youtube:v3/I18nLanguageListResponse": list_i18n_languages_response +"/youtube:v3/I18nRegionListResponse": list_i18n_regions_response +"/youtube:v3/LiveBroadcastListResponse": list_live_broadcasts_response +"/youtube:v3/LiveStreamListResponse": list_live_streams_response +"/youtube:v3/PlaylistItemListResponse": list_playlist_items_response +"/youtube:v3/PlaylistListResponse": list_playlist_response +"/youtube:v3/SearchListResponse": search_lists_response +"/youtube:v3/SubscriptionListResponse": list_subscription_response +"/youtube:v3/ThumbnailSetResponse": set_thumbnail_response +"/youtube:v3/VideoAbuseReportReasonListResponse": list_video_abuse_report_reason_response +"/youtube:v3/VideoCategoryListResponse": list_video_category_response +"/youtube:v3/VideoGetRatingResponse": get_video_rating_response +"/youtube:v3/VideoListResponse": list_videos_response +"/youtubeAnalytics:v1/GroupItemListResponse": list_group_item_response +"/youtubeAnalytics:v1/GroupListResponse": list_groups_response +"/adexchangebuyer:v1.3/fields": fields +"/adexchangebuyer:v1.3/key": key +"/adexchangebuyer:v1.3/quotaUser": quota_user +"/adexchangebuyer:v1.3/userIp": user_ip +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.get": get_account +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.get/id": id +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.list": list_accounts +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.patch": patch_account +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.patch/id": id +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.update": update_account +"/adexchangebuyer:v1.3/adexchangebuyer.accounts.update/id": id +"/adexchangebuyer:v1.3/adexchangebuyer.billingInfo.get": get_billing_info +"/adexchangebuyer:v1.3/adexchangebuyer.billingInfo.get/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.billingInfo.list": list_billing_infos +"/adexchangebuyer:v1.3/adexchangebuyer.budget.get": get_budget +"/adexchangebuyer:v1.3/adexchangebuyer.budget.get/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.budget.get/billingId": billing_id +"/adexchangebuyer:v1.3/adexchangebuyer.budget.patch": patch_budget +"/adexchangebuyer:v1.3/adexchangebuyer.budget.patch/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.budget.patch/billingId": billing_id +"/adexchangebuyer:v1.3/adexchangebuyer.budget.update": update_budget +"/adexchangebuyer:v1.3/adexchangebuyer.budget.update/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.budget.update/billingId": billing_id +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.get": get_creative +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.get/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.get/buyerCreativeId": buyer_creative_id +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.insert": insert_creative +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list": list_creatives +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list/buyerCreativeId": buyer_creative_id +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list/maxResults": max_results +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list/pageToken": page_token +"/adexchangebuyer:v1.3/adexchangebuyer.creatives.list/statusFilter": status_filter +"/adexchangebuyer:v1.3/adexchangebuyer.directDeals.get": get_direct_deal +"/adexchangebuyer:v1.3/adexchangebuyer.directDeals.get/id": id +"/adexchangebuyer:v1.3/adexchangebuyer.directDeals.list": list_direct_deals +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list": list_performance_reports +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list/endDateTime": end_date_time +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list/maxResults": max_results +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list/pageToken": page_token +"/adexchangebuyer:v1.3/adexchangebuyer.performanceReport.list/startDateTime": start_date_time +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.delete": delete_pretargeting_config +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.delete/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.delete/configId": config_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.get": get_pretargeting_config +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.get/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.get/configId": config_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.insert": insert_pretargeting_config +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.insert/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.list": list_pretargeting_configs +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.list/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.patch": patch_pretargeting_config +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.patch/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.patch/configId": config_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.update": update_pretargeting_config +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.update/accountId": account_id +"/adexchangebuyer:v1.3/adexchangebuyer.pretargetingConfig.update/configId": config_id +"/adexchangebuyer:v1.3/Account": account +"/adexchangebuyer:v1.3/Account/bidderLocation": bidder_location +"/adexchangebuyer:v1.3/Account/bidderLocation/bidder_location": bidder_location +"/adexchangebuyer:v1.3/Account/bidderLocation/bidder_location/maximumQps": maximum_qps +"/adexchangebuyer:v1.3/Account/bidderLocation/bidder_location/region": region +"/adexchangebuyer:v1.3/Account/bidderLocation/bidder_location/url": url +"/adexchangebuyer:v1.3/Account/cookieMatchingNid": cookie_matching_nid +"/adexchangebuyer:v1.3/Account/cookieMatchingUrl": cookie_matching_url +"/adexchangebuyer:v1.3/Account/id": id +"/adexchangebuyer:v1.3/Account/kind": kind +"/adexchangebuyer:v1.3/Account/maximumActiveCreatives": maximum_active_creatives +"/adexchangebuyer:v1.3/Account/maximumTotalQps": maximum_total_qps +"/adexchangebuyer:v1.3/Account/numberActiveCreatives": number_active_creatives +"/adexchangebuyer:v1.3/AccountsList": accounts_list +"/adexchangebuyer:v1.3/AccountsList/items": items +"/adexchangebuyer:v1.3/AccountsList/items/item": item +"/adexchangebuyer:v1.3/AccountsList/kind": kind +"/adexchangebuyer:v1.3/BillingInfo": billing_info +"/adexchangebuyer:v1.3/BillingInfo/accountId": account_id +"/adexchangebuyer:v1.3/BillingInfo/accountName": account_name +"/adexchangebuyer:v1.3/BillingInfo/billingId": billing_id +"/adexchangebuyer:v1.3/BillingInfo/billingId/billing_id": billing_id +"/adexchangebuyer:v1.3/BillingInfo/kind": kind +"/adexchangebuyer:v1.3/BillingInfoList": billing_info_list +"/adexchangebuyer:v1.3/BillingInfoList/items": items +"/adexchangebuyer:v1.3/BillingInfoList/items/item": item +"/adexchangebuyer:v1.3/BillingInfoList/kind": kind +"/adexchangebuyer:v1.3/Budget": budget +"/adexchangebuyer:v1.3/Budget/accountId": account_id +"/adexchangebuyer:v1.3/Budget/billingId": billing_id +"/adexchangebuyer:v1.3/Budget/budgetAmount": budget_amount +"/adexchangebuyer:v1.3/Budget/currencyCode": currency_code +"/adexchangebuyer:v1.3/Budget/id": id +"/adexchangebuyer:v1.3/Budget/kind": kind +"/adexchangebuyer:v1.3/Creative": creative +"/adexchangebuyer:v1.3/Creative/HTMLSnippet": html_snippet +"/adexchangebuyer:v1.3/Creative/accountId": account_id +"/adexchangebuyer:v1.3/Creative/advertiserId": advertiser_id +"/adexchangebuyer:v1.3/Creative/advertiserId/advertiser_id": advertiser_id +"/adexchangebuyer:v1.3/Creative/advertiserName": advertiser_name +"/adexchangebuyer:v1.3/Creative/agencyId": agency_id +"/adexchangebuyer:v1.3/Creative/attribute": attribute +"/adexchangebuyer:v1.3/Creative/attribute/attribute": attribute +"/adexchangebuyer:v1.3/Creative/buyerCreativeId": buyer_creative_id +"/adexchangebuyer:v1.3/Creative/clickThroughUrl": click_through_url +"/adexchangebuyer:v1.3/Creative/clickThroughUrl/click_through_url": click_through_url +"/adexchangebuyer:v1.3/Creative/corrections": corrections +"/adexchangebuyer:v1.3/Creative/corrections/correction": correction +"/adexchangebuyer:v1.3/Creative/corrections/correction/details": details +"/adexchangebuyer:v1.3/Creative/corrections/correction/details/detail": detail +"/adexchangebuyer:v1.3/Creative/corrections/correction/reason": reason +"/adexchangebuyer:v1.3/Creative/disapprovalReasons": disapproval_reasons +"/adexchangebuyer:v1.3/Creative/disapprovalReasons/disapproval_reason": disapproval_reason +"/adexchangebuyer:v1.3/Creative/disapprovalReasons/disapproval_reason/details": details +"/adexchangebuyer:v1.3/Creative/disapprovalReasons/disapproval_reason/details/detail": detail +"/adexchangebuyer:v1.3/Creative/disapprovalReasons/disapproval_reason/reason": reason +"/adexchangebuyer:v1.3/Creative/filteringReasons": filtering_reasons +"/adexchangebuyer:v1.3/Creative/filteringReasons/date": date +"/adexchangebuyer:v1.3/Creative/filteringReasons/reasons": reasons +"/adexchangebuyer:v1.3/Creative/filteringReasons/reasons/reason": reason +"/adexchangebuyer:v1.3/Creative/filteringReasons/reasons/reason/filteringCount": filtering_count +"/adexchangebuyer:v1.3/Creative/filteringReasons/reasons/reason/filteringStatus": filtering_status +"/adexchangebuyer:v1.3/Creative/height": height +"/adexchangebuyer:v1.3/Creative/kind": kind +"/adexchangebuyer:v1.3/Creative/productCategories": product_categories +"/adexchangebuyer:v1.3/Creative/productCategories/product_category": product_category +"/adexchangebuyer:v1.3/Creative/restrictedCategories": restricted_categories +"/adexchangebuyer:v1.3/Creative/restrictedCategories/restricted_category": restricted_category +"/adexchangebuyer:v1.3/Creative/sensitiveCategories": sensitive_categories +"/adexchangebuyer:v1.3/Creative/sensitiveCategories/sensitive_category": sensitive_category +"/adexchangebuyer:v1.3/Creative/status": status +"/adexchangebuyer:v1.3/Creative/vendorType": vendor_type +"/adexchangebuyer:v1.3/Creative/vendorType/vendor_type": vendor_type +"/adexchangebuyer:v1.3/Creative/videoURL": video_url +"/adexchangebuyer:v1.3/Creative/width": width +"/adexchangebuyer:v1.3/CreativesList": creatives_list +"/adexchangebuyer:v1.3/CreativesList/items": items +"/adexchangebuyer:v1.3/CreativesList/items/item": item +"/adexchangebuyer:v1.3/CreativesList/kind": kind +"/adexchangebuyer:v1.3/CreativesList/nextPageToken": next_page_token +"/adexchangebuyer:v1.3/DirectDeal": direct_deal +"/adexchangebuyer:v1.3/DirectDeal/accountId": account_id +"/adexchangebuyer:v1.3/DirectDeal/advertiser": advertiser +"/adexchangebuyer:v1.3/DirectDeal/currencyCode": currency_code +"/adexchangebuyer:v1.3/DirectDeal/endTime": end_time +"/adexchangebuyer:v1.3/DirectDeal/fixedCpm": fixed_cpm +"/adexchangebuyer:v1.3/DirectDeal/id": id +"/adexchangebuyer:v1.3/DirectDeal/kind": kind +"/adexchangebuyer:v1.3/DirectDeal/name": name +"/adexchangebuyer:v1.3/DirectDeal/privateExchangeMinCpm": private_exchange_min_cpm +"/adexchangebuyer:v1.3/DirectDeal/publisherBlocksOverriden": publisher_blocks_overriden +"/adexchangebuyer:v1.3/DirectDeal/sellerNetwork": seller_network +"/adexchangebuyer:v1.3/DirectDeal/startTime": start_time +"/adexchangebuyer:v1.3/DirectDealsList": direct_deals_list +"/adexchangebuyer:v1.3/DirectDealsList/directDeals": direct_deals +"/adexchangebuyer:v1.3/DirectDealsList/directDeals/direct_deal": direct_deal +"/adexchangebuyer:v1.3/DirectDealsList/kind": kind +"/adexchangebuyer:v1.3/PerformanceReport": performance_report +"/adexchangebuyer:v1.3/PerformanceReport/bidRate": bid_rate +"/adexchangebuyer:v1.3/PerformanceReport/bidRequestRate": bid_request_rate +"/adexchangebuyer:v1.3/PerformanceReport/calloutStatusRate": callout_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/calloutStatusRate/callout_status_rate": callout_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/cookieMatcherStatusRate": cookie_matcher_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/cookieMatcherStatusRate/cookie_matcher_status_rate": cookie_matcher_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/creativeStatusRate": creative_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/creativeStatusRate/creative_status_rate": creative_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/filteredBidRate": filtered_bid_rate +"/adexchangebuyer:v1.3/PerformanceReport/hostedMatchStatusRate": hosted_match_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/hostedMatchStatusRate/hosted_match_status_rate": hosted_match_status_rate +"/adexchangebuyer:v1.3/PerformanceReport/inventoryMatchRate": inventory_match_rate +"/adexchangebuyer:v1.3/PerformanceReport/kind": kind +"/adexchangebuyer:v1.3/PerformanceReport/noQuotaInRegion": no_quota_in_region +"/adexchangebuyer:v1.3/PerformanceReport/outOfQuota": out_of_quota +"/adexchangebuyer:v1.3/PerformanceReport/pixelMatchRequests": pixel_match_requests +"/adexchangebuyer:v1.3/PerformanceReport/pixelMatchResponses": pixel_match_responses +"/adexchangebuyer:v1.3/PerformanceReport/quotaConfiguredLimit": quota_configured_limit +"/adexchangebuyer:v1.3/PerformanceReport/quotaThrottledLimit": quota_throttled_limit +"/adexchangebuyer:v1.3/PerformanceReport/region": region +"/adexchangebuyer:v1.3/PerformanceReport/successfulRequestRate": successful_request_rate +"/adexchangebuyer:v1.3/PerformanceReport/timestamp": timestamp +"/adexchangebuyer:v1.3/PerformanceReport/unsuccessfulRequestRate": unsuccessful_request_rate +"/adexchangebuyer:v1.3/PerformanceReportList": performance_report_list +"/adexchangebuyer:v1.3/PerformanceReportList/kind": kind +"/adexchangebuyer:v1.3/PerformanceReportList/performanceReport": performance_report +"/adexchangebuyer:v1.3/PerformanceReportList/performanceReport/performance_report": performance_report +"/adexchangebuyer:v1.3/PretargetingConfig": pretargeting_config +"/adexchangebuyer:v1.3/PretargetingConfig/billingId": billing_id +"/adexchangebuyer:v1.3/PretargetingConfig/configId": config_id +"/adexchangebuyer:v1.3/PretargetingConfig/configName": config_name +"/adexchangebuyer:v1.3/PretargetingConfig/creativeType": creative_type +"/adexchangebuyer:v1.3/PretargetingConfig/creativeType/creative_type": creative_type +"/adexchangebuyer:v1.3/PretargetingConfig/dimensions": dimensions +"/adexchangebuyer:v1.3/PretargetingConfig/dimensions/dimension": dimension +"/adexchangebuyer:v1.3/PretargetingConfig/dimensions/dimension/height": height +"/adexchangebuyer:v1.3/PretargetingConfig/dimensions/dimension/width": width +"/adexchangebuyer:v1.3/PretargetingConfig/excludedContentLabels": excluded_content_labels +"/adexchangebuyer:v1.3/PretargetingConfig/excludedContentLabels/excluded_content_label": excluded_content_label +"/adexchangebuyer:v1.3/PretargetingConfig/excludedGeoCriteriaIds": excluded_geo_criteria_ids +"/adexchangebuyer:v1.3/PretargetingConfig/excludedGeoCriteriaIds/excluded_geo_criteria_id": excluded_geo_criteria_id +"/adexchangebuyer:v1.3/PretargetingConfig/excludedPlacements": excluded_placements +"/adexchangebuyer:v1.3/PretargetingConfig/excludedPlacements/excluded_placement": excluded_placement +"/adexchangebuyer:v1.3/PretargetingConfig/excludedPlacements/excluded_placement/token": token +"/adexchangebuyer:v1.3/PretargetingConfig/excludedPlacements/excluded_placement/type": type +"/adexchangebuyer:v1.3/PretargetingConfig/excludedUserLists": excluded_user_lists +"/adexchangebuyer:v1.3/PretargetingConfig/excludedUserLists/excluded_user_list": excluded_user_list +"/adexchangebuyer:v1.3/PretargetingConfig/excludedVerticals": excluded_verticals +"/adexchangebuyer:v1.3/PretargetingConfig/excludedVerticals/excluded_vertical": excluded_vertical +"/adexchangebuyer:v1.3/PretargetingConfig/geoCriteriaIds": geo_criteria_ids +"/adexchangebuyer:v1.3/PretargetingConfig/geoCriteriaIds/geo_criteria_id": geo_criteria_id +"/adexchangebuyer:v1.3/PretargetingConfig/isActive": is_active +"/adexchangebuyer:v1.3/PretargetingConfig/kind": kind +"/adexchangebuyer:v1.3/PretargetingConfig/languages": languages +"/adexchangebuyer:v1.3/PretargetingConfig/languages/language": language +"/adexchangebuyer:v1.3/PretargetingConfig/mobileCarriers": mobile_carriers +"/adexchangebuyer:v1.3/PretargetingConfig/mobileCarriers/mobile_carrier": mobile_carrier +"/adexchangebuyer:v1.3/PretargetingConfig/mobileDevices": mobile_devices +"/adexchangebuyer:v1.3/PretargetingConfig/mobileDevices/mobile_device": mobile_device +"/adexchangebuyer:v1.3/PretargetingConfig/mobileOperatingSystemVersions": mobile_operating_system_versions +"/adexchangebuyer:v1.3/PretargetingConfig/mobileOperatingSystemVersions/mobile_operating_system_version": mobile_operating_system_version +"/adexchangebuyer:v1.3/PretargetingConfig/placements": placements +"/adexchangebuyer:v1.3/PretargetingConfig/placements/placement": placement +"/adexchangebuyer:v1.3/PretargetingConfig/placements/placement/token": token +"/adexchangebuyer:v1.3/PretargetingConfig/placements/placement/type": type +"/adexchangebuyer:v1.3/PretargetingConfig/platforms": platforms +"/adexchangebuyer:v1.3/PretargetingConfig/platforms/platform": platform +"/adexchangebuyer:v1.3/PretargetingConfig/supportedCreativeAttributes": supported_creative_attributes +"/adexchangebuyer:v1.3/PretargetingConfig/supportedCreativeAttributes/supported_creative_attribute": supported_creative_attribute +"/adexchangebuyer:v1.3/PretargetingConfig/userLists": user_lists +"/adexchangebuyer:v1.3/PretargetingConfig/userLists/user_list": user_list +"/adexchangebuyer:v1.3/PretargetingConfig/vendorTypes": vendor_types +"/adexchangebuyer:v1.3/PretargetingConfig/vendorTypes/vendor_type": vendor_type +"/adexchangebuyer:v1.3/PretargetingConfig/verticals": verticals +"/adexchangebuyer:v1.3/PretargetingConfig/verticals/vertical": vertical +"/adexchangebuyer:v1.3/PretargetingConfigList": pretargeting_config_list +"/adexchangebuyer:v1.3/PretargetingConfigList/items": items +"/adexchangebuyer:v1.3/PretargetingConfigList/items/item": item +"/adexchangebuyer:v1.3/PretargetingConfigList/kind": kind +"/adexchangeseller:v2.0/fields": fields +"/adexchangeseller:v2.0/key": key +"/adexchangeseller:v2.0/quotaUser": quota_user +"/adexchangeseller:v2.0/userIp": user_ip +"/adexchangeseller:v2.0/adexchangeseller.accounts.get": get_account +"/adexchangeseller:v2.0/adexchangeseller.accounts.get/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.list": list_accounts +"/adexchangeseller:v2.0/adexchangeseller.accounts.list/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.list/pageToken": page_token +"/adexchangeseller:v2.0/adexchangeseller.accounts.adclients.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.adclients.list/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.adclients.list/pageToken": page_token +"/adexchangeseller:v2.0/adexchangeseller.accounts.alerts.list": list_account_alerts +"/adexchangeseller:v2.0/adexchangeseller.accounts.alerts.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.alerts.list/locale": locale +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.get/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.get/adClientId": ad_client_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.get/customChannelId": custom_channel_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list/adClientId": ad_client_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.customchannels.list/pageToken": page_token +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.dimensions.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.metadata.metrics.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.get/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.get/dealId": deal_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.preferreddeals.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate": generate_account_report +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/dimension": dimension +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/endDate": end_date +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/filter": filter +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/locale": locale +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/metric": metric +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/sort": sort +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/startDate": start_date +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.generate/startIndex": start_index +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate/locale": locale +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate/savedReportId": saved_report_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.generate/startIndex": start_index +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.list/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.reports.saved.list/pageToken": page_token +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list/accountId": account_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list/adClientId": ad_client_id +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list/maxResults": max_results +"/adexchangeseller:v2.0/adexchangeseller.accounts.urlchannels.list/pageToken": page_token +"/adexchangeseller:v2.0/Account": account +"/adexchangeseller:v2.0/Account/id": id +"/adexchangeseller:v2.0/Account/kind": kind +"/adexchangeseller:v2.0/Account/name": name +"/adexchangeseller:v2.0/Accounts": accounts +"/adexchangeseller:v2.0/Accounts/etag": etag +"/adexchangeseller:v2.0/Accounts/items": items +"/adexchangeseller:v2.0/Accounts/items/item": item +"/adexchangeseller:v2.0/Accounts/kind": kind +"/adexchangeseller:v2.0/Accounts/nextPageToken": next_page_token +"/adexchangeseller:v2.0/AdClient": ad_client +"/adexchangeseller:v2.0/AdClient/arcOptIn": arc_opt_in +"/adexchangeseller:v2.0/AdClient/id": id +"/adexchangeseller:v2.0/AdClient/kind": kind +"/adexchangeseller:v2.0/AdClient/productCode": product_code +"/adexchangeseller:v2.0/AdClient/supportsReporting": supports_reporting +"/adexchangeseller:v2.0/AdClients": ad_clients +"/adexchangeseller:v2.0/AdClients/etag": etag +"/adexchangeseller:v2.0/AdClients/items": items +"/adexchangeseller:v2.0/AdClients/items/item": item +"/adexchangeseller:v2.0/AdClients/kind": kind +"/adexchangeseller:v2.0/AdClients/nextPageToken": next_page_token +"/adexchangeseller:v2.0/Alert": alert +"/adexchangeseller:v2.0/Alert/id": id +"/adexchangeseller:v2.0/Alert/kind": kind +"/adexchangeseller:v2.0/Alert/message": message +"/adexchangeseller:v2.0/Alert/severity": severity +"/adexchangeseller:v2.0/Alert/type": type +"/adexchangeseller:v2.0/Alerts": alerts +"/adexchangeseller:v2.0/Alerts/items": items +"/adexchangeseller:v2.0/Alerts/items/item": item +"/adexchangeseller:v2.0/Alerts/kind": kind +"/adexchangeseller:v2.0/CustomChannel": custom_channel +"/adexchangeseller:v2.0/CustomChannel/code": code +"/adexchangeseller:v2.0/CustomChannel/id": id +"/adexchangeseller:v2.0/CustomChannel/kind": kind +"/adexchangeseller:v2.0/CustomChannel/name": name +"/adexchangeseller:v2.0/CustomChannel/targetingInfo": targeting_info +"/adexchangeseller:v2.0/CustomChannel/targetingInfo/adsAppearOn": ads_appear_on +"/adexchangeseller:v2.0/CustomChannel/targetingInfo/description": description +"/adexchangeseller:v2.0/CustomChannel/targetingInfo/location": location +"/adexchangeseller:v2.0/CustomChannel/targetingInfo/siteLanguage": site_language +"/adexchangeseller:v2.0/CustomChannels": custom_channels +"/adexchangeseller:v2.0/CustomChannels/etag": etag +"/adexchangeseller:v2.0/CustomChannels/items": items +"/adexchangeseller:v2.0/CustomChannels/items/item": item +"/adexchangeseller:v2.0/CustomChannels/kind": kind +"/adexchangeseller:v2.0/CustomChannels/nextPageToken": next_page_token +"/adexchangeseller:v2.0/Metadata": metadata +"/adexchangeseller:v2.0/Metadata/items": items +"/adexchangeseller:v2.0/Metadata/items/item": item +"/adexchangeseller:v2.0/Metadata/kind": kind +"/adexchangeseller:v2.0/PreferredDeal": preferred_deal +"/adexchangeseller:v2.0/PreferredDeal/advertiserName": advertiser_name +"/adexchangeseller:v2.0/PreferredDeal/buyerNetworkName": buyer_network_name +"/adexchangeseller:v2.0/PreferredDeal/currencyCode": currency_code +"/adexchangeseller:v2.0/PreferredDeal/endTime": end_time +"/adexchangeseller:v2.0/PreferredDeal/fixedCpm": fixed_cpm +"/adexchangeseller:v2.0/PreferredDeal/id": id +"/adexchangeseller:v2.0/PreferredDeal/kind": kind +"/adexchangeseller:v2.0/PreferredDeal/startTime": start_time +"/adexchangeseller:v2.0/PreferredDeals": preferred_deals +"/adexchangeseller:v2.0/PreferredDeals/items": items +"/adexchangeseller:v2.0/PreferredDeals/items/item": item +"/adexchangeseller:v2.0/PreferredDeals/kind": kind +"/adexchangeseller:v2.0/Report": report +"/adexchangeseller:v2.0/Report/averages": averages +"/adexchangeseller:v2.0/Report/averages/average": average +"/adexchangeseller:v2.0/Report/headers": headers +"/adexchangeseller:v2.0/Report/headers/header": header +"/adexchangeseller:v2.0/Report/headers/header/currency": currency +"/adexchangeseller:v2.0/Report/headers/header/name": name +"/adexchangeseller:v2.0/Report/headers/header/type": type +"/adexchangeseller:v2.0/Report/kind": kind +"/adexchangeseller:v2.0/Report/rows": rows +"/adexchangeseller:v2.0/Report/rows/row": row +"/adexchangeseller:v2.0/Report/rows/row/row": row +"/adexchangeseller:v2.0/Report/totalMatchedRows": total_matched_rows +"/adexchangeseller:v2.0/Report/totals": totals +"/adexchangeseller:v2.0/Report/totals/total": total +"/adexchangeseller:v2.0/Report/warnings": warnings +"/adexchangeseller:v2.0/Report/warnings/warning": warning +"/adexchangeseller:v2.0/ReportingMetadataEntry": reporting_metadata_entry +"/adexchangeseller:v2.0/ReportingMetadataEntry/compatibleDimensions": compatible_dimensions +"/adexchangeseller:v2.0/ReportingMetadataEntry/compatibleDimensions/compatible_dimension": compatible_dimension +"/adexchangeseller:v2.0/ReportingMetadataEntry/compatibleMetrics": compatible_metrics +"/adexchangeseller:v2.0/ReportingMetadataEntry/compatibleMetrics/compatible_metric": compatible_metric +"/adexchangeseller:v2.0/ReportingMetadataEntry/id": id +"/adexchangeseller:v2.0/ReportingMetadataEntry/kind": kind +"/adexchangeseller:v2.0/ReportingMetadataEntry/requiredDimensions": required_dimensions +"/adexchangeseller:v2.0/ReportingMetadataEntry/requiredDimensions/required_dimension": required_dimension +"/adexchangeseller:v2.0/ReportingMetadataEntry/requiredMetrics": required_metrics +"/adexchangeseller:v2.0/ReportingMetadataEntry/requiredMetrics/required_metric": required_metric +"/adexchangeseller:v2.0/ReportingMetadataEntry/supportedProducts": supported_products +"/adexchangeseller:v2.0/ReportingMetadataEntry/supportedProducts/supported_product": supported_product +"/adexchangeseller:v2.0/SavedReport": saved_report +"/adexchangeseller:v2.0/SavedReport/id": id +"/adexchangeseller:v2.0/SavedReport/kind": kind +"/adexchangeseller:v2.0/SavedReport/name": name +"/adexchangeseller:v2.0/SavedReports": saved_reports +"/adexchangeseller:v2.0/SavedReports/etag": etag +"/adexchangeseller:v2.0/SavedReports/items": items +"/adexchangeseller:v2.0/SavedReports/items/item": item +"/adexchangeseller:v2.0/SavedReports/kind": kind +"/adexchangeseller:v2.0/SavedReports/nextPageToken": next_page_token +"/adexchangeseller:v2.0/UrlChannel": url_channel +"/adexchangeseller:v2.0/UrlChannel/id": id +"/adexchangeseller:v2.0/UrlChannel/kind": kind +"/adexchangeseller:v2.0/UrlChannel/urlPattern": url_pattern +"/adexchangeseller:v2.0/UrlChannels": url_channels +"/adexchangeseller:v2.0/UrlChannels/etag": etag +"/adexchangeseller:v2.0/UrlChannels/items": items +"/adexchangeseller:v2.0/UrlChannels/items/item": item +"/adexchangeseller:v2.0/UrlChannels/kind": kind +"/adexchangeseller:v2.0/UrlChannels/nextPageToken": next_page_token +"/admin:directory_v1/fields": fields +"/admin:directory_v1/key": key +"/admin:directory_v1/quotaUser": quota_user +"/admin:directory_v1/userIp": user_ip +"/admin:directory_v1/directory.asps.delete": delete_asp +"/admin:directory_v1/directory.asps.delete/codeId": code_id +"/admin:directory_v1/directory.asps.delete/userKey": user_key +"/admin:directory_v1/directory.asps.get": get_asp +"/admin:directory_v1/directory.asps.get/codeId": code_id +"/admin:directory_v1/directory.asps.get/userKey": user_key +"/admin:directory_v1/directory.asps.list": list_asps +"/admin:directory_v1/directory.asps.list/userKey": user_key +"/admin:directory_v1/admin.channels.stop": stop_channel +"/admin:directory_v1/directory.chromeosdevices.get/customerId": customer_id +"/admin:directory_v1/directory.chromeosdevices.get/deviceId": device_id +"/admin:directory_v1/directory.chromeosdevices.get/projection": projection +"/admin:directory_v1/directory.chromeosdevices.list/customerId": customer_id +"/admin:directory_v1/directory.chromeosdevices.list/maxResults": max_results +"/admin:directory_v1/directory.chromeosdevices.list/orderBy": order_by +"/admin:directory_v1/directory.chromeosdevices.list/pageToken": page_token +"/admin:directory_v1/directory.chromeosdevices.list/projection": projection +"/admin:directory_v1/directory.chromeosdevices.list/query": query +"/admin:directory_v1/directory.chromeosdevices.list/sortOrder": sort_order +"/admin:directory_v1/directory.chromeosdevices.patch/customerId": customer_id +"/admin:directory_v1/directory.chromeosdevices.patch/deviceId": device_id +"/admin:directory_v1/directory.chromeosdevices.patch/projection": projection +"/admin:directory_v1/directory.chromeosdevices.update/customerId": customer_id +"/admin:directory_v1/directory.chromeosdevices.update/deviceId": device_id +"/admin:directory_v1/directory.chromeosdevices.update/projection": projection +"/admin:directory_v1/directory.groups.delete": delete_group +"/admin:directory_v1/directory.groups.delete/groupKey": group_key +"/admin:directory_v1/directory.groups.get": get_group +"/admin:directory_v1/directory.groups.get/groupKey": group_key +"/admin:directory_v1/directory.groups.insert": insert_group +"/admin:directory_v1/directory.groups.list": list_groups +"/admin:directory_v1/directory.groups.list/customer": customer +"/admin:directory_v1/directory.groups.list/domain": domain +"/admin:directory_v1/directory.groups.list/maxResults": max_results +"/admin:directory_v1/directory.groups.list/pageToken": page_token +"/admin:directory_v1/directory.groups.list/userKey": user_key +"/admin:directory_v1/directory.groups.patch": patch_group +"/admin:directory_v1/directory.groups.patch/groupKey": group_key +"/admin:directory_v1/directory.groups.update": update_group +"/admin:directory_v1/directory.groups.update/groupKey": group_key +"/admin:directory_v1/directory.groups.aliases.delete": delete_group_alias +"/admin:directory_v1/directory.groups.aliases.delete/groupKey": group_key +"/admin:directory_v1/directory.groups.aliases.insert": insert_group_alias +"/admin:directory_v1/directory.groups.aliases.insert/groupKey": group_key +"/admin:directory_v1/directory.groups.aliases.list": list_group_aliases +"/admin:directory_v1/directory.groups.aliases.list/groupKey": group_key +"/admin:directory_v1/directory.members.delete": delete_member +"/admin:directory_v1/directory.members.delete/groupKey": group_key +"/admin:directory_v1/directory.members.delete/memberKey": member_key +"/admin:directory_v1/directory.members.get": get_member +"/admin:directory_v1/directory.members.get/groupKey": group_key +"/admin:directory_v1/directory.members.get/memberKey": member_key +"/admin:directory_v1/directory.members.insert": insert_member +"/admin:directory_v1/directory.members.insert/groupKey": group_key +"/admin:directory_v1/directory.members.list": list_members +"/admin:directory_v1/directory.members.list/groupKey": group_key +"/admin:directory_v1/directory.members.list/maxResults": max_results +"/admin:directory_v1/directory.members.list/pageToken": page_token +"/admin:directory_v1/directory.members.list/roles": roles +"/admin:directory_v1/directory.members.patch": patch_member +"/admin:directory_v1/directory.members.patch/groupKey": group_key +"/admin:directory_v1/directory.members.patch/memberKey": member_key +"/admin:directory_v1/directory.members.update": update_member +"/admin:directory_v1/directory.members.update/groupKey": group_key +"/admin:directory_v1/directory.members.update/memberKey": member_key +"/admin:directory_v1/directory.mobiledevices.action/customerId": customer_id +"/admin:directory_v1/directory.mobiledevices.action/resourceId": resource_id +"/admin:directory_v1/directory.mobiledevices.delete/customerId": customer_id +"/admin:directory_v1/directory.mobiledevices.delete/resourceId": resource_id +"/admin:directory_v1/directory.mobiledevices.get/customerId": customer_id +"/admin:directory_v1/directory.mobiledevices.get/projection": projection +"/admin:directory_v1/directory.mobiledevices.get/resourceId": resource_id +"/admin:directory_v1/directory.mobiledevices.list/customerId": customer_id +"/admin:directory_v1/directory.mobiledevices.list/maxResults": max_results +"/admin:directory_v1/directory.mobiledevices.list/orderBy": order_by +"/admin:directory_v1/directory.mobiledevices.list/pageToken": page_token +"/admin:directory_v1/directory.mobiledevices.list/projection": projection +"/admin:directory_v1/directory.mobiledevices.list/query": query +"/admin:directory_v1/directory.mobiledevices.list/sortOrder": sort_order +"/admin:directory_v1/directory.notifications.delete": delete_notification +"/admin:directory_v1/directory.notifications.delete/customer": customer +"/admin:directory_v1/directory.notifications.delete/notificationId": notification_id +"/admin:directory_v1/directory.notifications.get": get_notification +"/admin:directory_v1/directory.notifications.get/customer": customer +"/admin:directory_v1/directory.notifications.get/notificationId": notification_id +"/admin:directory_v1/directory.notifications.list": list_notifications +"/admin:directory_v1/directory.notifications.list/customer": customer +"/admin:directory_v1/directory.notifications.list/language": language +"/admin:directory_v1/directory.notifications.list/maxResults": max_results +"/admin:directory_v1/directory.notifications.list/pageToken": page_token +"/admin:directory_v1/directory.notifications.patch": patch_notification +"/admin:directory_v1/directory.notifications.patch/customer": customer +"/admin:directory_v1/directory.notifications.patch/notificationId": notification_id +"/admin:directory_v1/directory.notifications.update": update_notification +"/admin:directory_v1/directory.notifications.update/customer": customer +"/admin:directory_v1/directory.notifications.update/notificationId": notification_id +"/admin:directory_v1/directory.orgunits.delete/customerId": customer_id +"/admin:directory_v1/directory.orgunits.delete/orgUnitPath": org_unit_path +"/admin:directory_v1/directory.orgunits.get/customerId": customer_id +"/admin:directory_v1/directory.orgunits.get/orgUnitPath": org_unit_path +"/admin:directory_v1/directory.orgunits.insert/customerId": customer_id +"/admin:directory_v1/directory.orgunits.list/customerId": customer_id +"/admin:directory_v1/directory.orgunits.list/orgUnitPath": org_unit_path +"/admin:directory_v1/directory.orgunits.list/type": type +"/admin:directory_v1/directory.orgunits.patch/customerId": customer_id +"/admin:directory_v1/directory.orgunits.patch/orgUnitPath": org_unit_path +"/admin:directory_v1/directory.orgunits.update/customerId": customer_id +"/admin:directory_v1/directory.orgunits.update/orgUnitPath": org_unit_path +"/admin:directory_v1/directory.schemas.delete": delete_schema +"/admin:directory_v1/directory.schemas.delete/customerId": customer_id +"/admin:directory_v1/directory.schemas.delete/schemaKey": schema_key +"/admin:directory_v1/directory.schemas.get": get_schema +"/admin:directory_v1/directory.schemas.get/customerId": customer_id +"/admin:directory_v1/directory.schemas.get/schemaKey": schema_key +"/admin:directory_v1/directory.schemas.insert": insert_schema +"/admin:directory_v1/directory.schemas.insert/customerId": customer_id +"/admin:directory_v1/directory.schemas.list": list_schemas +"/admin:directory_v1/directory.schemas.list/customerId": customer_id +"/admin:directory_v1/directory.schemas.patch": patch_schema +"/admin:directory_v1/directory.schemas.patch/customerId": customer_id +"/admin:directory_v1/directory.schemas.patch/schemaKey": schema_key +"/admin:directory_v1/directory.schemas.update": update_schema +"/admin:directory_v1/directory.schemas.update/customerId": customer_id +"/admin:directory_v1/directory.schemas.update/schemaKey": schema_key +"/admin:directory_v1/directory.tokens.delete": delete_token +"/admin:directory_v1/directory.tokens.delete/clientId": client_id +"/admin:directory_v1/directory.tokens.delete/userKey": user_key +"/admin:directory_v1/directory.tokens.get": get_token +"/admin:directory_v1/directory.tokens.get/clientId": client_id +"/admin:directory_v1/directory.tokens.get/userKey": user_key +"/admin:directory_v1/directory.tokens.list": list_tokens +"/admin:directory_v1/directory.tokens.list/userKey": user_key +"/admin:directory_v1/directory.users.delete": delete_user +"/admin:directory_v1/directory.users.delete/userKey": user_key +"/admin:directory_v1/directory.users.get": get_user +"/admin:directory_v1/directory.users.get/customFieldMask": custom_field_mask +"/admin:directory_v1/directory.users.get/projection": projection +"/admin:directory_v1/directory.users.get/userKey": user_key +"/admin:directory_v1/directory.users.get/viewType": view_type +"/admin:directory_v1/directory.users.insert": insert_user +"/admin:directory_v1/directory.users.list": list_users +"/admin:directory_v1/directory.users.list/customFieldMask": custom_field_mask +"/admin:directory_v1/directory.users.list/customer": customer +"/admin:directory_v1/directory.users.list/domain": domain +"/admin:directory_v1/directory.users.list/event": event +"/admin:directory_v1/directory.users.list/maxResults": max_results +"/admin:directory_v1/directory.users.list/orderBy": order_by +"/admin:directory_v1/directory.users.list/pageToken": page_token +"/admin:directory_v1/directory.users.list/projection": projection +"/admin:directory_v1/directory.users.list/query": query +"/admin:directory_v1/directory.users.list/showDeleted": show_deleted +"/admin:directory_v1/directory.users.list/sortOrder": sort_order +"/admin:directory_v1/directory.users.list/viewType": view_type +"/admin:directory_v1/directory.users.makeAdmin": make_admin_user +"/admin:directory_v1/directory.users.makeAdmin/userKey": user_key +"/admin:directory_v1/directory.users.patch": patch_user +"/admin:directory_v1/directory.users.patch/userKey": user_key +"/admin:directory_v1/directory.users.undelete": undelete_user +"/admin:directory_v1/directory.users.undelete/userKey": user_key +"/admin:directory_v1/directory.users.update": update_user +"/admin:directory_v1/directory.users.update/userKey": user_key +"/admin:directory_v1/directory.users.watch": watch_user +"/admin:directory_v1/directory.users.watch/customFieldMask": custom_field_mask +"/admin:directory_v1/directory.users.watch/customer": customer +"/admin:directory_v1/directory.users.watch/domain": domain +"/admin:directory_v1/directory.users.watch/event": event +"/admin:directory_v1/directory.users.watch/maxResults": max_results +"/admin:directory_v1/directory.users.watch/orderBy": order_by +"/admin:directory_v1/directory.users.watch/pageToken": page_token +"/admin:directory_v1/directory.users.watch/projection": projection +"/admin:directory_v1/directory.users.watch/query": query +"/admin:directory_v1/directory.users.watch/showDeleted": show_deleted +"/admin:directory_v1/directory.users.watch/sortOrder": sort_order +"/admin:directory_v1/directory.users.watch/viewType": view_type +"/admin:directory_v1/directory.users.aliases.delete": delete_user_alias +"/admin:directory_v1/directory.users.aliases.delete/userKey": user_key +"/admin:directory_v1/directory.users.aliases.insert": insert_user_alias +"/admin:directory_v1/directory.users.aliases.insert/userKey": user_key +"/admin:directory_v1/directory.users.aliases.list": list_user_aliases +"/admin:directory_v1/directory.users.aliases.list/event": event +"/admin:directory_v1/directory.users.aliases.list/userKey": user_key +"/admin:directory_v1/directory.users.aliases.watch": watch_user_alias +"/admin:directory_v1/directory.users.aliases.watch/event": event +"/admin:directory_v1/directory.users.aliases.watch/userKey": user_key +"/admin:directory_v1/directory.users.photos.delete": delete_user_photo +"/admin:directory_v1/directory.users.photos.delete/userKey": user_key +"/admin:directory_v1/directory.users.photos.get": get_user_photo +"/admin:directory_v1/directory.users.photos.get/userKey": user_key +"/admin:directory_v1/directory.users.photos.patch": patch_user_photo +"/admin:directory_v1/directory.users.photos.patch/userKey": user_key +"/admin:directory_v1/directory.users.photos.update": update_user_photo +"/admin:directory_v1/directory.users.photos.update/userKey": user_key +"/admin:directory_v1/directory.verificationCodes.generate": generate_verification_code +"/admin:directory_v1/directory.verificationCodes.generate/userKey": user_key +"/admin:directory_v1/directory.verificationCodes.invalidate": invalidate_verification_code +"/admin:directory_v1/directory.verificationCodes.invalidate/userKey": user_key +"/admin:directory_v1/directory.verificationCodes.list": list_verification_codes +"/admin:directory_v1/directory.verificationCodes.list/userKey": user_key +"/admin:directory_v1/Alias": alias +"/admin:directory_v1/Alias/alias": alias +"/admin:directory_v1/Alias/etag": etag +"/admin:directory_v1/Alias/id": id +"/admin:directory_v1/Alias/kind": kind +"/admin:directory_v1/Alias/primaryEmail": primary_email +"/admin:directory_v1/Aliases": aliases +"/admin:directory_v1/Aliases/aliases": aliases +"/admin:directory_v1/Aliases/aliases/alias": alias +"/admin:directory_v1/Aliases/etag": etag +"/admin:directory_v1/Aliases/kind": kind +"/admin:directory_v1/Asp": asp +"/admin:directory_v1/Asp/codeId": code_id +"/admin:directory_v1/Asp/creationTime": creation_time +"/admin:directory_v1/Asp/etag": etag +"/admin:directory_v1/Asp/kind": kind +"/admin:directory_v1/Asp/lastTimeUsed": last_time_used +"/admin:directory_v1/Asp/name": name +"/admin:directory_v1/Asp/userKey": user_key +"/admin:directory_v1/Asps": asps +"/admin:directory_v1/Asps/etag": etag +"/admin:directory_v1/Asps/items": items +"/admin:directory_v1/Asps/items/item": item +"/admin:directory_v1/Asps/kind": kind +"/admin:directory_v1/Channel": channel +"/admin:directory_v1/Channel/address": address +"/admin:directory_v1/Channel/expiration": expiration +"/admin:directory_v1/Channel/id": id +"/admin:directory_v1/Channel/kind": kind +"/admin:directory_v1/Channel/params": params +"/admin:directory_v1/Channel/params/param": param +"/admin:directory_v1/Channel/payload": payload +"/admin:directory_v1/Channel/resourceId": resource_id +"/admin:directory_v1/Channel/resourceUri": resource_uri +"/admin:directory_v1/Channel/token": token +"/admin:directory_v1/Channel/type": type +"/admin:directory_v1/ChromeOsDevice": chrome_os_device +"/admin:directory_v1/ChromeOsDevice/activeTimeRanges": active_time_ranges +"/admin:directory_v1/ChromeOsDevice/activeTimeRanges/active_time_range": active_time_range +"/admin:directory_v1/ChromeOsDevice/activeTimeRanges/active_time_range/activeTime": active_time +"/admin:directory_v1/ChromeOsDevice/activeTimeRanges/active_time_range/date": date +"/admin:directory_v1/ChromeOsDevice/annotatedAssetId": annotated_asset_id +"/admin:directory_v1/ChromeOsDevice/annotatedLocation": annotated_location +"/admin:directory_v1/ChromeOsDevice/annotatedUser": annotated_user +"/admin:directory_v1/ChromeOsDevice/bootMode": boot_mode +"/admin:directory_v1/ChromeOsDevice/deviceId": device_id +"/admin:directory_v1/ChromeOsDevice/etag": etag +"/admin:directory_v1/ChromeOsDevice/ethernetMacAddress": ethernet_mac_address +"/admin:directory_v1/ChromeOsDevice/firmwareVersion": firmware_version +"/admin:directory_v1/ChromeOsDevice/kind": kind +"/admin:directory_v1/ChromeOsDevice/lastEnrollmentTime": last_enrollment_time +"/admin:directory_v1/ChromeOsDevice/lastSync": last_sync +"/admin:directory_v1/ChromeOsDevice/macAddress": mac_address +"/admin:directory_v1/ChromeOsDevice/meid": meid +"/admin:directory_v1/ChromeOsDevice/model": model +"/admin:directory_v1/ChromeOsDevice/notes": notes +"/admin:directory_v1/ChromeOsDevice/orderNumber": order_number +"/admin:directory_v1/ChromeOsDevice/orgUnitPath": org_unit_path +"/admin:directory_v1/ChromeOsDevice/osVersion": os_version +"/admin:directory_v1/ChromeOsDevice/platformVersion": platform_version +"/admin:directory_v1/ChromeOsDevice/recentUsers": recent_users +"/admin:directory_v1/ChromeOsDevice/recentUsers/recent_user": recent_user +"/admin:directory_v1/ChromeOsDevice/recentUsers/recent_user/email": email +"/admin:directory_v1/ChromeOsDevice/recentUsers/recent_user/type": type +"/admin:directory_v1/ChromeOsDevice/serialNumber": serial_number +"/admin:directory_v1/ChromeOsDevice/status": status +"/admin:directory_v1/ChromeOsDevice/supportEndDate": support_end_date +"/admin:directory_v1/ChromeOsDevice/willAutoRenew": will_auto_renew +"/admin:directory_v1/ChromeOsDevices": chrome_os_devices +"/admin:directory_v1/ChromeOsDevices/chromeosdevices": chromeosdevices +"/admin:directory_v1/ChromeOsDevices/chromeosdevices/chromeosdevice": chromeosdevice +"/admin:directory_v1/ChromeOsDevices/etag": etag +"/admin:directory_v1/ChromeOsDevices/kind": kind +"/admin:directory_v1/ChromeOsDevices/nextPageToken": next_page_token +"/admin:directory_v1/Group": group +"/admin:directory_v1/Group/adminCreated": admin_created +"/admin:directory_v1/Group/aliases": aliases +"/admin:directory_v1/Group/aliases/alias": alias +"/admin:directory_v1/Group/description": description +"/admin:directory_v1/Group/directMembersCount": direct_members_count +"/admin:directory_v1/Group/email": email +"/admin:directory_v1/Group/etag": etag +"/admin:directory_v1/Group/id": id +"/admin:directory_v1/Group/kind": kind +"/admin:directory_v1/Group/name": name +"/admin:directory_v1/Group/nonEditableAliases": non_editable_aliases +"/admin:directory_v1/Group/nonEditableAliases/non_editable_alias": non_editable_alias +"/admin:directory_v1/Groups": groups +"/admin:directory_v1/Groups/etag": etag +"/admin:directory_v1/Groups/groups": groups +"/admin:directory_v1/Groups/groups/group": group +"/admin:directory_v1/Groups/kind": kind +"/admin:directory_v1/Groups/nextPageToken": next_page_token +"/admin:directory_v1/Member": member +"/admin:directory_v1/Member/email": email +"/admin:directory_v1/Member/etag": etag +"/admin:directory_v1/Member/id": id +"/admin:directory_v1/Member/kind": kind +"/admin:directory_v1/Member/role": role +"/admin:directory_v1/Member/type": type +"/admin:directory_v1/Members": members +"/admin:directory_v1/Members/etag": etag +"/admin:directory_v1/Members/kind": kind +"/admin:directory_v1/Members/members": members +"/admin:directory_v1/Members/members/member": member +"/admin:directory_v1/Members/nextPageToken": next_page_token +"/admin:directory_v1/MobileDevice": mobile_device +"/admin:directory_v1/MobileDevice/applications": applications +"/admin:directory_v1/MobileDevice/applications/application": application +"/admin:directory_v1/MobileDevice/applications/application/displayName": display_name +"/admin:directory_v1/MobileDevice/applications/application/packageName": package_name +"/admin:directory_v1/MobileDevice/applications/application/permission": permission +"/admin:directory_v1/MobileDevice/applications/application/permission/permission": permission +"/admin:directory_v1/MobileDevice/applications/application/versionCode": version_code +"/admin:directory_v1/MobileDevice/applications/application/versionName": version_name +"/admin:directory_v1/MobileDevice/basebandVersion": baseband_version +"/admin:directory_v1/MobileDevice/buildNumber": build_number +"/admin:directory_v1/MobileDevice/defaultLanguage": default_language +"/admin:directory_v1/MobileDevice/deviceCompromisedStatus": device_compromised_status +"/admin:directory_v1/MobileDevice/deviceId": device_id +"/admin:directory_v1/MobileDevice/email": email +"/admin:directory_v1/MobileDevice/email/email": email +"/admin:directory_v1/MobileDevice/etag": etag +"/admin:directory_v1/MobileDevice/firstSync": first_sync +"/admin:directory_v1/MobileDevice/hardwareId": hardware_id +"/admin:directory_v1/MobileDevice/imei": imei +"/admin:directory_v1/MobileDevice/kernelVersion": kernel_version +"/admin:directory_v1/MobileDevice/kind": kind +"/admin:directory_v1/MobileDevice/lastSync": last_sync +"/admin:directory_v1/MobileDevice/managedAccountIsOnOwnerProfile": managed_account_is_on_owner_profile +"/admin:directory_v1/MobileDevice/meid": meid +"/admin:directory_v1/MobileDevice/model": model +"/admin:directory_v1/MobileDevice/name": name +"/admin:directory_v1/MobileDevice/name/name": name +"/admin:directory_v1/MobileDevice/networkOperator": network_operator +"/admin:directory_v1/MobileDevice/os": os +"/admin:directory_v1/MobileDevice/resourceId": resource_id +"/admin:directory_v1/MobileDevice/serialNumber": serial_number +"/admin:directory_v1/MobileDevice/status": status +"/admin:directory_v1/MobileDevice/type": type +"/admin:directory_v1/MobileDevice/userAgent": user_agent +"/admin:directory_v1/MobileDevice/wifiMacAddress": wifi_mac_address +"/admin:directory_v1/MobileDeviceAction": mobile_device_action +"/admin:directory_v1/MobileDeviceAction/action": action +"/admin:directory_v1/MobileDevices": mobile_devices +"/admin:directory_v1/MobileDevices/etag": etag +"/admin:directory_v1/MobileDevices/kind": kind +"/admin:directory_v1/MobileDevices/mobiledevices": mobiledevices +"/admin:directory_v1/MobileDevices/mobiledevices/mobiledevice": mobiledevice +"/admin:directory_v1/MobileDevices/nextPageToken": next_page_token +"/admin:directory_v1/Notification": notification +"/admin:directory_v1/Notification/body": body +"/admin:directory_v1/Notification/etag": etag +"/admin:directory_v1/Notification/fromAddress": from_address +"/admin:directory_v1/Notification/isUnread": is_unread +"/admin:directory_v1/Notification/kind": kind +"/admin:directory_v1/Notification/notificationId": notification_id +"/admin:directory_v1/Notification/sendTime": send_time +"/admin:directory_v1/Notification/subject": subject +"/admin:directory_v1/Notifications": notifications +"/admin:directory_v1/Notifications/etag": etag +"/admin:directory_v1/Notifications/items": items +"/admin:directory_v1/Notifications/items/item": item +"/admin:directory_v1/Notifications/kind": kind +"/admin:directory_v1/Notifications/nextPageToken": next_page_token +"/admin:directory_v1/Notifications/unreadNotificationsCount": unread_notifications_count +"/admin:directory_v1/OrgUnit": org_unit +"/admin:directory_v1/OrgUnit/blockInheritance": block_inheritance +"/admin:directory_v1/OrgUnit/description": description +"/admin:directory_v1/OrgUnit/etag": etag +"/admin:directory_v1/OrgUnit/kind": kind +"/admin:directory_v1/OrgUnit/name": name +"/admin:directory_v1/OrgUnit/orgUnitId": org_unit_id +"/admin:directory_v1/OrgUnit/orgUnitPath": org_unit_path +"/admin:directory_v1/OrgUnit/parentOrgUnitId": parent_org_unit_id +"/admin:directory_v1/OrgUnit/parentOrgUnitPath": parent_org_unit_path +"/admin:directory_v1/OrgUnits": org_units +"/admin:directory_v1/OrgUnits/etag": etag +"/admin:directory_v1/OrgUnits/kind": kind +"/admin:directory_v1/OrgUnits/organizationUnits": organization_units +"/admin:directory_v1/OrgUnits/organizationUnits/organization_unit": organization_unit +"/admin:directory_v1/Schema": schema +"/admin:directory_v1/Schema/etag": etag +"/admin:directory_v1/Schema/fields": fields +"/admin:directory_v1/Schema/fields/field": field +"/admin:directory_v1/Schema/kind": kind +"/admin:directory_v1/Schema/schemaId": schema_id +"/admin:directory_v1/Schema/schemaName": schema_name +"/admin:directory_v1/SchemaFieldSpec": schema_field_spec +"/admin:directory_v1/SchemaFieldSpec/etag": etag +"/admin:directory_v1/SchemaFieldSpec/fieldId": field_id +"/admin:directory_v1/SchemaFieldSpec/fieldName": field_name +"/admin:directory_v1/SchemaFieldSpec/fieldType": field_type +"/admin:directory_v1/SchemaFieldSpec/indexed": indexed +"/admin:directory_v1/SchemaFieldSpec/kind": kind +"/admin:directory_v1/SchemaFieldSpec/multiValued": multi_valued +"/admin:directory_v1/SchemaFieldSpec/numericIndexingSpec": numeric_indexing_spec +"/admin:directory_v1/SchemaFieldSpec/numericIndexingSpec/maxValue": max_value +"/admin:directory_v1/SchemaFieldSpec/numericIndexingSpec/minValue": min_value +"/admin:directory_v1/SchemaFieldSpec/readAccessType": read_access_type +"/admin:directory_v1/Schemas": schemas +"/admin:directory_v1/Schemas/etag": etag +"/admin:directory_v1/Schemas/kind": kind +"/admin:directory_v1/Schemas/schemas": schemas +"/admin:directory_v1/Schemas/schemas/schema": schema +"/admin:directory_v1/Token": token +"/admin:directory_v1/Token/anonymous": anonymous +"/admin:directory_v1/Token/clientId": client_id +"/admin:directory_v1/Token/displayText": display_text +"/admin:directory_v1/Token/etag": etag +"/admin:directory_v1/Token/kind": kind +"/admin:directory_v1/Token/nativeApp": native_app +"/admin:directory_v1/Token/scopes": scopes +"/admin:directory_v1/Token/scopes/scope": scope +"/admin:directory_v1/Token/userKey": user_key +"/admin:directory_v1/Tokens": tokens +"/admin:directory_v1/Tokens/etag": etag +"/admin:directory_v1/Tokens/items": items +"/admin:directory_v1/Tokens/items/item": item +"/admin:directory_v1/Tokens/kind": kind +"/admin:directory_v1/User": user +"/admin:directory_v1/User/addresses": addresses +"/admin:directory_v1/User/agreedToTerms": agreed_to_terms +"/admin:directory_v1/User/aliases": aliases +"/admin:directory_v1/User/aliases/alias": alias +"/admin:directory_v1/User/changePasswordAtNextLogin": change_password_at_next_login +"/admin:directory_v1/User/creationTime": creation_time +"/admin:directory_v1/User/customSchemas": custom_schemas +"/admin:directory_v1/User/customSchemas/custom_schema": custom_schema +"/admin:directory_v1/User/customerId": customer_id +"/admin:directory_v1/User/deletionTime": deletion_time +"/admin:directory_v1/User/emails": emails +"/admin:directory_v1/User/etag": etag +"/admin:directory_v1/User/externalIds": external_ids +"/admin:directory_v1/User/hashFunction": hash_function +"/admin:directory_v1/User/id": id +"/admin:directory_v1/User/ims": ims +"/admin:directory_v1/User/includeInGlobalAddressList": include_in_global_address_list +"/admin:directory_v1/User/ipWhitelisted": ip_whitelisted +"/admin:directory_v1/User/isAdmin": is_admin +"/admin:directory_v1/User/isDelegatedAdmin": is_delegated_admin +"/admin:directory_v1/User/isMailboxSetup": is_mailbox_setup +"/admin:directory_v1/User/kind": kind +"/admin:directory_v1/User/lastLoginTime": last_login_time +"/admin:directory_v1/User/name": name +"/admin:directory_v1/User/nonEditableAliases": non_editable_aliases +"/admin:directory_v1/User/nonEditableAliases/non_editable_alias": non_editable_alias +"/admin:directory_v1/User/notes": notes +"/admin:directory_v1/User/orgUnitPath": org_unit_path +"/admin:directory_v1/User/organizations": organizations +"/admin:directory_v1/User/password": password +"/admin:directory_v1/User/phones": phones +"/admin:directory_v1/User/primaryEmail": primary_email +"/admin:directory_v1/User/relations": relations +"/admin:directory_v1/User/suspended": suspended +"/admin:directory_v1/User/suspensionReason": suspension_reason +"/admin:directory_v1/User/thumbnailPhotoEtag": thumbnail_photo_etag +"/admin:directory_v1/User/thumbnailPhotoUrl": thumbnail_photo_url +"/admin:directory_v1/User/websites": websites +"/admin:directory_v1/UserAbout": user_about +"/admin:directory_v1/UserAbout/contentType": content_type +"/admin:directory_v1/UserAbout/value": value +"/admin:directory_v1/UserAddress": user_address +"/admin:directory_v1/UserAddress/country": country +"/admin:directory_v1/UserAddress/countryCode": country_code +"/admin:directory_v1/UserAddress/customType": custom_type +"/admin:directory_v1/UserAddress/extendedAddress": extended_address +"/admin:directory_v1/UserAddress/formatted": formatted +"/admin:directory_v1/UserAddress/locality": locality +"/admin:directory_v1/UserAddress/poBox": po_box +"/admin:directory_v1/UserAddress/postalCode": postal_code +"/admin:directory_v1/UserAddress/primary": primary +"/admin:directory_v1/UserAddress/region": region +"/admin:directory_v1/UserAddress/sourceIsStructured": source_is_structured +"/admin:directory_v1/UserAddress/streetAddress": street_address +"/admin:directory_v1/UserAddress/type": type +"/admin:directory_v1/UserCustomProperties": user_custom_properties +"/admin:directory_v1/UserCustomProperties/user_custom_property": user_custom_property +"/admin:directory_v1/UserEmail": user_email +"/admin:directory_v1/UserEmail/address": address +"/admin:directory_v1/UserEmail/customType": custom_type +"/admin:directory_v1/UserEmail/primary": primary +"/admin:directory_v1/UserEmail/type": type +"/admin:directory_v1/UserExternalId": user_external_id +"/admin:directory_v1/UserExternalId/customType": custom_type +"/admin:directory_v1/UserExternalId/type": type +"/admin:directory_v1/UserExternalId/value": value +"/admin:directory_v1/UserIm": user_im +"/admin:directory_v1/UserIm/customProtocol": custom_protocol +"/admin:directory_v1/UserIm/customType": custom_type +"/admin:directory_v1/UserIm/im": im +"/admin:directory_v1/UserIm/primary": primary +"/admin:directory_v1/UserIm/protocol": protocol +"/admin:directory_v1/UserIm/type": type +"/admin:directory_v1/UserMakeAdmin": user_make_admin +"/admin:directory_v1/UserMakeAdmin/status": status +"/admin:directory_v1/UserName": user_name +"/admin:directory_v1/UserName/familyName": family_name +"/admin:directory_v1/UserName/fullName": full_name +"/admin:directory_v1/UserName/givenName": given_name +"/admin:directory_v1/UserOrganization": user_organization +"/admin:directory_v1/UserOrganization/costCenter": cost_center +"/admin:directory_v1/UserOrganization/customType": custom_type +"/admin:directory_v1/UserOrganization/department": department +"/admin:directory_v1/UserOrganization/description": description +"/admin:directory_v1/UserOrganization/domain": domain +"/admin:directory_v1/UserOrganization/location": location +"/admin:directory_v1/UserOrganization/name": name +"/admin:directory_v1/UserOrganization/primary": primary +"/admin:directory_v1/UserOrganization/symbol": symbol +"/admin:directory_v1/UserOrganization/title": title +"/admin:directory_v1/UserOrganization/type": type +"/admin:directory_v1/UserPhone": user_phone +"/admin:directory_v1/UserPhone/customType": custom_type +"/admin:directory_v1/UserPhone/primary": primary +"/admin:directory_v1/UserPhone/type": type +"/admin:directory_v1/UserPhone/value": value +"/admin:directory_v1/UserPhoto": user_photo +"/admin:directory_v1/UserPhoto/etag": etag +"/admin:directory_v1/UserPhoto/height": height +"/admin:directory_v1/UserPhoto/id": id +"/admin:directory_v1/UserPhoto/kind": kind +"/admin:directory_v1/UserPhoto/mimeType": mime_type +"/admin:directory_v1/UserPhoto/photoData": photo_data +"/admin:directory_v1/UserPhoto/primaryEmail": primary_email +"/admin:directory_v1/UserPhoto/width": width +"/admin:directory_v1/UserRelation": user_relation +"/admin:directory_v1/UserRelation/customType": custom_type +"/admin:directory_v1/UserRelation/type": type +"/admin:directory_v1/UserRelation/value": value +"/admin:directory_v1/UserUndelete": user_undelete +"/admin:directory_v1/UserUndelete/orgUnitPath": org_unit_path +"/admin:directory_v1/UserWebsite": user_website +"/admin:directory_v1/UserWebsite/customType": custom_type +"/admin:directory_v1/UserWebsite/primary": primary +"/admin:directory_v1/UserWebsite/type": type +"/admin:directory_v1/UserWebsite/value": value +"/admin:directory_v1/Users": users +"/admin:directory_v1/Users/etag": etag +"/admin:directory_v1/Users/kind": kind +"/admin:directory_v1/Users/nextPageToken": next_page_token +"/admin:directory_v1/Users/trigger_event": trigger_event +"/admin:directory_v1/Users/users": users +"/admin:directory_v1/Users/users/user": user +"/admin:directory_v1/VerificationCode": verification_code +"/admin:directory_v1/VerificationCode/etag": etag +"/admin:directory_v1/VerificationCode/kind": kind +"/admin:directory_v1/VerificationCode/userId": user_id +"/admin:directory_v1/VerificationCode/verificationCode": verification_code +"/admin:directory_v1/VerificationCodes": verification_codes +"/admin:directory_v1/VerificationCodes/etag": etag +"/admin:directory_v1/VerificationCodes/items": items +"/admin:directory_v1/VerificationCodes/items/item": item +"/admin:directory_v1/VerificationCodes/kind": kind +"/admin:reports_v1/fields": fields +"/admin:reports_v1/key": key +"/admin:reports_v1/quotaUser": quota_user +"/admin:reports_v1/userIp": user_ip +"/admin:reports_v1/reports.activities.list": list_activities +"/admin:reports_v1/reports.activities.list/actorIpAddress": actor_ip_address +"/admin:reports_v1/reports.activities.list/applicationName": application_name +"/admin:reports_v1/reports.activities.list/customerId": customer_id +"/admin:reports_v1/reports.activities.list/endTime": end_time +"/admin:reports_v1/reports.activities.list/eventName": event_name +"/admin:reports_v1/reports.activities.list/filters": filters +"/admin:reports_v1/reports.activities.list/maxResults": max_results +"/admin:reports_v1/reports.activities.list/pageToken": page_token +"/admin:reports_v1/reports.activities.list/startTime": start_time +"/admin:reports_v1/reports.activities.list/userKey": user_key +"/admin:reports_v1/reports.activities.watch": watch_activity +"/admin:reports_v1/reports.activities.watch/actorIpAddress": actor_ip_address +"/admin:reports_v1/reports.activities.watch/applicationName": application_name +"/admin:reports_v1/reports.activities.watch/customerId": customer_id +"/admin:reports_v1/reports.activities.watch/endTime": end_time +"/admin:reports_v1/reports.activities.watch/eventName": event_name +"/admin:reports_v1/reports.activities.watch/filters": filters +"/admin:reports_v1/reports.activities.watch/maxResults": max_results +"/admin:reports_v1/reports.activities.watch/pageToken": page_token +"/admin:reports_v1/reports.activities.watch/startTime": start_time +"/admin:reports_v1/reports.activities.watch/userKey": user_key +"/admin:reports_v1/admin.channels.stop": stop_channel +"/admin:reports_v1/reports.customerUsageReports.get": get_customer_usage_report +"/admin:reports_v1/reports.customerUsageReports.get/customerId": customer_id +"/admin:reports_v1/reports.customerUsageReports.get/date": date +"/admin:reports_v1/reports.customerUsageReports.get/pageToken": page_token +"/admin:reports_v1/reports.customerUsageReports.get/parameters": parameters +"/admin:reports_v1/reports.userUsageReport.get": get_user_usage_report +"/admin:reports_v1/reports.userUsageReport.get/customerId": customer_id +"/admin:reports_v1/reports.userUsageReport.get/date": date +"/admin:reports_v1/reports.userUsageReport.get/filters": filters +"/admin:reports_v1/reports.userUsageReport.get/maxResults": max_results +"/admin:reports_v1/reports.userUsageReport.get/pageToken": page_token +"/admin:reports_v1/reports.userUsageReport.get/parameters": parameters +"/admin:reports_v1/reports.userUsageReport.get/userKey": user_key +"/admin:reports_v1/Activities": activities +"/admin:reports_v1/Activities/etag": etag +"/admin:reports_v1/Activities/items": items +"/admin:reports_v1/Activities/items/item": item +"/admin:reports_v1/Activities/kind": kind +"/admin:reports_v1/Activities/nextPageToken": next_page_token +"/admin:reports_v1/Activity": activity +"/admin:reports_v1/Activity/actor": actor +"/admin:reports_v1/Activity/actor/callerType": caller_type +"/admin:reports_v1/Activity/actor/email": email +"/admin:reports_v1/Activity/actor/key": key +"/admin:reports_v1/Activity/actor/profileId": profile_id +"/admin:reports_v1/Activity/etag": etag +"/admin:reports_v1/Activity/events": events +"/admin:reports_v1/Activity/events/event": event +"/admin:reports_v1/Activity/events/event/name": name +"/admin:reports_v1/Activity/events/event/parameters": parameters +"/admin:reports_v1/Activity/events/event/parameters/parameter": parameter +"/admin:reports_v1/Activity/events/event/parameters/parameter/boolValue": bool_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/intValue": int_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/multiIntValue": multi_int_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/multiIntValue/multi_int_value": multi_int_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/multiValue": multi_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/multiValue/multi_value": multi_value +"/admin:reports_v1/Activity/events/event/parameters/parameter/name": name +"/admin:reports_v1/Activity/events/event/parameters/parameter/value": value +"/admin:reports_v1/Activity/events/event/type": type +"/admin:reports_v1/Activity/id": id +"/admin:reports_v1/Activity/id/applicationName": application_name +"/admin:reports_v1/Activity/id/customerId": customer_id +"/admin:reports_v1/Activity/id/time": time +"/admin:reports_v1/Activity/id/uniqueQualifier": unique_qualifier +"/admin:reports_v1/Activity/ipAddress": ip_address +"/admin:reports_v1/Activity/kind": kind +"/admin:reports_v1/Activity/ownerDomain": owner_domain +"/admin:reports_v1/Channel": channel +"/admin:reports_v1/Channel/address": address +"/admin:reports_v1/Channel/expiration": expiration +"/admin:reports_v1/Channel/id": id +"/admin:reports_v1/Channel/kind": kind +"/admin:reports_v1/Channel/params": params +"/admin:reports_v1/Channel/params/param": param +"/admin:reports_v1/Channel/payload": payload +"/admin:reports_v1/Channel/resourceId": resource_id +"/admin:reports_v1/Channel/resourceUri": resource_uri +"/admin:reports_v1/Channel/token": token +"/admin:reports_v1/Channel/type": type +"/admin:reports_v1/UsageReport": usage_report +"/admin:reports_v1/UsageReport/date": date +"/admin:reports_v1/UsageReport/entity": entity +"/admin:reports_v1/UsageReport/entity/customerId": customer_id +"/admin:reports_v1/UsageReport/entity/profileId": profile_id +"/admin:reports_v1/UsageReport/entity/type": type +"/admin:reports_v1/UsageReport/entity/userEmail": user_email +"/admin:reports_v1/UsageReport/etag": etag +"/admin:reports_v1/UsageReport/kind": kind +"/admin:reports_v1/UsageReport/parameters": parameters +"/admin:reports_v1/UsageReport/parameters/parameter": parameter +"/admin:reports_v1/UsageReport/parameters/parameter/boolValue": bool_value +"/admin:reports_v1/UsageReport/parameters/parameter/datetimeValue": datetime_value +"/admin:reports_v1/UsageReport/parameters/parameter/intValue": int_value +"/admin:reports_v1/UsageReport/parameters/parameter/msgValue": msg_value +"/admin:reports_v1/UsageReport/parameters/parameter/msgValue/msg_value": msg_value +"/admin:reports_v1/UsageReport/parameters/parameter/msgValue/msg_value/msg_value": msg_value +"/admin:reports_v1/UsageReport/parameters/parameter/name": name +"/admin:reports_v1/UsageReport/parameters/parameter/stringValue": string_value +"/admin:reports_v1/UsageReports": usage_reports +"/admin:reports_v1/UsageReports/etag": etag +"/admin:reports_v1/UsageReports/kind": kind +"/admin:reports_v1/UsageReports/nextPageToken": next_page_token +"/admin:reports_v1/UsageReports/usageReports": usage_reports +"/admin:reports_v1/UsageReports/usageReports/usage_report": usage_report +"/admin:reports_v1/UsageReports/warnings": warnings +"/admin:reports_v1/UsageReports/warnings/warning": warning +"/admin:reports_v1/UsageReports/warnings/warning/code": code +"/admin:reports_v1/UsageReports/warnings/warning/data": data +"/admin:reports_v1/UsageReports/warnings/warning/data/datum": datum +"/admin:reports_v1/UsageReports/warnings/warning/data/datum/key": key +"/admin:reports_v1/UsageReports/warnings/warning/data/datum/value": value +"/admin:reports_v1/UsageReports/warnings/warning/message": message +"/adsense:v1.4/fields": fields +"/adsense:v1.4/key": key +"/adsense:v1.4/quotaUser": quota_user +"/adsense:v1.4/userIp": user_ip +"/adsense:v1.4/adsense.accounts.get": get_account +"/adsense:v1.4/adsense.accounts.get/accountId": account_id +"/adsense:v1.4/adsense.accounts.get/tree": tree +"/adsense:v1.4/adsense.accounts.list": list_accounts +"/adsense:v1.4/adsense.accounts.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.adclients.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.adclients.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.adclients.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.adunits.get/accountId": account_id +"/adsense:v1.4/adsense.accounts.adunits.get/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.adunits.get/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.accounts.adunits.getAdCode/accountId": account_id +"/adsense:v1.4/adsense.accounts.adunits.getAdCode/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.adunits.getAdCode/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.accounts.adunits.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.adunits.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.adunits.list/includeInactive": include_inactive +"/adsense:v1.4/adsense.accounts.adunits.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.adunits.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.adunits.customchannels.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.alerts.delete": delete_account_alert +"/adsense:v1.4/adsense.accounts.alerts.delete/accountId": account_id +"/adsense:v1.4/adsense.accounts.alerts.delete/alertId": alert_id +"/adsense:v1.4/adsense.accounts.alerts.list": list_account_alerts +"/adsense:v1.4/adsense.accounts.alerts.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.alerts.list/locale": locale +"/adsense:v1.4/adsense.accounts.customchannels.get/accountId": account_id +"/adsense:v1.4/adsense.accounts.customchannels.get/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.customchannels.get/customChannelId": custom_channel_id +"/adsense:v1.4/adsense.accounts.customchannels.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.customchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.customchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.customchannels.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/customChannelId": custom_channel_id +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/includeInactive": include_inactive +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.customchannels.adunits.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.payments.list": list_account_payments +"/adsense:v1.4/adsense.accounts.payments.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.reports.generate": generate_account_report +"/adsense:v1.4/adsense.accounts.reports.generate/accountId": account_id +"/adsense:v1.4/adsense.accounts.reports.generate/currency": currency +"/adsense:v1.4/adsense.accounts.reports.generate/dimension": dimension +"/adsense:v1.4/adsense.accounts.reports.generate/endDate": end_date +"/adsense:v1.4/adsense.accounts.reports.generate/filter": filter +"/adsense:v1.4/adsense.accounts.reports.generate/locale": locale +"/adsense:v1.4/adsense.accounts.reports.generate/maxResults": max_results +"/adsense:v1.4/adsense.accounts.reports.generate/metric": metric +"/adsense:v1.4/adsense.accounts.reports.generate/sort": sort +"/adsense:v1.4/adsense.accounts.reports.generate/startDate": start_date +"/adsense:v1.4/adsense.accounts.reports.generate/startIndex": start_index +"/adsense:v1.4/adsense.accounts.reports.generate/useTimezoneReporting": use_timezone_reporting +"/adsense:v1.4/adsense.accounts.reports.saved.generate/accountId": account_id +"/adsense:v1.4/adsense.accounts.reports.saved.generate/locale": locale +"/adsense:v1.4/adsense.accounts.reports.saved.generate/maxResults": max_results +"/adsense:v1.4/adsense.accounts.reports.saved.generate/savedReportId": saved_report_id +"/adsense:v1.4/adsense.accounts.reports.saved.generate/startIndex": start_index +"/adsense:v1.4/adsense.accounts.reports.saved.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.reports.saved.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.reports.saved.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.savedadstyles.get/accountId": account_id +"/adsense:v1.4/adsense.accounts.savedadstyles.get/savedAdStyleId": saved_ad_style_id +"/adsense:v1.4/adsense.accounts.savedadstyles.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.savedadstyles.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.savedadstyles.list/pageToken": page_token +"/adsense:v1.4/adsense.accounts.urlchannels.list/accountId": account_id +"/adsense:v1.4/adsense.accounts.urlchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.accounts.urlchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.accounts.urlchannels.list/pageToken": page_token +"/adsense:v1.4/adsense.adclients.list/maxResults": max_results +"/adsense:v1.4/adsense.adclients.list/pageToken": page_token +"/adsense:v1.4/adsense.adunits.get/adClientId": ad_client_id +"/adsense:v1.4/adsense.adunits.get/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.adunits.getAdCode/adClientId": ad_client_id +"/adsense:v1.4/adsense.adunits.getAdCode/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.adunits.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.adunits.list/includeInactive": include_inactive +"/adsense:v1.4/adsense.adunits.list/maxResults": max_results +"/adsense:v1.4/adsense.adunits.list/pageToken": page_token +"/adsense:v1.4/adsense.adunits.customchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.adunits.customchannels.list/adUnitId": ad_unit_id +"/adsense:v1.4/adsense.adunits.customchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.adunits.customchannels.list/pageToken": page_token +"/adsense:v1.4/adsense.alerts.delete": delete_alert +"/adsense:v1.4/adsense.alerts.delete/alertId": alert_id +"/adsense:v1.4/adsense.alerts.list": list_alerts +"/adsense:v1.4/adsense.alerts.list/locale": locale +"/adsense:v1.4/adsense.customchannels.get/adClientId": ad_client_id +"/adsense:v1.4/adsense.customchannels.get/customChannelId": custom_channel_id +"/adsense:v1.4/adsense.customchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.customchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.customchannels.list/pageToken": page_token +"/adsense:v1.4/adsense.customchannels.adunits.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.customchannels.adunits.list/customChannelId": custom_channel_id +"/adsense:v1.4/adsense.customchannels.adunits.list/includeInactive": include_inactive +"/adsense:v1.4/adsense.customchannels.adunits.list/maxResults": max_results +"/adsense:v1.4/adsense.customchannels.adunits.list/pageToken": page_token +"/adsense:v1.4/adsense.payments.list": list_payments +"/adsense:v1.4/adsense.reports.generate": generate_report +"/adsense:v1.4/adsense.reports.generate/accountId": account_id +"/adsense:v1.4/adsense.reports.generate/currency": currency +"/adsense:v1.4/adsense.reports.generate/dimension": dimension +"/adsense:v1.4/adsense.reports.generate/endDate": end_date +"/adsense:v1.4/adsense.reports.generate/filter": filter +"/adsense:v1.4/adsense.reports.generate/locale": locale +"/adsense:v1.4/adsense.reports.generate/maxResults": max_results +"/adsense:v1.4/adsense.reports.generate/metric": metric +"/adsense:v1.4/adsense.reports.generate/sort": sort +"/adsense:v1.4/adsense.reports.generate/startDate": start_date +"/adsense:v1.4/adsense.reports.generate/startIndex": start_index +"/adsense:v1.4/adsense.reports.generate/useTimezoneReporting": use_timezone_reporting +"/adsense:v1.4/adsense.reports.saved.generate/locale": locale +"/adsense:v1.4/adsense.reports.saved.generate/maxResults": max_results +"/adsense:v1.4/adsense.reports.saved.generate/savedReportId": saved_report_id +"/adsense:v1.4/adsense.reports.saved.generate/startIndex": start_index +"/adsense:v1.4/adsense.reports.saved.list/maxResults": max_results +"/adsense:v1.4/adsense.reports.saved.list/pageToken": page_token +"/adsense:v1.4/adsense.savedadstyles.get/savedAdStyleId": saved_ad_style_id +"/adsense:v1.4/adsense.savedadstyles.list/maxResults": max_results +"/adsense:v1.4/adsense.savedadstyles.list/pageToken": page_token +"/adsense:v1.4/adsense.urlchannels.list/adClientId": ad_client_id +"/adsense:v1.4/adsense.urlchannels.list/maxResults": max_results +"/adsense:v1.4/adsense.urlchannels.list/pageToken": page_token +"/adsense:v1.4/Account": account +"/adsense:v1.4/Account/id": id +"/adsense:v1.4/Account/kind": kind +"/adsense:v1.4/Account/name": name +"/adsense:v1.4/Account/premium": premium +"/adsense:v1.4/Account/subAccounts": sub_accounts +"/adsense:v1.4/Account/subAccounts/sub_account": sub_account +"/adsense:v1.4/Account/timezone": timezone +"/adsense:v1.4/Accounts": accounts +"/adsense:v1.4/Accounts/etag": etag +"/adsense:v1.4/Accounts/items": items +"/adsense:v1.4/Accounts/items/item": item +"/adsense:v1.4/Accounts/kind": kind +"/adsense:v1.4/Accounts/nextPageToken": next_page_token +"/adsense:v1.4/AdClient": ad_client +"/adsense:v1.4/AdClient/arcOptIn": arc_opt_in +"/adsense:v1.4/AdClient/arcReviewMode": arc_review_mode +"/adsense:v1.4/AdClient/id": id +"/adsense:v1.4/AdClient/kind": kind +"/adsense:v1.4/AdClient/productCode": product_code +"/adsense:v1.4/AdClient/supportsReporting": supports_reporting +"/adsense:v1.4/AdClients": ad_clients +"/adsense:v1.4/AdClients/etag": etag +"/adsense:v1.4/AdClients/items": items +"/adsense:v1.4/AdClients/items/item": item +"/adsense:v1.4/AdClients/kind": kind +"/adsense:v1.4/AdClients/nextPageToken": next_page_token +"/adsense:v1.4/AdCode": ad_code +"/adsense:v1.4/AdCode/adCode": ad_code +"/adsense:v1.4/AdCode/kind": kind +"/adsense:v1.4/AdStyle": ad_style +"/adsense:v1.4/AdStyle/colors": colors +"/adsense:v1.4/AdStyle/colors/background": background +"/adsense:v1.4/AdStyle/colors/border": border +"/adsense:v1.4/AdStyle/colors/text": text +"/adsense:v1.4/AdStyle/colors/title": title +"/adsense:v1.4/AdStyle/colors/url": url +"/adsense:v1.4/AdStyle/corners": corners +"/adsense:v1.4/AdStyle/font": font +"/adsense:v1.4/AdStyle/font/family": family +"/adsense:v1.4/AdStyle/font/size": size +"/adsense:v1.4/AdStyle/kind": kind +"/adsense:v1.4/AdUnit": ad_unit +"/adsense:v1.4/AdUnit/code": code +"/adsense:v1.4/AdUnit/contentAdsSettings": content_ads_settings +"/adsense:v1.4/AdUnit/contentAdsSettings/backupOption": backup_option +"/adsense:v1.4/AdUnit/contentAdsSettings/backupOption/color": color +"/adsense:v1.4/AdUnit/contentAdsSettings/backupOption/type": type +"/adsense:v1.4/AdUnit/contentAdsSettings/backupOption/url": url +"/adsense:v1.4/AdUnit/contentAdsSettings/size": size +"/adsense:v1.4/AdUnit/contentAdsSettings/type": type +"/adsense:v1.4/AdUnit/customStyle": custom_style +"/adsense:v1.4/AdUnit/feedAdsSettings": feed_ads_settings +"/adsense:v1.4/AdUnit/feedAdsSettings/adPosition": ad_position +"/adsense:v1.4/AdUnit/feedAdsSettings/frequency": frequency +"/adsense:v1.4/AdUnit/feedAdsSettings/minimumWordCount": minimum_word_count +"/adsense:v1.4/AdUnit/feedAdsSettings/type": type +"/adsense:v1.4/AdUnit/id": id +"/adsense:v1.4/AdUnit/kind": kind +"/adsense:v1.4/AdUnit/mobileContentAdsSettings": mobile_content_ads_settings +"/adsense:v1.4/AdUnit/mobileContentAdsSettings/markupLanguage": markup_language +"/adsense:v1.4/AdUnit/mobileContentAdsSettings/scriptingLanguage": scripting_language +"/adsense:v1.4/AdUnit/mobileContentAdsSettings/size": size +"/adsense:v1.4/AdUnit/mobileContentAdsSettings/type": type +"/adsense:v1.4/AdUnit/name": name +"/adsense:v1.4/AdUnit/savedStyleId": saved_style_id +"/adsense:v1.4/AdUnit/status": status +"/adsense:v1.4/AdUnits": ad_units +"/adsense:v1.4/AdUnits/etag": etag +"/adsense:v1.4/AdUnits/items": items +"/adsense:v1.4/AdUnits/items/item": item +"/adsense:v1.4/AdUnits/kind": kind +"/adsense:v1.4/AdUnits/nextPageToken": next_page_token +"/adsense:v1.4/AdsenseReportsGenerateResponse/averages": averages +"/adsense:v1.4/AdsenseReportsGenerateResponse/averages/average": average +"/adsense:v1.4/AdsenseReportsGenerateResponse/endDate": end_date +"/adsense:v1.4/AdsenseReportsGenerateResponse/headers": headers +"/adsense:v1.4/AdsenseReportsGenerateResponse/headers/header": header +"/adsense:v1.4/AdsenseReportsGenerateResponse/headers/header/currency": currency +"/adsense:v1.4/AdsenseReportsGenerateResponse/headers/header/name": name +"/adsense:v1.4/AdsenseReportsGenerateResponse/headers/header/type": type +"/adsense:v1.4/AdsenseReportsGenerateResponse/kind": kind +"/adsense:v1.4/AdsenseReportsGenerateResponse/rows": rows +"/adsense:v1.4/AdsenseReportsGenerateResponse/rows/row": row +"/adsense:v1.4/AdsenseReportsGenerateResponse/rows/row/row": row +"/adsense:v1.4/AdsenseReportsGenerateResponse/startDate": start_date +"/adsense:v1.4/AdsenseReportsGenerateResponse/totalMatchedRows": total_matched_rows +"/adsense:v1.4/AdsenseReportsGenerateResponse/totals": totals +"/adsense:v1.4/AdsenseReportsGenerateResponse/totals/total": total +"/adsense:v1.4/AdsenseReportsGenerateResponse/warnings": warnings +"/adsense:v1.4/AdsenseReportsGenerateResponse/warnings/warning": warning +"/adsense:v1.4/Alert": alert +"/adsense:v1.4/Alert/id": id +"/adsense:v1.4/Alert/isDismissible": is_dismissible +"/adsense:v1.4/Alert/kind": kind +"/adsense:v1.4/Alert/message": message +"/adsense:v1.4/Alert/severity": severity +"/adsense:v1.4/Alert/type": type +"/adsense:v1.4/Alerts": alerts +"/adsense:v1.4/Alerts/items": items +"/adsense:v1.4/Alerts/items/item": item +"/adsense:v1.4/Alerts/kind": kind +"/adsense:v1.4/CustomChannel": custom_channel +"/adsense:v1.4/CustomChannel/code": code +"/adsense:v1.4/CustomChannel/id": id +"/adsense:v1.4/CustomChannel/kind": kind +"/adsense:v1.4/CustomChannel/name": name +"/adsense:v1.4/CustomChannel/targetingInfo": targeting_info +"/adsense:v1.4/CustomChannel/targetingInfo/adsAppearOn": ads_appear_on +"/adsense:v1.4/CustomChannel/targetingInfo/description": description +"/adsense:v1.4/CustomChannel/targetingInfo/location": location +"/adsense:v1.4/CustomChannel/targetingInfo/siteLanguage": site_language +"/adsense:v1.4/CustomChannels": custom_channels +"/adsense:v1.4/CustomChannels/etag": etag +"/adsense:v1.4/CustomChannels/items": items +"/adsense:v1.4/CustomChannels/items/item": item +"/adsense:v1.4/CustomChannels/kind": kind +"/adsense:v1.4/CustomChannels/nextPageToken": next_page_token +"/adsense:v1.4/Metadata": metadata +"/adsense:v1.4/Metadata/items": items +"/adsense:v1.4/Metadata/items/item": item +"/adsense:v1.4/Metadata/kind": kind +"/adsense:v1.4/Payment": payment +"/adsense:v1.4/Payment/id": id +"/adsense:v1.4/Payment/kind": kind +"/adsense:v1.4/Payment/paymentAmount": payment_amount +"/adsense:v1.4/Payment/paymentAmountCurrencyCode": payment_amount_currency_code +"/adsense:v1.4/Payment/paymentDate": payment_date +"/adsense:v1.4/Payments": payments +"/adsense:v1.4/Payments/items": items +"/adsense:v1.4/Payments/items/item": item +"/adsense:v1.4/Payments/kind": kind +"/adsense:v1.4/ReportingMetadataEntry": reporting_metadata_entry +"/adsense:v1.4/ReportingMetadataEntry/compatibleDimensions": compatible_dimensions +"/adsense:v1.4/ReportingMetadataEntry/compatibleDimensions/compatible_dimension": compatible_dimension +"/adsense:v1.4/ReportingMetadataEntry/compatibleMetrics": compatible_metrics +"/adsense:v1.4/ReportingMetadataEntry/compatibleMetrics/compatible_metric": compatible_metric +"/adsense:v1.4/ReportingMetadataEntry/id": id +"/adsense:v1.4/ReportingMetadataEntry/kind": kind +"/adsense:v1.4/ReportingMetadataEntry/requiredDimensions": required_dimensions +"/adsense:v1.4/ReportingMetadataEntry/requiredDimensions/required_dimension": required_dimension +"/adsense:v1.4/ReportingMetadataEntry/requiredMetrics": required_metrics +"/adsense:v1.4/ReportingMetadataEntry/requiredMetrics/required_metric": required_metric +"/adsense:v1.4/ReportingMetadataEntry/supportedProducts": supported_products +"/adsense:v1.4/ReportingMetadataEntry/supportedProducts/supported_product": supported_product +"/adsense:v1.4/SavedAdStyle": saved_ad_style +"/adsense:v1.4/SavedAdStyle/adStyle": ad_style +"/adsense:v1.4/SavedAdStyle/id": id +"/adsense:v1.4/SavedAdStyle/kind": kind +"/adsense:v1.4/SavedAdStyle/name": name +"/adsense:v1.4/SavedAdStyles": saved_ad_styles +"/adsense:v1.4/SavedAdStyles/etag": etag +"/adsense:v1.4/SavedAdStyles/items": items +"/adsense:v1.4/SavedAdStyles/items/item": item +"/adsense:v1.4/SavedAdStyles/kind": kind +"/adsense:v1.4/SavedAdStyles/nextPageToken": next_page_token +"/adsense:v1.4/SavedReport": saved_report +"/adsense:v1.4/SavedReport/id": id +"/adsense:v1.4/SavedReport/kind": kind +"/adsense:v1.4/SavedReport/name": name +"/adsense:v1.4/SavedReports": saved_reports +"/adsense:v1.4/SavedReports/etag": etag +"/adsense:v1.4/SavedReports/items": items +"/adsense:v1.4/SavedReports/items/item": item +"/adsense:v1.4/SavedReports/kind": kind +"/adsense:v1.4/SavedReports/nextPageToken": next_page_token +"/adsense:v1.4/UrlChannel": url_channel +"/adsense:v1.4/UrlChannel/id": id +"/adsense:v1.4/UrlChannel/kind": kind +"/adsense:v1.4/UrlChannel/urlPattern": url_pattern +"/adsense:v1.4/UrlChannels": url_channels +"/adsense:v1.4/UrlChannels/etag": etag +"/adsense:v1.4/UrlChannels/items": items +"/adsense:v1.4/UrlChannels/items/item": item +"/adsense:v1.4/UrlChannels/kind": kind +"/adsense:v1.4/UrlChannels/nextPageToken": next_page_token +"/adsensehost:v4.1/fields": fields +"/adsensehost:v4.1/key": key +"/adsensehost:v4.1/quotaUser": quota_user +"/adsensehost:v4.1/userIp": user_ip +"/adsensehost:v4.1/adsensehost.accounts.get": get_account +"/adsensehost:v4.1/adsensehost.accounts.get/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.list": list_accounts +"/adsensehost:v4.1/adsensehost.accounts.list/filterAdClientId": filter_ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adclients.get/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adclients.get/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adclients.list/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adclients.list/maxResults": max_results +"/adsensehost:v4.1/adsensehost.accounts.adclients.list/pageToken": page_token +"/adsensehost:v4.1/adsensehost.accounts.adunits.delete/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.delete/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.delete/adUnitId": ad_unit_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.get/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.get/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.get/adUnitId": ad_unit_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode/adUnitId": ad_unit_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.getAdCode/hostCustomChannelId": host_custom_channel_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.insert/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.insert/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.list/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.list/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.list/includeInactive": include_inactive +"/adsensehost:v4.1/adsensehost.accounts.adunits.list/maxResults": max_results +"/adsensehost:v4.1/adsensehost.accounts.adunits.list/pageToken": page_token +"/adsensehost:v4.1/adsensehost.accounts.adunits.patch/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.patch/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.patch/adUnitId": ad_unit_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.update/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.adunits.update/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.accounts.reports.generate": generate_account_report +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/accountId": account_id +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/dimension": dimension +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/endDate": end_date +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/filter": filter +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/locale": locale +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/maxResults": max_results +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/metric": metric +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/sort": sort +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/startDate": start_date +"/adsensehost:v4.1/adsensehost.accounts.reports.generate/startIndex": start_index +"/adsensehost:v4.1/adsensehost.adclients.get/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.adclients.list/maxResults": max_results +"/adsensehost:v4.1/adsensehost.adclients.list/pageToken": page_token +"/adsensehost:v4.1/adsensehost.associationsessions.start/productCode": product_code +"/adsensehost:v4.1/adsensehost.associationsessions.start/userLocale": user_locale +"/adsensehost:v4.1/adsensehost.associationsessions.start/websiteLocale": website_locale +"/adsensehost:v4.1/adsensehost.associationsessions.start/websiteUrl": website_url +"/adsensehost:v4.1/adsensehost.associationsessions.verify/token": token +"/adsensehost:v4.1/adsensehost.customchannels.delete/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.customchannels.delete/customChannelId": custom_channel_id +"/adsensehost:v4.1/adsensehost.customchannels.get/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.customchannels.get/customChannelId": custom_channel_id +"/adsensehost:v4.1/adsensehost.customchannels.insert/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.customchannels.list/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.customchannels.list/maxResults": max_results +"/adsensehost:v4.1/adsensehost.customchannels.list/pageToken": page_token +"/adsensehost:v4.1/adsensehost.customchannels.patch/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.customchannels.patch/customChannelId": custom_channel_id +"/adsensehost:v4.1/adsensehost.customchannels.update/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.reports.generate": generate_report +"/adsensehost:v4.1/adsensehost.reports.generate/dimension": dimension +"/adsensehost:v4.1/adsensehost.reports.generate/endDate": end_date +"/adsensehost:v4.1/adsensehost.reports.generate/filter": filter +"/adsensehost:v4.1/adsensehost.reports.generate/locale": locale +"/adsensehost:v4.1/adsensehost.reports.generate/maxResults": max_results +"/adsensehost:v4.1/adsensehost.reports.generate/metric": metric +"/adsensehost:v4.1/adsensehost.reports.generate/sort": sort +"/adsensehost:v4.1/adsensehost.reports.generate/startDate": start_date +"/adsensehost:v4.1/adsensehost.reports.generate/startIndex": start_index +"/adsensehost:v4.1/adsensehost.urlchannels.delete/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.urlchannels.delete/urlChannelId": url_channel_id +"/adsensehost:v4.1/adsensehost.urlchannels.insert/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.urlchannels.list/adClientId": ad_client_id +"/adsensehost:v4.1/adsensehost.urlchannels.list/maxResults": max_results +"/adsensehost:v4.1/adsensehost.urlchannels.list/pageToken": page_token +"/adsensehost:v4.1/Account": account +"/adsensehost:v4.1/Account/id": id +"/adsensehost:v4.1/Account/kind": kind +"/adsensehost:v4.1/Account/name": name +"/adsensehost:v4.1/Account/status": status +"/adsensehost:v4.1/Accounts": accounts +"/adsensehost:v4.1/Accounts/etag": etag +"/adsensehost:v4.1/Accounts/items": items +"/adsensehost:v4.1/Accounts/items/item": item +"/adsensehost:v4.1/Accounts/kind": kind +"/adsensehost:v4.1/AdClient": ad_client +"/adsensehost:v4.1/AdClient/arcOptIn": arc_opt_in +"/adsensehost:v4.1/AdClient/id": id +"/adsensehost:v4.1/AdClient/kind": kind +"/adsensehost:v4.1/AdClient/productCode": product_code +"/adsensehost:v4.1/AdClient/supportsReporting": supports_reporting +"/adsensehost:v4.1/AdClients": ad_clients +"/adsensehost:v4.1/AdClients/etag": etag +"/adsensehost:v4.1/AdClients/items": items +"/adsensehost:v4.1/AdClients/items/item": item +"/adsensehost:v4.1/AdClients/kind": kind +"/adsensehost:v4.1/AdClients/nextPageToken": next_page_token +"/adsensehost:v4.1/AdCode": ad_code +"/adsensehost:v4.1/AdCode/adCode": ad_code +"/adsensehost:v4.1/AdCode/kind": kind +"/adsensehost:v4.1/AdStyle": ad_style +"/adsensehost:v4.1/AdStyle/colors": colors +"/adsensehost:v4.1/AdStyle/colors/background": background +"/adsensehost:v4.1/AdStyle/colors/border": border +"/adsensehost:v4.1/AdStyle/colors/text": text +"/adsensehost:v4.1/AdStyle/colors/title": title +"/adsensehost:v4.1/AdStyle/colors/url": url +"/adsensehost:v4.1/AdStyle/corners": corners +"/adsensehost:v4.1/AdStyle/font": font +"/adsensehost:v4.1/AdStyle/font/family": family +"/adsensehost:v4.1/AdStyle/font/size": size +"/adsensehost:v4.1/AdStyle/kind": kind +"/adsensehost:v4.1/AdUnit": ad_unit +"/adsensehost:v4.1/AdUnit/code": code +"/adsensehost:v4.1/AdUnit/contentAdsSettings": content_ads_settings +"/adsensehost:v4.1/AdUnit/contentAdsSettings/backupOption": backup_option +"/adsensehost:v4.1/AdUnit/contentAdsSettings/backupOption/color": color +"/adsensehost:v4.1/AdUnit/contentAdsSettings/backupOption/type": type +"/adsensehost:v4.1/AdUnit/contentAdsSettings/backupOption/url": url +"/adsensehost:v4.1/AdUnit/contentAdsSettings/size": size +"/adsensehost:v4.1/AdUnit/contentAdsSettings/type": type +"/adsensehost:v4.1/AdUnit/customStyle": custom_style +"/adsensehost:v4.1/AdUnit/id": id +"/adsensehost:v4.1/AdUnit/kind": kind +"/adsensehost:v4.1/AdUnit/mobileContentAdsSettings": mobile_content_ads_settings +"/adsensehost:v4.1/AdUnit/mobileContentAdsSettings/markupLanguage": markup_language +"/adsensehost:v4.1/AdUnit/mobileContentAdsSettings/scriptingLanguage": scripting_language +"/adsensehost:v4.1/AdUnit/mobileContentAdsSettings/size": size +"/adsensehost:v4.1/AdUnit/mobileContentAdsSettings/type": type +"/adsensehost:v4.1/AdUnit/name": name +"/adsensehost:v4.1/AdUnit/status": status +"/adsensehost:v4.1/AdUnits": ad_units +"/adsensehost:v4.1/AdUnits/etag": etag +"/adsensehost:v4.1/AdUnits/items": items +"/adsensehost:v4.1/AdUnits/items/item": item +"/adsensehost:v4.1/AdUnits/kind": kind +"/adsensehost:v4.1/AdUnits/nextPageToken": next_page_token +"/adsensehost:v4.1/AssociationSession": association_session +"/adsensehost:v4.1/AssociationSession/accountId": account_id +"/adsensehost:v4.1/AssociationSession/id": id +"/adsensehost:v4.1/AssociationSession/kind": kind +"/adsensehost:v4.1/AssociationSession/productCodes": product_codes +"/adsensehost:v4.1/AssociationSession/productCodes/product_code": product_code +"/adsensehost:v4.1/AssociationSession/redirectUrl": redirect_url +"/adsensehost:v4.1/AssociationSession/status": status +"/adsensehost:v4.1/AssociationSession/userLocale": user_locale +"/adsensehost:v4.1/AssociationSession/websiteLocale": website_locale +"/adsensehost:v4.1/AssociationSession/websiteUrl": website_url +"/adsensehost:v4.1/CustomChannel": custom_channel +"/adsensehost:v4.1/CustomChannel/code": code +"/adsensehost:v4.1/CustomChannel/id": id +"/adsensehost:v4.1/CustomChannel/kind": kind +"/adsensehost:v4.1/CustomChannel/name": name +"/adsensehost:v4.1/CustomChannels": custom_channels +"/adsensehost:v4.1/CustomChannels/etag": etag +"/adsensehost:v4.1/CustomChannels/items": items +"/adsensehost:v4.1/CustomChannels/items/item": item +"/adsensehost:v4.1/CustomChannels/kind": kind +"/adsensehost:v4.1/CustomChannels/nextPageToken": next_page_token +"/adsensehost:v4.1/Report": report +"/adsensehost:v4.1/Report/averages": averages +"/adsensehost:v4.1/Report/averages/average": average +"/adsensehost:v4.1/Report/headers": headers +"/adsensehost:v4.1/Report/headers/header": header +"/adsensehost:v4.1/Report/headers/header/currency": currency +"/adsensehost:v4.1/Report/headers/header/name": name +"/adsensehost:v4.1/Report/headers/header/type": type +"/adsensehost:v4.1/Report/kind": kind +"/adsensehost:v4.1/Report/rows": rows +"/adsensehost:v4.1/Report/rows/row": row +"/adsensehost:v4.1/Report/rows/row/row": row +"/adsensehost:v4.1/Report/totalMatchedRows": total_matched_rows +"/adsensehost:v4.1/Report/totals": totals +"/adsensehost:v4.1/Report/totals/total": total +"/adsensehost:v4.1/Report/warnings": warnings +"/adsensehost:v4.1/Report/warnings/warning": warning +"/adsensehost:v4.1/UrlChannel": url_channel +"/adsensehost:v4.1/UrlChannel/id": id +"/adsensehost:v4.1/UrlChannel/kind": kind +"/adsensehost:v4.1/UrlChannel/urlPattern": url_pattern +"/adsensehost:v4.1/UrlChannels": url_channels +"/adsensehost:v4.1/UrlChannels/etag": etag +"/adsensehost:v4.1/UrlChannels/items": items +"/adsensehost:v4.1/UrlChannels/items/item": item +"/adsensehost:v4.1/UrlChannels/kind": kind +"/adsensehost:v4.1/UrlChannels/nextPageToken": next_page_token +"/analytics:v3/fields": fields +"/analytics:v3/key": key +"/analytics:v3/quotaUser": quota_user +"/analytics:v3/userIp": user_ip +"/analytics:v3/analytics.data.ga.get/dimensions": dimensions +"/analytics:v3/analytics.data.ga.get/end-date": end_date +"/analytics:v3/analytics.data.ga.get/filters": filters +"/analytics:v3/analytics.data.ga.get/ids": ids +"/analytics:v3/analytics.data.ga.get/max-results": max_results +"/analytics:v3/analytics.data.ga.get/metrics": metrics +"/analytics:v3/analytics.data.ga.get/output": output +"/analytics:v3/analytics.data.ga.get/samplingLevel": sampling_level +"/analytics:v3/analytics.data.ga.get/segment": segment +"/analytics:v3/analytics.data.ga.get/sort": sort +"/analytics:v3/analytics.data.ga.get/start-date": start_date +"/analytics:v3/analytics.data.ga.get/start-index": start_index +"/analytics:v3/analytics.data.mcf.get/dimensions": dimensions +"/analytics:v3/analytics.data.mcf.get/end-date": end_date +"/analytics:v3/analytics.data.mcf.get/filters": filters +"/analytics:v3/analytics.data.mcf.get/ids": ids +"/analytics:v3/analytics.data.mcf.get/max-results": max_results +"/analytics:v3/analytics.data.mcf.get/metrics": metrics +"/analytics:v3/analytics.data.mcf.get/samplingLevel": sampling_level +"/analytics:v3/analytics.data.mcf.get/sort": sort +"/analytics:v3/analytics.data.mcf.get/start-date": start_date +"/analytics:v3/analytics.data.mcf.get/start-index": start_index +"/analytics:v3/analytics.data.realtime.get/dimensions": dimensions +"/analytics:v3/analytics.data.realtime.get/filters": filters +"/analytics:v3/analytics.data.realtime.get/ids": ids +"/analytics:v3/analytics.data.realtime.get/max-results": max_results +"/analytics:v3/analytics.data.realtime.get/metrics": metrics +"/analytics:v3/analytics.data.realtime.get/sort": sort +"/analytics:v3/analytics.management.accountSummaries.list/max-results": max_results +"/analytics:v3/analytics.management.accountSummaries.list/start-index": start_index +"/analytics:v3/analytics.management.accountUserLinks.delete/accountId": account_id +"/analytics:v3/analytics.management.accountUserLinks.delete/linkId": link_id +"/analytics:v3/analytics.management.accountUserLinks.insert/accountId": account_id +"/analytics:v3/analytics.management.accountUserLinks.list/accountId": account_id +"/analytics:v3/analytics.management.accountUserLinks.list/max-results": max_results +"/analytics:v3/analytics.management.accountUserLinks.list/start-index": start_index +"/analytics:v3/analytics.management.accountUserLinks.update/accountId": account_id +"/analytics:v3/analytics.management.accountUserLinks.update/linkId": link_id +"/analytics:v3/analytics.management.accounts.list/max-results": max_results +"/analytics:v3/analytics.management.accounts.list/start-index": start_index +"/analytics:v3/analytics.management.customDataSources.list/accountId": account_id +"/analytics:v3/analytics.management.customDataSources.list/max-results": max_results +"/analytics:v3/analytics.management.customDataSources.list/start-index": start_index +"/analytics:v3/analytics.management.customDataSources.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customDimensions.get/accountId": account_id +"/analytics:v3/analytics.management.customDimensions.get/customDimensionId": custom_dimension_id +"/analytics:v3/analytics.management.customDimensions.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customDimensions.insert/accountId": account_id +"/analytics:v3/analytics.management.customDimensions.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customDimensions.list/accountId": account_id +"/analytics:v3/analytics.management.customDimensions.list/max-results": max_results +"/analytics:v3/analytics.management.customDimensions.list/start-index": start_index +"/analytics:v3/analytics.management.customDimensions.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customDimensions.patch/accountId": account_id +"/analytics:v3/analytics.management.customDimensions.patch/customDimensionId": custom_dimension_id +"/analytics:v3/analytics.management.customDimensions.patch/ignoreCustomDataSourceLinks": ignore_custom_data_source_links +"/analytics:v3/analytics.management.customDimensions.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customDimensions.update/accountId": account_id +"/analytics:v3/analytics.management.customDimensions.update/customDimensionId": custom_dimension_id +"/analytics:v3/analytics.management.customDimensions.update/ignoreCustomDataSourceLinks": ignore_custom_data_source_links +"/analytics:v3/analytics.management.customDimensions.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customMetrics.get/accountId": account_id +"/analytics:v3/analytics.management.customMetrics.get/customMetricId": custom_metric_id +"/analytics:v3/analytics.management.customMetrics.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customMetrics.insert/accountId": account_id +"/analytics:v3/analytics.management.customMetrics.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customMetrics.list/accountId": account_id +"/analytics:v3/analytics.management.customMetrics.list/max-results": max_results +"/analytics:v3/analytics.management.customMetrics.list/start-index": start_index +"/analytics:v3/analytics.management.customMetrics.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customMetrics.patch/accountId": account_id +"/analytics:v3/analytics.management.customMetrics.patch/customMetricId": custom_metric_id +"/analytics:v3/analytics.management.customMetrics.patch/ignoreCustomDataSourceLinks": ignore_custom_data_source_links +"/analytics:v3/analytics.management.customMetrics.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.customMetrics.update/accountId": account_id +"/analytics:v3/analytics.management.customMetrics.update/customMetricId": custom_metric_id +"/analytics:v3/analytics.management.customMetrics.update/ignoreCustomDataSourceLinks": ignore_custom_data_source_links +"/analytics:v3/analytics.management.customMetrics.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.delete/accountId": account_id +"/analytics:v3/analytics.management.experiments.delete/experimentId": experiment_id +"/analytics:v3/analytics.management.experiments.delete/profileId": profile_id +"/analytics:v3/analytics.management.experiments.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.get/accountId": account_id +"/analytics:v3/analytics.management.experiments.get/experimentId": experiment_id +"/analytics:v3/analytics.management.experiments.get/profileId": profile_id +"/analytics:v3/analytics.management.experiments.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.insert/accountId": account_id +"/analytics:v3/analytics.management.experiments.insert/profileId": profile_id +"/analytics:v3/analytics.management.experiments.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.list/accountId": account_id +"/analytics:v3/analytics.management.experiments.list/max-results": max_results +"/analytics:v3/analytics.management.experiments.list/profileId": profile_id +"/analytics:v3/analytics.management.experiments.list/start-index": start_index +"/analytics:v3/analytics.management.experiments.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.patch/accountId": account_id +"/analytics:v3/analytics.management.experiments.patch/experimentId": experiment_id +"/analytics:v3/analytics.management.experiments.patch/profileId": profile_id +"/analytics:v3/analytics.management.experiments.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.experiments.update/accountId": account_id +"/analytics:v3/analytics.management.experiments.update/experimentId": experiment_id +"/analytics:v3/analytics.management.experiments.update/profileId": profile_id +"/analytics:v3/analytics.management.experiments.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.filters.delete/accountId": account_id +"/analytics:v3/analytics.management.filters.delete/filterId": filter_id +"/analytics:v3/analytics.management.filters.get/accountId": account_id +"/analytics:v3/analytics.management.filters.get/filterId": filter_id +"/analytics:v3/analytics.management.filters.insert/accountId": account_id +"/analytics:v3/analytics.management.filters.list/accountId": account_id +"/analytics:v3/analytics.management.filters.list/max-results": max_results +"/analytics:v3/analytics.management.filters.list/start-index": start_index +"/analytics:v3/analytics.management.filters.patch/accountId": account_id +"/analytics:v3/analytics.management.filters.patch/filterId": filter_id +"/analytics:v3/analytics.management.filters.update/accountId": account_id +"/analytics:v3/analytics.management.filters.update/filterId": filter_id +"/analytics:v3/analytics.management.goals.get/accountId": account_id +"/analytics:v3/analytics.management.goals.get/goalId": goal_id +"/analytics:v3/analytics.management.goals.get/profileId": profile_id +"/analytics:v3/analytics.management.goals.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.goals.insert/accountId": account_id +"/analytics:v3/analytics.management.goals.insert/profileId": profile_id +"/analytics:v3/analytics.management.goals.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.goals.list/accountId": account_id +"/analytics:v3/analytics.management.goals.list/max-results": max_results +"/analytics:v3/analytics.management.goals.list/profileId": profile_id +"/analytics:v3/analytics.management.goals.list/start-index": start_index +"/analytics:v3/analytics.management.goals.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.goals.patch/accountId": account_id +"/analytics:v3/analytics.management.goals.patch/goalId": goal_id +"/analytics:v3/analytics.management.goals.patch/profileId": profile_id +"/analytics:v3/analytics.management.goals.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.goals.update/accountId": account_id +"/analytics:v3/analytics.management.goals.update/goalId": goal_id +"/analytics:v3/analytics.management.goals.update/profileId": profile_id +"/analytics:v3/analytics.management.goals.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.delete/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.delete/linkId": link_id +"/analytics:v3/analytics.management.profileFilterLinks.delete/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.get/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.get/linkId": link_id +"/analytics:v3/analytics.management.profileFilterLinks.get/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.insert/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.insert/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.list/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.list/max-results": max_results +"/analytics:v3/analytics.management.profileFilterLinks.list/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.list/start-index": start_index +"/analytics:v3/analytics.management.profileFilterLinks.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.patch/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.patch/linkId": link_id +"/analytics:v3/analytics.management.profileFilterLinks.patch/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileFilterLinks.update/accountId": account_id +"/analytics:v3/analytics.management.profileFilterLinks.update/linkId": link_id +"/analytics:v3/analytics.management.profileFilterLinks.update/profileId": profile_id +"/analytics:v3/analytics.management.profileFilterLinks.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileUserLinks.delete/accountId": account_id +"/analytics:v3/analytics.management.profileUserLinks.delete/linkId": link_id +"/analytics:v3/analytics.management.profileUserLinks.delete/profileId": profile_id +"/analytics:v3/analytics.management.profileUserLinks.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileUserLinks.insert/accountId": account_id +"/analytics:v3/analytics.management.profileUserLinks.insert/profileId": profile_id +"/analytics:v3/analytics.management.profileUserLinks.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileUserLinks.list/accountId": account_id +"/analytics:v3/analytics.management.profileUserLinks.list/max-results": max_results +"/analytics:v3/analytics.management.profileUserLinks.list/profileId": profile_id +"/analytics:v3/analytics.management.profileUserLinks.list/start-index": start_index +"/analytics:v3/analytics.management.profileUserLinks.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profileUserLinks.update/accountId": account_id +"/analytics:v3/analytics.management.profileUserLinks.update/linkId": link_id +"/analytics:v3/analytics.management.profileUserLinks.update/profileId": profile_id +"/analytics:v3/analytics.management.profileUserLinks.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.delete/accountId": account_id +"/analytics:v3/analytics.management.profiles.delete/profileId": profile_id +"/analytics:v3/analytics.management.profiles.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.get/accountId": account_id +"/analytics:v3/analytics.management.profiles.get/profileId": profile_id +"/analytics:v3/analytics.management.profiles.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.insert/accountId": account_id +"/analytics:v3/analytics.management.profiles.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.list/accountId": account_id +"/analytics:v3/analytics.management.profiles.list/max-results": max_results +"/analytics:v3/analytics.management.profiles.list/start-index": start_index +"/analytics:v3/analytics.management.profiles.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.patch/accountId": account_id +"/analytics:v3/analytics.management.profiles.patch/profileId": profile_id +"/analytics:v3/analytics.management.profiles.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.profiles.update/accountId": account_id +"/analytics:v3/analytics.management.profiles.update/profileId": profile_id +"/analytics:v3/analytics.management.profiles.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.segments.list/max-results": max_results +"/analytics:v3/analytics.management.segments.list/start-index": start_index +"/analytics:v3/analytics.management.unsampledReports.get/accountId": account_id +"/analytics:v3/analytics.management.unsampledReports.get/profileId": profile_id +"/analytics:v3/analytics.management.unsampledReports.get/unsampledReportId": unsampled_report_id +"/analytics:v3/analytics.management.unsampledReports.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.unsampledReports.insert/accountId": account_id +"/analytics:v3/analytics.management.unsampledReports.insert/profileId": profile_id +"/analytics:v3/analytics.management.unsampledReports.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.unsampledReports.list/accountId": account_id +"/analytics:v3/analytics.management.unsampledReports.list/max-results": max_results +"/analytics:v3/analytics.management.unsampledReports.list/profileId": profile_id +"/analytics:v3/analytics.management.unsampledReports.list/start-index": start_index +"/analytics:v3/analytics.management.unsampledReports.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.uploads.deleteUploadData/accountId": account_id +"/analytics:v3/analytics.management.uploads.deleteUploadData/customDataSourceId": custom_data_source_id +"/analytics:v3/analytics.management.uploads.deleteUploadData/webPropertyId": web_property_id +"/analytics:v3/analytics.management.uploads.get/accountId": account_id +"/analytics:v3/analytics.management.uploads.get/customDataSourceId": custom_data_source_id +"/analytics:v3/analytics.management.uploads.get/uploadId": upload_id +"/analytics:v3/analytics.management.uploads.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.uploads.list/accountId": account_id +"/analytics:v3/analytics.management.uploads.list/customDataSourceId": custom_data_source_id +"/analytics:v3/analytics.management.uploads.list/max-results": max_results +"/analytics:v3/analytics.management.uploads.list/start-index": start_index +"/analytics:v3/analytics.management.uploads.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.uploads.uploadData/accountId": account_id +"/analytics:v3/analytics.management.uploads.uploadData/customDataSourceId": custom_data_source_id +"/analytics:v3/analytics.management.uploads.uploadData/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.delete/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.delete/webPropertyAdWordsLinkId": web_property_ad_words_link_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.get/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.get/webPropertyAdWordsLinkId": web_property_ad_words_link_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.insert/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list/max-results": max_results +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list/start-index": start_index +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.patch/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.patch/webPropertyAdWordsLinkId": web_property_ad_words_link_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.update/accountId": account_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.update/webPropertyAdWordsLinkId": web_property_ad_words_link_id +"/analytics:v3/analytics.management.webPropertyAdWordsLinks.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webproperties.get/accountId": account_id +"/analytics:v3/analytics.management.webproperties.get/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webproperties.insert/accountId": account_id +"/analytics:v3/analytics.management.webproperties.list/accountId": account_id +"/analytics:v3/analytics.management.webproperties.list/max-results": max_results +"/analytics:v3/analytics.management.webproperties.list/start-index": start_index +"/analytics:v3/analytics.management.webproperties.patch/accountId": account_id +"/analytics:v3/analytics.management.webproperties.patch/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webproperties.update/accountId": account_id +"/analytics:v3/analytics.management.webproperties.update/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webpropertyUserLinks.delete/accountId": account_id +"/analytics:v3/analytics.management.webpropertyUserLinks.delete/linkId": link_id +"/analytics:v3/analytics.management.webpropertyUserLinks.delete/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webpropertyUserLinks.insert/accountId": account_id +"/analytics:v3/analytics.management.webpropertyUserLinks.insert/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webpropertyUserLinks.list/accountId": account_id +"/analytics:v3/analytics.management.webpropertyUserLinks.list/max-results": max_results +"/analytics:v3/analytics.management.webpropertyUserLinks.list/start-index": start_index +"/analytics:v3/analytics.management.webpropertyUserLinks.list/webPropertyId": web_property_id +"/analytics:v3/analytics.management.webpropertyUserLinks.update/accountId": account_id +"/analytics:v3/analytics.management.webpropertyUserLinks.update/linkId": link_id +"/analytics:v3/analytics.management.webpropertyUserLinks.update/webPropertyId": web_property_id +"/analytics:v3/analytics.metadata.columns.list/reportType": report_type +"/analytics:v3/Account": account +"/analytics:v3/Account/childLink": child_link +"/analytics:v3/Account/childLink/href": href +"/analytics:v3/Account/childLink/type": type +"/analytics:v3/Account/created": created +"/analytics:v3/Account/id": id +"/analytics:v3/Account/kind": kind +"/analytics:v3/Account/name": name +"/analytics:v3/Account/permissions": permissions +"/analytics:v3/Account/permissions/effective": effective +"/analytics:v3/Account/permissions/effective/effective": effective +"/analytics:v3/Account/selfLink": self_link +"/analytics:v3/Account/updated": updated +"/analytics:v3/AccountRef": account_ref +"/analytics:v3/AccountRef/href": href +"/analytics:v3/AccountRef/id": id +"/analytics:v3/AccountRef/kind": kind +"/analytics:v3/AccountRef/name": name +"/analytics:v3/AccountSummaries": account_summaries +"/analytics:v3/AccountSummaries/items": items +"/analytics:v3/AccountSummaries/items/item": item +"/analytics:v3/AccountSummaries/itemsPerPage": items_per_page +"/analytics:v3/AccountSummaries/kind": kind +"/analytics:v3/AccountSummaries/nextLink": next_link +"/analytics:v3/AccountSummaries/previousLink": previous_link +"/analytics:v3/AccountSummaries/startIndex": start_index +"/analytics:v3/AccountSummaries/totalResults": total_results +"/analytics:v3/AccountSummaries/username": username +"/analytics:v3/AccountSummary": account_summary +"/analytics:v3/AccountSummary/id": id +"/analytics:v3/AccountSummary/kind": kind +"/analytics:v3/AccountSummary/name": name +"/analytics:v3/AccountSummary/webProperties": web_properties +"/analytics:v3/AccountSummary/webProperties/web_property": web_property +"/analytics:v3/AccountTicket": account_ticket +"/analytics:v3/AccountTicket/account": account +"/analytics:v3/AccountTicket/id": id +"/analytics:v3/AccountTicket/kind": kind +"/analytics:v3/AccountTicket/profile": profile +"/analytics:v3/AccountTicket/redirectUri": redirect_uri +"/analytics:v3/AccountTicket/webproperty": webproperty +"/analytics:v3/Accounts": accounts +"/analytics:v3/Accounts/items": items +"/analytics:v3/Accounts/items/item": item +"/analytics:v3/Accounts/itemsPerPage": items_per_page +"/analytics:v3/Accounts/kind": kind +"/analytics:v3/Accounts/nextLink": next_link +"/analytics:v3/Accounts/previousLink": previous_link +"/analytics:v3/Accounts/startIndex": start_index +"/analytics:v3/Accounts/totalResults": total_results +"/analytics:v3/Accounts/username": username +"/analytics:v3/AdWordsAccount": ad_words_account +"/analytics:v3/AdWordsAccount/autoTaggingEnabled": auto_tagging_enabled +"/analytics:v3/AdWordsAccount/customerId": customer_id +"/analytics:v3/AdWordsAccount/kind": kind +"/analytics:v3/AnalyticsDataimportDeleteUploadDataRequest/customDataImportUids": custom_data_import_uids +"/analytics:v3/AnalyticsDataimportDeleteUploadDataRequest/customDataImportUids/custom_data_import_uid": custom_data_import_uid +"/analytics:v3/Column": column +"/analytics:v3/Column/attributes": attributes +"/analytics:v3/Column/attributes/attribute": attribute +"/analytics:v3/Column/id": id +"/analytics:v3/Column/kind": kind +"/analytics:v3/Columns": columns +"/analytics:v3/Columns/attributeNames": attribute_names +"/analytics:v3/Columns/attributeNames/attribute_name": attribute_name +"/analytics:v3/Columns/etag": etag +"/analytics:v3/Columns/items": items +"/analytics:v3/Columns/items/item": item +"/analytics:v3/Columns/kind": kind +"/analytics:v3/Columns/totalResults": total_results +"/analytics:v3/CustomDataSource": custom_data_source +"/analytics:v3/CustomDataSource/accountId": account_id +"/analytics:v3/CustomDataSource/childLink": child_link +"/analytics:v3/CustomDataSource/childLink/href": href +"/analytics:v3/CustomDataSource/childLink/type": type +"/analytics:v3/CustomDataSource/created": created +"/analytics:v3/CustomDataSource/description": description +"/analytics:v3/CustomDataSource/id": id +"/analytics:v3/CustomDataSource/importBehavior": import_behavior +"/analytics:v3/CustomDataSource/kind": kind +"/analytics:v3/CustomDataSource/name": name +"/analytics:v3/CustomDataSource/parentLink": parent_link +"/analytics:v3/CustomDataSource/parentLink/href": href +"/analytics:v3/CustomDataSource/parentLink/type": type +"/analytics:v3/CustomDataSource/profilesLinked": profiles_linked +"/analytics:v3/CustomDataSource/profilesLinked/profiles_linked": profiles_linked +"/analytics:v3/CustomDataSource/selfLink": self_link +"/analytics:v3/CustomDataSource/type": type +"/analytics:v3/CustomDataSource/updated": updated +"/analytics:v3/CustomDataSource/uploadType": upload_type +"/analytics:v3/CustomDataSource/webPropertyId": web_property_id +"/analytics:v3/CustomDataSources": custom_data_sources +"/analytics:v3/CustomDataSources/items": items +"/analytics:v3/CustomDataSources/items/item": item +"/analytics:v3/CustomDataSources/itemsPerPage": items_per_page +"/analytics:v3/CustomDataSources/kind": kind +"/analytics:v3/CustomDataSources/nextLink": next_link +"/analytics:v3/CustomDataSources/previousLink": previous_link +"/analytics:v3/CustomDataSources/startIndex": start_index +"/analytics:v3/CustomDataSources/totalResults": total_results +"/analytics:v3/CustomDataSources/username": username +"/analytics:v3/CustomDimension": custom_dimension +"/analytics:v3/CustomDimension/accountId": account_id +"/analytics:v3/CustomDimension/active": active +"/analytics:v3/CustomDimension/created": created +"/analytics:v3/CustomDimension/id": id +"/analytics:v3/CustomDimension/index": index +"/analytics:v3/CustomDimension/kind": kind +"/analytics:v3/CustomDimension/name": name +"/analytics:v3/CustomDimension/parentLink": parent_link +"/analytics:v3/CustomDimension/parentLink/href": href +"/analytics:v3/CustomDimension/parentLink/type": type +"/analytics:v3/CustomDimension/scope": scope +"/analytics:v3/CustomDimension/selfLink": self_link +"/analytics:v3/CustomDimension/updated": updated +"/analytics:v3/CustomDimension/webPropertyId": web_property_id +"/analytics:v3/CustomDimensions": custom_dimensions +"/analytics:v3/CustomDimensions/items": items +"/analytics:v3/CustomDimensions/items/item": item +"/analytics:v3/CustomDimensions/itemsPerPage": items_per_page +"/analytics:v3/CustomDimensions/kind": kind +"/analytics:v3/CustomDimensions/nextLink": next_link +"/analytics:v3/CustomDimensions/previousLink": previous_link +"/analytics:v3/CustomDimensions/startIndex": start_index +"/analytics:v3/CustomDimensions/totalResults": total_results +"/analytics:v3/CustomDimensions/username": username +"/analytics:v3/CustomMetric": custom_metric +"/analytics:v3/CustomMetric/accountId": account_id +"/analytics:v3/CustomMetric/active": active +"/analytics:v3/CustomMetric/created": created +"/analytics:v3/CustomMetric/id": id +"/analytics:v3/CustomMetric/index": index +"/analytics:v3/CustomMetric/kind": kind +"/analytics:v3/CustomMetric/max_value": max_value +"/analytics:v3/CustomMetric/min_value": min_value +"/analytics:v3/CustomMetric/name": name +"/analytics:v3/CustomMetric/parentLink": parent_link +"/analytics:v3/CustomMetric/parentLink/href": href +"/analytics:v3/CustomMetric/parentLink/type": type +"/analytics:v3/CustomMetric/scope": scope +"/analytics:v3/CustomMetric/selfLink": self_link +"/analytics:v3/CustomMetric/type": type +"/analytics:v3/CustomMetric/updated": updated +"/analytics:v3/CustomMetric/webPropertyId": web_property_id +"/analytics:v3/CustomMetrics": custom_metrics +"/analytics:v3/CustomMetrics/items": items +"/analytics:v3/CustomMetrics/items/item": item +"/analytics:v3/CustomMetrics/itemsPerPage": items_per_page +"/analytics:v3/CustomMetrics/kind": kind +"/analytics:v3/CustomMetrics/nextLink": next_link +"/analytics:v3/CustomMetrics/previousLink": previous_link +"/analytics:v3/CustomMetrics/startIndex": start_index +"/analytics:v3/CustomMetrics/totalResults": total_results +"/analytics:v3/CustomMetrics/username": username +"/analytics:v3/EntityAdWordsLink": entity_ad_words_link +"/analytics:v3/EntityAdWordsLink/adWordsAccounts": ad_words_accounts +"/analytics:v3/EntityAdWordsLink/adWordsAccounts/ad_words_account": ad_words_account +"/analytics:v3/EntityAdWordsLink/entity": entity +"/analytics:v3/EntityAdWordsLink/entity/webPropertyRef": web_property_ref +"/analytics:v3/EntityAdWordsLink/id": id +"/analytics:v3/EntityAdWordsLink/kind": kind +"/analytics:v3/EntityAdWordsLink/name": name +"/analytics:v3/EntityAdWordsLink/profileIds": profile_ids +"/analytics:v3/EntityAdWordsLink/profileIds/profile_id": profile_id +"/analytics:v3/EntityAdWordsLink/selfLink": self_link +"/analytics:v3/EntityAdWordsLinks": entity_ad_words_links +"/analytics:v3/EntityAdWordsLinks/items": items +"/analytics:v3/EntityAdWordsLinks/items/item": item +"/analytics:v3/EntityAdWordsLinks/itemsPerPage": items_per_page +"/analytics:v3/EntityAdWordsLinks/kind": kind +"/analytics:v3/EntityAdWordsLinks/nextLink": next_link +"/analytics:v3/EntityAdWordsLinks/previousLink": previous_link +"/analytics:v3/EntityAdWordsLinks/startIndex": start_index +"/analytics:v3/EntityAdWordsLinks/totalResults": total_results +"/analytics:v3/EntityUserLink": entity_user_link +"/analytics:v3/EntityUserLink/entity": entity +"/analytics:v3/EntityUserLink/entity/accountRef": account_ref +"/analytics:v3/EntityUserLink/entity/profileRef": profile_ref +"/analytics:v3/EntityUserLink/entity/webPropertyRef": web_property_ref +"/analytics:v3/EntityUserLink/id": id +"/analytics:v3/EntityUserLink/kind": kind +"/analytics:v3/EntityUserLink/permissions": permissions +"/analytics:v3/EntityUserLink/permissions/effective": effective +"/analytics:v3/EntityUserLink/permissions/effective/effective": effective +"/analytics:v3/EntityUserLink/permissions/local": local +"/analytics:v3/EntityUserLink/permissions/local/local": local +"/analytics:v3/EntityUserLink/selfLink": self_link +"/analytics:v3/EntityUserLink/userRef": user_ref +"/analytics:v3/EntityUserLinks": entity_user_links +"/analytics:v3/EntityUserLinks/items": items +"/analytics:v3/EntityUserLinks/items/item": item +"/analytics:v3/EntityUserLinks/itemsPerPage": items_per_page +"/analytics:v3/EntityUserLinks/kind": kind +"/analytics:v3/EntityUserLinks/nextLink": next_link +"/analytics:v3/EntityUserLinks/previousLink": previous_link +"/analytics:v3/EntityUserLinks/startIndex": start_index +"/analytics:v3/EntityUserLinks/totalResults": total_results +"/analytics:v3/Experiment": experiment +"/analytics:v3/Experiment/accountId": account_id +"/analytics:v3/Experiment/created": created +"/analytics:v3/Experiment/description": description +"/analytics:v3/Experiment/editableInGaUi": editable_in_ga_ui +"/analytics:v3/Experiment/endTime": end_time +"/analytics:v3/Experiment/equalWeighting": equal_weighting +"/analytics:v3/Experiment/id": id +"/analytics:v3/Experiment/internalWebPropertyId": internal_web_property_id +"/analytics:v3/Experiment/kind": kind +"/analytics:v3/Experiment/minimumExperimentLengthInDays": minimum_experiment_length_in_days +"/analytics:v3/Experiment/name": name +"/analytics:v3/Experiment/objectiveMetric": objective_metric +"/analytics:v3/Experiment/optimizationType": optimization_type +"/analytics:v3/Experiment/parentLink": parent_link +"/analytics:v3/Experiment/parentLink/href": href +"/analytics:v3/Experiment/parentLink/type": type +"/analytics:v3/Experiment/profileId": profile_id +"/analytics:v3/Experiment/reasonExperimentEnded": reason_experiment_ended +"/analytics:v3/Experiment/rewriteVariationUrlsAsOriginal": rewrite_variation_urls_as_original +"/analytics:v3/Experiment/selfLink": self_link +"/analytics:v3/Experiment/servingFramework": serving_framework +"/analytics:v3/Experiment/snippet": snippet +"/analytics:v3/Experiment/startTime": start_time +"/analytics:v3/Experiment/status": status +"/analytics:v3/Experiment/trafficCoverage": traffic_coverage +"/analytics:v3/Experiment/updated": updated +"/analytics:v3/Experiment/variations": variations +"/analytics:v3/Experiment/variations/variation": variation +"/analytics:v3/Experiment/variations/variation/name": name +"/analytics:v3/Experiment/variations/variation/status": status +"/analytics:v3/Experiment/variations/variation/url": url +"/analytics:v3/Experiment/variations/variation/weight": weight +"/analytics:v3/Experiment/variations/variation/won": won +"/analytics:v3/Experiment/webPropertyId": web_property_id +"/analytics:v3/Experiment/winnerConfidenceLevel": winner_confidence_level +"/analytics:v3/Experiment/winnerFound": winner_found +"/analytics:v3/Experiments": experiments +"/analytics:v3/Experiments/items": items +"/analytics:v3/Experiments/items/item": item +"/analytics:v3/Experiments/itemsPerPage": items_per_page +"/analytics:v3/Experiments/kind": kind +"/analytics:v3/Experiments/nextLink": next_link +"/analytics:v3/Experiments/previousLink": previous_link +"/analytics:v3/Experiments/startIndex": start_index +"/analytics:v3/Experiments/totalResults": total_results +"/analytics:v3/Experiments/username": username +"/analytics:v3/Filter": filter +"/analytics:v3/Filter/accountId": account_id +"/analytics:v3/Filter/advancedDetails": advanced_details +"/analytics:v3/Filter/advancedDetails/caseSensitive": case_sensitive +"/analytics:v3/Filter/advancedDetails/extractA": extract_a +"/analytics:v3/Filter/advancedDetails/extractB": extract_b +"/analytics:v3/Filter/advancedDetails/fieldA": field_a +"/analytics:v3/Filter/advancedDetails/fieldAIndex": field_a_index +"/analytics:v3/Filter/advancedDetails/fieldARequired": field_a_required +"/analytics:v3/Filter/advancedDetails/fieldB": field_b +"/analytics:v3/Filter/advancedDetails/fieldBIndex": field_b_index +"/analytics:v3/Filter/advancedDetails/fieldBRequired": field_b_required +"/analytics:v3/Filter/advancedDetails/outputConstructor": output_constructor +"/analytics:v3/Filter/advancedDetails/outputToField": output_to_field +"/analytics:v3/Filter/advancedDetails/outputToFieldIndex": output_to_field_index +"/analytics:v3/Filter/advancedDetails/overrideOutputField": override_output_field +"/analytics:v3/Filter/created": created +"/analytics:v3/Filter/excludeDetails": exclude_details +"/analytics:v3/Filter/id": id +"/analytics:v3/Filter/includeDetails": include_details +"/analytics:v3/Filter/kind": kind +"/analytics:v3/Filter/lowercaseDetails": lowercase_details +"/analytics:v3/Filter/lowercaseDetails/field": field +"/analytics:v3/Filter/lowercaseDetails/fieldIndex": field_index +"/analytics:v3/Filter/name": name +"/analytics:v3/Filter/parentLink": parent_link +"/analytics:v3/Filter/parentLink/href": href +"/analytics:v3/Filter/parentLink/type": type +"/analytics:v3/Filter/searchAndReplaceDetails": search_and_replace_details +"/analytics:v3/Filter/searchAndReplaceDetails/caseSensitive": case_sensitive +"/analytics:v3/Filter/searchAndReplaceDetails/field": field +"/analytics:v3/Filter/searchAndReplaceDetails/fieldIndex": field_index +"/analytics:v3/Filter/searchAndReplaceDetails/replaceString": replace_string +"/analytics:v3/Filter/searchAndReplaceDetails/searchString": search_string +"/analytics:v3/Filter/selfLink": self_link +"/analytics:v3/Filter/type": type +"/analytics:v3/Filter/updated": updated +"/analytics:v3/Filter/uppercaseDetails": uppercase_details +"/analytics:v3/Filter/uppercaseDetails/field": field +"/analytics:v3/Filter/uppercaseDetails/fieldIndex": field_index +"/analytics:v3/FilterExpression": filter_expression +"/analytics:v3/FilterExpression/caseSensitive": case_sensitive +"/analytics:v3/FilterExpression/expressionValue": expression_value +"/analytics:v3/FilterExpression/field": field +"/analytics:v3/FilterExpression/fieldIndex": field_index +"/analytics:v3/FilterExpression/kind": kind +"/analytics:v3/FilterExpression/matchType": match_type +"/analytics:v3/FilterRef": filter_ref +"/analytics:v3/FilterRef/accountId": account_id +"/analytics:v3/FilterRef/href": href +"/analytics:v3/FilterRef/id": id +"/analytics:v3/FilterRef/kind": kind +"/analytics:v3/FilterRef/name": name +"/analytics:v3/Filters": filters +"/analytics:v3/Filters/items": items +"/analytics:v3/Filters/items/item": item +"/analytics:v3/Filters/itemsPerPage": items_per_page +"/analytics:v3/Filters/kind": kind +"/analytics:v3/Filters/nextLink": next_link +"/analytics:v3/Filters/previousLink": previous_link +"/analytics:v3/Filters/startIndex": start_index +"/analytics:v3/Filters/totalResults": total_results +"/analytics:v3/Filters/username": username +"/analytics:v3/GaData": ga_data +"/analytics:v3/GaData/columnHeaders": column_headers +"/analytics:v3/GaData/columnHeaders/column_header": column_header +"/analytics:v3/GaData/columnHeaders/column_header/columnType": column_type +"/analytics:v3/GaData/columnHeaders/column_header/dataType": data_type +"/analytics:v3/GaData/columnHeaders/column_header/name": name +"/analytics:v3/GaData/containsSampledData": contains_sampled_data +"/analytics:v3/GaData/dataTable": data_table +"/analytics:v3/GaData/dataTable/cols": cols +"/analytics:v3/GaData/dataTable/cols/col": col +"/analytics:v3/GaData/dataTable/cols/col/id": id +"/analytics:v3/GaData/dataTable/cols/col/label": label +"/analytics:v3/GaData/dataTable/cols/col/type": type +"/analytics:v3/GaData/dataTable/rows": rows +"/analytics:v3/GaData/dataTable/rows/row": row +"/analytics:v3/GaData/dataTable/rows/row/c": c +"/analytics:v3/GaData/dataTable/rows/row/c/c": c +"/analytics:v3/GaData/dataTable/rows/row/c/c/v": v +"/analytics:v3/GaData/id": id +"/analytics:v3/GaData/itemsPerPage": items_per_page +"/analytics:v3/GaData/kind": kind +"/analytics:v3/GaData/nextLink": next_link +"/analytics:v3/GaData/previousLink": previous_link +"/analytics:v3/GaData/profileInfo": profile_info +"/analytics:v3/GaData/profileInfo/accountId": account_id +"/analytics:v3/GaData/profileInfo/internalWebPropertyId": internal_web_property_id +"/analytics:v3/GaData/profileInfo/profileId": profile_id +"/analytics:v3/GaData/profileInfo/profileName": profile_name +"/analytics:v3/GaData/profileInfo/tableId": table_id +"/analytics:v3/GaData/profileInfo/webPropertyId": web_property_id +"/analytics:v3/GaData/query": query +"/analytics:v3/GaData/query/dimensions": dimensions +"/analytics:v3/GaData/query/end-date": end_date +"/analytics:v3/GaData/query/filters": filters +"/analytics:v3/GaData/query/ids": ids +"/analytics:v3/GaData/query/max-results": max_results +"/analytics:v3/GaData/query/metrics": metrics +"/analytics:v3/GaData/query/metrics/metric": metric +"/analytics:v3/GaData/query/samplingLevel": sampling_level +"/analytics:v3/GaData/query/segment": segment +"/analytics:v3/GaData/query/sort": sort +"/analytics:v3/GaData/query/sort/sort": sort +"/analytics:v3/GaData/query/start-date": start_date +"/analytics:v3/GaData/query/start-index": start_index +"/analytics:v3/GaData/rows": rows +"/analytics:v3/GaData/rows/row": row +"/analytics:v3/GaData/rows/row/row": row +"/analytics:v3/GaData/sampleSize": sample_size +"/analytics:v3/GaData/sampleSpace": sample_space +"/analytics:v3/GaData/selfLink": self_link +"/analytics:v3/GaData/totalResults": total_results +"/analytics:v3/GaData/totalsForAllResults": totals_for_all_results +"/analytics:v3/GaData/totalsForAllResults/totals_for_all_result": totals_for_all_result +"/analytics:v3/Goal": goal +"/analytics:v3/Goal/accountId": account_id +"/analytics:v3/Goal/active": active +"/analytics:v3/Goal/created": created +"/analytics:v3/Goal/eventDetails": event_details +"/analytics:v3/Goal/eventDetails/eventConditions": event_conditions +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition": event_condition +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition/comparisonType": comparison_type +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition/comparisonValue": comparison_value +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition/expression": expression +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition/matchType": match_type +"/analytics:v3/Goal/eventDetails/eventConditions/event_condition/type": type +"/analytics:v3/Goal/eventDetails/useEventValue": use_event_value +"/analytics:v3/Goal/id": id +"/analytics:v3/Goal/internalWebPropertyId": internal_web_property_id +"/analytics:v3/Goal/kind": kind +"/analytics:v3/Goal/name": name +"/analytics:v3/Goal/parentLink": parent_link +"/analytics:v3/Goal/parentLink/href": href +"/analytics:v3/Goal/parentLink/type": type +"/analytics:v3/Goal/profileId": profile_id +"/analytics:v3/Goal/selfLink": self_link +"/analytics:v3/Goal/type": type +"/analytics:v3/Goal/updated": updated +"/analytics:v3/Goal/urlDestinationDetails": url_destination_details +"/analytics:v3/Goal/urlDestinationDetails/caseSensitive": case_sensitive +"/analytics:v3/Goal/urlDestinationDetails/firstStepRequired": first_step_required +"/analytics:v3/Goal/urlDestinationDetails/matchType": match_type +"/analytics:v3/Goal/urlDestinationDetails/steps": steps +"/analytics:v3/Goal/urlDestinationDetails/steps/step": step +"/analytics:v3/Goal/urlDestinationDetails/steps/step/name": name +"/analytics:v3/Goal/urlDestinationDetails/steps/step/number": number +"/analytics:v3/Goal/urlDestinationDetails/steps/step/url": url +"/analytics:v3/Goal/urlDestinationDetails/url": url +"/analytics:v3/Goal/value": value +"/analytics:v3/Goal/visitNumPagesDetails": visit_num_pages_details +"/analytics:v3/Goal/visitNumPagesDetails/comparisonType": comparison_type +"/analytics:v3/Goal/visitNumPagesDetails/comparisonValue": comparison_value +"/analytics:v3/Goal/visitTimeOnSiteDetails": visit_time_on_site_details +"/analytics:v3/Goal/visitTimeOnSiteDetails/comparisonType": comparison_type +"/analytics:v3/Goal/visitTimeOnSiteDetails/comparisonValue": comparison_value +"/analytics:v3/Goal/webPropertyId": web_property_id +"/analytics:v3/Goals": goals +"/analytics:v3/Goals/items": items +"/analytics:v3/Goals/items/item": item +"/analytics:v3/Goals/itemsPerPage": items_per_page +"/analytics:v3/Goals/kind": kind +"/analytics:v3/Goals/nextLink": next_link +"/analytics:v3/Goals/previousLink": previous_link +"/analytics:v3/Goals/startIndex": start_index +"/analytics:v3/Goals/totalResults": total_results +"/analytics:v3/Goals/username": username +"/analytics:v3/McfData": mcf_data +"/analytics:v3/McfData/columnHeaders": column_headers +"/analytics:v3/McfData/columnHeaders/column_header": column_header +"/analytics:v3/McfData/columnHeaders/column_header/columnType": column_type +"/analytics:v3/McfData/columnHeaders/column_header/dataType": data_type +"/analytics:v3/McfData/columnHeaders/column_header/name": name +"/analytics:v3/McfData/containsSampledData": contains_sampled_data +"/analytics:v3/McfData/id": id +"/analytics:v3/McfData/itemsPerPage": items_per_page +"/analytics:v3/McfData/kind": kind +"/analytics:v3/McfData/nextLink": next_link +"/analytics:v3/McfData/previousLink": previous_link +"/analytics:v3/McfData/profileInfo": profile_info +"/analytics:v3/McfData/profileInfo/accountId": account_id +"/analytics:v3/McfData/profileInfo/internalWebPropertyId": internal_web_property_id +"/analytics:v3/McfData/profileInfo/profileId": profile_id +"/analytics:v3/McfData/profileInfo/profileName": profile_name +"/analytics:v3/McfData/profileInfo/tableId": table_id +"/analytics:v3/McfData/profileInfo/webPropertyId": web_property_id +"/analytics:v3/McfData/query": query +"/analytics:v3/McfData/query/dimensions": dimensions +"/analytics:v3/McfData/query/end-date": end_date +"/analytics:v3/McfData/query/filters": filters +"/analytics:v3/McfData/query/ids": ids +"/analytics:v3/McfData/query/max-results": max_results +"/analytics:v3/McfData/query/metrics": metrics +"/analytics:v3/McfData/query/metrics/metric": metric +"/analytics:v3/McfData/query/samplingLevel": sampling_level +"/analytics:v3/McfData/query/segment": segment +"/analytics:v3/McfData/query/sort": sort +"/analytics:v3/McfData/query/sort/sort": sort +"/analytics:v3/McfData/query/start-date": start_date +"/analytics:v3/McfData/query/start-index": start_index +"/analytics:v3/McfData/rows": rows +"/analytics:v3/McfData/rows/row": row +"/analytics:v3/McfData/rows/row/row": row +"/analytics:v3/McfData/rows/row/row/conversionPathValue": conversion_path_value +"/analytics:v3/McfData/rows/row/row/conversionPathValue/conversion_path_value": conversion_path_value +"/analytics:v3/McfData/rows/row/row/conversionPathValue/conversion_path_value/interactionType": interaction_type +"/analytics:v3/McfData/rows/row/row/conversionPathValue/conversion_path_value/nodeValue": node_value +"/analytics:v3/McfData/rows/row/row/primitiveValue": primitive_value +"/analytics:v3/McfData/sampleSize": sample_size +"/analytics:v3/McfData/sampleSpace": sample_space +"/analytics:v3/McfData/selfLink": self_link +"/analytics:v3/McfData/totalResults": total_results +"/analytics:v3/McfData/totalsForAllResults": totals_for_all_results +"/analytics:v3/McfData/totalsForAllResults/totals_for_all_result": totals_for_all_result +"/analytics:v3/Profile": profile +"/analytics:v3/Profile/accountId": account_id +"/analytics:v3/Profile/childLink": child_link +"/analytics:v3/Profile/childLink/href": href +"/analytics:v3/Profile/childLink/type": type +"/analytics:v3/Profile/created": created +"/analytics:v3/Profile/currency": currency +"/analytics:v3/Profile/defaultPage": default_page +"/analytics:v3/Profile/eCommerceTracking": e_commerce_tracking +"/analytics:v3/Profile/enhancedECommerceTracking": enhanced_e_commerce_tracking +"/analytics:v3/Profile/excludeQueryParameters": exclude_query_parameters +"/analytics:v3/Profile/id": id +"/analytics:v3/Profile/internalWebPropertyId": internal_web_property_id +"/analytics:v3/Profile/kind": kind +"/analytics:v3/Profile/name": name +"/analytics:v3/Profile/parentLink": parent_link +"/analytics:v3/Profile/parentLink/href": href +"/analytics:v3/Profile/parentLink/type": type +"/analytics:v3/Profile/permissions": permissions +"/analytics:v3/Profile/permissions/effective": effective +"/analytics:v3/Profile/permissions/effective/effective": effective +"/analytics:v3/Profile/selfLink": self_link +"/analytics:v3/Profile/siteSearchCategoryParameters": site_search_category_parameters +"/analytics:v3/Profile/siteSearchQueryParameters": site_search_query_parameters +"/analytics:v3/Profile/stripSiteSearchCategoryParameters": strip_site_search_category_parameters +"/analytics:v3/Profile/stripSiteSearchQueryParameters": strip_site_search_query_parameters +"/analytics:v3/Profile/timezone": timezone +"/analytics:v3/Profile/type": type +"/analytics:v3/Profile/updated": updated +"/analytics:v3/Profile/webPropertyId": web_property_id +"/analytics:v3/Profile/websiteUrl": website_url +"/analytics:v3/ProfileFilterLink": profile_filter_link +"/analytics:v3/ProfileFilterLink/filterRef": filter_ref +"/analytics:v3/ProfileFilterLink/id": id +"/analytics:v3/ProfileFilterLink/kind": kind +"/analytics:v3/ProfileFilterLink/profileRef": profile_ref +"/analytics:v3/ProfileFilterLink/rank": rank +"/analytics:v3/ProfileFilterLink/selfLink": self_link +"/analytics:v3/ProfileFilterLinks": profile_filter_links +"/analytics:v3/ProfileFilterLinks/items": items +"/analytics:v3/ProfileFilterLinks/items/item": item +"/analytics:v3/ProfileFilterLinks/itemsPerPage": items_per_page +"/analytics:v3/ProfileFilterLinks/kind": kind +"/analytics:v3/ProfileFilterLinks/nextLink": next_link +"/analytics:v3/ProfileFilterLinks/previousLink": previous_link +"/analytics:v3/ProfileFilterLinks/startIndex": start_index +"/analytics:v3/ProfileFilterLinks/totalResults": total_results +"/analytics:v3/ProfileFilterLinks/username": username +"/analytics:v3/ProfileRef": profile_ref +"/analytics:v3/ProfileRef/accountId": account_id +"/analytics:v3/ProfileRef/href": href +"/analytics:v3/ProfileRef/id": id +"/analytics:v3/ProfileRef/internalWebPropertyId": internal_web_property_id +"/analytics:v3/ProfileRef/kind": kind +"/analytics:v3/ProfileRef/name": name +"/analytics:v3/ProfileRef/webPropertyId": web_property_id +"/analytics:v3/ProfileSummary": profile_summary +"/analytics:v3/ProfileSummary/id": id +"/analytics:v3/ProfileSummary/kind": kind +"/analytics:v3/ProfileSummary/name": name +"/analytics:v3/ProfileSummary/type": type +"/analytics:v3/Profiles": profiles +"/analytics:v3/Profiles/items": items +"/analytics:v3/Profiles/items/item": item +"/analytics:v3/Profiles/itemsPerPage": items_per_page +"/analytics:v3/Profiles/kind": kind +"/analytics:v3/Profiles/nextLink": next_link +"/analytics:v3/Profiles/previousLink": previous_link +"/analytics:v3/Profiles/startIndex": start_index +"/analytics:v3/Profiles/totalResults": total_results +"/analytics:v3/Profiles/username": username +"/analytics:v3/RealtimeData": realtime_data +"/analytics:v3/RealtimeData/columnHeaders": column_headers +"/analytics:v3/RealtimeData/columnHeaders/column_header": column_header +"/analytics:v3/RealtimeData/columnHeaders/column_header/columnType": column_type +"/analytics:v3/RealtimeData/columnHeaders/column_header/dataType": data_type +"/analytics:v3/RealtimeData/columnHeaders/column_header/name": name +"/analytics:v3/RealtimeData/id": id +"/analytics:v3/RealtimeData/kind": kind +"/analytics:v3/RealtimeData/profileInfo": profile_info +"/analytics:v3/RealtimeData/profileInfo/accountId": account_id +"/analytics:v3/RealtimeData/profileInfo/internalWebPropertyId": internal_web_property_id +"/analytics:v3/RealtimeData/profileInfo/profileId": profile_id +"/analytics:v3/RealtimeData/profileInfo/profileName": profile_name +"/analytics:v3/RealtimeData/profileInfo/tableId": table_id +"/analytics:v3/RealtimeData/profileInfo/webPropertyId": web_property_id +"/analytics:v3/RealtimeData/query": query +"/analytics:v3/RealtimeData/query/dimensions": dimensions +"/analytics:v3/RealtimeData/query/filters": filters +"/analytics:v3/RealtimeData/query/ids": ids +"/analytics:v3/RealtimeData/query/max-results": max_results +"/analytics:v3/RealtimeData/query/metrics": metrics +"/analytics:v3/RealtimeData/query/metrics/metric": metric +"/analytics:v3/RealtimeData/query/sort": sort +"/analytics:v3/RealtimeData/query/sort/sort": sort +"/analytics:v3/RealtimeData/rows": rows +"/analytics:v3/RealtimeData/rows/row": row +"/analytics:v3/RealtimeData/rows/row/row": row +"/analytics:v3/RealtimeData/selfLink": self_link +"/analytics:v3/RealtimeData/totalResults": total_results +"/analytics:v3/RealtimeData/totalsForAllResults": totals_for_all_results +"/analytics:v3/RealtimeData/totalsForAllResults/totals_for_all_result": totals_for_all_result +"/analytics:v3/Segment": segment +"/analytics:v3/Segment/created": created +"/analytics:v3/Segment/definition": definition +"/analytics:v3/Segment/id": id +"/analytics:v3/Segment/kind": kind +"/analytics:v3/Segment/name": name +"/analytics:v3/Segment/segmentId": segment_id +"/analytics:v3/Segment/selfLink": self_link +"/analytics:v3/Segment/type": type +"/analytics:v3/Segment/updated": updated +"/analytics:v3/Segments": segments +"/analytics:v3/Segments/items": items +"/analytics:v3/Segments/items/item": item +"/analytics:v3/Segments/itemsPerPage": items_per_page +"/analytics:v3/Segments/kind": kind +"/analytics:v3/Segments/nextLink": next_link +"/analytics:v3/Segments/previousLink": previous_link +"/analytics:v3/Segments/startIndex": start_index +"/analytics:v3/Segments/totalResults": total_results +"/analytics:v3/Segments/username": username +"/analytics:v3/UnsampledReport": unsampled_report +"/analytics:v3/UnsampledReport/accountId": account_id +"/analytics:v3/UnsampledReport/cloudStorageDownloadDetails": cloud_storage_download_details +"/analytics:v3/UnsampledReport/cloudStorageDownloadDetails/bucketId": bucket_id +"/analytics:v3/UnsampledReport/created": created +"/analytics:v3/UnsampledReport/dimensions": dimensions +"/analytics:v3/UnsampledReport/downloadType": download_type +"/analytics:v3/UnsampledReport/driveDownloadDetails": drive_download_details +"/analytics:v3/UnsampledReport/driveDownloadDetails/documentId": document_id +"/analytics:v3/UnsampledReport/end-date": end_date +"/analytics:v3/UnsampledReport/filters": filters +"/analytics:v3/UnsampledReport/id": id +"/analytics:v3/UnsampledReport/kind": kind +"/analytics:v3/UnsampledReport/metrics": metrics +"/analytics:v3/UnsampledReport/profileId": profile_id +"/analytics:v3/UnsampledReport/segment": segment +"/analytics:v3/UnsampledReport/selfLink": self_link +"/analytics:v3/UnsampledReport/start-date": start_date +"/analytics:v3/UnsampledReport/status": status +"/analytics:v3/UnsampledReport/title": title +"/analytics:v3/UnsampledReport/updated": updated +"/analytics:v3/UnsampledReport/webPropertyId": web_property_id +"/analytics:v3/UnsampledReports": unsampled_reports +"/analytics:v3/UnsampledReports/items": items +"/analytics:v3/UnsampledReports/items/item": item +"/analytics:v3/UnsampledReports/itemsPerPage": items_per_page +"/analytics:v3/UnsampledReports/kind": kind +"/analytics:v3/UnsampledReports/nextLink": next_link +"/analytics:v3/UnsampledReports/previousLink": previous_link +"/analytics:v3/UnsampledReports/startIndex": start_index +"/analytics:v3/UnsampledReports/totalResults": total_results +"/analytics:v3/UnsampledReports/username": username +"/analytics:v3/Upload": upload +"/analytics:v3/Upload/accountId": account_id +"/analytics:v3/Upload/customDataSourceId": custom_data_source_id +"/analytics:v3/Upload/errors": errors +"/analytics:v3/Upload/errors/error": error +"/analytics:v3/Upload/id": id +"/analytics:v3/Upload/kind": kind +"/analytics:v3/Upload/status": status +"/analytics:v3/Uploads": uploads +"/analytics:v3/Uploads/items": items +"/analytics:v3/Uploads/items/item": item +"/analytics:v3/Uploads/itemsPerPage": items_per_page +"/analytics:v3/Uploads/kind": kind +"/analytics:v3/Uploads/nextLink": next_link +"/analytics:v3/Uploads/previousLink": previous_link +"/analytics:v3/Uploads/startIndex": start_index +"/analytics:v3/Uploads/totalResults": total_results +"/analytics:v3/UserRef": user_ref +"/analytics:v3/UserRef/email": email +"/analytics:v3/UserRef/id": id +"/analytics:v3/UserRef/kind": kind +"/analytics:v3/WebPropertyRef": web_property_ref +"/analytics:v3/WebPropertyRef/accountId": account_id +"/analytics:v3/WebPropertyRef/href": href +"/analytics:v3/WebPropertyRef/id": id +"/analytics:v3/WebPropertyRef/internalWebPropertyId": internal_web_property_id +"/analytics:v3/WebPropertyRef/kind": kind +"/analytics:v3/WebPropertyRef/name": name +"/analytics:v3/WebPropertySummary": web_property_summary +"/analytics:v3/WebPropertySummary/id": id +"/analytics:v3/WebPropertySummary/internalWebPropertyId": internal_web_property_id +"/analytics:v3/WebPropertySummary/kind": kind +"/analytics:v3/WebPropertySummary/level": level +"/analytics:v3/WebPropertySummary/name": name +"/analytics:v3/WebPropertySummary/profiles": profiles +"/analytics:v3/WebPropertySummary/profiles/profile": profile +"/analytics:v3/WebPropertySummary/websiteUrl": website_url +"/analytics:v3/Webproperties": webproperties +"/analytics:v3/Webproperties/items": items +"/analytics:v3/Webproperties/items/item": item +"/analytics:v3/Webproperties/itemsPerPage": items_per_page +"/analytics:v3/Webproperties/kind": kind +"/analytics:v3/Webproperties/nextLink": next_link +"/analytics:v3/Webproperties/previousLink": previous_link +"/analytics:v3/Webproperties/startIndex": start_index +"/analytics:v3/Webproperties/totalResults": total_results +"/analytics:v3/Webproperties/username": username +"/analytics:v3/Webproperty": webproperty +"/analytics:v3/Webproperty/accountId": account_id +"/analytics:v3/Webproperty/childLink": child_link +"/analytics:v3/Webproperty/childLink/href": href +"/analytics:v3/Webproperty/childLink/type": type +"/analytics:v3/Webproperty/created": created +"/analytics:v3/Webproperty/defaultProfileId": default_profile_id +"/analytics:v3/Webproperty/id": id +"/analytics:v3/Webproperty/industryVertical": industry_vertical +"/analytics:v3/Webproperty/internalWebPropertyId": internal_web_property_id +"/analytics:v3/Webproperty/kind": kind +"/analytics:v3/Webproperty/level": level +"/analytics:v3/Webproperty/name": name +"/analytics:v3/Webproperty/parentLink": parent_link +"/analytics:v3/Webproperty/parentLink/href": href +"/analytics:v3/Webproperty/parentLink/type": type +"/analytics:v3/Webproperty/permissions": permissions +"/analytics:v3/Webproperty/permissions/effective": effective +"/analytics:v3/Webproperty/permissions/effective/effective": effective +"/analytics:v3/Webproperty/profileCount": profile_count +"/analytics:v3/Webproperty/selfLink": self_link +"/analytics:v3/Webproperty/updated": updated +"/analytics:v3/Webproperty/websiteUrl": website_url +"/androidenterprise:v1/fields": fields +"/androidenterprise:v1/key": key +"/androidenterprise:v1/quotaUser": quota_user +"/androidenterprise:v1/userIp": user_ip +"/androidenterprise:v1/androidenterprise.collections.delete": delete_collection +"/androidenterprise:v1/androidenterprise.collections.delete/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collections.delete/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collections.get": get_collection +"/androidenterprise:v1/androidenterprise.collections.get/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collections.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collections.insert": insert_collection +"/androidenterprise:v1/androidenterprise.collections.insert/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collections.list": list_collections +"/androidenterprise:v1/androidenterprise.collections.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collections.patch": patch_collection +"/androidenterprise:v1/androidenterprise.collections.patch/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collections.patch/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collections.update": update_collection +"/androidenterprise:v1/androidenterprise.collections.update/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collections.update/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.delete/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collectionviewers.delete/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.delete/userId": user_id +"/androidenterprise:v1/androidenterprise.collectionviewers.get/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collectionviewers.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.get/userId": user_id +"/androidenterprise:v1/androidenterprise.collectionviewers.list/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collectionviewers.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.patch/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collectionviewers.patch/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.patch/userId": user_id +"/androidenterprise:v1/androidenterprise.collectionviewers.update/collectionId": collection_id +"/androidenterprise:v1/androidenterprise.collectionviewers.update/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.collectionviewers.update/userId": user_id +"/androidenterprise:v1/androidenterprise.devices.get": get_device +"/androidenterprise:v1/androidenterprise.devices.get/deviceId": device_id +"/androidenterprise:v1/androidenterprise.devices.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.devices.get/userId": user_id +"/androidenterprise:v1/androidenterprise.devices.getState": get_state_device +"/androidenterprise:v1/androidenterprise.devices.getState/deviceId": device_id +"/androidenterprise:v1/androidenterprise.devices.getState/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.devices.getState/userId": user_id +"/androidenterprise:v1/androidenterprise.devices.list": list_devices +"/androidenterprise:v1/androidenterprise.devices.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.devices.list/userId": user_id +"/androidenterprise:v1/androidenterprise.devices.setState": set_state_device +"/androidenterprise:v1/androidenterprise.devices.setState/deviceId": device_id +"/androidenterprise:v1/androidenterprise.devices.setState/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.devices.setState/userId": user_id +"/androidenterprise:v1/androidenterprise.enterprises.delete": delete_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.delete/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.enterprises.enroll": enroll_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.enroll/token": token +"/androidenterprise:v1/androidenterprise.enterprises.get": get_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.enterprises.insert": insert_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.insert/token": token +"/androidenterprise:v1/androidenterprise.enterprises.list": list_enterprises +"/androidenterprise:v1/androidenterprise.enterprises.list/domain": domain +"/androidenterprise:v1/androidenterprise.enterprises.setAccount": set_account_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.setAccount/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.enterprises.unenroll": unenroll_enterprise +"/androidenterprise:v1/androidenterprise.enterprises.unenroll/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.delete": delete_entitlement +"/androidenterprise:v1/androidenterprise.entitlements.delete/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.delete/entitlementId": entitlement_id +"/androidenterprise:v1/androidenterprise.entitlements.delete/userId": user_id +"/androidenterprise:v1/androidenterprise.entitlements.get": get_entitlement +"/androidenterprise:v1/androidenterprise.entitlements.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.get/entitlementId": entitlement_id +"/androidenterprise:v1/androidenterprise.entitlements.get/userId": user_id +"/androidenterprise:v1/androidenterprise.entitlements.list": list_entitlements +"/androidenterprise:v1/androidenterprise.entitlements.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.list/userId": user_id +"/androidenterprise:v1/androidenterprise.entitlements.patch": patch_entitlement +"/androidenterprise:v1/androidenterprise.entitlements.patch/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.patch/entitlementId": entitlement_id +"/androidenterprise:v1/androidenterprise.entitlements.patch/install": install +"/androidenterprise:v1/androidenterprise.entitlements.patch/userId": user_id +"/androidenterprise:v1/androidenterprise.entitlements.update": update_entitlement +"/androidenterprise:v1/androidenterprise.entitlements.update/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.entitlements.update/entitlementId": entitlement_id +"/androidenterprise:v1/androidenterprise.entitlements.update/install": install +"/androidenterprise:v1/androidenterprise.entitlements.update/userId": user_id +"/androidenterprise:v1/androidenterprise.grouplicenses.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.grouplicenses.get/groupLicenseId": group_license_id +"/androidenterprise:v1/androidenterprise.grouplicenses.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.grouplicenseusers.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.grouplicenseusers.list/groupLicenseId": group_license_id +"/androidenterprise:v1/androidenterprise.installs.delete": delete_install +"/androidenterprise:v1/androidenterprise.installs.delete/deviceId": device_id +"/androidenterprise:v1/androidenterprise.installs.delete/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.installs.delete/installId": install_id +"/androidenterprise:v1/androidenterprise.installs.delete/userId": user_id +"/androidenterprise:v1/androidenterprise.installs.get": get_install +"/androidenterprise:v1/androidenterprise.installs.get/deviceId": device_id +"/androidenterprise:v1/androidenterprise.installs.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.installs.get/installId": install_id +"/androidenterprise:v1/androidenterprise.installs.get/userId": user_id +"/androidenterprise:v1/androidenterprise.installs.list": list_installs +"/androidenterprise:v1/androidenterprise.installs.list/deviceId": device_id +"/androidenterprise:v1/androidenterprise.installs.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.installs.list/userId": user_id +"/androidenterprise:v1/androidenterprise.installs.patch": patch_install +"/androidenterprise:v1/androidenterprise.installs.patch/deviceId": device_id +"/androidenterprise:v1/androidenterprise.installs.patch/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.installs.patch/installId": install_id +"/androidenterprise:v1/androidenterprise.installs.patch/userId": user_id +"/androidenterprise:v1/androidenterprise.installs.update": update_install +"/androidenterprise:v1/androidenterprise.installs.update/deviceId": device_id +"/androidenterprise:v1/androidenterprise.installs.update/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.installs.update/installId": install_id +"/androidenterprise:v1/androidenterprise.installs.update/userId": user_id +"/androidenterprise:v1/androidenterprise.permissions.get": get_permission +"/androidenterprise:v1/androidenterprise.permissions.get/language": language +"/androidenterprise:v1/androidenterprise.permissions.get/permissionId": permission_id +"/androidenterprise:v1/androidenterprise.products.approve": approve_product +"/androidenterprise:v1/androidenterprise.products.approve/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.approve/productId": product_id +"/androidenterprise:v1/androidenterprise.products.generateApprovalUrl/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.generateApprovalUrl/languageCode": language_code +"/androidenterprise:v1/androidenterprise.products.generateApprovalUrl/productId": product_id +"/androidenterprise:v1/androidenterprise.products.get": get_product +"/androidenterprise:v1/androidenterprise.products.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.get/language": language +"/androidenterprise:v1/androidenterprise.products.get/productId": product_id +"/androidenterprise:v1/androidenterprise.products.getAppRestrictionsSchema/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.getAppRestrictionsSchema/language": language +"/androidenterprise:v1/androidenterprise.products.getAppRestrictionsSchema/productId": product_id +"/androidenterprise:v1/androidenterprise.products.getPermissions/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.getPermissions/productId": product_id +"/androidenterprise:v1/androidenterprise.products.updatePermissions/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.products.updatePermissions/productId": product_id +"/androidenterprise:v1/androidenterprise.users.generateToken/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.users.generateToken/userId": user_id +"/androidenterprise:v1/androidenterprise.users.get": get_user +"/androidenterprise:v1/androidenterprise.users.get/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.users.get/userId": user_id +"/androidenterprise:v1/androidenterprise.users.list": list_users +"/androidenterprise:v1/androidenterprise.users.list/email": email +"/androidenterprise:v1/androidenterprise.users.list/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.users.revokeToken/enterpriseId": enterprise_id +"/androidenterprise:v1/androidenterprise.users.revokeToken/userId": user_id +"/androidenterprise:v1/AppRestrictionsSchema": app_restrictions_schema +"/androidenterprise:v1/AppRestrictionsSchema/restrictions": restrictions +"/androidenterprise:v1/AppRestrictionsSchema/restrictions/restriction": restriction +"/androidenterprise:v1/AppRestrictionsSchemaRestriction": app_restrictions_schema_restriction +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/defaultValue": default_value +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/description": description +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/entry": entry +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/entry/entry": entry +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/entryValue": entry_value +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/entryValue/entry_value": entry_value +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/key": key +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/restrictionType": restriction_type +"/androidenterprise:v1/AppRestrictionsSchemaRestriction/title": title +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue": app_restrictions_schema_restriction_restriction_value +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/type": type +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/valueBool": value_bool +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/valueInteger": value_integer +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/valueMultiselect": value_multiselect +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/valueMultiselect/value_multiselect": value_multiselect +"/androidenterprise:v1/AppRestrictionsSchemaRestrictionRestrictionValue/valueString": value_string +"/androidenterprise:v1/AppVersion": app_version +"/androidenterprise:v1/AppVersion/versionCode": version_code +"/androidenterprise:v1/AppVersion/versionString": version_string +"/androidenterprise:v1/ApprovalUrlInfo": approval_url_info +"/androidenterprise:v1/ApprovalUrlInfo/approvalUrl": approval_url +"/androidenterprise:v1/ApprovalUrlInfo/kind": kind +"/androidenterprise:v1/Collection": collection +"/androidenterprise:v1/Collection/collectionId": collection_id +"/androidenterprise:v1/Collection/kind": kind +"/androidenterprise:v1/Collection/name": name +"/androidenterprise:v1/Collection/productId": product_id +"/androidenterprise:v1/Collection/productId/product_id": product_id +"/androidenterprise:v1/Collection/visibility": visibility +"/androidenterprise:v1/CollectionViewersListResponse/kind": kind +"/androidenterprise:v1/CollectionViewersListResponse/user": user +"/androidenterprise:v1/CollectionViewersListResponse/user/user": user +"/androidenterprise:v1/CollectionsListResponse/collection": collection +"/androidenterprise:v1/CollectionsListResponse/collection/collection": collection +"/androidenterprise:v1/CollectionsListResponse/kind": kind +"/androidenterprise:v1/Device": device +"/androidenterprise:v1/Device/androidId": android_id +"/androidenterprise:v1/Device/kind": kind +"/androidenterprise:v1/Device/managementType": management_type +"/androidenterprise:v1/DeviceState": device_state +"/androidenterprise:v1/DeviceState/accountState": account_state +"/androidenterprise:v1/DeviceState/kind": kind +"/androidenterprise:v1/DevicesListResponse/device": device +"/androidenterprise:v1/DevicesListResponse/device/device": device +"/androidenterprise:v1/DevicesListResponse/kind": kind +"/androidenterprise:v1/Enterprise": enterprise +"/androidenterprise:v1/Enterprise/id": id +"/androidenterprise:v1/Enterprise/kind": kind +"/androidenterprise:v1/Enterprise/name": name +"/androidenterprise:v1/Enterprise/primaryDomain": primary_domain +"/androidenterprise:v1/EnterpriseAccount": enterprise_account +"/androidenterprise:v1/EnterpriseAccount/accountEmail": account_email +"/androidenterprise:v1/EnterpriseAccount/kind": kind +"/androidenterprise:v1/EnterprisesListResponse/enterprise": enterprise +"/androidenterprise:v1/EnterprisesListResponse/enterprise/enterprise": enterprise +"/androidenterprise:v1/EnterprisesListResponse/kind": kind +"/androidenterprise:v1/Entitlement": entitlement +"/androidenterprise:v1/Entitlement/kind": kind +"/androidenterprise:v1/Entitlement/productId": product_id +"/androidenterprise:v1/Entitlement/reason": reason +"/androidenterprise:v1/EntitlementsListResponse/entitlement": entitlement +"/androidenterprise:v1/EntitlementsListResponse/entitlement/entitlement": entitlement +"/androidenterprise:v1/EntitlementsListResponse/kind": kind +"/androidenterprise:v1/GroupLicense": group_license +"/androidenterprise:v1/GroupLicense/acquisitionKind": acquisition_kind +"/androidenterprise:v1/GroupLicense/approval": approval +"/androidenterprise:v1/GroupLicense/kind": kind +"/androidenterprise:v1/GroupLicense/numProvisioned": num_provisioned +"/androidenterprise:v1/GroupLicense/numPurchased": num_purchased +"/androidenterprise:v1/GroupLicense/productId": product_id +"/androidenterprise:v1/GroupLicenseUsersListResponse/kind": kind +"/androidenterprise:v1/GroupLicenseUsersListResponse/user": user +"/androidenterprise:v1/GroupLicenseUsersListResponse/user/user": user +"/androidenterprise:v1/GroupLicensesListResponse/groupLicense": group_license +"/androidenterprise:v1/GroupLicensesListResponse/groupLicense/group_license": group_license +"/androidenterprise:v1/GroupLicensesListResponse/kind": kind +"/androidenterprise:v1/Install": install +"/androidenterprise:v1/Install/installState": install_state +"/androidenterprise:v1/Install/kind": kind +"/androidenterprise:v1/Install/productId": product_id +"/androidenterprise:v1/Install/versionCode": version_code +"/androidenterprise:v1/InstallsListResponse/install": install +"/androidenterprise:v1/InstallsListResponse/install/install": install +"/androidenterprise:v1/InstallsListResponse/kind": kind +"/androidenterprise:v1/Permission": permission +"/androidenterprise:v1/Permission/description": description +"/androidenterprise:v1/Permission/kind": kind +"/androidenterprise:v1/Permission/name": name +"/androidenterprise:v1/Permission/permissionId": permission_id +"/androidenterprise:v1/Product": product +"/androidenterprise:v1/Product/appVersion": app_version +"/androidenterprise:v1/Product/appVersion/app_version": app_version +"/androidenterprise:v1/Product/authorName": author_name +"/androidenterprise:v1/Product/detailsUrl": details_url +"/androidenterprise:v1/Product/distributionChannel": distribution_channel +"/androidenterprise:v1/Product/iconUrl": icon_url +"/androidenterprise:v1/Product/kind": kind +"/androidenterprise:v1/Product/productId": product_id +"/androidenterprise:v1/Product/requiresContainerApp": requires_container_app +"/androidenterprise:v1/Product/title": title +"/androidenterprise:v1/Product/workDetailsUrl": work_details_url +"/androidenterprise:v1/ProductPermission": product_permission +"/androidenterprise:v1/ProductPermission/permissionId": permission_id +"/androidenterprise:v1/ProductPermission/state": state +"/androidenterprise:v1/ProductPermissions": product_permissions +"/androidenterprise:v1/ProductPermissions/kind": kind +"/androidenterprise:v1/ProductPermissions/permission": permission +"/androidenterprise:v1/ProductPermissions/permission/permission": permission +"/androidenterprise:v1/ProductPermissions/productId": product_id +"/androidenterprise:v1/ProductsApproveRequest/approvalUrlInfo": approval_url_info +"/androidenterprise:v1/ProductsGenerateApprovalUrlResponse/url": url +"/androidenterprise:v1/User": user +"/androidenterprise:v1/User/id": id +"/androidenterprise:v1/User/kind": kind +"/androidenterprise:v1/User/primaryEmail": primary_email +"/androidenterprise:v1/UserToken": user_token +"/androidenterprise:v1/UserToken/kind": kind +"/androidenterprise:v1/UserToken/token": token +"/androidenterprise:v1/UserToken/userId": user_id +"/androidenterprise:v1/UsersListResponse/kind": kind +"/androidenterprise:v1/UsersListResponse/user": user +"/androidenterprise:v1/UsersListResponse/user/user": user +"/androidpublisher:v2/fields": fields +"/androidpublisher:v2/key": key +"/androidpublisher:v2/quotaUser": quota_user +"/androidpublisher:v2/userIp": user_ip +"/androidpublisher:v2/androidpublisher.edits.commit": commit_edit +"/androidpublisher:v2/androidpublisher.edits.commit/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.commit/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.delete": delete_edit +"/androidpublisher:v2/androidpublisher.edits.delete/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.delete/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.get": get_edit +"/androidpublisher:v2/androidpublisher.edits.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.insert": insert_edit +"/androidpublisher:v2/androidpublisher.edits.insert/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.validate": validate_edit +"/androidpublisher:v2/androidpublisher.edits.validate/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.validate/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete/language": language +"/androidpublisher:v2/androidpublisher.edits.apklistings.delete/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.deleteall/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.deleteall/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.deleteall/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.get/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.get/language": language +"/androidpublisher:v2/androidpublisher.edits.apklistings.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.list/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.list/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch/language": language +"/androidpublisher:v2/androidpublisher.edits.apklistings.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apklistings.update/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.apklistings.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apklistings.update/language": language +"/androidpublisher:v2/androidpublisher.edits.apklistings.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apks.addexternallyhosted/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apks.addexternallyhosted/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apks.list/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apks.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.apks.upload/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.apks.upload/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.details.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.details.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.details.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.details.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.details.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.details.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get/expansionFileType": expansion_file_type +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch/expansionFileType": expansion_file_type +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update/expansionFileType": expansion_file_type +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload/apkVersionCode": apk_version_code +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload/expansionFileType": expansion_file_type +"/androidpublisher:v2/androidpublisher.edits.expansionfiles.upload/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.images.delete/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.images.delete/imageId": image_id +"/androidpublisher:v2/androidpublisher.edits.images.delete/imageType": image_type +"/androidpublisher:v2/androidpublisher.edits.images.delete/language": language +"/androidpublisher:v2/androidpublisher.edits.images.delete/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.images.deleteall/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.images.deleteall/imageType": image_type +"/androidpublisher:v2/androidpublisher.edits.images.deleteall/language": language +"/androidpublisher:v2/androidpublisher.edits.images.deleteall/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.images.list/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.images.list/imageType": image_type +"/androidpublisher:v2/androidpublisher.edits.images.list/language": language +"/androidpublisher:v2/androidpublisher.edits.images.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.images.upload/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.images.upload/imageType": image_type +"/androidpublisher:v2/androidpublisher.edits.images.upload/language": language +"/androidpublisher:v2/androidpublisher.edits.images.upload/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.delete/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.delete/language": language +"/androidpublisher:v2/androidpublisher.edits.listings.delete/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.deleteall/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.deleteall/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.get/language": language +"/androidpublisher:v2/androidpublisher.edits.listings.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.list/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.patch/language": language +"/androidpublisher:v2/androidpublisher.edits.listings.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.listings.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.listings.update/language": language +"/androidpublisher:v2/androidpublisher.edits.listings.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.testers.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.testers.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.testers.get/track": track +"/androidpublisher:v2/androidpublisher.edits.testers.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.testers.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.testers.patch/track": track +"/androidpublisher:v2/androidpublisher.edits.testers.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.testers.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.testers.update/track": track +"/androidpublisher:v2/androidpublisher.edits.tracks.get/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.tracks.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.tracks.get/track": track +"/androidpublisher:v2/androidpublisher.edits.tracks.list/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.tracks.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.tracks.patch/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.tracks.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.tracks.patch/track": track +"/androidpublisher:v2/androidpublisher.edits.tracks.update/editId": edit_id +"/androidpublisher:v2/androidpublisher.edits.tracks.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.edits.tracks.update/track": track +"/androidpublisher:v2/androidpublisher.entitlements.list/maxResults": max_results +"/androidpublisher:v2/androidpublisher.entitlements.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.entitlements.list/productId": product_id +"/androidpublisher:v2/androidpublisher.entitlements.list/startIndex": start_index +"/androidpublisher:v2/androidpublisher.entitlements.list/token": token +"/androidpublisher:v2/androidpublisher.inappproducts.delete/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.delete/sku": sku +"/androidpublisher:v2/androidpublisher.inappproducts.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.get/sku": sku +"/androidpublisher:v2/androidpublisher.inappproducts.insert/autoConvertMissingPrices": auto_convert_missing_prices +"/androidpublisher:v2/androidpublisher.inappproducts.insert/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.list/maxResults": max_results +"/androidpublisher:v2/androidpublisher.inappproducts.list/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.list/startIndex": start_index +"/androidpublisher:v2/androidpublisher.inappproducts.list/token": token +"/androidpublisher:v2/androidpublisher.inappproducts.patch/autoConvertMissingPrices": auto_convert_missing_prices +"/androidpublisher:v2/androidpublisher.inappproducts.patch/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.patch/sku": sku +"/androidpublisher:v2/androidpublisher.inappproducts.update/autoConvertMissingPrices": auto_convert_missing_prices +"/androidpublisher:v2/androidpublisher.inappproducts.update/packageName": package_name +"/androidpublisher:v2/androidpublisher.inappproducts.update/sku": sku +"/androidpublisher:v2/androidpublisher.purchases.products.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.products.get/productId": product_id +"/androidpublisher:v2/androidpublisher.purchases.products.get/token": token +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.cancel/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.cancel/subscriptionId": subscription_id +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.cancel/token": token +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.defer/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.defer/subscriptionId": subscription_id +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.defer/token": token +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.get/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.get/subscriptionId": subscription_id +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.get/token": token +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.refund/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.refund/subscriptionId": subscription_id +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.refund/token": token +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.revoke/packageName": package_name +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.revoke/subscriptionId": subscription_id +"/androidpublisher:v2/androidpublisher.purchases.subscriptions.revoke/token": token +"/androidpublisher:v2/Apk": apk +"/androidpublisher:v2/Apk/binary": binary +"/androidpublisher:v2/Apk/versionCode": version_code +"/androidpublisher:v2/ApkBinary": apk_binary +"/androidpublisher:v2/ApkBinary/sha1": sha1 +"/androidpublisher:v2/ApkListing": apk_listing +"/androidpublisher:v2/ApkListing/language": language +"/androidpublisher:v2/ApkListing/recentChanges": recent_changes +"/androidpublisher:v2/ApkListingsListResponse/kind": kind +"/androidpublisher:v2/ApkListingsListResponse/listings": listings +"/androidpublisher:v2/ApkListingsListResponse/listings/listing": listing +"/androidpublisher:v2/ApksAddExternallyHostedRequest/externallyHostedApk": externally_hosted_apk +"/androidpublisher:v2/ApksAddExternallyHostedResponse/externallyHostedApk": externally_hosted_apk +"/androidpublisher:v2/ApksListResponse/apks": apks +"/androidpublisher:v2/ApksListResponse/apks/apk": apk +"/androidpublisher:v2/ApksListResponse/kind": kind +"/androidpublisher:v2/AppDetails": app_details +"/androidpublisher:v2/AppDetails/contactEmail": contact_email +"/androidpublisher:v2/AppDetails/contactPhone": contact_phone +"/androidpublisher:v2/AppDetails/contactWebsite": contact_website +"/androidpublisher:v2/AppDetails/defaultLanguage": default_language +"/androidpublisher:v2/AppEdit": app_edit +"/androidpublisher:v2/AppEdit/expiryTimeSeconds": expiry_time_seconds +"/androidpublisher:v2/AppEdit/id": id +"/androidpublisher:v2/Entitlement": entitlement +"/androidpublisher:v2/Entitlement/kind": kind +"/androidpublisher:v2/Entitlement/productId": product_id +"/androidpublisher:v2/Entitlement/productType": product_type +"/androidpublisher:v2/Entitlement/token": token +"/androidpublisher:v2/EntitlementsListResponse/pageInfo": page_info +"/androidpublisher:v2/EntitlementsListResponse/resources": resources +"/androidpublisher:v2/EntitlementsListResponse/resources/resource": resource +"/androidpublisher:v2/EntitlementsListResponse/tokenPagination": token_pagination +"/androidpublisher:v2/ExpansionFile": expansion_file +"/androidpublisher:v2/ExpansionFile/fileSize": file_size +"/androidpublisher:v2/ExpansionFile/referencesVersion": references_version +"/androidpublisher:v2/ExpansionFilesUploadResponse/expansionFile": expansion_file +"/androidpublisher:v2/ExternallyHostedApk": externally_hosted_apk +"/androidpublisher:v2/ExternallyHostedApk/applicationLabel": application_label +"/androidpublisher:v2/ExternallyHostedApk/certificateBase64s": certificate_base64s +"/androidpublisher:v2/ExternallyHostedApk/certificateBase64s/certificate_base64": certificate_base64 +"/androidpublisher:v2/ExternallyHostedApk/externallyHostedUrl": externally_hosted_url +"/androidpublisher:v2/ExternallyHostedApk/fileSha1Base64": file_sha1_base64 +"/androidpublisher:v2/ExternallyHostedApk/fileSha256Base64": file_sha256_base64 +"/androidpublisher:v2/ExternallyHostedApk/fileSize": file_size +"/androidpublisher:v2/ExternallyHostedApk/iconBase64": icon_base64 +"/androidpublisher:v2/ExternallyHostedApk/maximumSdk": maximum_sdk +"/androidpublisher:v2/ExternallyHostedApk/minimumSdk": minimum_sdk +"/androidpublisher:v2/ExternallyHostedApk/nativeCodes": native_codes +"/androidpublisher:v2/ExternallyHostedApk/nativeCodes/native_code": native_code +"/androidpublisher:v2/ExternallyHostedApk/packageName": package_name +"/androidpublisher:v2/ExternallyHostedApk/usesFeatures": uses_features +"/androidpublisher:v2/ExternallyHostedApk/usesFeatures/uses_feature": uses_feature +"/androidpublisher:v2/ExternallyHostedApk/usesPermissions": uses_permissions +"/androidpublisher:v2/ExternallyHostedApk/usesPermissions/uses_permission": uses_permission +"/androidpublisher:v2/ExternallyHostedApk/versionCode": version_code +"/androidpublisher:v2/ExternallyHostedApk/versionName": version_name +"/androidpublisher:v2/ExternallyHostedApkUsesPermission": externally_hosted_apk_uses_permission +"/androidpublisher:v2/ExternallyHostedApkUsesPermission/maxSdkVersion": max_sdk_version +"/androidpublisher:v2/ExternallyHostedApkUsesPermission/name": name +"/androidpublisher:v2/Image": image +"/androidpublisher:v2/Image/id": id +"/androidpublisher:v2/Image/sha1": sha1 +"/androidpublisher:v2/Image/url": url +"/androidpublisher:v2/ImagesDeleteAllResponse/deleted": deleted +"/androidpublisher:v2/ImagesDeleteAllResponse/deleted/deleted": deleted +"/androidpublisher:v2/ImagesListResponse/images": images +"/androidpublisher:v2/ImagesListResponse/images/image": image +"/androidpublisher:v2/ImagesUploadResponse/image": image +"/androidpublisher:v2/InAppProduct": in_app_product +"/androidpublisher:v2/InAppProduct/defaultLanguage": default_language +"/androidpublisher:v2/InAppProduct/defaultPrice": default_price +"/androidpublisher:v2/InAppProduct/listings": listings +"/androidpublisher:v2/InAppProduct/listings/listing": listing +"/androidpublisher:v2/InAppProduct/packageName": package_name +"/androidpublisher:v2/InAppProduct/prices": prices +"/androidpublisher:v2/InAppProduct/prices/price": price +"/androidpublisher:v2/InAppProduct/purchaseType": purchase_type +"/androidpublisher:v2/InAppProduct/season": season +"/androidpublisher:v2/InAppProduct/sku": sku +"/androidpublisher:v2/InAppProduct/status": status +"/androidpublisher:v2/InAppProduct/subscriptionPeriod": subscription_period +"/androidpublisher:v2/InAppProduct/trialPeriod": trial_period +"/androidpublisher:v2/InAppProductListing": in_app_product_listing +"/androidpublisher:v2/InAppProductListing/description": description +"/androidpublisher:v2/InAppProductListing/title": title +"/androidpublisher:v2/InappproductsBatchRequest/entrys": entrys +"/androidpublisher:v2/InappproductsBatchRequest/entrys/entry": entry +"/androidpublisher:v2/InappproductsBatchRequestEntry/batchId": batch_id +"/androidpublisher:v2/InappproductsBatchRequestEntry/inappproductsinsertrequest": inappproductsinsertrequest +"/androidpublisher:v2/InappproductsBatchRequestEntry/inappproductsupdaterequest": inappproductsupdaterequest +"/androidpublisher:v2/InappproductsBatchRequestEntry/methodName": method_name +"/androidpublisher:v2/InappproductsBatchResponse/entrys": entrys +"/androidpublisher:v2/InappproductsBatchResponse/entrys/entry": entry +"/androidpublisher:v2/InappproductsBatchResponse/kind": kind +"/androidpublisher:v2/InappproductsBatchResponseEntry/batchId": batch_id +"/androidpublisher:v2/InappproductsBatchResponseEntry/inappproductsinsertresponse": inappproductsinsertresponse +"/androidpublisher:v2/InappproductsBatchResponseEntry/inappproductsupdateresponse": inappproductsupdateresponse +"/androidpublisher:v2/InappproductsInsertRequest/inappproduct": inappproduct +"/androidpublisher:v2/InappproductsInsertResponse/inappproduct": inappproduct +"/androidpublisher:v2/InappproductsListResponse/inappproduct": inappproduct +"/androidpublisher:v2/InappproductsListResponse/inappproduct/inappproduct": inappproduct +"/androidpublisher:v2/InappproductsListResponse/kind": kind +"/androidpublisher:v2/InappproductsListResponse/pageInfo": page_info +"/androidpublisher:v2/InappproductsListResponse/tokenPagination": token_pagination +"/androidpublisher:v2/InappproductsUpdateRequest/inappproduct": inappproduct +"/androidpublisher:v2/InappproductsUpdateResponse/inappproduct": inappproduct +"/androidpublisher:v2/Listing": listing +"/androidpublisher:v2/Listing/fullDescription": full_description +"/androidpublisher:v2/Listing/language": language +"/androidpublisher:v2/Listing/shortDescription": short_description +"/androidpublisher:v2/Listing/title": title +"/androidpublisher:v2/Listing/video": video +"/androidpublisher:v2/ListingsListResponse/kind": kind +"/androidpublisher:v2/ListingsListResponse/listings": listings +"/androidpublisher:v2/ListingsListResponse/listings/listing": listing +"/androidpublisher:v2/MonthDay": month_day +"/androidpublisher:v2/MonthDay/day": day +"/androidpublisher:v2/MonthDay/month": month +"/androidpublisher:v2/PageInfo": page_info +"/androidpublisher:v2/PageInfo/resultPerPage": result_per_page +"/androidpublisher:v2/PageInfo/startIndex": start_index +"/androidpublisher:v2/PageInfo/totalResults": total_results +"/androidpublisher:v2/Price": price +"/androidpublisher:v2/Price/currency": currency +"/androidpublisher:v2/Price/priceMicros": price_micros +"/androidpublisher:v2/ProductPurchase": product_purchase +"/androidpublisher:v2/ProductPurchase/consumptionState": consumption_state +"/androidpublisher:v2/ProductPurchase/developerPayload": developer_payload +"/androidpublisher:v2/ProductPurchase/kind": kind +"/androidpublisher:v2/ProductPurchase/purchaseState": purchase_state +"/androidpublisher:v2/ProductPurchase/purchaseTimeMillis": purchase_time_millis +"/androidpublisher:v2/Season": season +"/androidpublisher:v2/Season/end": end +"/androidpublisher:v2/Season/start": start +"/androidpublisher:v2/SubscriptionDeferralInfo": subscription_deferral_info +"/androidpublisher:v2/SubscriptionDeferralInfo/desiredExpiryTimeMillis": desired_expiry_time_millis +"/androidpublisher:v2/SubscriptionDeferralInfo/expectedExpiryTimeMillis": expected_expiry_time_millis +"/androidpublisher:v2/SubscriptionPurchase": subscription_purchase +"/androidpublisher:v2/SubscriptionPurchase/autoRenewing": auto_renewing +"/androidpublisher:v2/SubscriptionPurchase/expiryTimeMillis": expiry_time_millis +"/androidpublisher:v2/SubscriptionPurchase/kind": kind +"/androidpublisher:v2/SubscriptionPurchase/startTimeMillis": start_time_millis +"/androidpublisher:v2/SubscriptionPurchasesDeferRequest/deferralInfo": deferral_info +"/androidpublisher:v2/SubscriptionPurchasesDeferResponse/newExpiryTimeMillis": new_expiry_time_millis +"/androidpublisher:v2/Testers": testers +"/androidpublisher:v2/Testers/googleGroups": google_groups +"/androidpublisher:v2/Testers/googleGroups/google_group": google_group +"/androidpublisher:v2/Testers/googlePlusCommunities": google_plus_communities +"/androidpublisher:v2/Testers/googlePlusCommunities/google_plus_community": google_plus_community +"/androidpublisher:v2/TokenPagination": token_pagination +"/androidpublisher:v2/TokenPagination/nextPageToken": next_page_token +"/androidpublisher:v2/TokenPagination/previousPageToken": previous_page_token +"/androidpublisher:v2/Track": track +"/androidpublisher:v2/Track/track": track +"/androidpublisher:v2/Track/userFraction": user_fraction +"/androidpublisher:v2/Track/versionCodes": version_codes +"/androidpublisher:v2/Track/versionCodes/version_code": version_code +"/androidpublisher:v2/TracksListResponse/kind": kind +"/androidpublisher:v2/TracksListResponse/tracks": tracks +"/androidpublisher:v2/TracksListResponse/tracks/track": track +"/appsactivity:v1/fields": fields +"/appsactivity:v1/key": key +"/appsactivity:v1/quotaUser": quota_user +"/appsactivity:v1/userIp": user_ip +"/appsactivity:v1/appsactivity.activities.list": list_activities +"/appsactivity:v1/appsactivity.activities.list/drive.ancestorId": drive_ancestor_id +"/appsactivity:v1/appsactivity.activities.list/drive.fileId": drive_file_id +"/appsactivity:v1/appsactivity.activities.list/groupingStrategy": grouping_strategy +"/appsactivity:v1/appsactivity.activities.list/pageSize": page_size +"/appsactivity:v1/appsactivity.activities.list/pageToken": page_token +"/appsactivity:v1/appsactivity.activities.list/source": source +"/appsactivity:v1/appsactivity.activities.list/userId": user_id +"/appsactivity:v1/Activity": activity +"/appsactivity:v1/Activity/combinedEvent": combined_event +"/appsactivity:v1/Activity/singleEvents": single_events +"/appsactivity:v1/Activity/singleEvents/single_event": single_event +"/appsactivity:v1/Event": event +"/appsactivity:v1/Event/additionalEventTypes": additional_event_types +"/appsactivity:v1/Event/additionalEventTypes/additional_event_type": additional_event_type +"/appsactivity:v1/Event/eventTimeMillis": event_time_millis +"/appsactivity:v1/Event/fromUserDeletion": from_user_deletion +"/appsactivity:v1/Event/move": move +"/appsactivity:v1/Event/permissionChanges": permission_changes +"/appsactivity:v1/Event/permissionChanges/permission_change": permission_change +"/appsactivity:v1/Event/primaryEventType": primary_event_type +"/appsactivity:v1/Event/rename": rename +"/appsactivity:v1/Event/target": target +"/appsactivity:v1/Event/user": user +"/appsactivity:v1/ListActivitiesResponse": list_activities_response +"/appsactivity:v1/ListActivitiesResponse/activities": activities +"/appsactivity:v1/ListActivitiesResponse/activities/activity": activity +"/appsactivity:v1/ListActivitiesResponse/nextPageToken": next_page_token +"/appsactivity:v1/Move": move +"/appsactivity:v1/Move/addedParents": added_parents +"/appsactivity:v1/Move/addedParents/added_parent": added_parent +"/appsactivity:v1/Move/removedParents": removed_parents +"/appsactivity:v1/Move/removedParents/removed_parent": removed_parent +"/appsactivity:v1/Parent": parent +"/appsactivity:v1/Parent/id": id +"/appsactivity:v1/Parent/isRoot": is_root +"/appsactivity:v1/Parent/title": title +"/appsactivity:v1/Permission": permission +"/appsactivity:v1/Permission/name": name +"/appsactivity:v1/Permission/permissionId": permission_id +"/appsactivity:v1/Permission/role": role +"/appsactivity:v1/Permission/type": type +"/appsactivity:v1/Permission/user": user +"/appsactivity:v1/Permission/withLink": with_link +"/appsactivity:v1/PermissionChange": permission_change +"/appsactivity:v1/PermissionChange/addedPermissions": added_permissions +"/appsactivity:v1/PermissionChange/addedPermissions/added_permission": added_permission +"/appsactivity:v1/PermissionChange/removedPermissions": removed_permissions +"/appsactivity:v1/PermissionChange/removedPermissions/removed_permission": removed_permission +"/appsactivity:v1/Photo": photo +"/appsactivity:v1/Photo/url": url +"/appsactivity:v1/Rename": rename +"/appsactivity:v1/Rename/newTitle": new_title +"/appsactivity:v1/Rename/oldTitle": old_title +"/appsactivity:v1/Target": target +"/appsactivity:v1/Target/id": id +"/appsactivity:v1/Target/mimeType": mime_type +"/appsactivity:v1/Target/name": name +"/appsactivity:v1/User": user +"/appsactivity:v1/User/name": name +"/appsactivity:v1/User/photo": photo +"/appstate:v1/fields": fields +"/appstate:v1/key": key +"/appstate:v1/quotaUser": quota_user +"/appstate:v1/userIp": user_ip +"/appstate:v1/appstate.states.clear": clear_state +"/appstate:v1/appstate.states.clear/currentDataVersion": current_data_version +"/appstate:v1/appstate.states.clear/stateKey": state_key +"/appstate:v1/appstate.states.delete": delete_state +"/appstate:v1/appstate.states.delete/stateKey": state_key +"/appstate:v1/appstate.states.get": get_state +"/appstate:v1/appstate.states.get/stateKey": state_key +"/appstate:v1/appstate.states.list": list_states +"/appstate:v1/appstate.states.list/includeData": include_data +"/appstate:v1/appstate.states.update": update +"/appstate:v1/appstate.states.update/currentStateVersion": current_state_version +"/appstate:v1/appstate.states.update/stateKey": state_key +"/appstate:v1/GetResponse": get_response +"/appstate:v1/GetResponse/currentStateVersion": current_state_version +"/appstate:v1/GetResponse/data": data +"/appstate:v1/GetResponse/kind": kind +"/appstate:v1/GetResponse/stateKey": state_key +"/appstate:v1/ListResponse": list_response +"/appstate:v1/ListResponse/items": items +"/appstate:v1/ListResponse/items/item": item +"/appstate:v1/ListResponse/kind": kind +"/appstate:v1/ListResponse/maximumKeyCount": maximum_key_count +"/appstate:v1/UpdateRequest": update_request +"/appstate:v1/UpdateRequest/data": data +"/appstate:v1/UpdateRequest/kind": kind +"/appstate:v1/WriteResult": write_result +"/appstate:v1/WriteResult/currentStateVersion": current_state_version +"/appstate:v1/WriteResult/kind": kind +"/appstate:v1/WriteResult/stateKey": state_key +"/autoscaler:v1beta2/fields": fields +"/autoscaler:v1beta2/key": key +"/autoscaler:v1beta2/quotaUser": quota_user +"/autoscaler:v1beta2/userIp": user_ip +"/autoscaler:v1beta2/autoscaler.autoscalers.delete": delete_autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.delete/autoscaler": autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.delete/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.delete/zone": zone +"/autoscaler:v1beta2/autoscaler.autoscalers.get": get_autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.get/autoscaler": autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.get/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.get/zone": zone +"/autoscaler:v1beta2/autoscaler.autoscalers.insert": insert_autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.insert/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.insert/zone": zone +"/autoscaler:v1beta2/autoscaler.autoscalers.list": list_autoscalers +"/autoscaler:v1beta2/autoscaler.autoscalers.list/filter": filter +"/autoscaler:v1beta2/autoscaler.autoscalers.list/maxResults": max_results +"/autoscaler:v1beta2/autoscaler.autoscalers.list/pageToken": page_token +"/autoscaler:v1beta2/autoscaler.autoscalers.list/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.list/zone": zone +"/autoscaler:v1beta2/autoscaler.autoscalers.patch": patch_autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.patch/autoscaler": autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.patch/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.patch/zone": zone +"/autoscaler:v1beta2/autoscaler.autoscalers.update": update_autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.update/autoscaler": autoscaler +"/autoscaler:v1beta2/autoscaler.autoscalers.update/project": project +"/autoscaler:v1beta2/autoscaler.autoscalers.update/zone": zone +"/autoscaler:v1beta2/autoscaler.zoneOperations.delete": delete_zone_operation +"/autoscaler:v1beta2/autoscaler.zoneOperations.delete/operation": operation +"/autoscaler:v1beta2/autoscaler.zoneOperations.delete/project": project +"/autoscaler:v1beta2/autoscaler.zoneOperations.delete/zone": zone +"/autoscaler:v1beta2/autoscaler.zoneOperations.get": get_zone_operation +"/autoscaler:v1beta2/autoscaler.zoneOperations.get/operation": operation +"/autoscaler:v1beta2/autoscaler.zoneOperations.get/project": project +"/autoscaler:v1beta2/autoscaler.zoneOperations.get/zone": zone +"/autoscaler:v1beta2/autoscaler.zoneOperations.list": list_zone_operations +"/autoscaler:v1beta2/autoscaler.zoneOperations.list/filter": filter +"/autoscaler:v1beta2/autoscaler.zoneOperations.list/maxResults": max_results +"/autoscaler:v1beta2/autoscaler.zoneOperations.list/pageToken": page_token +"/autoscaler:v1beta2/autoscaler.zoneOperations.list/project": project +"/autoscaler:v1beta2/autoscaler.zoneOperations.list/zone": zone +"/autoscaler:v1beta2/autoscaler.zones.list": list_zones +"/autoscaler:v1beta2/autoscaler.zones.list/filter": filter +"/autoscaler:v1beta2/autoscaler.zones.list/maxResults": max_results +"/autoscaler:v1beta2/autoscaler.zones.list/pageToken": page_token +"/autoscaler:v1beta2/autoscaler.zones.list/project": project +"/autoscaler:v1beta2/Autoscaler": autoscaler +"/autoscaler:v1beta2/Autoscaler/autoscalingPolicy": autoscaling_policy +"/autoscaler:v1beta2/Autoscaler/creationTimestamp": creation_timestamp +"/autoscaler:v1beta2/Autoscaler/description": description +"/autoscaler:v1beta2/Autoscaler/id": id +"/autoscaler:v1beta2/Autoscaler/kind": kind +"/autoscaler:v1beta2/Autoscaler/name": name +"/autoscaler:v1beta2/Autoscaler/selfLink": self_link +"/autoscaler:v1beta2/Autoscaler/target": target +"/autoscaler:v1beta2/AutoscalerListResponse/items": items +"/autoscaler:v1beta2/AutoscalerListResponse/items/item": item +"/autoscaler:v1beta2/AutoscalerListResponse/kind": kind +"/autoscaler:v1beta2/AutoscalerListResponse/nextPageToken": next_page_token +"/autoscaler:v1beta2/AutoscalingPolicy": autoscaling_policy +"/autoscaler:v1beta2/AutoscalingPolicy/coolDownPeriodSec": cool_down_period_sec +"/autoscaler:v1beta2/AutoscalingPolicy/cpuUtilization": cpu_utilization +"/autoscaler:v1beta2/AutoscalingPolicy/customMetricUtilizations": custom_metric_utilizations +"/autoscaler:v1beta2/AutoscalingPolicy/customMetricUtilizations/custom_metric_utilization": custom_metric_utilization +"/autoscaler:v1beta2/AutoscalingPolicy/loadBalancingUtilization": load_balancing_utilization +"/autoscaler:v1beta2/AutoscalingPolicy/maxNumReplicas": max_num_replicas +"/autoscaler:v1beta2/AutoscalingPolicy/minNumReplicas": min_num_replicas +"/autoscaler:v1beta2/AutoscalingPolicyCpuUtilization": autoscaling_policy_cpu_utilization +"/autoscaler:v1beta2/AutoscalingPolicyCpuUtilization/utilizationTarget": utilization_target +"/autoscaler:v1beta2/AutoscalingPolicyCustomMetricUtilization": autoscaling_policy_custom_metric_utilization +"/autoscaler:v1beta2/AutoscalingPolicyCustomMetricUtilization/metric": metric +"/autoscaler:v1beta2/AutoscalingPolicyCustomMetricUtilization/utilizationTarget": utilization_target +"/autoscaler:v1beta2/AutoscalingPolicyCustomMetricUtilization/utilizationTargetType": utilization_target_type +"/autoscaler:v1beta2/AutoscalingPolicyLoadBalancingUtilization": autoscaling_policy_load_balancing_utilization +"/autoscaler:v1beta2/AutoscalingPolicyLoadBalancingUtilization/utilizationTarget": utilization_target +"/autoscaler:v1beta2/DeprecationStatus": deprecation_status +"/autoscaler:v1beta2/DeprecationStatus/deleted": deleted +"/autoscaler:v1beta2/DeprecationStatus/deprecated": deprecated +"/autoscaler:v1beta2/DeprecationStatus/obsolete": obsolete +"/autoscaler:v1beta2/DeprecationStatus/replacement": replacement +"/autoscaler:v1beta2/DeprecationStatus/state": state +"/autoscaler:v1beta2/Operation": operation +"/autoscaler:v1beta2/Operation/clientOperationId": client_operation_id +"/autoscaler:v1beta2/Operation/creationTimestamp": creation_timestamp +"/autoscaler:v1beta2/Operation/endTime": end_time +"/autoscaler:v1beta2/Operation/error": error +"/autoscaler:v1beta2/Operation/error/errors": errors +"/autoscaler:v1beta2/Operation/error/errors/error": error +"/autoscaler:v1beta2/Operation/error/errors/error/code": code +"/autoscaler:v1beta2/Operation/error/errors/error/location": location +"/autoscaler:v1beta2/Operation/error/errors/error/message": message +"/autoscaler:v1beta2/Operation/httpErrorMessage": http_error_message +"/autoscaler:v1beta2/Operation/httpErrorStatusCode": http_error_status_code +"/autoscaler:v1beta2/Operation/id": id +"/autoscaler:v1beta2/Operation/insertTime": insert_time +"/autoscaler:v1beta2/Operation/kind": kind +"/autoscaler:v1beta2/Operation/name": name +"/autoscaler:v1beta2/Operation/operationType": operation_type +"/autoscaler:v1beta2/Operation/progress": progress +"/autoscaler:v1beta2/Operation/region": region +"/autoscaler:v1beta2/Operation/selfLink": self_link +"/autoscaler:v1beta2/Operation/startTime": start_time +"/autoscaler:v1beta2/Operation/status": status +"/autoscaler:v1beta2/Operation/statusMessage": status_message +"/autoscaler:v1beta2/Operation/targetId": target_id +"/autoscaler:v1beta2/Operation/targetLink": target_link +"/autoscaler:v1beta2/Operation/user": user +"/autoscaler:v1beta2/Operation/warnings": warnings +"/autoscaler:v1beta2/Operation/warnings/warning": warning +"/autoscaler:v1beta2/Operation/warnings/warning/code": code +"/autoscaler:v1beta2/Operation/warnings/warning/data": data +"/autoscaler:v1beta2/Operation/warnings/warning/data/datum": datum +"/autoscaler:v1beta2/Operation/warnings/warning/data/datum/key": key +"/autoscaler:v1beta2/Operation/warnings/warning/data/datum/value": value +"/autoscaler:v1beta2/Operation/warnings/warning/message": message +"/autoscaler:v1beta2/Operation/zone": zone +"/autoscaler:v1beta2/OperationList": operation_list +"/autoscaler:v1beta2/OperationList/id": id +"/autoscaler:v1beta2/OperationList/items": items +"/autoscaler:v1beta2/OperationList/items/item": item +"/autoscaler:v1beta2/OperationList/kind": kind +"/autoscaler:v1beta2/OperationList/nextPageToken": next_page_token +"/autoscaler:v1beta2/OperationList/selfLink": self_link +"/autoscaler:v1beta2/Zone": zone +"/autoscaler:v1beta2/Zone/creationTimestamp": creation_timestamp +"/autoscaler:v1beta2/Zone/deprecated": deprecated +"/autoscaler:v1beta2/Zone/description": description +"/autoscaler:v1beta2/Zone/id": id +"/autoscaler:v1beta2/Zone/kind": kind +"/autoscaler:v1beta2/Zone/maintenanceWindows": maintenance_windows +"/autoscaler:v1beta2/Zone/maintenanceWindows/maintenance_window": maintenance_window +"/autoscaler:v1beta2/Zone/maintenanceWindows/maintenance_window/beginTime": begin_time +"/autoscaler:v1beta2/Zone/maintenanceWindows/maintenance_window/description": description +"/autoscaler:v1beta2/Zone/maintenanceWindows/maintenance_window/endTime": end_time +"/autoscaler:v1beta2/Zone/maintenanceWindows/maintenance_window/name": name +"/autoscaler:v1beta2/Zone/name": name +"/autoscaler:v1beta2/Zone/region": region +"/autoscaler:v1beta2/Zone/selfLink": self_link +"/autoscaler:v1beta2/Zone/status": status +"/autoscaler:v1beta2/ZoneList": zone_list +"/autoscaler:v1beta2/ZoneList/id": id +"/autoscaler:v1beta2/ZoneList/items": items +"/autoscaler:v1beta2/ZoneList/items/item": item +"/autoscaler:v1beta2/ZoneList/kind": kind +"/autoscaler:v1beta2/ZoneList/nextPageToken": next_page_token +"/autoscaler:v1beta2/ZoneList/selfLink": self_link +"/bigquery:v2/fields": fields +"/bigquery:v2/key": key +"/bigquery:v2/quotaUser": quota_user +"/bigquery:v2/userIp": user_ip +"/bigquery:v2/bigquery.datasets.delete": delete_dataset +"/bigquery:v2/bigquery.datasets.delete/datasetId": dataset_id +"/bigquery:v2/bigquery.datasets.delete/deleteContents": delete_contents +"/bigquery:v2/bigquery.datasets.delete/projectId": project_id +"/bigquery:v2/bigquery.datasets.get": get_dataset +"/bigquery:v2/bigquery.datasets.get/datasetId": dataset_id +"/bigquery:v2/bigquery.datasets.get/projectId": project_id +"/bigquery:v2/bigquery.datasets.insert": insert_dataset +"/bigquery:v2/bigquery.datasets.insert/projectId": project_id +"/bigquery:v2/bigquery.datasets.list": list_datasets +"/bigquery:v2/bigquery.datasets.list/all": all +"/bigquery:v2/bigquery.datasets.list/maxResults": max_results +"/bigquery:v2/bigquery.datasets.list/pageToken": page_token +"/bigquery:v2/bigquery.datasets.list/projectId": project_id +"/bigquery:v2/bigquery.datasets.patch": patch_dataset +"/bigquery:v2/bigquery.datasets.patch/datasetId": dataset_id +"/bigquery:v2/bigquery.datasets.patch/projectId": project_id +"/bigquery:v2/bigquery.datasets.update": update_dataset +"/bigquery:v2/bigquery.datasets.update/datasetId": dataset_id +"/bigquery:v2/bigquery.datasets.update/projectId": project_id +"/bigquery:v2/bigquery.jobs.cancel": cancel_job +"/bigquery:v2/bigquery.jobs.cancel/jobId": job_id +"/bigquery:v2/bigquery.jobs.cancel/projectId": project_id +"/bigquery:v2/bigquery.jobs.get": get_job +"/bigquery:v2/bigquery.jobs.get/jobId": job_id +"/bigquery:v2/bigquery.jobs.get/projectId": project_id +"/bigquery:v2/bigquery.jobs.getQueryResults/jobId": job_id +"/bigquery:v2/bigquery.jobs.getQueryResults/maxResults": max_results +"/bigquery:v2/bigquery.jobs.getQueryResults/pageToken": page_token +"/bigquery:v2/bigquery.jobs.getQueryResults/projectId": project_id +"/bigquery:v2/bigquery.jobs.getQueryResults/startIndex": start_index +"/bigquery:v2/bigquery.jobs.getQueryResults/timeoutMs": timeout_ms +"/bigquery:v2/bigquery.jobs.insert": insert_job +"/bigquery:v2/bigquery.jobs.insert/projectId": project_id +"/bigquery:v2/bigquery.jobs.list": list_jobs +"/bigquery:v2/bigquery.jobs.list/allUsers": all_users +"/bigquery:v2/bigquery.jobs.list/maxResults": max_results +"/bigquery:v2/bigquery.jobs.list/pageToken": page_token +"/bigquery:v2/bigquery.jobs.list/projectId": project_id +"/bigquery:v2/bigquery.jobs.list/projection": projection +"/bigquery:v2/bigquery.jobs.list/stateFilter": state_filter +"/bigquery:v2/bigquery.jobs.query": query +"/bigquery:v2/bigquery.jobs.query/projectId": project_id +"/bigquery:v2/bigquery.projects.list": list_projects +"/bigquery:v2/bigquery.projects.list/maxResults": max_results +"/bigquery:v2/bigquery.projects.list/pageToken": page_token +"/bigquery:v2/bigquery.tabledata.insertAll/datasetId": dataset_id +"/bigquery:v2/bigquery.tabledata.insertAll/projectId": project_id +"/bigquery:v2/bigquery.tabledata.insertAll/tableId": table_id +"/bigquery:v2/bigquery.tabledata.list/datasetId": dataset_id +"/bigquery:v2/bigquery.tabledata.list/maxResults": max_results +"/bigquery:v2/bigquery.tabledata.list/pageToken": page_token +"/bigquery:v2/bigquery.tabledata.list/projectId": project_id +"/bigquery:v2/bigquery.tabledata.list/startIndex": start_index +"/bigquery:v2/bigquery.tabledata.list/tableId": table_id +"/bigquery:v2/bigquery.tables.delete": delete_table +"/bigquery:v2/bigquery.tables.delete/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.delete/projectId": project_id +"/bigquery:v2/bigquery.tables.delete/tableId": table_id +"/bigquery:v2/bigquery.tables.get": get_table +"/bigquery:v2/bigquery.tables.get/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.get/projectId": project_id +"/bigquery:v2/bigquery.tables.get/tableId": table_id +"/bigquery:v2/bigquery.tables.insert": insert_table +"/bigquery:v2/bigquery.tables.insert/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.insert/projectId": project_id +"/bigquery:v2/bigquery.tables.list": list_tables +"/bigquery:v2/bigquery.tables.list/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.list/maxResults": max_results +"/bigquery:v2/bigquery.tables.list/pageToken": page_token +"/bigquery:v2/bigquery.tables.list/projectId": project_id +"/bigquery:v2/bigquery.tables.patch": patch_table +"/bigquery:v2/bigquery.tables.patch/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.patch/projectId": project_id +"/bigquery:v2/bigquery.tables.patch/tableId": table_id +"/bigquery:v2/bigquery.tables.update": update_table +"/bigquery:v2/bigquery.tables.update/datasetId": dataset_id +"/bigquery:v2/bigquery.tables.update/projectId": project_id +"/bigquery:v2/bigquery.tables.update/tableId": table_id +"/bigquery:v2/CsvOptions": csv_options +"/bigquery:v2/CsvOptions/allowJaggedRows": allow_jagged_rows +"/bigquery:v2/CsvOptions/allowQuotedNewlines": allow_quoted_newlines +"/bigquery:v2/CsvOptions/encoding": encoding +"/bigquery:v2/CsvOptions/fieldDelimiter": field_delimiter +"/bigquery:v2/CsvOptions/quote": quote +"/bigquery:v2/CsvOptions/skipLeadingRows": skip_leading_rows +"/bigquery:v2/Dataset": dataset +"/bigquery:v2/Dataset/access": access +"/bigquery:v2/Dataset/access/access": access +"/bigquery:v2/Dataset/access/access/domain": domain +"/bigquery:v2/Dataset/access/access/groupByEmail": group_by_email +"/bigquery:v2/Dataset/access/access/role": role +"/bigquery:v2/Dataset/access/access/specialGroup": special_group +"/bigquery:v2/Dataset/access/access/userByEmail": user_by_email +"/bigquery:v2/Dataset/access/access/view": view +"/bigquery:v2/Dataset/creationTime": creation_time +"/bigquery:v2/Dataset/datasetReference": dataset_reference +"/bigquery:v2/Dataset/defaultTableExpirationMs": default_table_expiration_ms +"/bigquery:v2/Dataset/description": description +"/bigquery:v2/Dataset/etag": etag +"/bigquery:v2/Dataset/friendlyName": friendly_name +"/bigquery:v2/Dataset/id": id +"/bigquery:v2/Dataset/kind": kind +"/bigquery:v2/Dataset/lastModifiedTime": last_modified_time +"/bigquery:v2/Dataset/location": location +"/bigquery:v2/Dataset/selfLink": self_link +"/bigquery:v2/DatasetList": dataset_list +"/bigquery:v2/DatasetList/datasets": datasets +"/bigquery:v2/DatasetList/datasets/dataset": dataset +"/bigquery:v2/DatasetList/datasets/dataset/datasetReference": dataset_reference +"/bigquery:v2/DatasetList/datasets/dataset/friendlyName": friendly_name +"/bigquery:v2/DatasetList/datasets/dataset/id": id +"/bigquery:v2/DatasetList/datasets/dataset/kind": kind +"/bigquery:v2/DatasetList/etag": etag +"/bigquery:v2/DatasetList/kind": kind +"/bigquery:v2/DatasetList/nextPageToken": next_page_token +"/bigquery:v2/DatasetReference": dataset_reference +"/bigquery:v2/DatasetReference/datasetId": dataset_id +"/bigquery:v2/DatasetReference/projectId": project_id +"/bigquery:v2/ErrorProto": error_proto +"/bigquery:v2/ErrorProto/debugInfo": debug_info +"/bigquery:v2/ErrorProto/location": location +"/bigquery:v2/ErrorProto/message": message +"/bigquery:v2/ErrorProto/reason": reason +"/bigquery:v2/ExternalDataConfiguration": external_data_configuration +"/bigquery:v2/ExternalDataConfiguration/compression": compression +"/bigquery:v2/ExternalDataConfiguration/csvOptions": csv_options +"/bigquery:v2/ExternalDataConfiguration/ignoreUnknownValues": ignore_unknown_values +"/bigquery:v2/ExternalDataConfiguration/maxBadRecords": max_bad_records +"/bigquery:v2/ExternalDataConfiguration/schema": schema +"/bigquery:v2/ExternalDataConfiguration/sourceFormat": source_format +"/bigquery:v2/ExternalDataConfiguration/sourceUris": source_uris +"/bigquery:v2/ExternalDataConfiguration/sourceUris/source_uri": source_uri +"/bigquery:v2/GetQueryResultsResponse": get_query_results_response +"/bigquery:v2/GetQueryResultsResponse/cacheHit": cache_hit +"/bigquery:v2/GetQueryResultsResponse/etag": etag +"/bigquery:v2/GetQueryResultsResponse/jobComplete": job_complete +"/bigquery:v2/GetQueryResultsResponse/jobReference": job_reference +"/bigquery:v2/GetQueryResultsResponse/kind": kind +"/bigquery:v2/GetQueryResultsResponse/pageToken": page_token +"/bigquery:v2/GetQueryResultsResponse/rows": rows +"/bigquery:v2/GetQueryResultsResponse/rows/row": row +"/bigquery:v2/GetQueryResultsResponse/schema": schema +"/bigquery:v2/GetQueryResultsResponse/totalBytesProcessed": total_bytes_processed +"/bigquery:v2/GetQueryResultsResponse/totalRows": total_rows +"/bigquery:v2/Job": job +"/bigquery:v2/Job/configuration": configuration +"/bigquery:v2/Job/etag": etag +"/bigquery:v2/Job/id": id +"/bigquery:v2/Job/jobReference": job_reference +"/bigquery:v2/Job/kind": kind +"/bigquery:v2/Job/selfLink": self_link +"/bigquery:v2/Job/statistics": statistics +"/bigquery:v2/Job/status": status +"/bigquery:v2/Job/user_email": user_email +"/bigquery:v2/JobCancelResponse/job": job +"/bigquery:v2/JobCancelResponse/kind": kind +"/bigquery:v2/JobConfiguration": job_configuration +"/bigquery:v2/JobConfiguration/copy": copy +"/bigquery:v2/JobConfiguration/dryRun": dry_run +"/bigquery:v2/JobConfiguration/extract": extract +"/bigquery:v2/JobConfiguration/link": link +"/bigquery:v2/JobConfiguration/load": load +"/bigquery:v2/JobConfiguration/query": query +"/bigquery:v2/JobConfigurationExtract": job_configuration_extract +"/bigquery:v2/JobConfigurationExtract/compression": compression +"/bigquery:v2/JobConfigurationExtract/destinationFormat": destination_format +"/bigquery:v2/JobConfigurationExtract/destinationUri": destination_uri +"/bigquery:v2/JobConfigurationExtract/destinationUris": destination_uris +"/bigquery:v2/JobConfigurationExtract/destinationUris/destination_uri": destination_uri +"/bigquery:v2/JobConfigurationExtract/fieldDelimiter": field_delimiter +"/bigquery:v2/JobConfigurationExtract/printHeader": print_header +"/bigquery:v2/JobConfigurationExtract/sourceTable": source_table +"/bigquery:v2/JobConfigurationLink": job_configuration_link +"/bigquery:v2/JobConfigurationLink/createDisposition": create_disposition +"/bigquery:v2/JobConfigurationLink/destinationTable": destination_table +"/bigquery:v2/JobConfigurationLink/sourceUri": source_uri +"/bigquery:v2/JobConfigurationLink/sourceUri/source_uri": source_uri +"/bigquery:v2/JobConfigurationLink/writeDisposition": write_disposition +"/bigquery:v2/JobConfigurationLoad": job_configuration_load +"/bigquery:v2/JobConfigurationLoad/allowJaggedRows": allow_jagged_rows +"/bigquery:v2/JobConfigurationLoad/allowQuotedNewlines": allow_quoted_newlines +"/bigquery:v2/JobConfigurationLoad/createDisposition": create_disposition +"/bigquery:v2/JobConfigurationLoad/destinationTable": destination_table +"/bigquery:v2/JobConfigurationLoad/encoding": encoding +"/bigquery:v2/JobConfigurationLoad/fieldDelimiter": field_delimiter +"/bigquery:v2/JobConfigurationLoad/ignoreUnknownValues": ignore_unknown_values +"/bigquery:v2/JobConfigurationLoad/maxBadRecords": max_bad_records +"/bigquery:v2/JobConfigurationLoad/projectionFields": projection_fields +"/bigquery:v2/JobConfigurationLoad/projectionFields/projection_field": projection_field +"/bigquery:v2/JobConfigurationLoad/quote": quote +"/bigquery:v2/JobConfigurationLoad/schema": schema +"/bigquery:v2/JobConfigurationLoad/schemaInline": schema_inline +"/bigquery:v2/JobConfigurationLoad/schemaInlineFormat": schema_inline_format +"/bigquery:v2/JobConfigurationLoad/skipLeadingRows": skip_leading_rows +"/bigquery:v2/JobConfigurationLoad/sourceFormat": source_format +"/bigquery:v2/JobConfigurationLoad/sourceUris": source_uris +"/bigquery:v2/JobConfigurationLoad/sourceUris/source_uri": source_uri +"/bigquery:v2/JobConfigurationLoad/writeDisposition": write_disposition +"/bigquery:v2/JobConfigurationQuery": job_configuration_query +"/bigquery:v2/JobConfigurationQuery/allowLargeResults": allow_large_results +"/bigquery:v2/JobConfigurationQuery/createDisposition": create_disposition +"/bigquery:v2/JobConfigurationQuery/defaultDataset": default_dataset +"/bigquery:v2/JobConfigurationQuery/destinationTable": destination_table +"/bigquery:v2/JobConfigurationQuery/flattenResults": flatten_results +"/bigquery:v2/JobConfigurationQuery/preserveNulls": preserve_nulls +"/bigquery:v2/JobConfigurationQuery/priority": priority +"/bigquery:v2/JobConfigurationQuery/query": query +"/bigquery:v2/JobConfigurationQuery/tableDefinitions": table_definitions +"/bigquery:v2/JobConfigurationQuery/tableDefinitions/table_definition": table_definition +"/bigquery:v2/JobConfigurationQuery/useQueryCache": use_query_cache +"/bigquery:v2/JobConfigurationQuery/writeDisposition": write_disposition +"/bigquery:v2/JobConfigurationTableCopy": job_configuration_table_copy +"/bigquery:v2/JobConfigurationTableCopy/createDisposition": create_disposition +"/bigquery:v2/JobConfigurationTableCopy/destinationTable": destination_table +"/bigquery:v2/JobConfigurationTableCopy/sourceTable": source_table +"/bigquery:v2/JobConfigurationTableCopy/sourceTables": source_tables +"/bigquery:v2/JobConfigurationTableCopy/sourceTables/source_table": source_table +"/bigquery:v2/JobConfigurationTableCopy/writeDisposition": write_disposition +"/bigquery:v2/JobList": job_list +"/bigquery:v2/JobList/etag": etag +"/bigquery:v2/JobList/jobs": jobs +"/bigquery:v2/JobList/jobs/job": job +"/bigquery:v2/JobList/jobs/job/configuration": configuration +"/bigquery:v2/JobList/jobs/job/errorResult": error_result +"/bigquery:v2/JobList/jobs/job/id": id +"/bigquery:v2/JobList/jobs/job/jobReference": job_reference +"/bigquery:v2/JobList/jobs/job/kind": kind +"/bigquery:v2/JobList/jobs/job/state": state +"/bigquery:v2/JobList/jobs/job/statistics": statistics +"/bigquery:v2/JobList/jobs/job/status": status +"/bigquery:v2/JobList/jobs/job/user_email": user_email +"/bigquery:v2/JobList/kind": kind +"/bigquery:v2/JobList/nextPageToken": next_page_token +"/bigquery:v2/JobReference": job_reference +"/bigquery:v2/JobReference/jobId": job_id +"/bigquery:v2/JobReference/projectId": project_id +"/bigquery:v2/JobStatistics": job_statistics +"/bigquery:v2/JobStatistics/creationTime": creation_time +"/bigquery:v2/JobStatistics/endTime": end_time +"/bigquery:v2/JobStatistics/extract": extract +"/bigquery:v2/JobStatistics/load": load +"/bigquery:v2/JobStatistics/query": query +"/bigquery:v2/JobStatistics/startTime": start_time +"/bigquery:v2/JobStatistics/totalBytesProcessed": total_bytes_processed +"/bigquery:v2/JobStatistics2": job_statistics2 +"/bigquery:v2/JobStatistics2/cacheHit": cache_hit +"/bigquery:v2/JobStatistics2/totalBytesProcessed": total_bytes_processed +"/bigquery:v2/JobStatistics3": job_statistics3 +"/bigquery:v2/JobStatistics3/inputFileBytes": input_file_bytes +"/bigquery:v2/JobStatistics3/inputFiles": input_files +"/bigquery:v2/JobStatistics3/outputBytes": output_bytes +"/bigquery:v2/JobStatistics3/outputRows": output_rows +"/bigquery:v2/JobStatistics4": job_statistics4 +"/bigquery:v2/JobStatistics4/destinationUriFileCounts": destination_uri_file_counts +"/bigquery:v2/JobStatistics4/destinationUriFileCounts/destination_uri_file_count": destination_uri_file_count +"/bigquery:v2/JobStatus": job_status +"/bigquery:v2/JobStatus/errorResult": error_result +"/bigquery:v2/JobStatus/errors": errors +"/bigquery:v2/JobStatus/errors/error": error +"/bigquery:v2/JobStatus/state": state +"/bigquery:v2/JsonObject": json_object +"/bigquery:v2/JsonObject/json_object": json_object +"/bigquery:v2/JsonValue": json_value +"/bigquery:v2/ProjectList": project_list +"/bigquery:v2/ProjectList/etag": etag +"/bigquery:v2/ProjectList/kind": kind +"/bigquery:v2/ProjectList/nextPageToken": next_page_token +"/bigquery:v2/ProjectList/projects": projects +"/bigquery:v2/ProjectList/projects/project": project +"/bigquery:v2/ProjectList/projects/project/friendlyName": friendly_name +"/bigquery:v2/ProjectList/projects/project/id": id +"/bigquery:v2/ProjectList/projects/project/kind": kind +"/bigquery:v2/ProjectList/projects/project/numericId": numeric_id +"/bigquery:v2/ProjectList/projects/project/projectReference": project_reference +"/bigquery:v2/ProjectList/totalItems": total_items +"/bigquery:v2/ProjectReference": project_reference +"/bigquery:v2/ProjectReference/projectId": project_id +"/bigquery:v2/QueryRequest": query_request +"/bigquery:v2/QueryRequest/defaultDataset": default_dataset +"/bigquery:v2/QueryRequest/dryRun": dry_run +"/bigquery:v2/QueryRequest/kind": kind +"/bigquery:v2/QueryRequest/maxResults": max_results +"/bigquery:v2/QueryRequest/preserveNulls": preserve_nulls +"/bigquery:v2/QueryRequest/query": query +"/bigquery:v2/QueryRequest/timeoutMs": timeout_ms +"/bigquery:v2/QueryRequest/useQueryCache": use_query_cache +"/bigquery:v2/QueryResponse": query_response +"/bigquery:v2/QueryResponse/cacheHit": cache_hit +"/bigquery:v2/QueryResponse/jobComplete": job_complete +"/bigquery:v2/QueryResponse/jobReference": job_reference +"/bigquery:v2/QueryResponse/kind": kind +"/bigquery:v2/QueryResponse/pageToken": page_token +"/bigquery:v2/QueryResponse/rows": rows +"/bigquery:v2/QueryResponse/rows/row": row +"/bigquery:v2/QueryResponse/schema": schema +"/bigquery:v2/QueryResponse/totalBytesProcessed": total_bytes_processed +"/bigquery:v2/QueryResponse/totalRows": total_rows +"/bigquery:v2/Table": table +"/bigquery:v2/Table/creationTime": creation_time +"/bigquery:v2/Table/description": description +"/bigquery:v2/Table/etag": etag +"/bigquery:v2/Table/expirationTime": expiration_time +"/bigquery:v2/Table/friendlyName": friendly_name +"/bigquery:v2/Table/id": id +"/bigquery:v2/Table/kind": kind +"/bigquery:v2/Table/lastModifiedTime": last_modified_time +"/bigquery:v2/Table/numBytes": num_bytes +"/bigquery:v2/Table/numRows": num_rows +"/bigquery:v2/Table/schema": schema +"/bigquery:v2/Table/selfLink": self_link +"/bigquery:v2/Table/tableReference": table_reference +"/bigquery:v2/Table/type": type +"/bigquery:v2/Table/view": view +"/bigquery:v2/TableCell": table_cell +"/bigquery:v2/TableCell/v": v +"/bigquery:v2/TableDataInsertAllRequest/ignoreUnknownValues": ignore_unknown_values +"/bigquery:v2/TableDataInsertAllRequest/kind": kind +"/bigquery:v2/TableDataInsertAllRequest/rows": rows +"/bigquery:v2/TableDataInsertAllRequest/rows/row": row +"/bigquery:v2/TableDataInsertAllRequest/rows/row/insertId": insert_id +"/bigquery:v2/TableDataInsertAllRequest/rows/row/json": json +"/bigquery:v2/TableDataInsertAllRequest/skipInvalidRows": skip_invalid_rows +"/bigquery:v2/TableDataInsertAllResponse/insertErrors": insert_errors +"/bigquery:v2/TableDataInsertAllResponse/insertErrors/insert_error": insert_error +"/bigquery:v2/TableDataInsertAllResponse/insertErrors/insert_error/errors": errors +"/bigquery:v2/TableDataInsertAllResponse/insertErrors/insert_error/errors/error": error +"/bigquery:v2/TableDataInsertAllResponse/insertErrors/insert_error/index": index +"/bigquery:v2/TableDataInsertAllResponse/kind": kind +"/bigquery:v2/TableDataList": table_data_list +"/bigquery:v2/TableDataList/etag": etag +"/bigquery:v2/TableDataList/kind": kind +"/bigquery:v2/TableDataList/pageToken": page_token +"/bigquery:v2/TableDataList/rows": rows +"/bigquery:v2/TableDataList/rows/row": row +"/bigquery:v2/TableDataList/totalRows": total_rows +"/bigquery:v2/TableFieldSchema": table_field_schema +"/bigquery:v2/TableFieldSchema/description": description +"/bigquery:v2/TableFieldSchema/fields": fields +"/bigquery:v2/TableFieldSchema/fields/field": field +"/bigquery:v2/TableFieldSchema/mode": mode +"/bigquery:v2/TableFieldSchema/name": name +"/bigquery:v2/TableFieldSchema/type": type +"/bigquery:v2/TableList": table_list +"/bigquery:v2/TableList/etag": etag +"/bigquery:v2/TableList/kind": kind +"/bigquery:v2/TableList/nextPageToken": next_page_token +"/bigquery:v2/TableList/tables": tables +"/bigquery:v2/TableList/tables/table": table +"/bigquery:v2/TableList/tables/table/friendlyName": friendly_name +"/bigquery:v2/TableList/tables/table/id": id +"/bigquery:v2/TableList/tables/table/kind": kind +"/bigquery:v2/TableList/tables/table/tableReference": table_reference +"/bigquery:v2/TableList/tables/table/type": type +"/bigquery:v2/TableList/totalItems": total_items +"/bigquery:v2/TableReference": table_reference +"/bigquery:v2/TableReference/datasetId": dataset_id +"/bigquery:v2/TableReference/projectId": project_id +"/bigquery:v2/TableReference/tableId": table_id +"/bigquery:v2/TableRow": table_row +"/bigquery:v2/TableRow/f": f +"/bigquery:v2/TableRow/f/f": f +"/bigquery:v2/TableSchema": table_schema +"/bigquery:v2/TableSchema/fields": fields +"/bigquery:v2/TableSchema/fields/field": field +"/bigquery:v2/ViewDefinition": view_definition +"/bigquery:v2/ViewDefinition/query": query +"/blogger:v3/fields": fields +"/blogger:v3/key": key +"/blogger:v3/quotaUser": quota_user +"/blogger:v3/userIp": user_ip +"/blogger:v3/blogger.blogUserInfos.get": get_blog_user_info +"/blogger:v3/blogger.blogUserInfos.get/blogId": blog_id +"/blogger:v3/blogger.blogUserInfos.get/maxPosts": max_posts +"/blogger:v3/blogger.blogUserInfos.get/userId": user_id +"/blogger:v3/blogger.blogs.get": get_blog +"/blogger:v3/blogger.blogs.get/blogId": blog_id +"/blogger:v3/blogger.blogs.get/maxPosts": max_posts +"/blogger:v3/blogger.blogs.get/view": view +"/blogger:v3/blogger.blogs.getByUrl/url": url +"/blogger:v3/blogger.blogs.getByUrl/view": view +"/blogger:v3/blogger.blogs.listByUser/fetchUserInfo": fetch_user_info +"/blogger:v3/blogger.blogs.listByUser/role": role +"/blogger:v3/blogger.blogs.listByUser/status": status +"/blogger:v3/blogger.blogs.listByUser/userId": user_id +"/blogger:v3/blogger.blogs.listByUser/view": view +"/blogger:v3/blogger.comments.approve": approve_comment +"/blogger:v3/blogger.comments.approve/blogId": blog_id +"/blogger:v3/blogger.comments.approve/commentId": comment_id +"/blogger:v3/blogger.comments.approve/postId": post_id +"/blogger:v3/blogger.comments.delete": delete_comment +"/blogger:v3/blogger.comments.delete/blogId": blog_id +"/blogger:v3/blogger.comments.delete/commentId": comment_id +"/blogger:v3/blogger.comments.delete/postId": post_id +"/blogger:v3/blogger.comments.get": get_comment +"/blogger:v3/blogger.comments.get/blogId": blog_id +"/blogger:v3/blogger.comments.get/commentId": comment_id +"/blogger:v3/blogger.comments.get/postId": post_id +"/blogger:v3/blogger.comments.get/view": view +"/blogger:v3/blogger.comments.list": list_comments +"/blogger:v3/blogger.comments.list/blogId": blog_id +"/blogger:v3/blogger.comments.list/endDate": end_date +"/blogger:v3/blogger.comments.list/fetchBodies": fetch_bodies +"/blogger:v3/blogger.comments.list/maxResults": max_results +"/blogger:v3/blogger.comments.list/pageToken": page_token +"/blogger:v3/blogger.comments.list/postId": post_id +"/blogger:v3/blogger.comments.list/startDate": start_date +"/blogger:v3/blogger.comments.list/status": status +"/blogger:v3/blogger.comments.list/view": view +"/blogger:v3/blogger.comments.listByBlog/blogId": blog_id +"/blogger:v3/blogger.comments.listByBlog/endDate": end_date +"/blogger:v3/blogger.comments.listByBlog/fetchBodies": fetch_bodies +"/blogger:v3/blogger.comments.listByBlog/maxResults": max_results +"/blogger:v3/blogger.comments.listByBlog/pageToken": page_token +"/blogger:v3/blogger.comments.listByBlog/startDate": start_date +"/blogger:v3/blogger.comments.listByBlog/status": status +"/blogger:v3/blogger.comments.markAsSpam/blogId": blog_id +"/blogger:v3/blogger.comments.markAsSpam/commentId": comment_id +"/blogger:v3/blogger.comments.markAsSpam/postId": post_id +"/blogger:v3/blogger.comments.removeContent/blogId": blog_id +"/blogger:v3/blogger.comments.removeContent/commentId": comment_id +"/blogger:v3/blogger.comments.removeContent/postId": post_id +"/blogger:v3/blogger.pageViews.get": get_page_view +"/blogger:v3/blogger.pageViews.get/blogId": blog_id +"/blogger:v3/blogger.pageViews.get/range": range +"/blogger:v3/blogger.pages.delete": delete_page +"/blogger:v3/blogger.pages.delete/blogId": blog_id +"/blogger:v3/blogger.pages.delete/pageId": page_id +"/blogger:v3/blogger.pages.get": get_page +"/blogger:v3/blogger.pages.get/blogId": blog_id +"/blogger:v3/blogger.pages.get/pageId": page_id +"/blogger:v3/blogger.pages.get/view": view +"/blogger:v3/blogger.pages.insert": insert_page +"/blogger:v3/blogger.pages.insert/blogId": blog_id +"/blogger:v3/blogger.pages.insert/isDraft": is_draft +"/blogger:v3/blogger.pages.list": list_pages +"/blogger:v3/blogger.pages.list/blogId": blog_id +"/blogger:v3/blogger.pages.list/fetchBodies": fetch_bodies +"/blogger:v3/blogger.pages.list/maxResults": max_results +"/blogger:v3/blogger.pages.list/pageToken": page_token +"/blogger:v3/blogger.pages.list/status": status +"/blogger:v3/blogger.pages.list/view": view +"/blogger:v3/blogger.pages.patch": patch_page +"/blogger:v3/blogger.pages.patch/blogId": blog_id +"/blogger:v3/blogger.pages.patch/pageId": page_id +"/blogger:v3/blogger.pages.patch/publish": publish +"/blogger:v3/blogger.pages.patch/revert": revert +"/blogger:v3/blogger.pages.publish": publish_page +"/blogger:v3/blogger.pages.publish/blogId": blog_id +"/blogger:v3/blogger.pages.publish/pageId": page_id +"/blogger:v3/blogger.pages.revert": revert_page +"/blogger:v3/blogger.pages.revert/blogId": blog_id +"/blogger:v3/blogger.pages.revert/pageId": page_id +"/blogger:v3/blogger.pages.update": update_page +"/blogger:v3/blogger.pages.update/blogId": blog_id +"/blogger:v3/blogger.pages.update/pageId": page_id +"/blogger:v3/blogger.pages.update/publish": publish +"/blogger:v3/blogger.pages.update/revert": revert +"/blogger:v3/blogger.postUserInfos.get/blogId": blog_id +"/blogger:v3/blogger.postUserInfos.get/maxComments": max_comments +"/blogger:v3/blogger.postUserInfos.get/postId": post_id +"/blogger:v3/blogger.postUserInfos.get/userId": user_id +"/blogger:v3/blogger.postUserInfos.list/blogId": blog_id +"/blogger:v3/blogger.postUserInfos.list/endDate": end_date +"/blogger:v3/blogger.postUserInfos.list/fetchBodies": fetch_bodies +"/blogger:v3/blogger.postUserInfos.list/labels": labels +"/blogger:v3/blogger.postUserInfos.list/maxResults": max_results +"/blogger:v3/blogger.postUserInfos.list/orderBy": order_by +"/blogger:v3/blogger.postUserInfos.list/pageToken": page_token +"/blogger:v3/blogger.postUserInfos.list/startDate": start_date +"/blogger:v3/blogger.postUserInfos.list/status": status +"/blogger:v3/blogger.postUserInfos.list/userId": user_id +"/blogger:v3/blogger.postUserInfos.list/view": view +"/blogger:v3/blogger.posts.delete": delete_post +"/blogger:v3/blogger.posts.delete/blogId": blog_id +"/blogger:v3/blogger.posts.delete/postId": post_id +"/blogger:v3/blogger.posts.get": get_post +"/blogger:v3/blogger.posts.get/blogId": blog_id +"/blogger:v3/blogger.posts.get/fetchBody": fetch_body +"/blogger:v3/blogger.posts.get/fetchImages": fetch_images +"/blogger:v3/blogger.posts.get/maxComments": max_comments +"/blogger:v3/blogger.posts.get/postId": post_id +"/blogger:v3/blogger.posts.get/view": view +"/blogger:v3/blogger.posts.getByPath/blogId": blog_id +"/blogger:v3/blogger.posts.getByPath/maxComments": max_comments +"/blogger:v3/blogger.posts.getByPath/path": path +"/blogger:v3/blogger.posts.getByPath/view": view +"/blogger:v3/blogger.posts.insert": insert_post +"/blogger:v3/blogger.posts.insert/blogId": blog_id +"/blogger:v3/blogger.posts.insert/fetchBody": fetch_body +"/blogger:v3/blogger.posts.insert/fetchImages": fetch_images +"/blogger:v3/blogger.posts.insert/isDraft": is_draft +"/blogger:v3/blogger.posts.list": list_posts +"/blogger:v3/blogger.posts.list/blogId": blog_id +"/blogger:v3/blogger.posts.list/endDate": end_date +"/blogger:v3/blogger.posts.list/fetchBodies": fetch_bodies +"/blogger:v3/blogger.posts.list/fetchImages": fetch_images +"/blogger:v3/blogger.posts.list/labels": labels +"/blogger:v3/blogger.posts.list/maxResults": max_results +"/blogger:v3/blogger.posts.list/orderBy": order_by +"/blogger:v3/blogger.posts.list/pageToken": page_token +"/blogger:v3/blogger.posts.list/startDate": start_date +"/blogger:v3/blogger.posts.list/status": status +"/blogger:v3/blogger.posts.list/view": view +"/blogger:v3/blogger.posts.patch": patch_post +"/blogger:v3/blogger.posts.patch/blogId": blog_id +"/blogger:v3/blogger.posts.patch/fetchBody": fetch_body +"/blogger:v3/blogger.posts.patch/fetchImages": fetch_images +"/blogger:v3/blogger.posts.patch/maxComments": max_comments +"/blogger:v3/blogger.posts.patch/postId": post_id +"/blogger:v3/blogger.posts.patch/publish": publish +"/blogger:v3/blogger.posts.patch/revert": revert +"/blogger:v3/blogger.posts.publish": publish_post +"/blogger:v3/blogger.posts.publish/blogId": blog_id +"/blogger:v3/blogger.posts.publish/postId": post_id +"/blogger:v3/blogger.posts.publish/publishDate": publish_date +"/blogger:v3/blogger.posts.revert": revert_post +"/blogger:v3/blogger.posts.revert/blogId": blog_id +"/blogger:v3/blogger.posts.revert/postId": post_id +"/blogger:v3/blogger.posts.search": search_posts +"/blogger:v3/blogger.posts.search/blogId": blog_id +"/blogger:v3/blogger.posts.search/fetchBodies": fetch_bodies +"/blogger:v3/blogger.posts.search/orderBy": order_by +"/blogger:v3/blogger.posts.search/q": q +"/blogger:v3/blogger.posts.update": update_post +"/blogger:v3/blogger.posts.update/blogId": blog_id +"/blogger:v3/blogger.posts.update/fetchBody": fetch_body +"/blogger:v3/blogger.posts.update/fetchImages": fetch_images +"/blogger:v3/blogger.posts.update/maxComments": max_comments +"/blogger:v3/blogger.posts.update/postId": post_id +"/blogger:v3/blogger.posts.update/publish": publish +"/blogger:v3/blogger.posts.update/revert": revert +"/blogger:v3/blogger.users.get": get_user +"/blogger:v3/blogger.users.get/userId": user_id +"/blogger:v3/Blog": blog +"/blogger:v3/Blog/customMetaData": custom_meta_data +"/blogger:v3/Blog/description": description +"/blogger:v3/Blog/id": id +"/blogger:v3/Blog/kind": kind +"/blogger:v3/Blog/locale": locale +"/blogger:v3/Blog/locale/country": country +"/blogger:v3/Blog/locale/language": language +"/blogger:v3/Blog/locale/variant": variant +"/blogger:v3/Blog/name": name +"/blogger:v3/Blog/pages": pages +"/blogger:v3/Blog/pages/selfLink": self_link +"/blogger:v3/Blog/pages/totalItems": total_items +"/blogger:v3/Blog/posts": posts +"/blogger:v3/Blog/posts/items": items +"/blogger:v3/Blog/posts/items/item": item +"/blogger:v3/Blog/posts/selfLink": self_link +"/blogger:v3/Blog/posts/totalItems": total_items +"/blogger:v3/Blog/published": published +"/blogger:v3/Blog/selfLink": self_link +"/blogger:v3/Blog/status": status +"/blogger:v3/Blog/updated": updated +"/blogger:v3/Blog/url": url +"/blogger:v3/BlogList": blog_list +"/blogger:v3/BlogList/blogUserInfos": blog_user_infos +"/blogger:v3/BlogList/blogUserInfos/blog_user_info": blog_user_info +"/blogger:v3/BlogList/items": items +"/blogger:v3/BlogList/items/item": item +"/blogger:v3/BlogList/kind": kind +"/blogger:v3/BlogPerUserInfo": blog_per_user_info +"/blogger:v3/BlogPerUserInfo/blogId": blog_id +"/blogger:v3/BlogPerUserInfo/hasAdminAccess": has_admin_access +"/blogger:v3/BlogPerUserInfo/kind": kind +"/blogger:v3/BlogPerUserInfo/photosAlbumKey": photos_album_key +"/blogger:v3/BlogPerUserInfo/role": role +"/blogger:v3/BlogPerUserInfo/userId": user_id +"/blogger:v3/BlogUserInfo": blog_user_info +"/blogger:v3/BlogUserInfo/blog": blog +"/blogger:v3/BlogUserInfo/blog_user_info": blog_user_info +"/blogger:v3/BlogUserInfo/kind": kind +"/blogger:v3/Comment": comment +"/blogger:v3/Comment/author": author +"/blogger:v3/Comment/author/displayName": display_name +"/blogger:v3/Comment/author/id": id +"/blogger:v3/Comment/author/image": image +"/blogger:v3/Comment/author/image/url": url +"/blogger:v3/Comment/author/url": url +"/blogger:v3/Comment/blog": blog +"/blogger:v3/Comment/blog/id": id +"/blogger:v3/Comment/content": content +"/blogger:v3/Comment/id": id +"/blogger:v3/Comment/inReplyTo": in_reply_to +"/blogger:v3/Comment/inReplyTo/id": id +"/blogger:v3/Comment/kind": kind +"/blogger:v3/Comment/post": post +"/blogger:v3/Comment/post/id": id +"/blogger:v3/Comment/published": published +"/blogger:v3/Comment/selfLink": self_link +"/blogger:v3/Comment/status": status +"/blogger:v3/Comment/updated": updated +"/blogger:v3/CommentList": comment_list +"/blogger:v3/CommentList/etag": etag +"/blogger:v3/CommentList/items": items +"/blogger:v3/CommentList/items/item": item +"/blogger:v3/CommentList/kind": kind +"/blogger:v3/CommentList/nextPageToken": next_page_token +"/blogger:v3/CommentList/prevPageToken": prev_page_token +"/blogger:v3/Page": page +"/blogger:v3/Page/author": author +"/blogger:v3/Page/author/displayName": display_name +"/blogger:v3/Page/author/id": id +"/blogger:v3/Page/author/image": image +"/blogger:v3/Page/author/image/url": url +"/blogger:v3/Page/author/url": url +"/blogger:v3/Page/blog": blog +"/blogger:v3/Page/blog/id": id +"/blogger:v3/Page/content": content +"/blogger:v3/Page/etag": etag +"/blogger:v3/Page/id": id +"/blogger:v3/Page/kind": kind +"/blogger:v3/Page/published": published +"/blogger:v3/Page/selfLink": self_link +"/blogger:v3/Page/status": status +"/blogger:v3/Page/title": title +"/blogger:v3/Page/updated": updated +"/blogger:v3/Page/url": url +"/blogger:v3/PageList": page_list +"/blogger:v3/PageList/etag": etag +"/blogger:v3/PageList/items": items +"/blogger:v3/PageList/items/item": item +"/blogger:v3/PageList/kind": kind +"/blogger:v3/PageList/nextPageToken": next_page_token +"/blogger:v3/Pageviews": pageviews +"/blogger:v3/Pageviews/blogId": blog_id +"/blogger:v3/Pageviews/counts": counts +"/blogger:v3/Pageviews/counts/count": count +"/blogger:v3/Pageviews/counts/count/count": count +"/blogger:v3/Pageviews/counts/count/timeRange": time_range +"/blogger:v3/Pageviews/kind": kind +"/blogger:v3/Post": post +"/blogger:v3/Post/author": author +"/blogger:v3/Post/author/displayName": display_name +"/blogger:v3/Post/author/id": id +"/blogger:v3/Post/author/image": image +"/blogger:v3/Post/author/image/url": url +"/blogger:v3/Post/author/url": url +"/blogger:v3/Post/blog": blog +"/blogger:v3/Post/blog/id": id +"/blogger:v3/Post/content": content +"/blogger:v3/Post/customMetaData": custom_meta_data +"/blogger:v3/Post/etag": etag +"/blogger:v3/Post/id": id +"/blogger:v3/Post/images": images +"/blogger:v3/Post/images/image": image +"/blogger:v3/Post/images/image/url": url +"/blogger:v3/Post/kind": kind +"/blogger:v3/Post/labels": labels +"/blogger:v3/Post/labels/label": label +"/blogger:v3/Post/location": location +"/blogger:v3/Post/location/lat": lat +"/blogger:v3/Post/location/lng": lng +"/blogger:v3/Post/location/name": name +"/blogger:v3/Post/location/span": span +"/blogger:v3/Post/published": published +"/blogger:v3/Post/readerComments": reader_comments +"/blogger:v3/Post/replies": replies +"/blogger:v3/Post/replies/items": items +"/blogger:v3/Post/replies/items/item": item +"/blogger:v3/Post/replies/selfLink": self_link +"/blogger:v3/Post/replies/totalItems": total_items +"/blogger:v3/Post/selfLink": self_link +"/blogger:v3/Post/status": status +"/blogger:v3/Post/title": title +"/blogger:v3/Post/titleLink": title_link +"/blogger:v3/Post/updated": updated +"/blogger:v3/Post/url": url +"/blogger:v3/PostList": post_list +"/blogger:v3/PostList/etag": etag +"/blogger:v3/PostList/items": items +"/blogger:v3/PostList/items/item": item +"/blogger:v3/PostList/kind": kind +"/blogger:v3/PostList/nextPageToken": next_page_token +"/blogger:v3/PostPerUserInfo": post_per_user_info +"/blogger:v3/PostPerUserInfo/blogId": blog_id +"/blogger:v3/PostPerUserInfo/hasEditAccess": has_edit_access +"/blogger:v3/PostPerUserInfo/kind": kind +"/blogger:v3/PostPerUserInfo/postId": post_id +"/blogger:v3/PostPerUserInfo/userId": user_id +"/blogger:v3/PostUserInfo": post_user_info +"/blogger:v3/PostUserInfo/kind": kind +"/blogger:v3/PostUserInfo/post": post +"/blogger:v3/PostUserInfo/post_user_info": post_user_info +"/blogger:v3/PostUserInfosList": post_user_infos_list +"/blogger:v3/PostUserInfosList/items": items +"/blogger:v3/PostUserInfosList/items/item": item +"/blogger:v3/PostUserInfosList/kind": kind +"/blogger:v3/PostUserInfosList/nextPageToken": next_page_token +"/blogger:v3/User": user +"/blogger:v3/User/about": about +"/blogger:v3/User/blogs": blogs +"/blogger:v3/User/blogs/selfLink": self_link +"/blogger:v3/User/created": created +"/blogger:v3/User/displayName": display_name +"/blogger:v3/User/id": id +"/blogger:v3/User/kind": kind +"/blogger:v3/User/locale": locale +"/blogger:v3/User/locale/country": country +"/blogger:v3/User/locale/language": language +"/blogger:v3/User/locale/variant": variant +"/blogger:v3/User/selfLink": self_link +"/blogger:v3/User/url": url +"/books:v1/fields": fields +"/books:v1/key": key +"/books:v1/quotaUser": quota_user +"/books:v1/userIp": user_ip +"/books:v1/books.bookshelves.get/shelf": shelf +"/books:v1/books.bookshelves.get/source": source +"/books:v1/books.bookshelves.get/userId": user_id +"/books:v1/books.bookshelves.list/source": source +"/books:v1/books.bookshelves.list/userId": user_id +"/books:v1/books.bookshelves.volumes.list/maxResults": max_results +"/books:v1/books.bookshelves.volumes.list/shelf": shelf +"/books:v1/books.bookshelves.volumes.list/showPreorders": show_preorders +"/books:v1/books.bookshelves.volumes.list/source": source +"/books:v1/books.bookshelves.volumes.list/startIndex": start_index +"/books:v1/books.bookshelves.volumes.list/userId": user_id +"/books:v1/books.cloudloading.addBook/drive_document_id": drive_document_id +"/books:v1/books.cloudloading.addBook/mime_type": mime_type +"/books:v1/books.cloudloading.addBook/name": name +"/books:v1/books.cloudloading.addBook/upload_client_token": upload_client_token +"/books:v1/books.cloudloading.deleteBook/volumeId": volume_id +"/books:v1/books.dictionary.listOfflineMetadata/cpksver": cpksver +"/books:v1/books.layers.get/contentVersion": content_version +"/books:v1/books.layers.get/source": source +"/books:v1/books.layers.get/summaryId": summary_id +"/books:v1/books.layers.get/volumeId": volume_id +"/books:v1/books.layers.list/contentVersion": content_version +"/books:v1/books.layers.list/maxResults": max_results +"/books:v1/books.layers.list/pageToken": page_token +"/books:v1/books.layers.list/source": source +"/books:v1/books.layers.list/volumeId": volume_id +"/books:v1/books.layers.annotationData.get/allowWebDefinitions": allow_web_definitions +"/books:v1/books.layers.annotationData.get/annotationDataId": annotation_data_id +"/books:v1/books.layers.annotationData.get/contentVersion": content_version +"/books:v1/books.layers.annotationData.get/h": h +"/books:v1/books.layers.annotationData.get/layerId": layer_id +"/books:v1/books.layers.annotationData.get/locale": locale +"/books:v1/books.layers.annotationData.get/scale": scale +"/books:v1/books.layers.annotationData.get/source": source +"/books:v1/books.layers.annotationData.get/volumeId": volume_id +"/books:v1/books.layers.annotationData.get/w": w +"/books:v1/books.layers.annotationData.list/annotationDataId": annotation_data_id +"/books:v1/books.layers.annotationData.list/contentVersion": content_version +"/books:v1/books.layers.annotationData.list/h": h +"/books:v1/books.layers.annotationData.list/layerId": layer_id +"/books:v1/books.layers.annotationData.list/locale": locale +"/books:v1/books.layers.annotationData.list/maxResults": max_results +"/books:v1/books.layers.annotationData.list/pageToken": page_token +"/books:v1/books.layers.annotationData.list/scale": scale +"/books:v1/books.layers.annotationData.list/source": source +"/books:v1/books.layers.annotationData.list/updatedMax": updated_max +"/books:v1/books.layers.annotationData.list/updatedMin": updated_min +"/books:v1/books.layers.annotationData.list/volumeId": volume_id +"/books:v1/books.layers.annotationData.list/w": w +"/books:v1/books.layers.volumeAnnotations.get/annotationId": annotation_id +"/books:v1/books.layers.volumeAnnotations.get/layerId": layer_id +"/books:v1/books.layers.volumeAnnotations.get/locale": locale +"/books:v1/books.layers.volumeAnnotations.get/source": source +"/books:v1/books.layers.volumeAnnotations.get/volumeId": volume_id +"/books:v1/books.layers.volumeAnnotations.list/contentVersion": content_version +"/books:v1/books.layers.volumeAnnotations.list/endOffset": end_offset +"/books:v1/books.layers.volumeAnnotations.list/endPosition": end_position +"/books:v1/books.layers.volumeAnnotations.list/layerId": layer_id +"/books:v1/books.layers.volumeAnnotations.list/locale": locale +"/books:v1/books.layers.volumeAnnotations.list/maxResults": max_results +"/books:v1/books.layers.volumeAnnotations.list/pageToken": page_token +"/books:v1/books.layers.volumeAnnotations.list/showDeleted": show_deleted +"/books:v1/books.layers.volumeAnnotations.list/source": source +"/books:v1/books.layers.volumeAnnotations.list/startOffset": start_offset +"/books:v1/books.layers.volumeAnnotations.list/startPosition": start_position +"/books:v1/books.layers.volumeAnnotations.list/updatedMax": updated_max +"/books:v1/books.layers.volumeAnnotations.list/updatedMin": updated_min +"/books:v1/books.layers.volumeAnnotations.list/volumeAnnotationsVersion": volume_annotations_version +"/books:v1/books.layers.volumeAnnotations.list/volumeId": volume_id +"/books:v1/books.myconfig.releaseDownloadAccess/cpksver": cpksver +"/books:v1/books.myconfig.releaseDownloadAccess/locale": locale +"/books:v1/books.myconfig.releaseDownloadAccess/source": source +"/books:v1/books.myconfig.releaseDownloadAccess/volumeIds": volume_ids +"/books:v1/books.myconfig.requestAccess/cpksver": cpksver +"/books:v1/books.myconfig.requestAccess/licenseTypes": license_types +"/books:v1/books.myconfig.requestAccess/locale": locale +"/books:v1/books.myconfig.requestAccess/nonce": nonce +"/books:v1/books.myconfig.requestAccess/source": source +"/books:v1/books.myconfig.requestAccess/volumeId": volume_id +"/books:v1/books.myconfig.syncVolumeLicenses/cpksver": cpksver +"/books:v1/books.myconfig.syncVolumeLicenses/features": features +"/books:v1/books.myconfig.syncVolumeLicenses/locale": locale +"/books:v1/books.myconfig.syncVolumeLicenses/nonce": nonce +"/books:v1/books.myconfig.syncVolumeLicenses/showPreorders": show_preorders +"/books:v1/books.myconfig.syncVolumeLicenses/source": source +"/books:v1/books.myconfig.syncVolumeLicenses/volumeIds": volume_ids +"/books:v1/books.mylibrary.annotations.delete/annotationId": annotation_id +"/books:v1/books.mylibrary.annotations.delete/source": source +"/books:v1/books.mylibrary.annotations.insert/country": country +"/books:v1/books.mylibrary.annotations.insert/showOnlySummaryInResponse": show_only_summary_in_response +"/books:v1/books.mylibrary.annotations.insert/source": source +"/books:v1/books.mylibrary.annotations.list/contentVersion": content_version +"/books:v1/books.mylibrary.annotations.list/layerId": layer_id +"/books:v1/books.mylibrary.annotations.list/layerIds": layer_ids +"/books:v1/books.mylibrary.annotations.list/maxResults": max_results +"/books:v1/books.mylibrary.annotations.list/pageToken": page_token +"/books:v1/books.mylibrary.annotations.list/showDeleted": show_deleted +"/books:v1/books.mylibrary.annotations.list/source": source +"/books:v1/books.mylibrary.annotations.list/updatedMax": updated_max +"/books:v1/books.mylibrary.annotations.list/updatedMin": updated_min +"/books:v1/books.mylibrary.annotations.list/volumeId": volume_id +"/books:v1/books.mylibrary.annotations.summary/layerIds": layer_ids +"/books:v1/books.mylibrary.annotations.summary/volumeId": volume_id +"/books:v1/books.mylibrary.annotations.update/annotationId": annotation_id +"/books:v1/books.mylibrary.annotations.update/source": source +"/books:v1/books.mylibrary.bookshelves.addVolume/reason": reason +"/books:v1/books.mylibrary.bookshelves.addVolume/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.addVolume/source": source +"/books:v1/books.mylibrary.bookshelves.addVolume/volumeId": volume_id +"/books:v1/books.mylibrary.bookshelves.clearVolumes/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.clearVolumes/source": source +"/books:v1/books.mylibrary.bookshelves.get/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.get/source": source +"/books:v1/books.mylibrary.bookshelves.list/source": source +"/books:v1/books.mylibrary.bookshelves.moveVolume/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.moveVolume/source": source +"/books:v1/books.mylibrary.bookshelves.moveVolume/volumeId": volume_id +"/books:v1/books.mylibrary.bookshelves.moveVolume/volumePosition": volume_position +"/books:v1/books.mylibrary.bookshelves.removeVolume/reason": reason +"/books:v1/books.mylibrary.bookshelves.removeVolume/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.removeVolume/source": source +"/books:v1/books.mylibrary.bookshelves.removeVolume/volumeId": volume_id +"/books:v1/books.mylibrary.bookshelves.volumes.list/country": country +"/books:v1/books.mylibrary.bookshelves.volumes.list/maxResults": max_results +"/books:v1/books.mylibrary.bookshelves.volumes.list/projection": projection +"/books:v1/books.mylibrary.bookshelves.volumes.list/q": q +"/books:v1/books.mylibrary.bookshelves.volumes.list/shelf": shelf +"/books:v1/books.mylibrary.bookshelves.volumes.list/showPreorders": show_preorders +"/books:v1/books.mylibrary.bookshelves.volumes.list/source": source +"/books:v1/books.mylibrary.bookshelves.volumes.list/startIndex": start_index +"/books:v1/books.mylibrary.readingpositions.get/contentVersion": content_version +"/books:v1/books.mylibrary.readingpositions.get/source": source +"/books:v1/books.mylibrary.readingpositions.get/volumeId": volume_id +"/books:v1/books.mylibrary.readingpositions.setPosition/action": action +"/books:v1/books.mylibrary.readingpositions.setPosition/contentVersion": content_version +"/books:v1/books.mylibrary.readingpositions.setPosition/deviceCookie": device_cookie +"/books:v1/books.mylibrary.readingpositions.setPosition/position": position +"/books:v1/books.mylibrary.readingpositions.setPosition/source": source +"/books:v1/books.mylibrary.readingpositions.setPosition/timestamp": timestamp +"/books:v1/books.mylibrary.readingpositions.setPosition/volumeId": volume_id +"/books:v1/books.onboarding.listCategories/locale": locale +"/books:v1/books.onboarding.listCategoryVolumes/categoryId": category_id +"/books:v1/books.onboarding.listCategoryVolumes/locale": locale +"/books:v1/books.onboarding.listCategoryVolumes/maxAllowedMaturityRating": max_allowed_maturity_rating +"/books:v1/books.onboarding.listCategoryVolumes/pageSize": page_size +"/books:v1/books.onboarding.listCategoryVolumes/pageToken": page_token +"/books:v1/books.promooffer.accept/androidId": android_id +"/books:v1/books.promooffer.accept/device": device +"/books:v1/books.promooffer.accept/manufacturer": manufacturer +"/books:v1/books.promooffer.accept/model": model +"/books:v1/books.promooffer.accept/offerId": offer_id +"/books:v1/books.promooffer.accept/product": product +"/books:v1/books.promooffer.accept/serial": serial +"/books:v1/books.promooffer.accept/volumeId": volume_id +"/books:v1/books.promooffer.dismiss/androidId": android_id +"/books:v1/books.promooffer.dismiss/device": device +"/books:v1/books.promooffer.dismiss/manufacturer": manufacturer +"/books:v1/books.promooffer.dismiss/model": model +"/books:v1/books.promooffer.dismiss/offerId": offer_id +"/books:v1/books.promooffer.dismiss/product": product +"/books:v1/books.promooffer.dismiss/serial": serial +"/books:v1/books.promooffer.get/androidId": android_id +"/books:v1/books.promooffer.get/device": device +"/books:v1/books.promooffer.get/manufacturer": manufacturer +"/books:v1/books.promooffer.get/model": model +"/books:v1/books.promooffer.get/product": product +"/books:v1/books.promooffer.get/serial": serial +"/books:v1/books.volumes.get": get_volume +"/books:v1/books.volumes.get/country": country +"/books:v1/books.volumes.get/partner": partner +"/books:v1/books.volumes.get/projection": projection +"/books:v1/books.volumes.get/source": source +"/books:v1/books.volumes.get/user_library_consistent_read": user_library_consistent_read +"/books:v1/books.volumes.get/volumeId": volume_id +"/books:v1/books.volumes.list": list_volumes +"/books:v1/books.volumes.list/download": download +"/books:v1/books.volumes.list/filter": filter +"/books:v1/books.volumes.list/langRestrict": lang_restrict +"/books:v1/books.volumes.list/libraryRestrict": library_restrict +"/books:v1/books.volumes.list/maxResults": max_results +"/books:v1/books.volumes.list/orderBy": order_by +"/books:v1/books.volumes.list/partner": partner +"/books:v1/books.volumes.list/printType": print_type +"/books:v1/books.volumes.list/projection": projection +"/books:v1/books.volumes.list/q": q +"/books:v1/books.volumes.list/showPreorders": show_preorders +"/books:v1/books.volumes.list/source": source +"/books:v1/books.volumes.list/startIndex": start_index +"/books:v1/books.volumes.associated.list/association": association +"/books:v1/books.volumes.associated.list/locale": locale +"/books:v1/books.volumes.associated.list/maxAllowedMaturityRating": max_allowed_maturity_rating +"/books:v1/books.volumes.associated.list/source": source +"/books:v1/books.volumes.associated.list/volumeId": volume_id +"/books:v1/books.volumes.mybooks.list/acquireMethod": acquire_method +"/books:v1/books.volumes.mybooks.list/locale": locale +"/books:v1/books.volumes.mybooks.list/maxResults": max_results +"/books:v1/books.volumes.mybooks.list/processingState": processing_state +"/books:v1/books.volumes.mybooks.list/source": source +"/books:v1/books.volumes.mybooks.list/startIndex": start_index +"/books:v1/books.volumes.recommended.list/locale": locale +"/books:v1/books.volumes.recommended.list/maxAllowedMaturityRating": max_allowed_maturity_rating +"/books:v1/books.volumes.recommended.list/source": source +"/books:v1/books.volumes.recommended.rate/locale": locale +"/books:v1/books.volumes.recommended.rate/rating": rating +"/books:v1/books.volumes.recommended.rate/source": source +"/books:v1/books.volumes.recommended.rate/volumeId": volume_id +"/books:v1/books.volumes.useruploaded.list/locale": locale +"/books:v1/books.volumes.useruploaded.list/maxResults": max_results +"/books:v1/books.volumes.useruploaded.list/processingState": processing_state +"/books:v1/books.volumes.useruploaded.list/source": source +"/books:v1/books.volumes.useruploaded.list/startIndex": start_index +"/books:v1/books.volumes.useruploaded.list/volumeId": volume_id +"/books:v1/Annotation": annotation +"/books:v1/Annotation/afterSelectedText": after_selected_text +"/books:v1/Annotation/beforeSelectedText": before_selected_text +"/books:v1/Annotation/clientVersionRanges": client_version_ranges +"/books:v1/Annotation/clientVersionRanges/cfiRange": cfi_range +"/books:v1/Annotation/clientVersionRanges/contentVersion": content_version +"/books:v1/Annotation/clientVersionRanges/gbImageRange": gb_image_range +"/books:v1/Annotation/clientVersionRanges/gbTextRange": gb_text_range +"/books:v1/Annotation/clientVersionRanges/imageCfiRange": image_cfi_range +"/books:v1/Annotation/created": created +"/books:v1/Annotation/currentVersionRanges": current_version_ranges +"/books:v1/Annotation/currentVersionRanges/cfiRange": cfi_range +"/books:v1/Annotation/currentVersionRanges/contentVersion": content_version +"/books:v1/Annotation/currentVersionRanges/gbImageRange": gb_image_range +"/books:v1/Annotation/currentVersionRanges/gbTextRange": gb_text_range +"/books:v1/Annotation/currentVersionRanges/imageCfiRange": image_cfi_range +"/books:v1/Annotation/data": data +"/books:v1/Annotation/deleted": deleted +"/books:v1/Annotation/highlightStyle": highlight_style +"/books:v1/Annotation/id": id +"/books:v1/Annotation/kind": kind +"/books:v1/Annotation/layerId": layer_id +"/books:v1/Annotation/layerSummary": layer_summary +"/books:v1/Annotation/layerSummary/allowedCharacterCount": allowed_character_count +"/books:v1/Annotation/layerSummary/limitType": limit_type +"/books:v1/Annotation/layerSummary/remainingCharacterCount": remaining_character_count +"/books:v1/Annotation/pageIds": page_ids +"/books:v1/Annotation/pageIds/page_id": page_id +"/books:v1/Annotation/selectedText": selected_text +"/books:v1/Annotation/selfLink": self_link +"/books:v1/Annotation/updated": updated +"/books:v1/Annotation/volumeId": volume_id +"/books:v1/Annotationdata/annotationType": annotation_type +"/books:v1/Annotationdata/data": data +"/books:v1/Annotationdata/encoded_data": encoded_data +"/books:v1/Annotationdata/id": id +"/books:v1/Annotationdata/kind": kind +"/books:v1/Annotationdata/layerId": layer_id +"/books:v1/Annotationdata/selfLink": self_link +"/books:v1/Annotationdata/updated": updated +"/books:v1/Annotationdata/volumeId": volume_id +"/books:v1/Annotations": annotations +"/books:v1/Annotations/items": items +"/books:v1/Annotations/items/item": item +"/books:v1/Annotations/kind": kind +"/books:v1/Annotations/nextPageToken": next_page_token +"/books:v1/Annotations/totalItems": total_items +"/books:v1/AnnotationsSummary/kind": kind +"/books:v1/AnnotationsSummary/layers": layers +"/books:v1/AnnotationsSummary/layers/layer": layer +"/books:v1/AnnotationsSummary/layers/layer/allowedCharacterCount": allowed_character_count +"/books:v1/AnnotationsSummary/layers/layer/layerId": layer_id +"/books:v1/AnnotationsSummary/layers/layer/limitType": limit_type +"/books:v1/AnnotationsSummary/layers/layer/remainingCharacterCount": remaining_character_count +"/books:v1/AnnotationsSummary/layers/layer/updated": updated +"/books:v1/Annotationsdata/items": items +"/books:v1/Annotationsdata/items/item": item +"/books:v1/Annotationsdata/kind": kind +"/books:v1/Annotationsdata/nextPageToken": next_page_token +"/books:v1/Annotationsdata/totalItems": total_items +"/books:v1/BooksAnnotationsRange/endOffset": end_offset +"/books:v1/BooksAnnotationsRange/endPosition": end_position +"/books:v1/BooksAnnotationsRange/startOffset": start_offset +"/books:v1/BooksAnnotationsRange/startPosition": start_position +"/books:v1/BooksCloudloadingResource/author": author +"/books:v1/BooksCloudloadingResource/processingState": processing_state +"/books:v1/BooksCloudloadingResource/title": title +"/books:v1/BooksCloudloadingResource/volumeId": volume_id +"/books:v1/BooksVolumesRecommendedRateResponse/consistency_token": consistency_token +"/books:v1/Bookshelf": bookshelf +"/books:v1/Bookshelf/access": access +"/books:v1/Bookshelf/created": created +"/books:v1/Bookshelf/description": description +"/books:v1/Bookshelf/id": id +"/books:v1/Bookshelf/kind": kind +"/books:v1/Bookshelf/selfLink": self_link +"/books:v1/Bookshelf/title": title +"/books:v1/Bookshelf/updated": updated +"/books:v1/Bookshelf/volumeCount": volume_count +"/books:v1/Bookshelf/volumesLastUpdated": volumes_last_updated +"/books:v1/Bookshelves": bookshelves +"/books:v1/Bookshelves/items": items +"/books:v1/Bookshelves/items/item": item +"/books:v1/Bookshelves/kind": kind +"/books:v1/Category": category +"/books:v1/Category/items": items +"/books:v1/Category/items/item": item +"/books:v1/Category/items/item/badgeUrl": badge_url +"/books:v1/Category/items/item/categoryId": category_id +"/books:v1/Category/items/item/name": name +"/books:v1/Category/kind": kind +"/books:v1/ConcurrentAccessRestriction": concurrent_access_restriction +"/books:v1/ConcurrentAccessRestriction/deviceAllowed": device_allowed +"/books:v1/ConcurrentAccessRestriction/kind": kind +"/books:v1/ConcurrentAccessRestriction/maxConcurrentDevices": max_concurrent_devices +"/books:v1/ConcurrentAccessRestriction/message": message +"/books:v1/ConcurrentAccessRestriction/nonce": nonce +"/books:v1/ConcurrentAccessRestriction/reasonCode": reason_code +"/books:v1/ConcurrentAccessRestriction/restricted": restricted +"/books:v1/ConcurrentAccessRestriction/signature": signature +"/books:v1/ConcurrentAccessRestriction/source": source +"/books:v1/ConcurrentAccessRestriction/timeWindowSeconds": time_window_seconds +"/books:v1/ConcurrentAccessRestriction/volumeId": volume_id +"/books:v1/Dictlayerdata/common": common +"/books:v1/Dictlayerdata/common/title": title +"/books:v1/Dictlayerdata/dict": dict +"/books:v1/Dictlayerdata/dict/source": source +"/books:v1/Dictlayerdata/dict/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/source/url": url +"/books:v1/Dictlayerdata/dict/words": words +"/books:v1/Dictlayerdata/dict/words/word": word +"/books:v1/Dictlayerdata/dict/words/word/derivatives": derivatives +"/books:v1/Dictlayerdata/dict/words/word/derivatives/derivative": derivative +"/books:v1/Dictlayerdata/dict/words/word/derivatives/derivative/source": source +"/books:v1/Dictlayerdata/dict/words/word/derivatives/derivative/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/derivatives/derivative/source/url": url +"/books:v1/Dictlayerdata/dict/words/word/derivatives/derivative/text": text +"/books:v1/Dictlayerdata/dict/words/word/examples": examples +"/books:v1/Dictlayerdata/dict/words/word/examples/example": example +"/books:v1/Dictlayerdata/dict/words/word/examples/example/source": source +"/books:v1/Dictlayerdata/dict/words/word/examples/example/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/examples/example/source/url": url +"/books:v1/Dictlayerdata/dict/words/word/examples/example/text": text +"/books:v1/Dictlayerdata/dict/words/word/senses": senses +"/books:v1/Dictlayerdata/dict/words/word/senses/sense": sense +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/conjugations": conjugations +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/conjugations/conjugation": conjugation +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/conjugations/conjugation/type": type +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/conjugations/conjugation/value": value +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions": definitions +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition": definition +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/definition": definition +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples": examples +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples/example": example +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples/example/source": source +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples/example/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples/example/source/url": url +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/definitions/definition/examples/example/text": text +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/partOfSpeech": part_of_speech +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/pronunciation": pronunciation +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/pronunciationUrl": pronunciation_url +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/source": source +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/source/url": url +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/syllabification": syllabification +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms": synonyms +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms/synonym": synonym +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms/synonym/source": source +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms/synonym/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms/synonym/source/url": url +"/books:v1/Dictlayerdata/dict/words/word/senses/sense/synonyms/synonym/text": text +"/books:v1/Dictlayerdata/dict/words/word/source": source +"/books:v1/Dictlayerdata/dict/words/word/source/attribution": attribution +"/books:v1/Dictlayerdata/dict/words/word/source/url": url +"/books:v1/Dictlayerdata/kind": kind +"/books:v1/DownloadAccessRestriction": download_access_restriction +"/books:v1/DownloadAccessRestriction/deviceAllowed": device_allowed +"/books:v1/DownloadAccessRestriction/downloadsAcquired": downloads_acquired +"/books:v1/DownloadAccessRestriction/justAcquired": just_acquired +"/books:v1/DownloadAccessRestriction/kind": kind +"/books:v1/DownloadAccessRestriction/maxDownloadDevices": max_download_devices +"/books:v1/DownloadAccessRestriction/message": message +"/books:v1/DownloadAccessRestriction/nonce": nonce +"/books:v1/DownloadAccessRestriction/reasonCode": reason_code +"/books:v1/DownloadAccessRestriction/restricted": restricted +"/books:v1/DownloadAccessRestriction/signature": signature +"/books:v1/DownloadAccessRestriction/source": source +"/books:v1/DownloadAccessRestriction/volumeId": volume_id +"/books:v1/DownloadAccesses": download_accesses +"/books:v1/DownloadAccesses/downloadAccessList": download_access_list +"/books:v1/DownloadAccesses/downloadAccessList/download_access_list": download_access_list +"/books:v1/DownloadAccesses/kind": kind +"/books:v1/Geolayerdata/common": common +"/books:v1/Geolayerdata/common/lang": lang +"/books:v1/Geolayerdata/common/previewImageUrl": preview_image_url +"/books:v1/Geolayerdata/common/snippet": snippet +"/books:v1/Geolayerdata/common/snippetUrl": snippet_url +"/books:v1/Geolayerdata/common/title": title +"/books:v1/Geolayerdata/geo": geo +"/books:v1/Geolayerdata/geo/boundary": boundary +"/books:v1/Geolayerdata/geo/boundary/boundary": boundary +"/books:v1/Geolayerdata/geo/boundary/boundary/boundary": boundary +"/books:v1/Geolayerdata/geo/boundary/boundary/boundary/latitude": latitude +"/books:v1/Geolayerdata/geo/boundary/boundary/boundary/longitude": longitude +"/books:v1/Geolayerdata/geo/cachePolicy": cache_policy +"/books:v1/Geolayerdata/geo/countryCode": country_code +"/books:v1/Geolayerdata/geo/latitude": latitude +"/books:v1/Geolayerdata/geo/longitude": longitude +"/books:v1/Geolayerdata/geo/mapType": map_type +"/books:v1/Geolayerdata/geo/viewport": viewport +"/books:v1/Geolayerdata/geo/viewport/hi": hi +"/books:v1/Geolayerdata/geo/viewport/hi/latitude": latitude +"/books:v1/Geolayerdata/geo/viewport/hi/longitude": longitude +"/books:v1/Geolayerdata/geo/viewport/lo": lo +"/books:v1/Geolayerdata/geo/viewport/lo/latitude": latitude +"/books:v1/Geolayerdata/geo/viewport/lo/longitude": longitude +"/books:v1/Geolayerdata/geo/zoom": zoom +"/books:v1/Geolayerdata/kind": kind +"/books:v1/Layersummaries/items": items +"/books:v1/Layersummaries/items/item": item +"/books:v1/Layersummaries/kind": kind +"/books:v1/Layersummaries/totalItems": total_items +"/books:v1/Layersummary/annotationCount": annotation_count +"/books:v1/Layersummary/annotationTypes": annotation_types +"/books:v1/Layersummary/annotationTypes/annotation_type": annotation_type +"/books:v1/Layersummary/annotationsDataLink": annotations_data_link +"/books:v1/Layersummary/annotationsLink": annotations_link +"/books:v1/Layersummary/contentVersion": content_version +"/books:v1/Layersummary/dataCount": data_count +"/books:v1/Layersummary/id": id +"/books:v1/Layersummary/kind": kind +"/books:v1/Layersummary/layerId": layer_id +"/books:v1/Layersummary/selfLink": self_link +"/books:v1/Layersummary/updated": updated +"/books:v1/Layersummary/volumeAnnotationsVersion": volume_annotations_version +"/books:v1/Layersummary/volumeId": volume_id +"/books:v1/Metadata": metadata +"/books:v1/Metadata/items": items +"/books:v1/Metadata/items/item": item +"/books:v1/Metadata/items/item/download_url": download_url +"/books:v1/Metadata/items/item/encrypted_key": encrypted_key +"/books:v1/Metadata/items/item/language": language +"/books:v1/Metadata/items/item/size": size +"/books:v1/Metadata/items/item/version": version +"/books:v1/Metadata/kind": kind +"/books:v1/Offers": offers +"/books:v1/Offers/items": items +"/books:v1/Offers/items/item": item +"/books:v1/Offers/items/item/artUrl": art_url +"/books:v1/Offers/items/item/gservicesKey": gservices_key +"/books:v1/Offers/items/item/id": id +"/books:v1/Offers/items/item/items": items +"/books:v1/Offers/items/item/items/item": item +"/books:v1/Offers/items/item/items/item/author": author +"/books:v1/Offers/items/item/items/item/canonicalVolumeLink": canonical_volume_link +"/books:v1/Offers/items/item/items/item/coverUrl": cover_url +"/books:v1/Offers/items/item/items/item/description": description +"/books:v1/Offers/items/item/items/item/title": title +"/books:v1/Offers/items/item/items/item/volumeId": volume_id +"/books:v1/Offers/kind": kind +"/books:v1/ReadingPosition": reading_position +"/books:v1/ReadingPosition/epubCfiPosition": epub_cfi_position +"/books:v1/ReadingPosition/gbImagePosition": gb_image_position +"/books:v1/ReadingPosition/gbTextPosition": gb_text_position +"/books:v1/ReadingPosition/kind": kind +"/books:v1/ReadingPosition/pdfPosition": pdf_position +"/books:v1/ReadingPosition/updated": updated +"/books:v1/ReadingPosition/volumeId": volume_id +"/books:v1/RequestAccess": request_access +"/books:v1/RequestAccess/concurrentAccess": concurrent_access +"/books:v1/RequestAccess/downloadAccess": download_access +"/books:v1/RequestAccess/kind": kind +"/books:v1/Review": review +"/books:v1/Review/author": author +"/books:v1/Review/author/displayName": display_name +"/books:v1/Review/content": content +"/books:v1/Review/date": date +"/books:v1/Review/fullTextUrl": full_text_url +"/books:v1/Review/kind": kind +"/books:v1/Review/rating": rating +"/books:v1/Review/source": source +"/books:v1/Review/source/description": description +"/books:v1/Review/source/extraDescription": extra_description +"/books:v1/Review/source/url": url +"/books:v1/Review/title": title +"/books:v1/Review/type": type +"/books:v1/Review/volumeId": volume_id +"/books:v1/Usersettings/kind": kind +"/books:v1/Usersettings/notesExport": notes_export +"/books:v1/Usersettings/notesExport/folderName": folder_name +"/books:v1/Usersettings/notesExport/isEnabled": is_enabled +"/books:v1/Volume": volume +"/books:v1/Volume/accessInfo": access_info +"/books:v1/Volume/accessInfo/accessViewStatus": access_view_status +"/books:v1/Volume/accessInfo/country": country +"/books:v1/Volume/accessInfo/downloadAccess": download_access +"/books:v1/Volume/accessInfo/driveImportedContentLink": drive_imported_content_link +"/books:v1/Volume/accessInfo/embeddable": embeddable +"/books:v1/Volume/accessInfo/epub": epub +"/books:v1/Volume/accessInfo/epub/acsTokenLink": acs_token_link +"/books:v1/Volume/accessInfo/epub/downloadLink": download_link +"/books:v1/Volume/accessInfo/epub/isAvailable": is_available +"/books:v1/Volume/accessInfo/explicitOfflineLicenseManagement": explicit_offline_license_management +"/books:v1/Volume/accessInfo/pdf": pdf +"/books:v1/Volume/accessInfo/pdf/acsTokenLink": acs_token_link +"/books:v1/Volume/accessInfo/pdf/downloadLink": download_link +"/books:v1/Volume/accessInfo/pdf/isAvailable": is_available +"/books:v1/Volume/accessInfo/publicDomain": public_domain +"/books:v1/Volume/accessInfo/quoteSharingAllowed": quote_sharing_allowed +"/books:v1/Volume/accessInfo/textToSpeechPermission": text_to_speech_permission +"/books:v1/Volume/accessInfo/viewOrderUrl": view_order_url +"/books:v1/Volume/accessInfo/viewability": viewability +"/books:v1/Volume/accessInfo/webReaderLink": web_reader_link +"/books:v1/Volume/etag": etag +"/books:v1/Volume/id": id +"/books:v1/Volume/kind": kind +"/books:v1/Volume/layerInfo": layer_info +"/books:v1/Volume/layerInfo/layers": layers +"/books:v1/Volume/layerInfo/layers/layer": layer +"/books:v1/Volume/layerInfo/layers/layer/layerId": layer_id +"/books:v1/Volume/layerInfo/layers/layer/volumeAnnotationsVersion": volume_annotations_version +"/books:v1/Volume/recommendedInfo": recommended_info +"/books:v1/Volume/recommendedInfo/explanation": explanation +"/books:v1/Volume/saleInfo": sale_info +"/books:v1/Volume/saleInfo/buyLink": buy_link +"/books:v1/Volume/saleInfo/country": country +"/books:v1/Volume/saleInfo/isEbook": is_ebook +"/books:v1/Volume/saleInfo/listPrice": list_price +"/books:v1/Volume/saleInfo/listPrice/amount": amount +"/books:v1/Volume/saleInfo/listPrice/currencyCode": currency_code +"/books:v1/Volume/saleInfo/offers": offers +"/books:v1/Volume/saleInfo/offers/offer": offer +"/books:v1/Volume/saleInfo/offers/offer/finskyOfferType": finsky_offer_type +"/books:v1/Volume/saleInfo/offers/offer/listPrice": list_price +"/books:v1/Volume/saleInfo/offers/offer/listPrice/amountInMicros": amount_in_micros +"/books:v1/Volume/saleInfo/offers/offer/listPrice/currencyCode": currency_code +"/books:v1/Volume/saleInfo/offers/offer/rentalDuration": rental_duration +"/books:v1/Volume/saleInfo/offers/offer/rentalDuration/count": count +"/books:v1/Volume/saleInfo/offers/offer/rentalDuration/unit": unit +"/books:v1/Volume/saleInfo/offers/offer/retailPrice": retail_price +"/books:v1/Volume/saleInfo/offers/offer/retailPrice/amountInMicros": amount_in_micros +"/books:v1/Volume/saleInfo/offers/offer/retailPrice/currencyCode": currency_code +"/books:v1/Volume/saleInfo/onSaleDate": on_sale_date +"/books:v1/Volume/saleInfo/retailPrice": retail_price +"/books:v1/Volume/saleInfo/retailPrice/amount": amount +"/books:v1/Volume/saleInfo/retailPrice/currencyCode": currency_code +"/books:v1/Volume/saleInfo/saleability": saleability +"/books:v1/Volume/searchInfo": search_info +"/books:v1/Volume/searchInfo/textSnippet": text_snippet +"/books:v1/Volume/selfLink": self_link +"/books:v1/Volume/userInfo": user_info +"/books:v1/Volume/userInfo/copy": copy +"/books:v1/Volume/userInfo/copy/allowedCharacterCount": allowed_character_count +"/books:v1/Volume/userInfo/copy/limitType": limit_type +"/books:v1/Volume/userInfo/copy/remainingCharacterCount": remaining_character_count +"/books:v1/Volume/userInfo/copy/updated": updated +"/books:v1/Volume/userInfo/isInMyBooks": is_in_my_books +"/books:v1/Volume/userInfo/isPreordered": is_preordered +"/books:v1/Volume/userInfo/isPurchased": is_purchased +"/books:v1/Volume/userInfo/isUploaded": is_uploaded +"/books:v1/Volume/userInfo/readingPosition": reading_position +"/books:v1/Volume/userInfo/rentalPeriod": rental_period +"/books:v1/Volume/userInfo/rentalPeriod/endUtcSec": end_utc_sec +"/books:v1/Volume/userInfo/rentalPeriod/startUtcSec": start_utc_sec +"/books:v1/Volume/userInfo/rentalState": rental_state +"/books:v1/Volume/userInfo/review": review +"/books:v1/Volume/userInfo/updated": updated +"/books:v1/Volume/userInfo/userUploadedVolumeInfo": user_uploaded_volume_info +"/books:v1/Volume/userInfo/userUploadedVolumeInfo/processingState": processing_state +"/books:v1/Volume/volumeInfo": volume_info +"/books:v1/Volume/volumeInfo/allowAnonLogging": allow_anon_logging +"/books:v1/Volume/volumeInfo/authors": authors +"/books:v1/Volume/volumeInfo/authors/author": author +"/books:v1/Volume/volumeInfo/averageRating": average_rating +"/books:v1/Volume/volumeInfo/canonicalVolumeLink": canonical_volume_link +"/books:v1/Volume/volumeInfo/categories": categories +"/books:v1/Volume/volumeInfo/categories/category": category +"/books:v1/Volume/volumeInfo/contentVersion": content_version +"/books:v1/Volume/volumeInfo/description": description +"/books:v1/Volume/volumeInfo/dimensions": dimensions +"/books:v1/Volume/volumeInfo/dimensions/height": height +"/books:v1/Volume/volumeInfo/dimensions/thickness": thickness +"/books:v1/Volume/volumeInfo/dimensions/width": width +"/books:v1/Volume/volumeInfo/imageLinks": image_links +"/books:v1/Volume/volumeInfo/imageLinks/extraLarge": extra_large +"/books:v1/Volume/volumeInfo/imageLinks/large": large +"/books:v1/Volume/volumeInfo/imageLinks/medium": medium +"/books:v1/Volume/volumeInfo/imageLinks/small": small +"/books:v1/Volume/volumeInfo/imageLinks/smallThumbnail": small_thumbnail +"/books:v1/Volume/volumeInfo/imageLinks/thumbnail": thumbnail +"/books:v1/Volume/volumeInfo/industryIdentifiers": industry_identifiers +"/books:v1/Volume/volumeInfo/industryIdentifiers/industry_identifier": industry_identifier +"/books:v1/Volume/volumeInfo/industryIdentifiers/industry_identifier/identifier": identifier +"/books:v1/Volume/volumeInfo/industryIdentifiers/industry_identifier/type": type +"/books:v1/Volume/volumeInfo/infoLink": info_link +"/books:v1/Volume/volumeInfo/language": language +"/books:v1/Volume/volumeInfo/mainCategory": main_category +"/books:v1/Volume/volumeInfo/maturityRating": maturity_rating +"/books:v1/Volume/volumeInfo/pageCount": page_count +"/books:v1/Volume/volumeInfo/previewLink": preview_link +"/books:v1/Volume/volumeInfo/printType": print_type +"/books:v1/Volume/volumeInfo/printedPageCount": printed_page_count +"/books:v1/Volume/volumeInfo/publishedDate": published_date +"/books:v1/Volume/volumeInfo/publisher": publisher +"/books:v1/Volume/volumeInfo/ratingsCount": ratings_count +"/books:v1/Volume/volumeInfo/readingModes": reading_modes +"/books:v1/Volume/volumeInfo/samplePageCount": sample_page_count +"/books:v1/Volume/volumeInfo/subtitle": subtitle +"/books:v1/Volume/volumeInfo/title": title +"/books:v1/Volume2": volume2 +"/books:v1/Volume2/items": items +"/books:v1/Volume2/items/item": item +"/books:v1/Volume2/kind": kind +"/books:v1/Volume2/nextPageToken": next_page_token +"/books:v1/Volumeannotation/annotationDataId": annotation_data_id +"/books:v1/Volumeannotation/annotationDataLink": annotation_data_link +"/books:v1/Volumeannotation/annotationType": annotation_type +"/books:v1/Volumeannotation/contentRanges": content_ranges +"/books:v1/Volumeannotation/contentRanges/cfiRange": cfi_range +"/books:v1/Volumeannotation/contentRanges/contentVersion": content_version +"/books:v1/Volumeannotation/contentRanges/gbImageRange": gb_image_range +"/books:v1/Volumeannotation/contentRanges/gbTextRange": gb_text_range +"/books:v1/Volumeannotation/data": data +"/books:v1/Volumeannotation/deleted": deleted +"/books:v1/Volumeannotation/id": id +"/books:v1/Volumeannotation/kind": kind +"/books:v1/Volumeannotation/layerId": layer_id +"/books:v1/Volumeannotation/pageIds": page_ids +"/books:v1/Volumeannotation/pageIds/page_id": page_id +"/books:v1/Volumeannotation/selectedText": selected_text +"/books:v1/Volumeannotation/selfLink": self_link +"/books:v1/Volumeannotation/updated": updated +"/books:v1/Volumeannotation/volumeId": volume_id +"/books:v1/Volumeannotations": volumeannotations +"/books:v1/Volumeannotations/items": items +"/books:v1/Volumeannotations/items/item": item +"/books:v1/Volumeannotations/kind": kind +"/books:v1/Volumeannotations/nextPageToken": next_page_token +"/books:v1/Volumeannotations/totalItems": total_items +"/books:v1/Volumeannotations/version": version +"/books:v1/Volumes": volumes +"/books:v1/Volumes/items": items +"/books:v1/Volumes/items/item": item +"/books:v1/Volumes/kind": kind +"/books:v1/Volumes/totalItems": total_items +"/calendar:v3/fields": fields +"/calendar:v3/key": key +"/calendar:v3/quotaUser": quota_user +"/calendar:v3/userIp": user_ip +"/calendar:v3/calendar.acl.delete": delete_acl +"/calendar:v3/calendar.acl.delete/calendarId": calendar_id +"/calendar:v3/calendar.acl.delete/ruleId": rule_id +"/calendar:v3/calendar.acl.get": get_acl +"/calendar:v3/calendar.acl.get/calendarId": calendar_id +"/calendar:v3/calendar.acl.get/ruleId": rule_id +"/calendar:v3/calendar.acl.insert": insert_acl +"/calendar:v3/calendar.acl.insert/calendarId": calendar_id +"/calendar:v3/calendar.acl.list": list_acls +"/calendar:v3/calendar.acl.list/calendarId": calendar_id +"/calendar:v3/calendar.acl.list/maxResults": max_results +"/calendar:v3/calendar.acl.list/pageToken": page_token +"/calendar:v3/calendar.acl.list/showDeleted": show_deleted +"/calendar:v3/calendar.acl.list/syncToken": sync_token +"/calendar:v3/calendar.acl.patch": patch_acl +"/calendar:v3/calendar.acl.patch/calendarId": calendar_id +"/calendar:v3/calendar.acl.patch/ruleId": rule_id +"/calendar:v3/calendar.acl.update": update_acl +"/calendar:v3/calendar.acl.update/calendarId": calendar_id +"/calendar:v3/calendar.acl.update/ruleId": rule_id +"/calendar:v3/calendar.acl.watch": watch_acl +"/calendar:v3/calendar.acl.watch/calendarId": calendar_id +"/calendar:v3/calendar.acl.watch/maxResults": max_results +"/calendar:v3/calendar.acl.watch/pageToken": page_token +"/calendar:v3/calendar.acl.watch/showDeleted": show_deleted +"/calendar:v3/calendar.acl.watch/syncToken": sync_token +"/calendar:v3/calendar.calendarList.delete": delete_calendar_list +"/calendar:v3/calendar.calendarList.delete/calendarId": calendar_id +"/calendar:v3/calendar.calendarList.get": get_calendar_list +"/calendar:v3/calendar.calendarList.get/calendarId": calendar_id +"/calendar:v3/calendar.calendarList.insert": insert_calendar_list +"/calendar:v3/calendar.calendarList.insert/colorRgbFormat": color_rgb_format +"/calendar:v3/calendar.calendarList.list": list_calendar_lists +"/calendar:v3/calendar.calendarList.list/maxResults": max_results +"/calendar:v3/calendar.calendarList.list/minAccessRole": min_access_role +"/calendar:v3/calendar.calendarList.list/pageToken": page_token +"/calendar:v3/calendar.calendarList.list/showDeleted": show_deleted +"/calendar:v3/calendar.calendarList.list/showHidden": show_hidden +"/calendar:v3/calendar.calendarList.list/syncToken": sync_token +"/calendar:v3/calendar.calendarList.patch": patch_calendar_list +"/calendar:v3/calendar.calendarList.patch/calendarId": calendar_id +"/calendar:v3/calendar.calendarList.patch/colorRgbFormat": color_rgb_format +"/calendar:v3/calendar.calendarList.update": update_calendar_list +"/calendar:v3/calendar.calendarList.update/calendarId": calendar_id +"/calendar:v3/calendar.calendarList.update/colorRgbFormat": color_rgb_format +"/calendar:v3/calendar.calendarList.watch": watch_calendar_list +"/calendar:v3/calendar.calendarList.watch/maxResults": max_results +"/calendar:v3/calendar.calendarList.watch/minAccessRole": min_access_role +"/calendar:v3/calendar.calendarList.watch/pageToken": page_token +"/calendar:v3/calendar.calendarList.watch/showDeleted": show_deleted +"/calendar:v3/calendar.calendarList.watch/showHidden": show_hidden +"/calendar:v3/calendar.calendarList.watch/syncToken": sync_token +"/calendar:v3/calendar.calendars.clear": clear_calendar +"/calendar:v3/calendar.calendars.clear/calendarId": calendar_id +"/calendar:v3/calendar.calendars.delete": delete_calendar +"/calendar:v3/calendar.calendars.delete/calendarId": calendar_id +"/calendar:v3/calendar.calendars.get": get_calendar +"/calendar:v3/calendar.calendars.get/calendarId": calendar_id +"/calendar:v3/calendar.calendars.insert": insert_calendar +"/calendar:v3/calendar.calendars.patch": patch_calendar +"/calendar:v3/calendar.calendars.patch/calendarId": calendar_id +"/calendar:v3/calendar.calendars.update": update_calendar +"/calendar:v3/calendar.calendars.update/calendarId": calendar_id +"/calendar:v3/calendar.channels.stop": stop_channel +"/calendar:v3/calendar.colors.get": get_color +"/calendar:v3/calendar.events.delete": delete_event +"/calendar:v3/calendar.events.delete/calendarId": calendar_id +"/calendar:v3/calendar.events.delete/eventId": event_id +"/calendar:v3/calendar.events.delete/sendNotifications": send_notifications +"/calendar:v3/calendar.events.get": get_event +"/calendar:v3/calendar.events.get/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.get/calendarId": calendar_id +"/calendar:v3/calendar.events.get/eventId": event_id +"/calendar:v3/calendar.events.get/maxAttendees": max_attendees +"/calendar:v3/calendar.events.get/timeZone": time_zone +"/calendar:v3/calendar.events.import": import_event +"/calendar:v3/calendar.events.import/calendarId": calendar_id +"/calendar:v3/calendar.events.insert": insert_event +"/calendar:v3/calendar.events.insert/calendarId": calendar_id +"/calendar:v3/calendar.events.insert/maxAttendees": max_attendees +"/calendar:v3/calendar.events.insert/sendNotifications": send_notifications +"/calendar:v3/calendar.events.instances": instances_event +"/calendar:v3/calendar.events.instances/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.instances/calendarId": calendar_id +"/calendar:v3/calendar.events.instances/eventId": event_id +"/calendar:v3/calendar.events.instances/maxAttendees": max_attendees +"/calendar:v3/calendar.events.instances/maxResults": max_results +"/calendar:v3/calendar.events.instances/originalStart": original_start +"/calendar:v3/calendar.events.instances/pageToken": page_token +"/calendar:v3/calendar.events.instances/showDeleted": show_deleted +"/calendar:v3/calendar.events.instances/timeMax": time_max +"/calendar:v3/calendar.events.instances/timeMin": time_min +"/calendar:v3/calendar.events.instances/timeZone": time_zone +"/calendar:v3/calendar.events.list": list_events +"/calendar:v3/calendar.events.list/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.list/calendarId": calendar_id +"/calendar:v3/calendar.events.list/iCalUID": i_cal_uid +"/calendar:v3/calendar.events.list/maxAttendees": max_attendees +"/calendar:v3/calendar.events.list/maxResults": max_results +"/calendar:v3/calendar.events.list/orderBy": order_by +"/calendar:v3/calendar.events.list/pageToken": page_token +"/calendar:v3/calendar.events.list/privateExtendedProperty": private_extended_property +"/calendar:v3/calendar.events.list/q": q +"/calendar:v3/calendar.events.list/sharedExtendedProperty": shared_extended_property +"/calendar:v3/calendar.events.list/showDeleted": show_deleted +"/calendar:v3/calendar.events.list/showHiddenInvitations": show_hidden_invitations +"/calendar:v3/calendar.events.list/singleEvents": single_events +"/calendar:v3/calendar.events.list/syncToken": sync_token +"/calendar:v3/calendar.events.list/timeMax": time_max +"/calendar:v3/calendar.events.list/timeMin": time_min +"/calendar:v3/calendar.events.list/timeZone": time_zone +"/calendar:v3/calendar.events.list/updatedMin": updated_min +"/calendar:v3/calendar.events.move": move_event +"/calendar:v3/calendar.events.move/calendarId": calendar_id +"/calendar:v3/calendar.events.move/destination": destination +"/calendar:v3/calendar.events.move/eventId": event_id +"/calendar:v3/calendar.events.move/sendNotifications": send_notifications +"/calendar:v3/calendar.events.patch": patch_event +"/calendar:v3/calendar.events.patch/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.patch/calendarId": calendar_id +"/calendar:v3/calendar.events.patch/eventId": event_id +"/calendar:v3/calendar.events.patch/maxAttendees": max_attendees +"/calendar:v3/calendar.events.patch/sendNotifications": send_notifications +"/calendar:v3/calendar.events.quickAdd": quick_add_event +"/calendar:v3/calendar.events.quickAdd/calendarId": calendar_id +"/calendar:v3/calendar.events.quickAdd/sendNotifications": send_notifications +"/calendar:v3/calendar.events.quickAdd/text": text +"/calendar:v3/calendar.events.update": update_event +"/calendar:v3/calendar.events.update/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.update/calendarId": calendar_id +"/calendar:v3/calendar.events.update/eventId": event_id +"/calendar:v3/calendar.events.update/maxAttendees": max_attendees +"/calendar:v3/calendar.events.update/sendNotifications": send_notifications +"/calendar:v3/calendar.events.watch": watch_event +"/calendar:v3/calendar.events.watch/alwaysIncludeEmail": always_include_email +"/calendar:v3/calendar.events.watch/calendarId": calendar_id +"/calendar:v3/calendar.events.watch/iCalUID": i_cal_uid +"/calendar:v3/calendar.events.watch/maxAttendees": max_attendees +"/calendar:v3/calendar.events.watch/maxResults": max_results +"/calendar:v3/calendar.events.watch/orderBy": order_by +"/calendar:v3/calendar.events.watch/pageToken": page_token +"/calendar:v3/calendar.events.watch/privateExtendedProperty": private_extended_property +"/calendar:v3/calendar.events.watch/q": q +"/calendar:v3/calendar.events.watch/sharedExtendedProperty": shared_extended_property +"/calendar:v3/calendar.events.watch/showDeleted": show_deleted +"/calendar:v3/calendar.events.watch/showHiddenInvitations": show_hidden_invitations +"/calendar:v3/calendar.events.watch/singleEvents": single_events +"/calendar:v3/calendar.events.watch/syncToken": sync_token +"/calendar:v3/calendar.events.watch/timeMax": time_max +"/calendar:v3/calendar.events.watch/timeMin": time_min +"/calendar:v3/calendar.events.watch/timeZone": time_zone +"/calendar:v3/calendar.events.watch/updatedMin": updated_min +"/calendar:v3/calendar.freebusy.query": query_freebusy +"/calendar:v3/calendar.settings.get": get_setting +"/calendar:v3/calendar.settings.get/setting": setting +"/calendar:v3/calendar.settings.list": list_settings +"/calendar:v3/calendar.settings.list/maxResults": max_results +"/calendar:v3/calendar.settings.list/pageToken": page_token +"/calendar:v3/calendar.settings.list/syncToken": sync_token +"/calendar:v3/calendar.settings.watch": watch_setting +"/calendar:v3/calendar.settings.watch/maxResults": max_results +"/calendar:v3/calendar.settings.watch/pageToken": page_token +"/calendar:v3/calendar.settings.watch/syncToken": sync_token +"/calendar:v3/Acl": acl +"/calendar:v3/Acl/etag": etag +"/calendar:v3/Acl/items": items +"/calendar:v3/Acl/items/item": item +"/calendar:v3/Acl/kind": kind +"/calendar:v3/Acl/nextPageToken": next_page_token +"/calendar:v3/Acl/nextSyncToken": next_sync_token +"/calendar:v3/AclRule": acl_rule +"/calendar:v3/AclRule/etag": etag +"/calendar:v3/AclRule/id": id +"/calendar:v3/AclRule/kind": kind +"/calendar:v3/AclRule/role": role +"/calendar:v3/AclRule/scope": scope +"/calendar:v3/AclRule/scope/type": type +"/calendar:v3/AclRule/scope/value": value +"/calendar:v3/Calendar": calendar +"/calendar:v3/Calendar/description": description +"/calendar:v3/Calendar/etag": etag +"/calendar:v3/Calendar/id": id +"/calendar:v3/Calendar/kind": kind +"/calendar:v3/Calendar/location": location +"/calendar:v3/Calendar/summary": summary +"/calendar:v3/Calendar/timeZone": time_zone +"/calendar:v3/CalendarList": calendar_list +"/calendar:v3/CalendarList/etag": etag +"/calendar:v3/CalendarList/items": items +"/calendar:v3/CalendarList/items/item": item +"/calendar:v3/CalendarList/kind": kind +"/calendar:v3/CalendarList/nextPageToken": next_page_token +"/calendar:v3/CalendarList/nextSyncToken": next_sync_token +"/calendar:v3/CalendarListEntry": calendar_list_entry +"/calendar:v3/CalendarListEntry/accessRole": access_role +"/calendar:v3/CalendarListEntry/backgroundColor": background_color +"/calendar:v3/CalendarListEntry/colorId": color_id +"/calendar:v3/CalendarListEntry/defaultReminders": default_reminders +"/calendar:v3/CalendarListEntry/defaultReminders/default_reminder": default_reminder +"/calendar:v3/CalendarListEntry/deleted": deleted +"/calendar:v3/CalendarListEntry/description": description +"/calendar:v3/CalendarListEntry/etag": etag +"/calendar:v3/CalendarListEntry/foregroundColor": foreground_color +"/calendar:v3/CalendarListEntry/hidden": hidden +"/calendar:v3/CalendarListEntry/id": id +"/calendar:v3/CalendarListEntry/kind": kind +"/calendar:v3/CalendarListEntry/location": location +"/calendar:v3/CalendarListEntry/notificationSettings": notification_settings +"/calendar:v3/CalendarListEntry/notificationSettings/notifications": notifications +"/calendar:v3/CalendarListEntry/notificationSettings/notifications/notification": notification +"/calendar:v3/CalendarListEntry/primary": primary +"/calendar:v3/CalendarListEntry/selected": selected +"/calendar:v3/CalendarListEntry/summary": summary +"/calendar:v3/CalendarListEntry/summaryOverride": summary_override +"/calendar:v3/CalendarListEntry/timeZone": time_zone +"/calendar:v3/CalendarNotification": calendar_notification +"/calendar:v3/CalendarNotification/type": type +"/calendar:v3/Channel": channel +"/calendar:v3/Channel/address": address +"/calendar:v3/Channel/expiration": expiration +"/calendar:v3/Channel/id": id +"/calendar:v3/Channel/kind": kind +"/calendar:v3/Channel/params": params +"/calendar:v3/Channel/params/param": param +"/calendar:v3/Channel/payload": payload +"/calendar:v3/Channel/resourceId": resource_id +"/calendar:v3/Channel/resourceUri": resource_uri +"/calendar:v3/Channel/token": token +"/calendar:v3/Channel/type": type +"/calendar:v3/ColorDefinition": color_definition +"/calendar:v3/ColorDefinition/background": background +"/calendar:v3/ColorDefinition/foreground": foreground +"/calendar:v3/Colors": colors +"/calendar:v3/Colors/calendar": calendar +"/calendar:v3/Colors/calendar/calendar": calendar +"/calendar:v3/Colors/event": event +"/calendar:v3/Colors/event/event": event +"/calendar:v3/Colors/kind": kind +"/calendar:v3/Colors/updated": updated +"/calendar:v3/Error": error +"/calendar:v3/Error/domain": domain +"/calendar:v3/Error/reason": reason +"/calendar:v3/Event": event +"/calendar:v3/Event/anyoneCanAddSelf": anyone_can_add_self +"/calendar:v3/Event/attendees": attendees +"/calendar:v3/Event/attendees/attendee": attendee +"/calendar:v3/Event/attendeesOmitted": attendees_omitted +"/calendar:v3/Event/colorId": color_id +"/calendar:v3/Event/created": created +"/calendar:v3/Event/creator": creator +"/calendar:v3/Event/creator/displayName": display_name +"/calendar:v3/Event/creator/email": email +"/calendar:v3/Event/creator/id": id +"/calendar:v3/Event/creator/self": self +"/calendar:v3/Event/description": description +"/calendar:v3/Event/end": end +"/calendar:v3/Event/endTimeUnspecified": end_time_unspecified +"/calendar:v3/Event/etag": etag +"/calendar:v3/Event/extendedProperties": extended_properties +"/calendar:v3/Event/extendedProperties/private": private +"/calendar:v3/Event/extendedProperties/private/private": private +"/calendar:v3/Event/extendedProperties/shared": shared +"/calendar:v3/Event/extendedProperties/shared/shared": shared +"/calendar:v3/Event/gadget": gadget +"/calendar:v3/Event/gadget/height": height +"/calendar:v3/Event/gadget/iconLink": icon_link +"/calendar:v3/Event/gadget/link": link +"/calendar:v3/Event/gadget/preferences": preferences +"/calendar:v3/Event/gadget/preferences/preference": preference +"/calendar:v3/Event/gadget/title": title +"/calendar:v3/Event/gadget/type": type +"/calendar:v3/Event/gadget/width": width +"/calendar:v3/Event/guestsCanInviteOthers": guests_can_invite_others +"/calendar:v3/Event/guestsCanModify": guests_can_modify +"/calendar:v3/Event/guestsCanSeeOtherGuests": guests_can_see_other_guests +"/calendar:v3/Event/hangoutLink": hangout_link +"/calendar:v3/Event/htmlLink": html_link +"/calendar:v3/Event/iCalUID": i_cal_uid +"/calendar:v3/Event/id": id +"/calendar:v3/Event/kind": kind +"/calendar:v3/Event/location": location +"/calendar:v3/Event/locked": locked +"/calendar:v3/Event/organizer": organizer +"/calendar:v3/Event/organizer/displayName": display_name +"/calendar:v3/Event/organizer/email": email +"/calendar:v3/Event/organizer/id": id +"/calendar:v3/Event/organizer/self": self +"/calendar:v3/Event/originalStartTime": original_start_time +"/calendar:v3/Event/privateCopy": private_copy +"/calendar:v3/Event/recurrence": recurrence +"/calendar:v3/Event/recurrence/recurrence": recurrence +"/calendar:v3/Event/recurringEventId": recurring_event_id +"/calendar:v3/Event/reminders": reminders +"/calendar:v3/Event/reminders/overrides": overrides +"/calendar:v3/Event/reminders/overrides/override": override +"/calendar:v3/Event/reminders/useDefault": use_default +"/calendar:v3/Event/sequence": sequence +"/calendar:v3/Event/source": source +"/calendar:v3/Event/source/title": title +"/calendar:v3/Event/source/url": url +"/calendar:v3/Event/start": start +"/calendar:v3/Event/status": status +"/calendar:v3/Event/summary": summary +"/calendar:v3/Event/transparency": transparency +"/calendar:v3/Event/updated": updated +"/calendar:v3/Event/visibility": visibility +"/calendar:v3/EventAttachment": event_attachment +"/calendar:v3/EventAttendee": event_attendee +"/calendar:v3/EventAttendee/additionalGuests": additional_guests +"/calendar:v3/EventAttendee/comment": comment +"/calendar:v3/EventAttendee/displayName": display_name +"/calendar:v3/EventAttendee/email": email +"/calendar:v3/EventAttendee/id": id +"/calendar:v3/EventAttendee/optional": optional +"/calendar:v3/EventAttendee/organizer": organizer +"/calendar:v3/EventAttendee/resource": resource +"/calendar:v3/EventAttendee/responseStatus": response_status +"/calendar:v3/EventAttendee/self": self +"/calendar:v3/EventDateTime": event_date_time +"/calendar:v3/EventDateTime/date": date +"/calendar:v3/EventDateTime/dateTime": date_time +"/calendar:v3/EventDateTime/timeZone": time_zone +"/calendar:v3/EventReminder": event_reminder +"/calendar:v3/EventReminder/minutes": minutes +"/calendar:v3/Events": events +"/calendar:v3/Events/accessRole": access_role +"/calendar:v3/Events/defaultReminders": default_reminders +"/calendar:v3/Events/defaultReminders/default_reminder": default_reminder +"/calendar:v3/Events/description": description +"/calendar:v3/Events/etag": etag +"/calendar:v3/Events/items": items +"/calendar:v3/Events/items/item": item +"/calendar:v3/Events/kind": kind +"/calendar:v3/Events/nextPageToken": next_page_token +"/calendar:v3/Events/nextSyncToken": next_sync_token +"/calendar:v3/Events/summary": summary +"/calendar:v3/Events/timeZone": time_zone +"/calendar:v3/Events/updated": updated +"/calendar:v3/FreeBusyCalendar": free_busy_calendar +"/calendar:v3/FreeBusyCalendar/busy": busy +"/calendar:v3/FreeBusyCalendar/busy/busy": busy +"/calendar:v3/FreeBusyCalendar/errors": errors +"/calendar:v3/FreeBusyCalendar/errors/error": error +"/calendar:v3/FreeBusyGroup": free_busy_group +"/calendar:v3/FreeBusyGroup/calendars": calendars +"/calendar:v3/FreeBusyGroup/calendars/calendar": calendar +"/calendar:v3/FreeBusyGroup/errors": errors +"/calendar:v3/FreeBusyGroup/errors/error": error +"/calendar:v3/FreeBusyRequest": free_busy_request +"/calendar:v3/FreeBusyRequest/calendarExpansionMax": calendar_expansion_max +"/calendar:v3/FreeBusyRequest/groupExpansionMax": group_expansion_max +"/calendar:v3/FreeBusyRequest/items": items +"/calendar:v3/FreeBusyRequest/items/item": item +"/calendar:v3/FreeBusyRequest/timeMax": time_max +"/calendar:v3/FreeBusyRequest/timeMin": time_min +"/calendar:v3/FreeBusyRequest/timeZone": time_zone +"/calendar:v3/FreeBusyRequestItem": free_busy_request_item +"/calendar:v3/FreeBusyRequestItem/id": id +"/calendar:v3/FreeBusyResponse": free_busy_response +"/calendar:v3/FreeBusyResponse/calendars": calendars +"/calendar:v3/FreeBusyResponse/calendars/calendar": calendar +"/calendar:v3/FreeBusyResponse/groups": groups +"/calendar:v3/FreeBusyResponse/groups/group": group +"/calendar:v3/FreeBusyResponse/kind": kind +"/calendar:v3/FreeBusyResponse/timeMax": time_max +"/calendar:v3/FreeBusyResponse/timeMin": time_min +"/calendar:v3/Setting": setting +"/calendar:v3/Setting/etag": etag +"/calendar:v3/Setting/id": id +"/calendar:v3/Setting/kind": kind +"/calendar:v3/Setting/value": value +"/calendar:v3/Settings": settings +"/calendar:v3/Settings/etag": etag +"/calendar:v3/Settings/items": items +"/calendar:v3/Settings/items/item": item +"/calendar:v3/Settings/kind": kind +"/calendar:v3/Settings/nextPageToken": next_page_token +"/calendar:v3/Settings/nextSyncToken": next_sync_token +"/calendar:v3/TimePeriod": time_period +"/calendar:v3/TimePeriod/end": end +"/calendar:v3/TimePeriod/start": start +"/civicinfo:v2/fields": fields +"/civicinfo:v2/key": key +"/civicinfo:v2/quotaUser": quota_user +"/civicinfo:v2/userIp": user_ip +"/civicinfo:v2/civicinfo.divisions.search/query": query +"/civicinfo:v2/civicinfo.elections.voterInfoQuery/address": address +"/civicinfo:v2/civicinfo.elections.voterInfoQuery/electionId": election_id +"/civicinfo:v2/civicinfo.elections.voterInfoQuery/officialOnly": official_only +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress/address": address +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress/includeOffices": include_offices +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress/levels": levels +"/civicinfo:v2/civicinfo.representatives.representativeInfoByAddress/roles": roles +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision/levels": levels +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision/ocdId": ocd_id +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision/recursive": recursive +"/civicinfo:v2/civicinfo.representatives.representativeInfoByDivision/roles": roles +"/civicinfo:v2/AdministrationRegion": administration_region +"/civicinfo:v2/AdministrationRegion/electionAdministrationBody": election_administration_body +"/civicinfo:v2/AdministrationRegion/id": id +"/civicinfo:v2/AdministrationRegion/local_jurisdiction": local_jurisdiction +"/civicinfo:v2/AdministrationRegion/name": name +"/civicinfo:v2/AdministrationRegion/sources": sources +"/civicinfo:v2/AdministrationRegion/sources/source": source +"/civicinfo:v2/AdministrativeBody": administrative_body +"/civicinfo:v2/AdministrativeBody/absenteeVotingInfoUrl": absentee_voting_info_url +"/civicinfo:v2/AdministrativeBody/ballotInfoUrl": ballot_info_url +"/civicinfo:v2/AdministrativeBody/correspondenceAddress": correspondence_address +"/civicinfo:v2/AdministrativeBody/electionInfoUrl": election_info_url +"/civicinfo:v2/AdministrativeBody/electionOfficials": election_officials +"/civicinfo:v2/AdministrativeBody/electionOfficials/election_official": election_official +"/civicinfo:v2/AdministrativeBody/electionRegistrationConfirmationUrl": election_registration_confirmation_url +"/civicinfo:v2/AdministrativeBody/electionRegistrationUrl": election_registration_url +"/civicinfo:v2/AdministrativeBody/electionRulesUrl": election_rules_url +"/civicinfo:v2/AdministrativeBody/hoursOfOperation": hours_of_operation +"/civicinfo:v2/AdministrativeBody/name": name +"/civicinfo:v2/AdministrativeBody/physicalAddress": physical_address +"/civicinfo:v2/AdministrativeBody/voter_services": voter_services +"/civicinfo:v2/AdministrativeBody/voter_services/voter_service": voter_service +"/civicinfo:v2/AdministrativeBody/votingLocationFinderUrl": voting_location_finder_url +"/civicinfo:v2/Candidate": candidate +"/civicinfo:v2/Candidate/candidateUrl": candidate_url +"/civicinfo:v2/Candidate/channels": channels +"/civicinfo:v2/Candidate/channels/channel": channel +"/civicinfo:v2/Candidate/email": email +"/civicinfo:v2/Candidate/name": name +"/civicinfo:v2/Candidate/orderOnBallot": order_on_ballot +"/civicinfo:v2/Candidate/party": party +"/civicinfo:v2/Candidate/phone": phone +"/civicinfo:v2/Candidate/photoUrl": photo_url +"/civicinfo:v2/Channel": channel +"/civicinfo:v2/Channel/id": id +"/civicinfo:v2/Channel/type": type +"/civicinfo:v2/Contest": contest +"/civicinfo:v2/Contest/ballotPlacement": ballot_placement +"/civicinfo:v2/Contest/candidates": candidates +"/civicinfo:v2/Contest/candidates/candidate": candidate +"/civicinfo:v2/Contest/district": district +"/civicinfo:v2/Contest/electorateSpecifications": electorate_specifications +"/civicinfo:v2/Contest/id": id +"/civicinfo:v2/Contest/level": level +"/civicinfo:v2/Contest/level/level": level +"/civicinfo:v2/Contest/numberElected": number_elected +"/civicinfo:v2/Contest/numberVotingFor": number_voting_for +"/civicinfo:v2/Contest/office": office +"/civicinfo:v2/Contest/primaryParty": primary_party +"/civicinfo:v2/Contest/referendumSubtitle": referendum_subtitle +"/civicinfo:v2/Contest/referendumTitle": referendum_title +"/civicinfo:v2/Contest/referendumUrl": referendum_url +"/civicinfo:v2/Contest/roles": roles +"/civicinfo:v2/Contest/roles/role": role +"/civicinfo:v2/Contest/sources": sources +"/civicinfo:v2/Contest/sources/source": source +"/civicinfo:v2/Contest/special": special +"/civicinfo:v2/Contest/type": type +"/civicinfo:v2/DivisionSearchResponse/kind": kind +"/civicinfo:v2/DivisionSearchResponse/results": results +"/civicinfo:v2/DivisionSearchResponse/results/result": result +"/civicinfo:v2/DivisionSearchResult": division_search_result +"/civicinfo:v2/DivisionSearchResult/aliases": aliases +"/civicinfo:v2/DivisionSearchResult/aliases/alias": alias +"/civicinfo:v2/DivisionSearchResult/name": name +"/civicinfo:v2/DivisionSearchResult/ocdId": ocd_id +"/civicinfo:v2/Election": election +"/civicinfo:v2/Election/electionDay": election_day +"/civicinfo:v2/Election/id": id +"/civicinfo:v2/Election/name": name +"/civicinfo:v2/ElectionOfficial": election_official +"/civicinfo:v2/ElectionOfficial/emailAddress": email_address +"/civicinfo:v2/ElectionOfficial/faxNumber": fax_number +"/civicinfo:v2/ElectionOfficial/name": name +"/civicinfo:v2/ElectionOfficial/officePhoneNumber": office_phone_number +"/civicinfo:v2/ElectionOfficial/title": title +"/civicinfo:v2/ElectionsQueryResponse/elections": elections +"/civicinfo:v2/ElectionsQueryResponse/elections/election": election +"/civicinfo:v2/ElectionsQueryResponse/kind": kind +"/civicinfo:v2/ElectoralDistrict": electoral_district +"/civicinfo:v2/ElectoralDistrict/id": id +"/civicinfo:v2/ElectoralDistrict/name": name +"/civicinfo:v2/ElectoralDistrict/scope": scope +"/civicinfo:v2/GeographicDivision": geographic_division +"/civicinfo:v2/GeographicDivision/alsoKnownAs": also_known_as +"/civicinfo:v2/GeographicDivision/alsoKnownAs/also_known_a": also_known_a +"/civicinfo:v2/GeographicDivision/name": name +"/civicinfo:v2/GeographicDivision/officeIndices": office_indices +"/civicinfo:v2/GeographicDivision/officeIndices/office_index": office_index +"/civicinfo:v2/Office": office +"/civicinfo:v2/Office/divisionId": division_id +"/civicinfo:v2/Office/levels": levels +"/civicinfo:v2/Office/levels/level": level +"/civicinfo:v2/Office/name": name +"/civicinfo:v2/Office/officialIndices": official_indices +"/civicinfo:v2/Office/officialIndices/official_index": official_index +"/civicinfo:v2/Office/roles": roles +"/civicinfo:v2/Office/roles/role": role +"/civicinfo:v2/Office/sources": sources +"/civicinfo:v2/Office/sources/source": source +"/civicinfo:v2/Official": official +"/civicinfo:v2/Official/address": address +"/civicinfo:v2/Official/address/address": address +"/civicinfo:v2/Official/channels": channels +"/civicinfo:v2/Official/channels/channel": channel +"/civicinfo:v2/Official/emails": emails +"/civicinfo:v2/Official/emails/email": email +"/civicinfo:v2/Official/name": name +"/civicinfo:v2/Official/party": party +"/civicinfo:v2/Official/phones": phones +"/civicinfo:v2/Official/phones/phone": phone +"/civicinfo:v2/Official/photoUrl": photo_url +"/civicinfo:v2/Official/urls": urls +"/civicinfo:v2/Official/urls/url": url +"/civicinfo:v2/PollingLocation": polling_location +"/civicinfo:v2/PollingLocation/address": address +"/civicinfo:v2/PollingLocation/endDate": end_date +"/civicinfo:v2/PollingLocation/id": id +"/civicinfo:v2/PollingLocation/name": name +"/civicinfo:v2/PollingLocation/notes": notes +"/civicinfo:v2/PollingLocation/pollingHours": polling_hours +"/civicinfo:v2/PollingLocation/sources": sources +"/civicinfo:v2/PollingLocation/sources/source": source +"/civicinfo:v2/PollingLocation/startDate": start_date +"/civicinfo:v2/PollingLocation/voterServices": voter_services +"/civicinfo:v2/RepresentativeInfoData": representative_info_data +"/civicinfo:v2/RepresentativeInfoData/divisions": divisions +"/civicinfo:v2/RepresentativeInfoData/divisions/division": division +"/civicinfo:v2/RepresentativeInfoData/offices": offices +"/civicinfo:v2/RepresentativeInfoData/offices/office": office +"/civicinfo:v2/RepresentativeInfoData/officials": officials +"/civicinfo:v2/RepresentativeInfoData/officials/official": official +"/civicinfo:v2/RepresentativeInfoResponse": representative_info_response +"/civicinfo:v2/RepresentativeInfoResponse/divisions": divisions +"/civicinfo:v2/RepresentativeInfoResponse/divisions/division": division +"/civicinfo:v2/RepresentativeInfoResponse/kind": kind +"/civicinfo:v2/RepresentativeInfoResponse/normalizedInput": normalized_input +"/civicinfo:v2/RepresentativeInfoResponse/offices": offices +"/civicinfo:v2/RepresentativeInfoResponse/offices/office": office +"/civicinfo:v2/RepresentativeInfoResponse/officials": officials +"/civicinfo:v2/RepresentativeInfoResponse/officials/official": official +"/civicinfo:v2/SimpleAddressType": simple_address_type +"/civicinfo:v2/SimpleAddressType/city": city +"/civicinfo:v2/SimpleAddressType/line1": line1 +"/civicinfo:v2/SimpleAddressType/line2": line2 +"/civicinfo:v2/SimpleAddressType/line3": line3 +"/civicinfo:v2/SimpleAddressType/locationName": location_name +"/civicinfo:v2/SimpleAddressType/state": state +"/civicinfo:v2/SimpleAddressType/zip": zip +"/civicinfo:v2/Source": source +"/civicinfo:v2/Source/name": name +"/civicinfo:v2/Source/official": official +"/civicinfo:v2/VoterInfoResponse": voter_info_response +"/civicinfo:v2/VoterInfoResponse/contests": contests +"/civicinfo:v2/VoterInfoResponse/contests/contest": contest +"/civicinfo:v2/VoterInfoResponse/dropOffLocations": drop_off_locations +"/civicinfo:v2/VoterInfoResponse/dropOffLocations/drop_off_location": drop_off_location +"/civicinfo:v2/VoterInfoResponse/earlyVoteSites": early_vote_sites +"/civicinfo:v2/VoterInfoResponse/earlyVoteSites/early_vote_site": early_vote_site +"/civicinfo:v2/VoterInfoResponse/election": election +"/civicinfo:v2/VoterInfoResponse/kind": kind +"/civicinfo:v2/VoterInfoResponse/normalizedInput": normalized_input +"/civicinfo:v2/VoterInfoResponse/otherElections": other_elections +"/civicinfo:v2/VoterInfoResponse/otherElections/other_election": other_election +"/civicinfo:v2/VoterInfoResponse/pollingLocations": polling_locations +"/civicinfo:v2/VoterInfoResponse/pollingLocations/polling_location": polling_location +"/civicinfo:v2/VoterInfoResponse/precinctId": precinct_id +"/civicinfo:v2/VoterInfoResponse/state": state +"/civicinfo:v2/VoterInfoResponse/state/state": state +"/cloudmonitoring:v2beta2/fields": fields +"/cloudmonitoring:v2beta2/key": key +"/cloudmonitoring:v2beta2/quotaUser": quota_user +"/cloudmonitoring:v2beta2/userIp": user_ip +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.create": create_metric_descriptor +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.create/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.delete": delete_metric_descriptor +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.delete/metric": metric +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.delete/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.list": list_metric_descriptors +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.list/count": count +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.list/pageToken": page_token +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.list/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.metricDescriptors.list/query": query +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list": list_timeseries +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/aggregator": aggregator +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/count": count +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/labels": labels +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/metric": metric +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/oldest": oldest +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/pageToken": page_token +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/timespan": timespan +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/window": window +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.list/youngest": youngest +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.write": write_timeseries +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseries.write/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list": list_timeseries_descriptors +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/aggregator": aggregator +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/count": count +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/labels": labels +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/metric": metric +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/oldest": oldest +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/pageToken": page_token +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/project": project +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/timespan": timespan +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/window": window +"/cloudmonitoring:v2beta2/cloudmonitoring.timeseriesDescriptors.list/youngest": youngest +"/cloudmonitoring:v2beta2/DeleteMetricDescriptorResponse": delete_metric_descriptor_response +"/cloudmonitoring:v2beta2/DeleteMetricDescriptorResponse/kind": kind +"/cloudmonitoring:v2beta2/ListMetricDescriptorsRequest": list_metric_descriptors_request +"/cloudmonitoring:v2beta2/ListMetricDescriptorsRequest/kind": kind +"/cloudmonitoring:v2beta2/ListMetricDescriptorsResponse": list_metric_descriptors_response +"/cloudmonitoring:v2beta2/ListMetricDescriptorsResponse/kind": kind +"/cloudmonitoring:v2beta2/ListMetricDescriptorsResponse/metrics": metrics +"/cloudmonitoring:v2beta2/ListMetricDescriptorsResponse/metrics/metric": metric +"/cloudmonitoring:v2beta2/ListMetricDescriptorsResponse/nextPageToken": next_page_token +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsRequest": list_timeseries_descriptors_request +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsRequest/kind": kind +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse": list_timeseries_descriptors_response +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/kind": kind +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/nextPageToken": next_page_token +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/oldest": oldest +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/timeseries": timeseries +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/timeseries/timeseries": timeseries +"/cloudmonitoring:v2beta2/ListTimeseriesDescriptorsResponse/youngest": youngest +"/cloudmonitoring:v2beta2/ListTimeseriesRequest": list_timeseries_request +"/cloudmonitoring:v2beta2/ListTimeseriesRequest/kind": kind +"/cloudmonitoring:v2beta2/ListTimeseriesResponse": list_timeseries_response +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/kind": kind +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/nextPageToken": next_page_token +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/oldest": oldest +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/timeseries": timeseries +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/timeseries/timeseries": timeseries +"/cloudmonitoring:v2beta2/ListTimeseriesResponse/youngest": youngest +"/cloudmonitoring:v2beta2/MetricDescriptor": metric_descriptor +"/cloudmonitoring:v2beta2/MetricDescriptor/description": description +"/cloudmonitoring:v2beta2/MetricDescriptor/labels": labels +"/cloudmonitoring:v2beta2/MetricDescriptor/labels/label": label +"/cloudmonitoring:v2beta2/MetricDescriptor/name": name +"/cloudmonitoring:v2beta2/MetricDescriptor/project": project +"/cloudmonitoring:v2beta2/MetricDescriptor/typeDescriptor": type_descriptor +"/cloudmonitoring:v2beta2/MetricDescriptorLabelDescriptor": metric_descriptor_label_descriptor +"/cloudmonitoring:v2beta2/MetricDescriptorLabelDescriptor/description": description +"/cloudmonitoring:v2beta2/MetricDescriptorLabelDescriptor/key": key +"/cloudmonitoring:v2beta2/MetricDescriptorTypeDescriptor": metric_descriptor_type_descriptor +"/cloudmonitoring:v2beta2/MetricDescriptorTypeDescriptor/metricType": metric_type +"/cloudmonitoring:v2beta2/MetricDescriptorTypeDescriptor/valueType": value_type +"/cloudmonitoring:v2beta2/Point": point +"/cloudmonitoring:v2beta2/Point/boolValue": bool_value +"/cloudmonitoring:v2beta2/Point/distributionValue": distribution_value +"/cloudmonitoring:v2beta2/Point/doubleValue": double_value +"/cloudmonitoring:v2beta2/Point/end": end +"/cloudmonitoring:v2beta2/Point/int64Value": int64_value +"/cloudmonitoring:v2beta2/Point/start": start +"/cloudmonitoring:v2beta2/Point/stringValue": string_value +"/cloudmonitoring:v2beta2/PointDistribution": point_distribution +"/cloudmonitoring:v2beta2/PointDistribution/buckets": buckets +"/cloudmonitoring:v2beta2/PointDistribution/buckets/bucket": bucket +"/cloudmonitoring:v2beta2/PointDistribution/overflowBucket": overflow_bucket +"/cloudmonitoring:v2beta2/PointDistribution/underflowBucket": underflow_bucket +"/cloudmonitoring:v2beta2/PointDistributionBucket": point_distribution_bucket +"/cloudmonitoring:v2beta2/PointDistributionBucket/count": count +"/cloudmonitoring:v2beta2/PointDistributionBucket/lowerBound": lower_bound +"/cloudmonitoring:v2beta2/PointDistributionBucket/upperBound": upper_bound +"/cloudmonitoring:v2beta2/PointDistributionOverflowBucket": point_distribution_overflow_bucket +"/cloudmonitoring:v2beta2/PointDistributionOverflowBucket/count": count +"/cloudmonitoring:v2beta2/PointDistributionOverflowBucket/lowerBound": lower_bound +"/cloudmonitoring:v2beta2/PointDistributionUnderflowBucket": point_distribution_underflow_bucket +"/cloudmonitoring:v2beta2/PointDistributionUnderflowBucket/count": count +"/cloudmonitoring:v2beta2/PointDistributionUnderflowBucket/upperBound": upper_bound +"/cloudmonitoring:v2beta2/Timeseries": timeseries +"/cloudmonitoring:v2beta2/Timeseries/points": points +"/cloudmonitoring:v2beta2/Timeseries/points/point": point +"/cloudmonitoring:v2beta2/Timeseries/timeseriesDesc": timeseries_desc +"/cloudmonitoring:v2beta2/TimeseriesDescriptor": timeseries_descriptor +"/cloudmonitoring:v2beta2/TimeseriesDescriptor/labels": labels +"/cloudmonitoring:v2beta2/TimeseriesDescriptor/labels/label": label +"/cloudmonitoring:v2beta2/TimeseriesDescriptor/metric": metric +"/cloudmonitoring:v2beta2/TimeseriesDescriptor/project": project +"/cloudmonitoring:v2beta2/TimeseriesDescriptorLabel": timeseries_descriptor_label +"/cloudmonitoring:v2beta2/TimeseriesDescriptorLabel/key": key +"/cloudmonitoring:v2beta2/TimeseriesDescriptorLabel/value": value +"/cloudmonitoring:v2beta2/TimeseriesPoint": timeseries_point +"/cloudmonitoring:v2beta2/TimeseriesPoint/point": point +"/cloudmonitoring:v2beta2/TimeseriesPoint/timeseriesDesc": timeseries_desc +"/cloudmonitoring:v2beta2/WriteTimeseriesRequest": write_timeseries_request +"/cloudmonitoring:v2beta2/WriteTimeseriesRequest/commonLabels": common_labels +"/cloudmonitoring:v2beta2/WriteTimeseriesRequest/commonLabels/common_label": common_label +"/cloudmonitoring:v2beta2/WriteTimeseriesRequest/timeseries": timeseries +"/cloudmonitoring:v2beta2/WriteTimeseriesRequest/timeseries/timeseries": timeseries +"/cloudmonitoring:v2beta2/WriteTimeseriesResponse": write_timeseries_response +"/cloudmonitoring:v2beta2/WriteTimeseriesResponse/kind": kind +"/compute:v1/fields": fields +"/compute:v1/key": key +"/compute:v1/quotaUser": quota_user +"/compute:v1/userIp": user_ip +"/compute:v1/compute.addresses.aggregatedList/filter": filter +"/compute:v1/compute.addresses.aggregatedList/maxResults": max_results +"/compute:v1/compute.addresses.aggregatedList/pageToken": page_token +"/compute:v1/compute.addresses.aggregatedList/project": project +"/compute:v1/compute.addresses.delete": delete_address +"/compute:v1/compute.addresses.delete/address": address +"/compute:v1/compute.addresses.delete/project": project +"/compute:v1/compute.addresses.delete/region": region +"/compute:v1/compute.addresses.get": get_address +"/compute:v1/compute.addresses.get/address": address +"/compute:v1/compute.addresses.get/project": project +"/compute:v1/compute.addresses.get/region": region +"/compute:v1/compute.addresses.insert": insert_address +"/compute:v1/compute.addresses.insert/project": project +"/compute:v1/compute.addresses.insert/region": region +"/compute:v1/compute.addresses.list": list_addresses +"/compute:v1/compute.addresses.list/filter": filter +"/compute:v1/compute.addresses.list/maxResults": max_results +"/compute:v1/compute.addresses.list/pageToken": page_token +"/compute:v1/compute.addresses.list/project": project +"/compute:v1/compute.addresses.list/region": region +"/compute:v1/compute.backendServices.delete": delete_backend_service +"/compute:v1/compute.backendServices.delete/backendService": backend_service +"/compute:v1/compute.backendServices.delete/project": project +"/compute:v1/compute.backendServices.get": get_backend_service +"/compute:v1/compute.backendServices.get/backendService": backend_service +"/compute:v1/compute.backendServices.get/project": project +"/compute:v1/compute.backendServices.getHealth/backendService": backend_service +"/compute:v1/compute.backendServices.getHealth/project": project +"/compute:v1/compute.backendServices.insert": insert_backend_service +"/compute:v1/compute.backendServices.insert/project": project +"/compute:v1/compute.backendServices.list": list_backend_services +"/compute:v1/compute.backendServices.list/filter": filter +"/compute:v1/compute.backendServices.list/maxResults": max_results +"/compute:v1/compute.backendServices.list/pageToken": page_token +"/compute:v1/compute.backendServices.list/project": project +"/compute:v1/compute.backendServices.patch": patch_backend_service +"/compute:v1/compute.backendServices.patch/backendService": backend_service +"/compute:v1/compute.backendServices.patch/project": project +"/compute:v1/compute.backendServices.update": update_backend_service +"/compute:v1/compute.backendServices.update/backendService": backend_service +"/compute:v1/compute.backendServices.update/project": project +"/compute:v1/compute.diskTypes.aggregatedList/filter": filter +"/compute:v1/compute.diskTypes.aggregatedList/maxResults": max_results +"/compute:v1/compute.diskTypes.aggregatedList/pageToken": page_token +"/compute:v1/compute.diskTypes.aggregatedList/project": project +"/compute:v1/compute.diskTypes.get": get_disk_type +"/compute:v1/compute.diskTypes.get/diskType": disk_type +"/compute:v1/compute.diskTypes.get/project": project +"/compute:v1/compute.diskTypes.get/zone": zone +"/compute:v1/compute.diskTypes.list": list_disk_types +"/compute:v1/compute.diskTypes.list/filter": filter +"/compute:v1/compute.diskTypes.list/maxResults": max_results +"/compute:v1/compute.diskTypes.list/pageToken": page_token +"/compute:v1/compute.diskTypes.list/project": project +"/compute:v1/compute.diskTypes.list/zone": zone +"/compute:v1/compute.disks.aggregatedList/filter": filter +"/compute:v1/compute.disks.aggregatedList/maxResults": max_results +"/compute:v1/compute.disks.aggregatedList/pageToken": page_token +"/compute:v1/compute.disks.aggregatedList/project": project +"/compute:v1/compute.disks.createSnapshot/disk": disk +"/compute:v1/compute.disks.createSnapshot/project": project +"/compute:v1/compute.disks.createSnapshot/zone": zone +"/compute:v1/compute.disks.delete": delete_disk +"/compute:v1/compute.disks.delete/disk": disk +"/compute:v1/compute.disks.delete/project": project +"/compute:v1/compute.disks.delete/zone": zone +"/compute:v1/compute.disks.get": get_disk +"/compute:v1/compute.disks.get/disk": disk +"/compute:v1/compute.disks.get/project": project +"/compute:v1/compute.disks.get/zone": zone +"/compute:v1/compute.disks.insert": insert_disk +"/compute:v1/compute.disks.insert/project": project +"/compute:v1/compute.disks.insert/sourceImage": source_image +"/compute:v1/compute.disks.insert/zone": zone +"/compute:v1/compute.disks.list": list_disks +"/compute:v1/compute.disks.list/filter": filter +"/compute:v1/compute.disks.list/maxResults": max_results +"/compute:v1/compute.disks.list/pageToken": page_token +"/compute:v1/compute.disks.list/project": project +"/compute:v1/compute.disks.list/zone": zone +"/compute:v1/compute.firewalls.delete": delete_firewall +"/compute:v1/compute.firewalls.delete/firewall": firewall +"/compute:v1/compute.firewalls.delete/project": project +"/compute:v1/compute.firewalls.get": get_firewall +"/compute:v1/compute.firewalls.get/firewall": firewall +"/compute:v1/compute.firewalls.get/project": project +"/compute:v1/compute.firewalls.insert": insert_firewall +"/compute:v1/compute.firewalls.insert/project": project +"/compute:v1/compute.firewalls.list": list_firewalls +"/compute:v1/compute.firewalls.list/filter": filter +"/compute:v1/compute.firewalls.list/maxResults": max_results +"/compute:v1/compute.firewalls.list/pageToken": page_token +"/compute:v1/compute.firewalls.list/project": project +"/compute:v1/compute.firewalls.patch": patch_firewall +"/compute:v1/compute.firewalls.patch/firewall": firewall +"/compute:v1/compute.firewalls.patch/project": project +"/compute:v1/compute.firewalls.update": update_firewall +"/compute:v1/compute.firewalls.update/firewall": firewall +"/compute:v1/compute.firewalls.update/project": project +"/compute:v1/compute.forwardingRules.aggregatedList/filter": filter +"/compute:v1/compute.forwardingRules.aggregatedList/maxResults": max_results +"/compute:v1/compute.forwardingRules.aggregatedList/pageToken": page_token +"/compute:v1/compute.forwardingRules.aggregatedList/project": project +"/compute:v1/compute.forwardingRules.delete": delete_forwarding_rule +"/compute:v1/compute.forwardingRules.delete/forwardingRule": forwarding_rule +"/compute:v1/compute.forwardingRules.delete/project": project +"/compute:v1/compute.forwardingRules.delete/region": region +"/compute:v1/compute.forwardingRules.get": get_forwarding_rule +"/compute:v1/compute.forwardingRules.get/forwardingRule": forwarding_rule +"/compute:v1/compute.forwardingRules.get/project": project +"/compute:v1/compute.forwardingRules.get/region": region +"/compute:v1/compute.forwardingRules.insert": insert_forwarding_rule +"/compute:v1/compute.forwardingRules.insert/project": project +"/compute:v1/compute.forwardingRules.insert/region": region +"/compute:v1/compute.forwardingRules.list": list_forwarding_rules +"/compute:v1/compute.forwardingRules.list/filter": filter +"/compute:v1/compute.forwardingRules.list/maxResults": max_results +"/compute:v1/compute.forwardingRules.list/pageToken": page_token +"/compute:v1/compute.forwardingRules.list/project": project +"/compute:v1/compute.forwardingRules.list/region": region +"/compute:v1/compute.forwardingRules.setTarget/forwardingRule": forwarding_rule +"/compute:v1/compute.forwardingRules.setTarget/project": project +"/compute:v1/compute.forwardingRules.setTarget/region": region +"/compute:v1/compute.globalAddresses.delete": delete_global_address +"/compute:v1/compute.globalAddresses.delete/address": address +"/compute:v1/compute.globalAddresses.delete/project": project +"/compute:v1/compute.globalAddresses.get": get_global_address +"/compute:v1/compute.globalAddresses.get/address": address +"/compute:v1/compute.globalAddresses.get/project": project +"/compute:v1/compute.globalAddresses.insert": insert_global_address +"/compute:v1/compute.globalAddresses.insert/project": project +"/compute:v1/compute.globalAddresses.list": list_global_addresses +"/compute:v1/compute.globalAddresses.list/filter": filter +"/compute:v1/compute.globalAddresses.list/maxResults": max_results +"/compute:v1/compute.globalAddresses.list/pageToken": page_token +"/compute:v1/compute.globalAddresses.list/project": project +"/compute:v1/compute.globalForwardingRules.delete": delete_global_forwarding_rule +"/compute:v1/compute.globalForwardingRules.delete/forwardingRule": forwarding_rule +"/compute:v1/compute.globalForwardingRules.delete/project": project +"/compute:v1/compute.globalForwardingRules.get": get_global_forwarding_rule +"/compute:v1/compute.globalForwardingRules.get/forwardingRule": forwarding_rule +"/compute:v1/compute.globalForwardingRules.get/project": project +"/compute:v1/compute.globalForwardingRules.insert": insert_global_forwarding_rule +"/compute:v1/compute.globalForwardingRules.insert/project": project +"/compute:v1/compute.globalForwardingRules.list": list_global_forwarding_rules +"/compute:v1/compute.globalForwardingRules.list/filter": filter +"/compute:v1/compute.globalForwardingRules.list/maxResults": max_results +"/compute:v1/compute.globalForwardingRules.list/pageToken": page_token +"/compute:v1/compute.globalForwardingRules.list/project": project +"/compute:v1/compute.globalForwardingRules.setTarget/forwardingRule": forwarding_rule +"/compute:v1/compute.globalForwardingRules.setTarget/project": project +"/compute:v1/compute.globalOperations.aggregatedList/filter": filter +"/compute:v1/compute.globalOperations.aggregatedList/maxResults": max_results +"/compute:v1/compute.globalOperations.aggregatedList/pageToken": page_token +"/compute:v1/compute.globalOperations.aggregatedList/project": project +"/compute:v1/compute.globalOperations.delete": delete_global_operation +"/compute:v1/compute.globalOperations.delete/operation": operation +"/compute:v1/compute.globalOperations.delete/project": project +"/compute:v1/compute.globalOperations.get": get_global_operation +"/compute:v1/compute.globalOperations.get/operation": operation +"/compute:v1/compute.globalOperations.get/project": project +"/compute:v1/compute.globalOperations.list": list_global_operations +"/compute:v1/compute.globalOperations.list/filter": filter +"/compute:v1/compute.globalOperations.list/maxResults": max_results +"/compute:v1/compute.globalOperations.list/pageToken": page_token +"/compute:v1/compute.globalOperations.list/project": project +"/compute:v1/compute.httpHealthChecks.delete": delete_http_health_check +"/compute:v1/compute.httpHealthChecks.delete/httpHealthCheck": http_health_check +"/compute:v1/compute.httpHealthChecks.delete/project": project +"/compute:v1/compute.httpHealthChecks.get": get_http_health_check +"/compute:v1/compute.httpHealthChecks.get/httpHealthCheck": http_health_check +"/compute:v1/compute.httpHealthChecks.get/project": project +"/compute:v1/compute.httpHealthChecks.insert": insert_http_health_check +"/compute:v1/compute.httpHealthChecks.insert/project": project +"/compute:v1/compute.httpHealthChecks.list": list_http_health_checks +"/compute:v1/compute.httpHealthChecks.list/filter": filter +"/compute:v1/compute.httpHealthChecks.list/maxResults": max_results +"/compute:v1/compute.httpHealthChecks.list/pageToken": page_token +"/compute:v1/compute.httpHealthChecks.list/project": project +"/compute:v1/compute.httpHealthChecks.patch": patch_http_health_check +"/compute:v1/compute.httpHealthChecks.patch/httpHealthCheck": http_health_check +"/compute:v1/compute.httpHealthChecks.patch/project": project +"/compute:v1/compute.httpHealthChecks.update": update_http_health_check +"/compute:v1/compute.httpHealthChecks.update/httpHealthCheck": http_health_check +"/compute:v1/compute.httpHealthChecks.update/project": project +"/compute:v1/compute.images.delete": delete_image +"/compute:v1/compute.images.delete/image": image +"/compute:v1/compute.images.delete/project": project +"/compute:v1/compute.images.deprecate": deprecate_image +"/compute:v1/compute.images.deprecate/image": image +"/compute:v1/compute.images.deprecate/project": project +"/compute:v1/compute.images.get": get_image +"/compute:v1/compute.images.get/image": image +"/compute:v1/compute.images.get/project": project +"/compute:v1/compute.images.insert": insert_image +"/compute:v1/compute.images.insert/project": project +"/compute:v1/compute.images.list": list_images +"/compute:v1/compute.images.list/filter": filter +"/compute:v1/compute.images.list/maxResults": max_results +"/compute:v1/compute.images.list/pageToken": page_token +"/compute:v1/compute.images.list/project": project +"/compute:v1/compute.instanceTemplates.delete": delete_instance_template +"/compute:v1/compute.instanceTemplates.delete/instanceTemplate": instance_template +"/compute:v1/compute.instanceTemplates.delete/project": project +"/compute:v1/compute.instanceTemplates.get": get_instance_template +"/compute:v1/compute.instanceTemplates.get/instanceTemplate": instance_template +"/compute:v1/compute.instanceTemplates.get/project": project +"/compute:v1/compute.instanceTemplates.insert": insert_instance_template +"/compute:v1/compute.instanceTemplates.insert/project": project +"/compute:v1/compute.instanceTemplates.list": list_instance_templates +"/compute:v1/compute.instanceTemplates.list/filter": filter +"/compute:v1/compute.instanceTemplates.list/maxResults": max_results +"/compute:v1/compute.instanceTemplates.list/pageToken": page_token +"/compute:v1/compute.instanceTemplates.list/project": project +"/compute:v1/compute.instances.addAccessConfig/instance": instance +"/compute:v1/compute.instances.addAccessConfig/networkInterface": network_interface +"/compute:v1/compute.instances.addAccessConfig/project": project +"/compute:v1/compute.instances.addAccessConfig/zone": zone +"/compute:v1/compute.instances.aggregatedList/filter": filter +"/compute:v1/compute.instances.aggregatedList/maxResults": max_results +"/compute:v1/compute.instances.aggregatedList/pageToken": page_token +"/compute:v1/compute.instances.aggregatedList/project": project +"/compute:v1/compute.instances.attachDisk/instance": instance +"/compute:v1/compute.instances.attachDisk/project": project +"/compute:v1/compute.instances.attachDisk/zone": zone +"/compute:v1/compute.instances.delete": delete_instance +"/compute:v1/compute.instances.delete/instance": instance +"/compute:v1/compute.instances.delete/project": project +"/compute:v1/compute.instances.delete/zone": zone +"/compute:v1/compute.instances.deleteAccessConfig/accessConfig": access_config +"/compute:v1/compute.instances.deleteAccessConfig/instance": instance +"/compute:v1/compute.instances.deleteAccessConfig/networkInterface": network_interface +"/compute:v1/compute.instances.deleteAccessConfig/project": project +"/compute:v1/compute.instances.deleteAccessConfig/zone": zone +"/compute:v1/compute.instances.detachDisk/deviceName": device_name +"/compute:v1/compute.instances.detachDisk/instance": instance +"/compute:v1/compute.instances.detachDisk/project": project +"/compute:v1/compute.instances.detachDisk/zone": zone +"/compute:v1/compute.instances.get": get_instance +"/compute:v1/compute.instances.get/instance": instance +"/compute:v1/compute.instances.get/project": project +"/compute:v1/compute.instances.get/zone": zone +"/compute:v1/compute.instances.getSerialPortOutput/instance": instance +"/compute:v1/compute.instances.getSerialPortOutput/port": port +"/compute:v1/compute.instances.getSerialPortOutput/project": project +"/compute:v1/compute.instances.getSerialPortOutput/zone": zone +"/compute:v1/compute.instances.insert": insert_instance +"/compute:v1/compute.instances.insert/project": project +"/compute:v1/compute.instances.insert/zone": zone +"/compute:v1/compute.instances.list": list_instances +"/compute:v1/compute.instances.list/filter": filter +"/compute:v1/compute.instances.list/maxResults": max_results +"/compute:v1/compute.instances.list/pageToken": page_token +"/compute:v1/compute.instances.list/project": project +"/compute:v1/compute.instances.list/zone": zone +"/compute:v1/compute.instances.reset": reset_instance +"/compute:v1/compute.instances.reset/instance": instance +"/compute:v1/compute.instances.reset/project": project +"/compute:v1/compute.instances.reset/zone": zone +"/compute:v1/compute.instances.setDiskAutoDelete/autoDelete": auto_delete +"/compute:v1/compute.instances.setDiskAutoDelete/deviceName": device_name +"/compute:v1/compute.instances.setDiskAutoDelete/instance": instance +"/compute:v1/compute.instances.setDiskAutoDelete/project": project +"/compute:v1/compute.instances.setDiskAutoDelete/zone": zone +"/compute:v1/compute.instances.setMetadata/instance": instance +"/compute:v1/compute.instances.setMetadata/project": project +"/compute:v1/compute.instances.setMetadata/zone": zone +"/compute:v1/compute.instances.setScheduling/instance": instance +"/compute:v1/compute.instances.setScheduling/project": project +"/compute:v1/compute.instances.setScheduling/zone": zone +"/compute:v1/compute.instances.setTags/instance": instance +"/compute:v1/compute.instances.setTags/project": project +"/compute:v1/compute.instances.setTags/zone": zone +"/compute:v1/compute.instances.start": start_instance +"/compute:v1/compute.instances.start/instance": instance +"/compute:v1/compute.instances.start/project": project +"/compute:v1/compute.instances.start/zone": zone +"/compute:v1/compute.instances.stop": stop_instance +"/compute:v1/compute.instances.stop/instance": instance +"/compute:v1/compute.instances.stop/project": project +"/compute:v1/compute.instances.stop/zone": zone +"/compute:v1/compute.licenses.get": get_license +"/compute:v1/compute.licenses.get/license": license +"/compute:v1/compute.licenses.get/project": project +"/compute:v1/compute.machineTypes.aggregatedList/filter": filter +"/compute:v1/compute.machineTypes.aggregatedList/maxResults": max_results +"/compute:v1/compute.machineTypes.aggregatedList/pageToken": page_token +"/compute:v1/compute.machineTypes.aggregatedList/project": project +"/compute:v1/compute.machineTypes.get": get_machine_type +"/compute:v1/compute.machineTypes.get/machineType": machine_type +"/compute:v1/compute.machineTypes.get/project": project +"/compute:v1/compute.machineTypes.get/zone": zone +"/compute:v1/compute.machineTypes.list": list_machine_types +"/compute:v1/compute.machineTypes.list/filter": filter +"/compute:v1/compute.machineTypes.list/maxResults": max_results +"/compute:v1/compute.machineTypes.list/pageToken": page_token +"/compute:v1/compute.machineTypes.list/project": project +"/compute:v1/compute.machineTypes.list/zone": zone +"/compute:v1/compute.networks.delete": delete_network +"/compute:v1/compute.networks.delete/network": network +"/compute:v1/compute.networks.delete/project": project +"/compute:v1/compute.networks.get": get_network +"/compute:v1/compute.networks.get/network": network +"/compute:v1/compute.networks.get/project": project +"/compute:v1/compute.networks.insert": insert_network +"/compute:v1/compute.networks.insert/project": project +"/compute:v1/compute.networks.list": list_networks +"/compute:v1/compute.networks.list/filter": filter +"/compute:v1/compute.networks.list/maxResults": max_results +"/compute:v1/compute.networks.list/pageToken": page_token +"/compute:v1/compute.networks.list/project": project +"/compute:v1/compute.projects.get": get_project +"/compute:v1/compute.projects.get/project": project +"/compute:v1/compute.projects.moveDisk/project": project +"/compute:v1/compute.projects.moveInstance/project": project +"/compute:v1/compute.projects.setCommonInstanceMetadata/project": project +"/compute:v1/compute.projects.setUsageExportBucket/project": project +"/compute:v1/compute.regionOperations.delete": delete_region_operation +"/compute:v1/compute.regionOperations.delete/operation": operation +"/compute:v1/compute.regionOperations.delete/project": project +"/compute:v1/compute.regionOperations.delete/region": region +"/compute:v1/compute.regionOperations.get": get_region_operation +"/compute:v1/compute.regionOperations.get/operation": operation +"/compute:v1/compute.regionOperations.get/project": project +"/compute:v1/compute.regionOperations.get/region": region +"/compute:v1/compute.regionOperations.list": list_region_operations +"/compute:v1/compute.regionOperations.list/filter": filter +"/compute:v1/compute.regionOperations.list/maxResults": max_results +"/compute:v1/compute.regionOperations.list/pageToken": page_token +"/compute:v1/compute.regionOperations.list/project": project +"/compute:v1/compute.regionOperations.list/region": region +"/compute:v1/compute.regions.get": get_region +"/compute:v1/compute.regions.get/project": project +"/compute:v1/compute.regions.get/region": region +"/compute:v1/compute.regions.list": list_regions +"/compute:v1/compute.regions.list/filter": filter +"/compute:v1/compute.regions.list/maxResults": max_results +"/compute:v1/compute.regions.list/pageToken": page_token +"/compute:v1/compute.regions.list/project": project +"/compute:v1/compute.routes.delete": delete_route +"/compute:v1/compute.routes.delete/project": project +"/compute:v1/compute.routes.delete/route": route +"/compute:v1/compute.routes.get": get_route +"/compute:v1/compute.routes.get/project": project +"/compute:v1/compute.routes.get/route": route +"/compute:v1/compute.routes.insert": insert_route +"/compute:v1/compute.routes.insert/project": project +"/compute:v1/compute.routes.list": list_routes +"/compute:v1/compute.routes.list/filter": filter +"/compute:v1/compute.routes.list/maxResults": max_results +"/compute:v1/compute.routes.list/pageToken": page_token +"/compute:v1/compute.routes.list/project": project +"/compute:v1/compute.snapshots.delete": delete_snapshot +"/compute:v1/compute.snapshots.delete/project": project +"/compute:v1/compute.snapshots.delete/snapshot": snapshot +"/compute:v1/compute.snapshots.get": get_snapshot +"/compute:v1/compute.snapshots.get/project": project +"/compute:v1/compute.snapshots.get/snapshot": snapshot +"/compute:v1/compute.snapshots.list": list_snapshots +"/compute:v1/compute.snapshots.list/filter": filter +"/compute:v1/compute.snapshots.list/maxResults": max_results +"/compute:v1/compute.snapshots.list/pageToken": page_token +"/compute:v1/compute.snapshots.list/project": project +"/compute:v1/compute.targetHttpProxies.delete": delete_target_http_proxy +"/compute:v1/compute.targetHttpProxies.delete/project": project +"/compute:v1/compute.targetHttpProxies.delete/targetHttpProxy": target_http_proxy +"/compute:v1/compute.targetHttpProxies.get": get_target_http_proxy +"/compute:v1/compute.targetHttpProxies.get/project": project +"/compute:v1/compute.targetHttpProxies.get/targetHttpProxy": target_http_proxy +"/compute:v1/compute.targetHttpProxies.insert": insert_target_http_proxy +"/compute:v1/compute.targetHttpProxies.insert/project": project +"/compute:v1/compute.targetHttpProxies.list": list_target_http_proxies +"/compute:v1/compute.targetHttpProxies.list/filter": filter +"/compute:v1/compute.targetHttpProxies.list/maxResults": max_results +"/compute:v1/compute.targetHttpProxies.list/pageToken": page_token +"/compute:v1/compute.targetHttpProxies.list/project": project +"/compute:v1/compute.targetHttpProxies.setUrlMap/project": project +"/compute:v1/compute.targetHttpProxies.setUrlMap/targetHttpProxy": target_http_proxy +"/compute:v1/compute.targetInstances.aggregatedList/filter": filter +"/compute:v1/compute.targetInstances.aggregatedList/maxResults": max_results +"/compute:v1/compute.targetInstances.aggregatedList/pageToken": page_token +"/compute:v1/compute.targetInstances.aggregatedList/project": project +"/compute:v1/compute.targetInstances.delete": delete_target_instance +"/compute:v1/compute.targetInstances.delete/project": project +"/compute:v1/compute.targetInstances.delete/targetInstance": target_instance +"/compute:v1/compute.targetInstances.delete/zone": zone +"/compute:v1/compute.targetInstances.get": get_target_instance +"/compute:v1/compute.targetInstances.get/project": project +"/compute:v1/compute.targetInstances.get/targetInstance": target_instance +"/compute:v1/compute.targetInstances.get/zone": zone +"/compute:v1/compute.targetInstances.insert": insert_target_instance +"/compute:v1/compute.targetInstances.insert/project": project +"/compute:v1/compute.targetInstances.insert/zone": zone +"/compute:v1/compute.targetInstances.list": list_target_instances +"/compute:v1/compute.targetInstances.list/filter": filter +"/compute:v1/compute.targetInstances.list/maxResults": max_results +"/compute:v1/compute.targetInstances.list/pageToken": page_token +"/compute:v1/compute.targetInstances.list/project": project +"/compute:v1/compute.targetInstances.list/zone": zone +"/compute:v1/compute.targetPools.addHealthCheck/project": project +"/compute:v1/compute.targetPools.addHealthCheck/region": region +"/compute:v1/compute.targetPools.addHealthCheck/targetPool": target_pool +"/compute:v1/compute.targetPools.addInstance/project": project +"/compute:v1/compute.targetPools.addInstance/region": region +"/compute:v1/compute.targetPools.addInstance/targetPool": target_pool +"/compute:v1/compute.targetPools.aggregatedList/filter": filter +"/compute:v1/compute.targetPools.aggregatedList/maxResults": max_results +"/compute:v1/compute.targetPools.aggregatedList/pageToken": page_token +"/compute:v1/compute.targetPools.aggregatedList/project": project +"/compute:v1/compute.targetPools.delete": delete_target_pool +"/compute:v1/compute.targetPools.delete/project": project +"/compute:v1/compute.targetPools.delete/region": region +"/compute:v1/compute.targetPools.delete/targetPool": target_pool +"/compute:v1/compute.targetPools.get": get_target_pool +"/compute:v1/compute.targetPools.get/project": project +"/compute:v1/compute.targetPools.get/region": region +"/compute:v1/compute.targetPools.get/targetPool": target_pool +"/compute:v1/compute.targetPools.getHealth/project": project +"/compute:v1/compute.targetPools.getHealth/region": region +"/compute:v1/compute.targetPools.getHealth/targetPool": target_pool +"/compute:v1/compute.targetPools.insert": insert_target_pool +"/compute:v1/compute.targetPools.insert/project": project +"/compute:v1/compute.targetPools.insert/region": region +"/compute:v1/compute.targetPools.list": list_target_pools +"/compute:v1/compute.targetPools.list/filter": filter +"/compute:v1/compute.targetPools.list/maxResults": max_results +"/compute:v1/compute.targetPools.list/pageToken": page_token +"/compute:v1/compute.targetPools.list/project": project +"/compute:v1/compute.targetPools.list/region": region +"/compute:v1/compute.targetPools.removeHealthCheck/project": project +"/compute:v1/compute.targetPools.removeHealthCheck/region": region +"/compute:v1/compute.targetPools.removeHealthCheck/targetPool": target_pool +"/compute:v1/compute.targetPools.removeInstance/project": project +"/compute:v1/compute.targetPools.removeInstance/region": region +"/compute:v1/compute.targetPools.removeInstance/targetPool": target_pool +"/compute:v1/compute.targetPools.setBackup/failoverRatio": failover_ratio +"/compute:v1/compute.targetPools.setBackup/project": project +"/compute:v1/compute.targetPools.setBackup/region": region +"/compute:v1/compute.targetPools.setBackup/targetPool": target_pool +"/compute:v1/compute.targetVpnGateways.aggregatedList/filter": filter +"/compute:v1/compute.targetVpnGateways.aggregatedList/maxResults": max_results +"/compute:v1/compute.targetVpnGateways.aggregatedList/pageToken": page_token +"/compute:v1/compute.targetVpnGateways.aggregatedList/project": project +"/compute:v1/compute.targetVpnGateways.delete/project": project +"/compute:v1/compute.targetVpnGateways.delete/region": region +"/compute:v1/compute.targetVpnGateways.delete/targetVpnGateway": target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.get/project": project +"/compute:v1/compute.targetVpnGateways.get/region": region +"/compute:v1/compute.targetVpnGateways.get/targetVpnGateway": target_vpn_gateway +"/compute:v1/compute.targetVpnGateways.insert/project": project +"/compute:v1/compute.targetVpnGateways.insert/region": region +"/compute:v1/compute.targetVpnGateways.list/filter": filter +"/compute:v1/compute.targetVpnGateways.list/maxResults": max_results +"/compute:v1/compute.targetVpnGateways.list/pageToken": page_token +"/compute:v1/compute.targetVpnGateways.list/project": project +"/compute:v1/compute.targetVpnGateways.list/region": region +"/compute:v1/compute.urlMaps.delete": delete_url_map +"/compute:v1/compute.urlMaps.delete/project": project +"/compute:v1/compute.urlMaps.delete/urlMap": url_map +"/compute:v1/compute.urlMaps.get": get_url_map +"/compute:v1/compute.urlMaps.get/project": project +"/compute:v1/compute.urlMaps.get/urlMap": url_map +"/compute:v1/compute.urlMaps.insert": insert_url_map +"/compute:v1/compute.urlMaps.insert/project": project +"/compute:v1/compute.urlMaps.list": list_url_maps +"/compute:v1/compute.urlMaps.list/filter": filter +"/compute:v1/compute.urlMaps.list/maxResults": max_results +"/compute:v1/compute.urlMaps.list/pageToken": page_token +"/compute:v1/compute.urlMaps.list/project": project +"/compute:v1/compute.urlMaps.patch": patch_url_map +"/compute:v1/compute.urlMaps.patch/project": project +"/compute:v1/compute.urlMaps.patch/urlMap": url_map +"/compute:v1/compute.urlMaps.update": update_url_map +"/compute:v1/compute.urlMaps.update/project": project +"/compute:v1/compute.urlMaps.update/urlMap": url_map +"/compute:v1/compute.urlMaps.validate": validate_url_map +"/compute:v1/compute.urlMaps.validate/project": project +"/compute:v1/compute.urlMaps.validate/urlMap": url_map +"/compute:v1/compute.vpnTunnels.aggregatedList/filter": filter +"/compute:v1/compute.vpnTunnels.aggregatedList/maxResults": max_results +"/compute:v1/compute.vpnTunnels.aggregatedList/pageToken": page_token +"/compute:v1/compute.vpnTunnels.aggregatedList/project": project +"/compute:v1/compute.vpnTunnels.delete": delete_vpn_tunnel +"/compute:v1/compute.vpnTunnels.delete/project": project +"/compute:v1/compute.vpnTunnels.delete/region": region +"/compute:v1/compute.vpnTunnels.delete/vpnTunnel": vpn_tunnel +"/compute:v1/compute.vpnTunnels.get": get_vpn_tunnel +"/compute:v1/compute.vpnTunnels.get/project": project +"/compute:v1/compute.vpnTunnels.get/region": region +"/compute:v1/compute.vpnTunnels.get/vpnTunnel": vpn_tunnel +"/compute:v1/compute.vpnTunnels.insert": insert_vpn_tunnel +"/compute:v1/compute.vpnTunnels.insert/project": project +"/compute:v1/compute.vpnTunnels.insert/region": region +"/compute:v1/compute.vpnTunnels.list": list_vpn_tunnels +"/compute:v1/compute.vpnTunnels.list/filter": filter +"/compute:v1/compute.vpnTunnels.list/maxResults": max_results +"/compute:v1/compute.vpnTunnels.list/pageToken": page_token +"/compute:v1/compute.vpnTunnels.list/project": project +"/compute:v1/compute.vpnTunnels.list/region": region +"/compute:v1/compute.zoneOperations.delete": delete_zone_operation +"/compute:v1/compute.zoneOperations.delete/operation": operation +"/compute:v1/compute.zoneOperations.delete/project": project +"/compute:v1/compute.zoneOperations.delete/zone": zone +"/compute:v1/compute.zoneOperations.get": get_zone_operation +"/compute:v1/compute.zoneOperations.get/operation": operation +"/compute:v1/compute.zoneOperations.get/project": project +"/compute:v1/compute.zoneOperations.get/zone": zone +"/compute:v1/compute.zoneOperations.list": list_zone_operations +"/compute:v1/compute.zoneOperations.list/filter": filter +"/compute:v1/compute.zoneOperations.list/maxResults": max_results +"/compute:v1/compute.zoneOperations.list/pageToken": page_token +"/compute:v1/compute.zoneOperations.list/project": project +"/compute:v1/compute.zoneOperations.list/zone": zone +"/compute:v1/compute.zones.get": get_zone +"/compute:v1/compute.zones.get/project": project +"/compute:v1/compute.zones.get/zone": zone +"/compute:v1/compute.zones.list": list_zones +"/compute:v1/compute.zones.list/filter": filter +"/compute:v1/compute.zones.list/maxResults": max_results +"/compute:v1/compute.zones.list/pageToken": page_token +"/compute:v1/compute.zones.list/project": project +"/compute:v1/AccessConfig": access_config +"/compute:v1/AccessConfig/kind": kind +"/compute:v1/AccessConfig/name": name +"/compute:v1/AccessConfig/natIP": nat_ip +"/compute:v1/AccessConfig/type": type +"/compute:v1/Address": address +"/compute:v1/Address/address": address +"/compute:v1/Address/creationTimestamp": creation_timestamp +"/compute:v1/Address/description": description +"/compute:v1/Address/id": id +"/compute:v1/Address/kind": kind +"/compute:v1/Address/name": name +"/compute:v1/Address/region": region +"/compute:v1/Address/selfLink": self_link +"/compute:v1/Address/status": status +"/compute:v1/Address/users": users +"/compute:v1/Address/users/user": user +"/compute:v1/AddressAggregatedList": address_aggregated_list +"/compute:v1/AddressAggregatedList/id": id +"/compute:v1/AddressAggregatedList/items": items +"/compute:v1/AddressAggregatedList/items/item": item +"/compute:v1/AddressAggregatedList/kind": kind +"/compute:v1/AddressAggregatedList/nextPageToken": next_page_token +"/compute:v1/AddressAggregatedList/selfLink": self_link +"/compute:v1/AddressList": address_list +"/compute:v1/AddressList/id": id +"/compute:v1/AddressList/items": items +"/compute:v1/AddressList/items/item": item +"/compute:v1/AddressList/kind": kind +"/compute:v1/AddressList/nextPageToken": next_page_token +"/compute:v1/AddressList/selfLink": self_link +"/compute:v1/AddressesScopedList": addresses_scoped_list +"/compute:v1/AddressesScopedList/addresses": addresses +"/compute:v1/AddressesScopedList/addresses/address": address +"/compute:v1/AddressesScopedList/warning": warning +"/compute:v1/AddressesScopedList/warning/code": code +"/compute:v1/AddressesScopedList/warning/data": data +"/compute:v1/AddressesScopedList/warning/data/datum": datum +"/compute:v1/AddressesScopedList/warning/data/datum/key": key +"/compute:v1/AddressesScopedList/warning/data/datum/value": value +"/compute:v1/AddressesScopedList/warning/message": message +"/compute:v1/AttachedDisk": attached_disk +"/compute:v1/AttachedDisk/autoDelete": auto_delete +"/compute:v1/AttachedDisk/boot": boot +"/compute:v1/AttachedDisk/deviceName": device_name +"/compute:v1/AttachedDisk/index": index +"/compute:v1/AttachedDisk/initializeParams": initialize_params +"/compute:v1/AttachedDisk/interface": interface +"/compute:v1/AttachedDisk/kind": kind +"/compute:v1/AttachedDisk/licenses": licenses +"/compute:v1/AttachedDisk/licenses/license": license +"/compute:v1/AttachedDisk/mode": mode +"/compute:v1/AttachedDisk/source": source +"/compute:v1/AttachedDisk/type": type +"/compute:v1/AttachedDiskInitializeParams": attached_disk_initialize_params +"/compute:v1/AttachedDiskInitializeParams/diskName": disk_name +"/compute:v1/AttachedDiskInitializeParams/diskSizeGb": disk_size_gb +"/compute:v1/AttachedDiskInitializeParams/diskType": disk_type +"/compute:v1/AttachedDiskInitializeParams/sourceImage": source_image +"/compute:v1/Backend": backend +"/compute:v1/Backend/balancingMode": balancing_mode +"/compute:v1/Backend/capacityScaler": capacity_scaler +"/compute:v1/Backend/description": description +"/compute:v1/Backend/group": group +"/compute:v1/Backend/maxRate": max_rate +"/compute:v1/Backend/maxRatePerInstance": max_rate_per_instance +"/compute:v1/Backend/maxUtilization": max_utilization +"/compute:v1/BackendService": backend_service +"/compute:v1/BackendService/backends": backends +"/compute:v1/BackendService/backends/backend": backend +"/compute:v1/BackendService/creationTimestamp": creation_timestamp +"/compute:v1/BackendService/description": description +"/compute:v1/BackendService/fingerprint": fingerprint +"/compute:v1/BackendService/healthChecks": health_checks +"/compute:v1/BackendService/healthChecks/health_check": health_check +"/compute:v1/BackendService/id": id +"/compute:v1/BackendService/kind": kind +"/compute:v1/BackendService/name": name +"/compute:v1/BackendService/port": port +"/compute:v1/BackendService/portName": port_name +"/compute:v1/BackendService/protocol": protocol +"/compute:v1/BackendService/selfLink": self_link +"/compute:v1/BackendService/timeoutSec": timeout_sec +"/compute:v1/BackendServiceGroupHealth": backend_service_group_health +"/compute:v1/BackendServiceGroupHealth/healthStatus": health_status +"/compute:v1/BackendServiceGroupHealth/healthStatus/health_status": health_status +"/compute:v1/BackendServiceGroupHealth/kind": kind +"/compute:v1/BackendServiceList": backend_service_list +"/compute:v1/BackendServiceList/id": id +"/compute:v1/BackendServiceList/items": items +"/compute:v1/BackendServiceList/items/item": item +"/compute:v1/BackendServiceList/kind": kind +"/compute:v1/BackendServiceList/nextPageToken": next_page_token +"/compute:v1/BackendServiceList/selfLink": self_link +"/compute:v1/DeprecationStatus": deprecation_status +"/compute:v1/DeprecationStatus/deleted": deleted +"/compute:v1/DeprecationStatus/deprecated": deprecated +"/compute:v1/DeprecationStatus/obsolete": obsolete +"/compute:v1/DeprecationStatus/replacement": replacement +"/compute:v1/DeprecationStatus/state": state +"/compute:v1/Disk": disk +"/compute:v1/Disk/creationTimestamp": creation_timestamp +"/compute:v1/Disk/description": description +"/compute:v1/Disk/id": id +"/compute:v1/Disk/kind": kind +"/compute:v1/Disk/lastAttachTimestamp": last_attach_timestamp +"/compute:v1/Disk/lastDetachTimestamp": last_detach_timestamp +"/compute:v1/Disk/licenses": licenses +"/compute:v1/Disk/licenses/license": license +"/compute:v1/Disk/name": name +"/compute:v1/Disk/options": options +"/compute:v1/Disk/selfLink": self_link +"/compute:v1/Disk/sizeGb": size_gb +"/compute:v1/Disk/sourceImage": source_image +"/compute:v1/Disk/sourceImageId": source_image_id +"/compute:v1/Disk/sourceSnapshot": source_snapshot +"/compute:v1/Disk/sourceSnapshotId": source_snapshot_id +"/compute:v1/Disk/status": status +"/compute:v1/Disk/type": type +"/compute:v1/Disk/users": users +"/compute:v1/Disk/users/user": user +"/compute:v1/Disk/zone": zone +"/compute:v1/DiskAggregatedList": disk_aggregated_list +"/compute:v1/DiskAggregatedList/id": id +"/compute:v1/DiskAggregatedList/items": items +"/compute:v1/DiskAggregatedList/items/item": item +"/compute:v1/DiskAggregatedList/kind": kind +"/compute:v1/DiskAggregatedList/nextPageToken": next_page_token +"/compute:v1/DiskAggregatedList/selfLink": self_link +"/compute:v1/DiskList": disk_list +"/compute:v1/DiskList/id": id +"/compute:v1/DiskList/items": items +"/compute:v1/DiskList/items/item": item +"/compute:v1/DiskList/kind": kind +"/compute:v1/DiskList/nextPageToken": next_page_token +"/compute:v1/DiskList/selfLink": self_link +"/compute:v1/DiskMoveRequest/destinationZone": destination_zone +"/compute:v1/DiskMoveRequest/targetDisk": target_disk +"/compute:v1/DiskType": disk_type +"/compute:v1/DiskType/creationTimestamp": creation_timestamp +"/compute:v1/DiskType/defaultDiskSizeGb": default_disk_size_gb +"/compute:v1/DiskType/deprecated": deprecated +"/compute:v1/DiskType/description": description +"/compute:v1/DiskType/id": id +"/compute:v1/DiskType/kind": kind +"/compute:v1/DiskType/name": name +"/compute:v1/DiskType/selfLink": self_link +"/compute:v1/DiskType/validDiskSize": valid_disk_size +"/compute:v1/DiskType/zone": zone +"/compute:v1/DiskTypeAggregatedList": disk_type_aggregated_list +"/compute:v1/DiskTypeAggregatedList/id": id +"/compute:v1/DiskTypeAggregatedList/items": items +"/compute:v1/DiskTypeAggregatedList/items/item": item +"/compute:v1/DiskTypeAggregatedList/kind": kind +"/compute:v1/DiskTypeAggregatedList/nextPageToken": next_page_token +"/compute:v1/DiskTypeAggregatedList/selfLink": self_link +"/compute:v1/DiskTypeList": disk_type_list +"/compute:v1/DiskTypeList/id": id +"/compute:v1/DiskTypeList/items": items +"/compute:v1/DiskTypeList/items/item": item +"/compute:v1/DiskTypeList/kind": kind +"/compute:v1/DiskTypeList/nextPageToken": next_page_token +"/compute:v1/DiskTypeList/selfLink": self_link +"/compute:v1/DiskTypesScopedList": disk_types_scoped_list +"/compute:v1/DiskTypesScopedList/diskTypes": disk_types +"/compute:v1/DiskTypesScopedList/diskTypes/disk_type": disk_type +"/compute:v1/DiskTypesScopedList/warning": warning +"/compute:v1/DiskTypesScopedList/warning/code": code +"/compute:v1/DiskTypesScopedList/warning/data": data +"/compute:v1/DiskTypesScopedList/warning/data/datum": datum +"/compute:v1/DiskTypesScopedList/warning/data/datum/key": key +"/compute:v1/DiskTypesScopedList/warning/data/datum/value": value +"/compute:v1/DiskTypesScopedList/warning/message": message +"/compute:v1/DisksScopedList": disks_scoped_list +"/compute:v1/DisksScopedList/disks": disks +"/compute:v1/DisksScopedList/disks/disk": disk +"/compute:v1/DisksScopedList/warning": warning +"/compute:v1/DisksScopedList/warning/code": code +"/compute:v1/DisksScopedList/warning/data": data +"/compute:v1/DisksScopedList/warning/data/datum": datum +"/compute:v1/DisksScopedList/warning/data/datum/key": key +"/compute:v1/DisksScopedList/warning/data/datum/value": value +"/compute:v1/DisksScopedList/warning/message": message +"/compute:v1/Firewall": firewall +"/compute:v1/Firewall/allowed": allowed +"/compute:v1/Firewall/allowed/allowed": allowed +"/compute:v1/Firewall/allowed/allowed/IPProtocol": ip_protocol +"/compute:v1/Firewall/allowed/allowed/ports": ports +"/compute:v1/Firewall/allowed/allowed/ports/port": port +"/compute:v1/Firewall/creationTimestamp": creation_timestamp +"/compute:v1/Firewall/description": description +"/compute:v1/Firewall/id": id +"/compute:v1/Firewall/kind": kind +"/compute:v1/Firewall/name": name +"/compute:v1/Firewall/network": network +"/compute:v1/Firewall/selfLink": self_link +"/compute:v1/Firewall/sourceRanges": source_ranges +"/compute:v1/Firewall/sourceRanges/source_range": source_range +"/compute:v1/Firewall/sourceTags": source_tags +"/compute:v1/Firewall/sourceTags/source_tag": source_tag +"/compute:v1/Firewall/targetTags": target_tags +"/compute:v1/Firewall/targetTags/target_tag": target_tag +"/compute:v1/FirewallList": firewall_list +"/compute:v1/FirewallList/id": id +"/compute:v1/FirewallList/items": items +"/compute:v1/FirewallList/items/item": item +"/compute:v1/FirewallList/kind": kind +"/compute:v1/FirewallList/nextPageToken": next_page_token +"/compute:v1/FirewallList/selfLink": self_link +"/compute:v1/ForwardingRule": forwarding_rule +"/compute:v1/ForwardingRule/IPAddress": ip_address +"/compute:v1/ForwardingRule/IPProtocol": ip_protocol +"/compute:v1/ForwardingRule/creationTimestamp": creation_timestamp +"/compute:v1/ForwardingRule/description": description +"/compute:v1/ForwardingRule/id": id +"/compute:v1/ForwardingRule/kind": kind +"/compute:v1/ForwardingRule/name": name +"/compute:v1/ForwardingRule/portRange": port_range +"/compute:v1/ForwardingRule/region": region +"/compute:v1/ForwardingRule/selfLink": self_link +"/compute:v1/ForwardingRule/target": target +"/compute:v1/ForwardingRuleAggregatedList": forwarding_rule_aggregated_list +"/compute:v1/ForwardingRuleAggregatedList/id": id +"/compute:v1/ForwardingRuleAggregatedList/items": items +"/compute:v1/ForwardingRuleAggregatedList/items/item": item +"/compute:v1/ForwardingRuleAggregatedList/kind": kind +"/compute:v1/ForwardingRuleAggregatedList/nextPageToken": next_page_token +"/compute:v1/ForwardingRuleAggregatedList/selfLink": self_link +"/compute:v1/ForwardingRuleList": forwarding_rule_list +"/compute:v1/ForwardingRuleList/id": id +"/compute:v1/ForwardingRuleList/items": items +"/compute:v1/ForwardingRuleList/items/item": item +"/compute:v1/ForwardingRuleList/kind": kind +"/compute:v1/ForwardingRuleList/nextPageToken": next_page_token +"/compute:v1/ForwardingRuleList/selfLink": self_link +"/compute:v1/ForwardingRulesScopedList": forwarding_rules_scoped_list +"/compute:v1/ForwardingRulesScopedList/forwardingRules": forwarding_rules +"/compute:v1/ForwardingRulesScopedList/forwardingRules/forwarding_rule": forwarding_rule +"/compute:v1/ForwardingRulesScopedList/warning": warning +"/compute:v1/ForwardingRulesScopedList/warning/code": code +"/compute:v1/ForwardingRulesScopedList/warning/data": data +"/compute:v1/ForwardingRulesScopedList/warning/data/datum": datum +"/compute:v1/ForwardingRulesScopedList/warning/data/datum/key": key +"/compute:v1/ForwardingRulesScopedList/warning/data/datum/value": value +"/compute:v1/ForwardingRulesScopedList/warning/message": message +"/compute:v1/HealthCheckReference": health_check_reference +"/compute:v1/HealthCheckReference/healthCheck": health_check +"/compute:v1/HealthStatus": health_status +"/compute:v1/HealthStatus/healthState": health_state +"/compute:v1/HealthStatus/instance": instance +"/compute:v1/HealthStatus/ipAddress": ip_address +"/compute:v1/HealthStatus/port": port +"/compute:v1/HostRule": host_rule +"/compute:v1/HostRule/description": description +"/compute:v1/HostRule/hosts": hosts +"/compute:v1/HostRule/hosts/host": host +"/compute:v1/HostRule/pathMatcher": path_matcher +"/compute:v1/HttpHealthCheck": http_health_check +"/compute:v1/HttpHealthCheck/checkIntervalSec": check_interval_sec +"/compute:v1/HttpHealthCheck/creationTimestamp": creation_timestamp +"/compute:v1/HttpHealthCheck/description": description +"/compute:v1/HttpHealthCheck/healthyThreshold": healthy_threshold +"/compute:v1/HttpHealthCheck/host": host +"/compute:v1/HttpHealthCheck/id": id +"/compute:v1/HttpHealthCheck/kind": kind +"/compute:v1/HttpHealthCheck/name": name +"/compute:v1/HttpHealthCheck/port": port +"/compute:v1/HttpHealthCheck/requestPath": request_path +"/compute:v1/HttpHealthCheck/selfLink": self_link +"/compute:v1/HttpHealthCheck/timeoutSec": timeout_sec +"/compute:v1/HttpHealthCheck/unhealthyThreshold": unhealthy_threshold +"/compute:v1/HttpHealthCheckList": http_health_check_list +"/compute:v1/HttpHealthCheckList/id": id +"/compute:v1/HttpHealthCheckList/items": items +"/compute:v1/HttpHealthCheckList/items/item": item +"/compute:v1/HttpHealthCheckList/kind": kind +"/compute:v1/HttpHealthCheckList/nextPageToken": next_page_token +"/compute:v1/HttpHealthCheckList/selfLink": self_link +"/compute:v1/Image": image +"/compute:v1/Image/archiveSizeBytes": archive_size_bytes +"/compute:v1/Image/creationTimestamp": creation_timestamp +"/compute:v1/Image/deprecated": deprecated +"/compute:v1/Image/description": description +"/compute:v1/Image/diskSizeGb": disk_size_gb +"/compute:v1/Image/id": id +"/compute:v1/Image/kind": kind +"/compute:v1/Image/licenses": licenses +"/compute:v1/Image/licenses/license": license +"/compute:v1/Image/name": name +"/compute:v1/Image/rawDisk": raw_disk +"/compute:v1/Image/rawDisk/containerType": container_type +"/compute:v1/Image/rawDisk/sha1Checksum": sha1_checksum +"/compute:v1/Image/rawDisk/source": source +"/compute:v1/Image/selfLink": self_link +"/compute:v1/Image/sourceDisk": source_disk +"/compute:v1/Image/sourceDiskId": source_disk_id +"/compute:v1/Image/sourceType": source_type +"/compute:v1/Image/status": status +"/compute:v1/ImageList": image_list +"/compute:v1/ImageList/id": id +"/compute:v1/ImageList/items": items +"/compute:v1/ImageList/items/item": item +"/compute:v1/ImageList/kind": kind +"/compute:v1/ImageList/nextPageToken": next_page_token +"/compute:v1/ImageList/selfLink": self_link +"/compute:v1/Instance": instance +"/compute:v1/Instance/canIpForward": can_ip_forward +"/compute:v1/Instance/cpuPlatform": cpu_platform +"/compute:v1/Instance/creationTimestamp": creation_timestamp +"/compute:v1/Instance/description": description +"/compute:v1/Instance/disks": disks +"/compute:v1/Instance/disks/disk": disk +"/compute:v1/Instance/id": id +"/compute:v1/Instance/kind": kind +"/compute:v1/Instance/machineType": machine_type +"/compute:v1/Instance/metadata": metadata +"/compute:v1/Instance/name": name +"/compute:v1/Instance/networkInterfaces": network_interfaces +"/compute:v1/Instance/networkInterfaces/network_interface": network_interface +"/compute:v1/Instance/scheduling": scheduling +"/compute:v1/Instance/selfLink": self_link +"/compute:v1/Instance/serviceAccounts": service_accounts +"/compute:v1/Instance/serviceAccounts/service_account": service_account +"/compute:v1/Instance/status": status +"/compute:v1/Instance/statusMessage": status_message +"/compute:v1/Instance/tags": tags +"/compute:v1/Instance/zone": zone +"/compute:v1/InstanceAggregatedList": instance_aggregated_list +"/compute:v1/InstanceAggregatedList/id": id +"/compute:v1/InstanceAggregatedList/items": items +"/compute:v1/InstanceAggregatedList/items/item": item +"/compute:v1/InstanceAggregatedList/kind": kind +"/compute:v1/InstanceAggregatedList/nextPageToken": next_page_token +"/compute:v1/InstanceAggregatedList/selfLink": self_link +"/compute:v1/InstanceList": instance_list +"/compute:v1/InstanceList/id": id +"/compute:v1/InstanceList/items": items +"/compute:v1/InstanceList/items/item": item +"/compute:v1/InstanceList/kind": kind +"/compute:v1/InstanceList/nextPageToken": next_page_token +"/compute:v1/InstanceList/selfLink": self_link +"/compute:v1/InstanceMoveRequest/destinationZone": destination_zone +"/compute:v1/InstanceMoveRequest/targetInstance": target_instance +"/compute:v1/InstanceProperties": instance_properties +"/compute:v1/InstanceProperties/canIpForward": can_ip_forward +"/compute:v1/InstanceProperties/description": description +"/compute:v1/InstanceProperties/disks": disks +"/compute:v1/InstanceProperties/disks/disk": disk +"/compute:v1/InstanceProperties/machineType": machine_type +"/compute:v1/InstanceProperties/metadata": metadata +"/compute:v1/InstanceProperties/networkInterfaces": network_interfaces +"/compute:v1/InstanceProperties/networkInterfaces/network_interface": network_interface +"/compute:v1/InstanceProperties/scheduling": scheduling +"/compute:v1/InstanceProperties/serviceAccounts": service_accounts +"/compute:v1/InstanceProperties/serviceAccounts/service_account": service_account +"/compute:v1/InstanceProperties/tags": tags +"/compute:v1/InstanceReference": instance_reference +"/compute:v1/InstanceReference/instance": instance +"/compute:v1/InstanceTemplate": instance_template +"/compute:v1/InstanceTemplate/creationTimestamp": creation_timestamp +"/compute:v1/InstanceTemplate/description": description +"/compute:v1/InstanceTemplate/id": id +"/compute:v1/InstanceTemplate/kind": kind +"/compute:v1/InstanceTemplate/name": name +"/compute:v1/InstanceTemplate/properties": properties +"/compute:v1/InstanceTemplate/selfLink": self_link +"/compute:v1/InstanceTemplateList": instance_template_list +"/compute:v1/InstanceTemplateList/id": id +"/compute:v1/InstanceTemplateList/items": items +"/compute:v1/InstanceTemplateList/items/item": item +"/compute:v1/InstanceTemplateList/kind": kind +"/compute:v1/InstanceTemplateList/nextPageToken": next_page_token +"/compute:v1/InstanceTemplateList/selfLink": self_link +"/compute:v1/InstancesScopedList": instances_scoped_list +"/compute:v1/InstancesScopedList/instances": instances +"/compute:v1/InstancesScopedList/instances/instance": instance +"/compute:v1/InstancesScopedList/warning": warning +"/compute:v1/InstancesScopedList/warning/code": code +"/compute:v1/InstancesScopedList/warning/data": data +"/compute:v1/InstancesScopedList/warning/data/datum": datum +"/compute:v1/InstancesScopedList/warning/data/datum/key": key +"/compute:v1/InstancesScopedList/warning/data/datum/value": value +"/compute:v1/InstancesScopedList/warning/message": message +"/compute:v1/License": license +"/compute:v1/License/chargesUseFee": charges_use_fee +"/compute:v1/License/kind": kind +"/compute:v1/License/name": name +"/compute:v1/License/selfLink": self_link +"/compute:v1/MachineType": machine_type +"/compute:v1/MachineType/creationTimestamp": creation_timestamp +"/compute:v1/MachineType/deprecated": deprecated +"/compute:v1/MachineType/description": description +"/compute:v1/MachineType/guestCpus": guest_cpus +"/compute:v1/MachineType/id": id +"/compute:v1/MachineType/imageSpaceGb": image_space_gb +"/compute:v1/MachineType/kind": kind +"/compute:v1/MachineType/maximumPersistentDisks": maximum_persistent_disks +"/compute:v1/MachineType/maximumPersistentDisksSizeGb": maximum_persistent_disks_size_gb +"/compute:v1/MachineType/memoryMb": memory_mb +"/compute:v1/MachineType/name": name +"/compute:v1/MachineType/scratchDisks": scratch_disks +"/compute:v1/MachineType/scratchDisks/scratch_disk": scratch_disk +"/compute:v1/MachineType/scratchDisks/scratch_disk/diskGb": disk_gb +"/compute:v1/MachineType/selfLink": self_link +"/compute:v1/MachineType/zone": zone +"/compute:v1/MachineTypeAggregatedList": machine_type_aggregated_list +"/compute:v1/MachineTypeAggregatedList/id": id +"/compute:v1/MachineTypeAggregatedList/items": items +"/compute:v1/MachineTypeAggregatedList/items/item": item +"/compute:v1/MachineTypeAggregatedList/kind": kind +"/compute:v1/MachineTypeAggregatedList/nextPageToken": next_page_token +"/compute:v1/MachineTypeAggregatedList/selfLink": self_link +"/compute:v1/MachineTypeList": machine_type_list +"/compute:v1/MachineTypeList/id": id +"/compute:v1/MachineTypeList/items": items +"/compute:v1/MachineTypeList/items/item": item +"/compute:v1/MachineTypeList/kind": kind +"/compute:v1/MachineTypeList/nextPageToken": next_page_token +"/compute:v1/MachineTypeList/selfLink": self_link +"/compute:v1/MachineTypesScopedList": machine_types_scoped_list +"/compute:v1/MachineTypesScopedList/machineTypes": machine_types +"/compute:v1/MachineTypesScopedList/machineTypes/machine_type": machine_type +"/compute:v1/MachineTypesScopedList/warning": warning +"/compute:v1/MachineTypesScopedList/warning/code": code +"/compute:v1/MachineTypesScopedList/warning/data": data +"/compute:v1/MachineTypesScopedList/warning/data/datum": datum +"/compute:v1/MachineTypesScopedList/warning/data/datum/key": key +"/compute:v1/MachineTypesScopedList/warning/data/datum/value": value +"/compute:v1/MachineTypesScopedList/warning/message": message +"/compute:v1/Metadata": metadata +"/compute:v1/Metadata/fingerprint": fingerprint +"/compute:v1/Metadata/items": items +"/compute:v1/Metadata/items/item": item +"/compute:v1/Metadata/items/item/key": key +"/compute:v1/Metadata/items/item/value": value +"/compute:v1/Metadata/kind": kind +"/compute:v1/Network": network +"/compute:v1/Network/IPv4Range": i_pv4_range +"/compute:v1/Network/creationTimestamp": creation_timestamp +"/compute:v1/Network/description": description +"/compute:v1/Network/gatewayIPv4": gateway_i_pv4 +"/compute:v1/Network/id": id +"/compute:v1/Network/kind": kind +"/compute:v1/Network/name": name +"/compute:v1/Network/selfLink": self_link +"/compute:v1/NetworkInterface": network_interface +"/compute:v1/NetworkInterface/accessConfigs": access_configs +"/compute:v1/NetworkInterface/accessConfigs/access_config": access_config +"/compute:v1/NetworkInterface/name": name +"/compute:v1/NetworkInterface/network": network +"/compute:v1/NetworkInterface/networkIP": network_ip +"/compute:v1/NetworkList": network_list +"/compute:v1/NetworkList/id": id +"/compute:v1/NetworkList/items": items +"/compute:v1/NetworkList/items/item": item +"/compute:v1/NetworkList/kind": kind +"/compute:v1/NetworkList/nextPageToken": next_page_token +"/compute:v1/NetworkList/selfLink": self_link +"/compute:v1/Operation": operation +"/compute:v1/Operation/clientOperationId": client_operation_id +"/compute:v1/Operation/creationTimestamp": creation_timestamp +"/compute:v1/Operation/endTime": end_time +"/compute:v1/Operation/error": error +"/compute:v1/Operation/error/errors": errors +"/compute:v1/Operation/error/errors/error": error +"/compute:v1/Operation/error/errors/error/code": code +"/compute:v1/Operation/error/errors/error/location": location +"/compute:v1/Operation/error/errors/error/message": message +"/compute:v1/Operation/httpErrorMessage": http_error_message +"/compute:v1/Operation/httpErrorStatusCode": http_error_status_code +"/compute:v1/Operation/id": id +"/compute:v1/Operation/insertTime": insert_time +"/compute:v1/Operation/kind": kind +"/compute:v1/Operation/name": name +"/compute:v1/Operation/operationType": operation_type +"/compute:v1/Operation/progress": progress +"/compute:v1/Operation/region": region +"/compute:v1/Operation/selfLink": self_link +"/compute:v1/Operation/startTime": start_time +"/compute:v1/Operation/status": status +"/compute:v1/Operation/statusMessage": status_message +"/compute:v1/Operation/targetId": target_id +"/compute:v1/Operation/targetLink": target_link +"/compute:v1/Operation/user": user +"/compute:v1/Operation/warnings": warnings +"/compute:v1/Operation/warnings/warning": warning +"/compute:v1/Operation/warnings/warning/code": code +"/compute:v1/Operation/warnings/warning/data": data +"/compute:v1/Operation/warnings/warning/data/datum": datum +"/compute:v1/Operation/warnings/warning/data/datum/key": key +"/compute:v1/Operation/warnings/warning/data/datum/value": value +"/compute:v1/Operation/warnings/warning/message": message +"/compute:v1/Operation/zone": zone +"/compute:v1/OperationAggregatedList": operation_aggregated_list +"/compute:v1/OperationAggregatedList/id": id +"/compute:v1/OperationAggregatedList/items": items +"/compute:v1/OperationAggregatedList/items/item": item +"/compute:v1/OperationAggregatedList/kind": kind +"/compute:v1/OperationAggregatedList/nextPageToken": next_page_token +"/compute:v1/OperationAggregatedList/selfLink": self_link +"/compute:v1/OperationList": operation_list +"/compute:v1/OperationList/id": id +"/compute:v1/OperationList/items": items +"/compute:v1/OperationList/items/item": item +"/compute:v1/OperationList/kind": kind +"/compute:v1/OperationList/nextPageToken": next_page_token +"/compute:v1/OperationList/selfLink": self_link +"/compute:v1/OperationsScopedList": operations_scoped_list +"/compute:v1/OperationsScopedList/operations": operations +"/compute:v1/OperationsScopedList/operations/operation": operation +"/compute:v1/OperationsScopedList/warning": warning +"/compute:v1/OperationsScopedList/warning/code": code +"/compute:v1/OperationsScopedList/warning/data": data +"/compute:v1/OperationsScopedList/warning/data/datum": datum +"/compute:v1/OperationsScopedList/warning/data/datum/key": key +"/compute:v1/OperationsScopedList/warning/data/datum/value": value +"/compute:v1/OperationsScopedList/warning/message": message +"/compute:v1/PathMatcher": path_matcher +"/compute:v1/PathMatcher/defaultService": default_service +"/compute:v1/PathMatcher/description": description +"/compute:v1/PathMatcher/name": name +"/compute:v1/PathMatcher/pathRules": path_rules +"/compute:v1/PathMatcher/pathRules/path_rule": path_rule +"/compute:v1/PathRule": path_rule +"/compute:v1/PathRule/paths": paths +"/compute:v1/PathRule/paths/path": path +"/compute:v1/PathRule/service": service +"/compute:v1/Project": project +"/compute:v1/Project/commonInstanceMetadata": common_instance_metadata +"/compute:v1/Project/creationTimestamp": creation_timestamp +"/compute:v1/Project/description": description +"/compute:v1/Project/id": id +"/compute:v1/Project/kind": kind +"/compute:v1/Project/name": name +"/compute:v1/Project/quotas": quotas +"/compute:v1/Project/quotas/quota": quota +"/compute:v1/Project/selfLink": self_link +"/compute:v1/Project/usageExportLocation": usage_export_location +"/compute:v1/Quota": quota +"/compute:v1/Quota/limit": limit +"/compute:v1/Quota/metric": metric +"/compute:v1/Quota/usage": usage +"/compute:v1/Region": region +"/compute:v1/Region/creationTimestamp": creation_timestamp +"/compute:v1/Region/deprecated": deprecated +"/compute:v1/Region/description": description +"/compute:v1/Region/id": id +"/compute:v1/Region/kind": kind +"/compute:v1/Region/name": name +"/compute:v1/Region/quotas": quotas +"/compute:v1/Region/quotas/quota": quota +"/compute:v1/Region/selfLink": self_link +"/compute:v1/Region/status": status +"/compute:v1/Region/zones": zones +"/compute:v1/Region/zones/zone": zone +"/compute:v1/RegionList": region_list +"/compute:v1/RegionList/id": id +"/compute:v1/RegionList/items": items +"/compute:v1/RegionList/items/item": item +"/compute:v1/RegionList/kind": kind +"/compute:v1/RegionList/nextPageToken": next_page_token +"/compute:v1/RegionList/selfLink": self_link +"/compute:v1/ResourceGroupReference": resource_group_reference +"/compute:v1/ResourceGroupReference/group": group +"/compute:v1/Route": route +"/compute:v1/Route/creationTimestamp": creation_timestamp +"/compute:v1/Route/description": description +"/compute:v1/Route/destRange": dest_range +"/compute:v1/Route/id": id +"/compute:v1/Route/kind": kind +"/compute:v1/Route/name": name +"/compute:v1/Route/network": network +"/compute:v1/Route/nextHopGateway": next_hop_gateway +"/compute:v1/Route/nextHopInstance": next_hop_instance +"/compute:v1/Route/nextHopIp": next_hop_ip +"/compute:v1/Route/nextHopNetwork": next_hop_network +"/compute:v1/Route/nextHopVpnTunnel": next_hop_vpn_tunnel +"/compute:v1/Route/priority": priority +"/compute:v1/Route/selfLink": self_link +"/compute:v1/Route/tags": tags +"/compute:v1/Route/tags/tag": tag +"/compute:v1/Route/warnings": warnings +"/compute:v1/Route/warnings/warning": warning +"/compute:v1/Route/warnings/warning/code": code +"/compute:v1/Route/warnings/warning/data": data +"/compute:v1/Route/warnings/warning/data/datum": datum +"/compute:v1/Route/warnings/warning/data/datum/key": key +"/compute:v1/Route/warnings/warning/data/datum/value": value +"/compute:v1/Route/warnings/warning/message": message +"/compute:v1/RouteList": route_list +"/compute:v1/RouteList/id": id +"/compute:v1/RouteList/items": items +"/compute:v1/RouteList/items/item": item +"/compute:v1/RouteList/kind": kind +"/compute:v1/RouteList/nextPageToken": next_page_token +"/compute:v1/RouteList/selfLink": self_link +"/compute:v1/Scheduling": scheduling +"/compute:v1/Scheduling/automaticRestart": automatic_restart +"/compute:v1/Scheduling/onHostMaintenance": on_host_maintenance +"/compute:v1/Scheduling/preemptible": preemptible +"/compute:v1/SerialPortOutput": serial_port_output +"/compute:v1/SerialPortOutput/contents": contents +"/compute:v1/SerialPortOutput/kind": kind +"/compute:v1/SerialPortOutput/selfLink": self_link +"/compute:v1/ServiceAccount": service_account +"/compute:v1/ServiceAccount/email": email +"/compute:v1/ServiceAccount/scopes": scopes +"/compute:v1/ServiceAccount/scopes/scope": scope +"/compute:v1/Snapshot": snapshot +"/compute:v1/Snapshot/creationTimestamp": creation_timestamp +"/compute:v1/Snapshot/description": description +"/compute:v1/Snapshot/diskSizeGb": disk_size_gb +"/compute:v1/Snapshot/id": id +"/compute:v1/Snapshot/kind": kind +"/compute:v1/Snapshot/licenses": licenses +"/compute:v1/Snapshot/licenses/license": license +"/compute:v1/Snapshot/name": name +"/compute:v1/Snapshot/selfLink": self_link +"/compute:v1/Snapshot/sourceDisk": source_disk +"/compute:v1/Snapshot/sourceDiskId": source_disk_id +"/compute:v1/Snapshot/status": status +"/compute:v1/Snapshot/storageBytes": storage_bytes +"/compute:v1/Snapshot/storageBytesStatus": storage_bytes_status +"/compute:v1/SnapshotList": snapshot_list +"/compute:v1/SnapshotList/id": id +"/compute:v1/SnapshotList/items": items +"/compute:v1/SnapshotList/items/item": item +"/compute:v1/SnapshotList/kind": kind +"/compute:v1/SnapshotList/nextPageToken": next_page_token +"/compute:v1/SnapshotList/selfLink": self_link +"/compute:v1/Tags": tags +"/compute:v1/Tags/fingerprint": fingerprint +"/compute:v1/Tags/items": items +"/compute:v1/Tags/items/item": item +"/compute:v1/TargetHttpProxy": target_http_proxy +"/compute:v1/TargetHttpProxy/creationTimestamp": creation_timestamp +"/compute:v1/TargetHttpProxy/description": description +"/compute:v1/TargetHttpProxy/id": id +"/compute:v1/TargetHttpProxy/kind": kind +"/compute:v1/TargetHttpProxy/name": name +"/compute:v1/TargetHttpProxy/selfLink": self_link +"/compute:v1/TargetHttpProxy/urlMap": url_map +"/compute:v1/TargetHttpProxyList": target_http_proxy_list +"/compute:v1/TargetHttpProxyList/id": id +"/compute:v1/TargetHttpProxyList/items": items +"/compute:v1/TargetHttpProxyList/items/item": item +"/compute:v1/TargetHttpProxyList/kind": kind +"/compute:v1/TargetHttpProxyList/nextPageToken": next_page_token +"/compute:v1/TargetHttpProxyList/selfLink": self_link +"/compute:v1/TargetInstance": target_instance +"/compute:v1/TargetInstance/creationTimestamp": creation_timestamp +"/compute:v1/TargetInstance/description": description +"/compute:v1/TargetInstance/id": id +"/compute:v1/TargetInstance/instance": instance +"/compute:v1/TargetInstance/kind": kind +"/compute:v1/TargetInstance/name": name +"/compute:v1/TargetInstance/natPolicy": nat_policy +"/compute:v1/TargetInstance/selfLink": self_link +"/compute:v1/TargetInstance/zone": zone +"/compute:v1/TargetInstanceAggregatedList": target_instance_aggregated_list +"/compute:v1/TargetInstanceAggregatedList/id": id +"/compute:v1/TargetInstanceAggregatedList/items": items +"/compute:v1/TargetInstanceAggregatedList/items/item": item +"/compute:v1/TargetInstanceAggregatedList/kind": kind +"/compute:v1/TargetInstanceAggregatedList/nextPageToken": next_page_token +"/compute:v1/TargetInstanceAggregatedList/selfLink": self_link +"/compute:v1/TargetInstanceList": target_instance_list +"/compute:v1/TargetInstanceList/id": id +"/compute:v1/TargetInstanceList/items": items +"/compute:v1/TargetInstanceList/items/item": item +"/compute:v1/TargetInstanceList/kind": kind +"/compute:v1/TargetInstanceList/nextPageToken": next_page_token +"/compute:v1/TargetInstanceList/selfLink": self_link +"/compute:v1/TargetInstancesScopedList": target_instances_scoped_list +"/compute:v1/TargetInstancesScopedList/targetInstances": target_instances +"/compute:v1/TargetInstancesScopedList/targetInstances/target_instance": target_instance +"/compute:v1/TargetInstancesScopedList/warning": warning +"/compute:v1/TargetInstancesScopedList/warning/code": code +"/compute:v1/TargetInstancesScopedList/warning/data": data +"/compute:v1/TargetInstancesScopedList/warning/data/datum": datum +"/compute:v1/TargetInstancesScopedList/warning/data/datum/key": key +"/compute:v1/TargetInstancesScopedList/warning/data/datum/value": value +"/compute:v1/TargetInstancesScopedList/warning/message": message +"/compute:v1/TargetPool": target_pool +"/compute:v1/TargetPool/backupPool": backup_pool +"/compute:v1/TargetPool/creationTimestamp": creation_timestamp +"/compute:v1/TargetPool/description": description +"/compute:v1/TargetPool/failoverRatio": failover_ratio +"/compute:v1/TargetPool/healthChecks": health_checks +"/compute:v1/TargetPool/healthChecks/health_check": health_check +"/compute:v1/TargetPool/id": id +"/compute:v1/TargetPool/instances": instances +"/compute:v1/TargetPool/instances/instance": instance +"/compute:v1/TargetPool/kind": kind +"/compute:v1/TargetPool/name": name +"/compute:v1/TargetPool/region": region +"/compute:v1/TargetPool/selfLink": self_link +"/compute:v1/TargetPool/sessionAffinity": session_affinity +"/compute:v1/TargetPoolAggregatedList": target_pool_aggregated_list +"/compute:v1/TargetPoolAggregatedList/id": id +"/compute:v1/TargetPoolAggregatedList/items": items +"/compute:v1/TargetPoolAggregatedList/items/item": item +"/compute:v1/TargetPoolAggregatedList/kind": kind +"/compute:v1/TargetPoolAggregatedList/nextPageToken": next_page_token +"/compute:v1/TargetPoolAggregatedList/selfLink": self_link +"/compute:v1/TargetPoolInstanceHealth": target_pool_instance_health +"/compute:v1/TargetPoolInstanceHealth/healthStatus": health_status +"/compute:v1/TargetPoolInstanceHealth/healthStatus/health_status": health_status +"/compute:v1/TargetPoolInstanceHealth/kind": kind +"/compute:v1/TargetPoolList": target_pool_list +"/compute:v1/TargetPoolList/id": id +"/compute:v1/TargetPoolList/items": items +"/compute:v1/TargetPoolList/items/item": item +"/compute:v1/TargetPoolList/kind": kind +"/compute:v1/TargetPoolList/nextPageToken": next_page_token +"/compute:v1/TargetPoolList/selfLink": self_link +"/compute:v1/TargetPoolsAddHealthCheckRequest/healthChecks": health_checks +"/compute:v1/TargetPoolsAddHealthCheckRequest/healthChecks/health_check": health_check +"/compute:v1/TargetPoolsAddInstanceRequest/instances": instances +"/compute:v1/TargetPoolsAddInstanceRequest/instances/instance": instance +"/compute:v1/TargetPoolsRemoveHealthCheckRequest/healthChecks": health_checks +"/compute:v1/TargetPoolsRemoveHealthCheckRequest/healthChecks/health_check": health_check +"/compute:v1/TargetPoolsRemoveInstanceRequest/instances": instances +"/compute:v1/TargetPoolsRemoveInstanceRequest/instances/instance": instance +"/compute:v1/TargetPoolsScopedList": target_pools_scoped_list +"/compute:v1/TargetPoolsScopedList/targetPools": target_pools +"/compute:v1/TargetPoolsScopedList/targetPools/target_pool": target_pool +"/compute:v1/TargetPoolsScopedList/warning": warning +"/compute:v1/TargetPoolsScopedList/warning/code": code +"/compute:v1/TargetPoolsScopedList/warning/data": data +"/compute:v1/TargetPoolsScopedList/warning/data/datum": datum +"/compute:v1/TargetPoolsScopedList/warning/data/datum/key": key +"/compute:v1/TargetPoolsScopedList/warning/data/datum/value": value +"/compute:v1/TargetPoolsScopedList/warning/message": message +"/compute:v1/TargetReference": target_reference +"/compute:v1/TargetReference/target": target +"/compute:v1/TargetVpnGateway": target_vpn_gateway +"/compute:v1/TargetVpnGateway/creationTimestamp": creation_timestamp +"/compute:v1/TargetVpnGateway/description": description +"/compute:v1/TargetVpnGateway/forwardingRules": forwarding_rules +"/compute:v1/TargetVpnGateway/forwardingRules/forwarding_rule": forwarding_rule +"/compute:v1/TargetVpnGateway/id": id +"/compute:v1/TargetVpnGateway/kind": kind +"/compute:v1/TargetVpnGateway/name": name +"/compute:v1/TargetVpnGateway/network": network +"/compute:v1/TargetVpnGateway/region": region +"/compute:v1/TargetVpnGateway/selfLink": self_link +"/compute:v1/TargetVpnGateway/status": status +"/compute:v1/TargetVpnGateway/tunnels": tunnels +"/compute:v1/TargetVpnGateway/tunnels/tunnel": tunnel +"/compute:v1/TargetVpnGatewayAggregatedList": target_vpn_gateway_aggregated_list +"/compute:v1/TargetVpnGatewayAggregatedList/id": id +"/compute:v1/TargetVpnGatewayAggregatedList/items": items +"/compute:v1/TargetVpnGatewayAggregatedList/items/item": item +"/compute:v1/TargetVpnGatewayAggregatedList/kind": kind +"/compute:v1/TargetVpnGatewayAggregatedList/nextPageToken": next_page_token +"/compute:v1/TargetVpnGatewayAggregatedList/selfLink": self_link +"/compute:v1/TargetVpnGatewayList": target_vpn_gateway_list +"/compute:v1/TargetVpnGatewayList/id": id +"/compute:v1/TargetVpnGatewayList/items": items +"/compute:v1/TargetVpnGatewayList/items/item": item +"/compute:v1/TargetVpnGatewayList/kind": kind +"/compute:v1/TargetVpnGatewayList/nextPageToken": next_page_token +"/compute:v1/TargetVpnGatewayList/selfLink": self_link +"/compute:v1/TargetVpnGatewaysScopedList": target_vpn_gateways_scoped_list +"/compute:v1/TargetVpnGatewaysScopedList/targetVpnGateways": target_vpn_gateways +"/compute:v1/TargetVpnGatewaysScopedList/targetVpnGateways/target_vpn_gateway": target_vpn_gateway +"/compute:v1/TargetVpnGatewaysScopedList/warning": warning +"/compute:v1/TargetVpnGatewaysScopedList/warning/code": code +"/compute:v1/TargetVpnGatewaysScopedList/warning/data": data +"/compute:v1/TargetVpnGatewaysScopedList/warning/data/datum": datum +"/compute:v1/TargetVpnGatewaysScopedList/warning/data/datum/key": key +"/compute:v1/TargetVpnGatewaysScopedList/warning/data/datum/value": value +"/compute:v1/TargetVpnGatewaysScopedList/warning/message": message +"/compute:v1/TestFailure": test_failure +"/compute:v1/TestFailure/actualService": actual_service +"/compute:v1/TestFailure/expectedService": expected_service +"/compute:v1/TestFailure/host": host +"/compute:v1/TestFailure/path": path +"/compute:v1/UrlMap": url_map +"/compute:v1/UrlMap/creationTimestamp": creation_timestamp +"/compute:v1/UrlMap/defaultService": default_service +"/compute:v1/UrlMap/description": description +"/compute:v1/UrlMap/fingerprint": fingerprint +"/compute:v1/UrlMap/hostRules": host_rules +"/compute:v1/UrlMap/hostRules/host_rule": host_rule +"/compute:v1/UrlMap/id": id +"/compute:v1/UrlMap/kind": kind +"/compute:v1/UrlMap/name": name +"/compute:v1/UrlMap/pathMatchers": path_matchers +"/compute:v1/UrlMap/pathMatchers/path_matcher": path_matcher +"/compute:v1/UrlMap/selfLink": self_link +"/compute:v1/UrlMap/tests": tests +"/compute:v1/UrlMap/tests/test": test +"/compute:v1/UrlMapList": url_map_list +"/compute:v1/UrlMapList/id": id +"/compute:v1/UrlMapList/items": items +"/compute:v1/UrlMapList/items/item": item +"/compute:v1/UrlMapList/kind": kind +"/compute:v1/UrlMapList/nextPageToken": next_page_token +"/compute:v1/UrlMapList/selfLink": self_link +"/compute:v1/UrlMapReference": url_map_reference +"/compute:v1/UrlMapReference/urlMap": url_map +"/compute:v1/UrlMapTest": url_map_test +"/compute:v1/UrlMapTest/description": description +"/compute:v1/UrlMapTest/host": host +"/compute:v1/UrlMapTest/path": path +"/compute:v1/UrlMapTest/service": service +"/compute:v1/UrlMapValidationResult": url_map_validation_result +"/compute:v1/UrlMapValidationResult/loadErrors": load_errors +"/compute:v1/UrlMapValidationResult/loadErrors/load_error": load_error +"/compute:v1/UrlMapValidationResult/loadSucceeded": load_succeeded +"/compute:v1/UrlMapValidationResult/testFailures": test_failures +"/compute:v1/UrlMapValidationResult/testFailures/test_failure": test_failure +"/compute:v1/UrlMapValidationResult/testPassed": test_passed +"/compute:v1/UrlMapsValidateRequest/resource": resource +"/compute:v1/UrlMapsValidateResponse/result": result +"/compute:v1/UsageExportLocation": usage_export_location +"/compute:v1/UsageExportLocation/bucketName": bucket_name +"/compute:v1/UsageExportLocation/reportNamePrefix": report_name_prefix +"/compute:v1/VpnTunnel": vpn_tunnel +"/compute:v1/VpnTunnel/creationTimestamp": creation_timestamp +"/compute:v1/VpnTunnel/description": description +"/compute:v1/VpnTunnel/detailedStatus": detailed_status +"/compute:v1/VpnTunnel/id": id +"/compute:v1/VpnTunnel/ikeNetworks": ike_networks +"/compute:v1/VpnTunnel/ikeNetworks/ike_network": ike_network +"/compute:v1/VpnTunnel/ikeVersion": ike_version +"/compute:v1/VpnTunnel/kind": kind +"/compute:v1/VpnTunnel/name": name +"/compute:v1/VpnTunnel/peerIp": peer_ip +"/compute:v1/VpnTunnel/region": region +"/compute:v1/VpnTunnel/selfLink": self_link +"/compute:v1/VpnTunnel/sharedSecret": shared_secret +"/compute:v1/VpnTunnel/sharedSecretHash": shared_secret_hash +"/compute:v1/VpnTunnel/status": status +"/compute:v1/VpnTunnel/targetVpnGateway": target_vpn_gateway +"/compute:v1/VpnTunnelAggregatedList": vpn_tunnel_aggregated_list +"/compute:v1/VpnTunnelAggregatedList/id": id +"/compute:v1/VpnTunnelAggregatedList/items": items +"/compute:v1/VpnTunnelAggregatedList/items/item": item +"/compute:v1/VpnTunnelAggregatedList/kind": kind +"/compute:v1/VpnTunnelAggregatedList/nextPageToken": next_page_token +"/compute:v1/VpnTunnelAggregatedList/selfLink": self_link +"/compute:v1/VpnTunnelList": vpn_tunnel_list +"/compute:v1/VpnTunnelList/id": id +"/compute:v1/VpnTunnelList/items": items +"/compute:v1/VpnTunnelList/items/item": item +"/compute:v1/VpnTunnelList/kind": kind +"/compute:v1/VpnTunnelList/nextPageToken": next_page_token +"/compute:v1/VpnTunnelList/selfLink": self_link +"/compute:v1/VpnTunnelsScopedList": vpn_tunnels_scoped_list +"/compute:v1/VpnTunnelsScopedList/vpnTunnels": vpn_tunnels +"/compute:v1/VpnTunnelsScopedList/vpnTunnels/vpn_tunnel": vpn_tunnel +"/compute:v1/VpnTunnelsScopedList/warning": warning +"/compute:v1/VpnTunnelsScopedList/warning/code": code +"/compute:v1/VpnTunnelsScopedList/warning/data": data +"/compute:v1/VpnTunnelsScopedList/warning/data/datum": datum +"/compute:v1/VpnTunnelsScopedList/warning/data/datum/key": key +"/compute:v1/VpnTunnelsScopedList/warning/data/datum/value": value +"/compute:v1/VpnTunnelsScopedList/warning/message": message +"/compute:v1/Zone": zone +"/compute:v1/Zone/creationTimestamp": creation_timestamp +"/compute:v1/Zone/deprecated": deprecated +"/compute:v1/Zone/description": description +"/compute:v1/Zone/id": id +"/compute:v1/Zone/kind": kind +"/compute:v1/Zone/maintenanceWindows": maintenance_windows +"/compute:v1/Zone/maintenanceWindows/maintenance_window": maintenance_window +"/compute:v1/Zone/maintenanceWindows/maintenance_window/beginTime": begin_time +"/compute:v1/Zone/maintenanceWindows/maintenance_window/description": description +"/compute:v1/Zone/maintenanceWindows/maintenance_window/endTime": end_time +"/compute:v1/Zone/maintenanceWindows/maintenance_window/name": name +"/compute:v1/Zone/name": name +"/compute:v1/Zone/region": region +"/compute:v1/Zone/selfLink": self_link +"/compute:v1/Zone/status": status +"/compute:v1/ZoneList": zone_list +"/compute:v1/ZoneList/id": id +"/compute:v1/ZoneList/items": items +"/compute:v1/ZoneList/items/item": item +"/compute:v1/ZoneList/kind": kind +"/compute:v1/ZoneList/nextPageToken": next_page_token +"/compute:v1/ZoneList/selfLink": self_link +"/container:v1beta1/fields": fields +"/container:v1beta1/key": key +"/container:v1beta1/quotaUser": quota_user +"/container:v1beta1/userIp": user_ip +"/container:v1beta1/container.projects.clusters.list/projectId": project_id +"/container:v1beta1/container.projects.operations.list/projectId": project_id +"/container:v1beta1/container.projects.zones.clusters.create/projectId": project_id +"/container:v1beta1/container.projects.zones.clusters.create/zoneId": zone_id +"/container:v1beta1/container.projects.zones.clusters.delete/clusterId": cluster_id +"/container:v1beta1/container.projects.zones.clusters.delete/projectId": project_id +"/container:v1beta1/container.projects.zones.clusters.delete/zoneId": zone_id +"/container:v1beta1/container.projects.zones.clusters.get/clusterId": cluster_id +"/container:v1beta1/container.projects.zones.clusters.get/projectId": project_id +"/container:v1beta1/container.projects.zones.clusters.get/zoneId": zone_id +"/container:v1beta1/container.projects.zones.clusters.list/projectId": project_id +"/container:v1beta1/container.projects.zones.clusters.list/zoneId": zone_id +"/container:v1beta1/container.projects.zones.operations.get/operationId": operation_id +"/container:v1beta1/container.projects.zones.operations.get/projectId": project_id +"/container:v1beta1/container.projects.zones.operations.get/zoneId": zone_id +"/container:v1beta1/container.projects.zones.operations.list/projectId": project_id +"/container:v1beta1/container.projects.zones.operations.list/zoneId": zone_id +"/container:v1beta1/Cluster": cluster +"/container:v1beta1/Cluster/clusterApiVersion": cluster_api_version +"/container:v1beta1/Cluster/containerIpv4Cidr": container_ipv4_cidr +"/container:v1beta1/Cluster/creationTimestamp": creation_timestamp +"/container:v1beta1/Cluster/description": description +"/container:v1beta1/Cluster/enableCloudLogging": enable_cloud_logging +"/container:v1beta1/Cluster/enableCloudMonitoring": enable_cloud_monitoring +"/container:v1beta1/Cluster/endpoint": endpoint +"/container:v1beta1/Cluster/instanceGroupUrls": instance_group_urls +"/container:v1beta1/Cluster/instanceGroupUrls/instance_group_url": instance_group_url +"/container:v1beta1/Cluster/masterAuth": master_auth +"/container:v1beta1/Cluster/name": name +"/container:v1beta1/Cluster/network": network +"/container:v1beta1/Cluster/nodeConfig": node_config +"/container:v1beta1/Cluster/nodeRoutingPrefixSize": node_routing_prefix_size +"/container:v1beta1/Cluster/numNodes": num_nodes +"/container:v1beta1/Cluster/selfLink": self_link +"/container:v1beta1/Cluster/servicesIpv4Cidr": services_ipv4_cidr +"/container:v1beta1/Cluster/status": status +"/container:v1beta1/Cluster/statusMessage": status_message +"/container:v1beta1/Cluster/zone": zone +"/container:v1beta1/CreateClusterRequest": create_cluster_request +"/container:v1beta1/CreateClusterRequest/cluster": cluster +"/container:v1beta1/ListAggregatedClustersResponse": list_aggregated_clusters_response +"/container:v1beta1/ListAggregatedClustersResponse/clusters": clusters +"/container:v1beta1/ListAggregatedClustersResponse/clusters/cluster": cluster +"/container:v1beta1/ListAggregatedOperationsResponse": list_aggregated_operations_response +"/container:v1beta1/ListAggregatedOperationsResponse/operations": operations +"/container:v1beta1/ListAggregatedOperationsResponse/operations/operation": operation +"/container:v1beta1/ListClustersResponse": list_clusters_response +"/container:v1beta1/ListClustersResponse/clusters": clusters +"/container:v1beta1/ListClustersResponse/clusters/cluster": cluster +"/container:v1beta1/ListOperationsResponse": list_operations_response +"/container:v1beta1/ListOperationsResponse/operations": operations +"/container:v1beta1/ListOperationsResponse/operations/operation": operation +"/container:v1beta1/MasterAuth": master_auth +"/container:v1beta1/MasterAuth/bearerToken": bearer_token +"/container:v1beta1/MasterAuth/clientCertificate": client_certificate +"/container:v1beta1/MasterAuth/clientKey": client_key +"/container:v1beta1/MasterAuth/clusterCaCertificate": cluster_ca_certificate +"/container:v1beta1/MasterAuth/password": password +"/container:v1beta1/MasterAuth/user": user +"/container:v1beta1/NodeConfig": node_config +"/container:v1beta1/NodeConfig/machineType": machine_type +"/container:v1beta1/NodeConfig/serviceAccounts": service_accounts +"/container:v1beta1/NodeConfig/serviceAccounts/service_account": service_account +"/container:v1beta1/NodeConfig/sourceImage": source_image +"/container:v1beta1/Operation": operation +"/container:v1beta1/Operation/errorMessage": error_message +"/container:v1beta1/Operation/name": name +"/container:v1beta1/Operation/operationType": operation_type +"/container:v1beta1/Operation/selfLink": self_link +"/container:v1beta1/Operation/status": status +"/container:v1beta1/Operation/target": target +"/container:v1beta1/Operation/targetLink": target_link +"/container:v1beta1/Operation/zone": zone +"/container:v1beta1/ServiceAccount": service_account +"/container:v1beta1/ServiceAccount/email": email +"/container:v1beta1/ServiceAccount/scopes": scopes +"/container:v1beta1/ServiceAccount/scopes/scope": scope +"/content:v2/fields": fields +"/content:v2/key": key +"/content:v2/quotaUser": quota_user +"/content:v2/userIp": user_ip +"/content:v2/content.accounts.delete": delete_account +"/content:v2/content.accounts.delete/accountId": account_id +"/content:v2/content.accounts.delete/merchantId": merchant_id +"/content:v2/content.accounts.get": get_account +"/content:v2/content.accounts.get/accountId": account_id +"/content:v2/content.accounts.get/merchantId": merchant_id +"/content:v2/content.accounts.insert": insert_account +"/content:v2/content.accounts.insert/merchantId": merchant_id +"/content:v2/content.accounts.list": list_accounts +"/content:v2/content.accounts.list/maxResults": max_results +"/content:v2/content.accounts.list/merchantId": merchant_id +"/content:v2/content.accounts.list/pageToken": page_token +"/content:v2/content.accounts.patch": patch_account +"/content:v2/content.accounts.patch/accountId": account_id +"/content:v2/content.accounts.patch/merchantId": merchant_id +"/content:v2/content.accounts.update": update_account +"/content:v2/content.accounts.update/accountId": account_id +"/content:v2/content.accounts.update/merchantId": merchant_id +"/content:v2/content.accountshipping.custombatch/dryRun": dry_run +"/content:v2/content.accountshipping.get/accountId": account_id +"/content:v2/content.accountshipping.get/merchantId": merchant_id +"/content:v2/content.accountshipping.list/maxResults": max_results +"/content:v2/content.accountshipping.list/merchantId": merchant_id +"/content:v2/content.accountshipping.list/pageToken": page_token +"/content:v2/content.accountshipping.patch/accountId": account_id +"/content:v2/content.accountshipping.patch/dryRun": dry_run +"/content:v2/content.accountshipping.patch/merchantId": merchant_id +"/content:v2/content.accountshipping.update/accountId": account_id +"/content:v2/content.accountshipping.update/dryRun": dry_run +"/content:v2/content.accountshipping.update/merchantId": merchant_id +"/content:v2/content.accountstatuses.get/accountId": account_id +"/content:v2/content.accountstatuses.get/merchantId": merchant_id +"/content:v2/content.accountstatuses.list/maxResults": max_results +"/content:v2/content.accountstatuses.list/merchantId": merchant_id +"/content:v2/content.accountstatuses.list/pageToken": page_token +"/content:v2/content.accounttax.custombatch/dryRun": dry_run +"/content:v2/content.accounttax.get/accountId": account_id +"/content:v2/content.accounttax.get/merchantId": merchant_id +"/content:v2/content.accounttax.list/maxResults": max_results +"/content:v2/content.accounttax.list/merchantId": merchant_id +"/content:v2/content.accounttax.list/pageToken": page_token +"/content:v2/content.accounttax.patch/accountId": account_id +"/content:v2/content.accounttax.patch/dryRun": dry_run +"/content:v2/content.accounttax.patch/merchantId": merchant_id +"/content:v2/content.accounttax.update/accountId": account_id +"/content:v2/content.accounttax.update/dryRun": dry_run +"/content:v2/content.accounttax.update/merchantId": merchant_id +"/content:v2/content.datafeeds.delete": delete_datafeed +"/content:v2/content.datafeeds.delete/datafeedId": datafeed_id +"/content:v2/content.datafeeds.delete/merchantId": merchant_id +"/content:v2/content.datafeeds.get": get_datafeed +"/content:v2/content.datafeeds.get/datafeedId": datafeed_id +"/content:v2/content.datafeeds.get/merchantId": merchant_id +"/content:v2/content.datafeeds.insert": insert_datafeed +"/content:v2/content.datafeeds.insert/merchantId": merchant_id +"/content:v2/content.datafeeds.list": list_datafeeds +"/content:v2/content.datafeeds.list/maxResults": max_results +"/content:v2/content.datafeeds.list/merchantId": merchant_id +"/content:v2/content.datafeeds.list/pageToken": page_token +"/content:v2/content.datafeeds.patch": patch_datafeed +"/content:v2/content.datafeeds.patch/datafeedId": datafeed_id +"/content:v2/content.datafeeds.patch/merchantId": merchant_id +"/content:v2/content.datafeeds.update": update_datafeed +"/content:v2/content.datafeeds.update/datafeedId": datafeed_id +"/content:v2/content.datafeeds.update/merchantId": merchant_id +"/content:v2/content.datafeedstatuses.get/datafeedId": datafeed_id +"/content:v2/content.datafeedstatuses.get/merchantId": merchant_id +"/content:v2/content.datafeedstatuses.list/maxResults": max_results +"/content:v2/content.datafeedstatuses.list/merchantId": merchant_id +"/content:v2/content.datafeedstatuses.list/pageToken": page_token +"/content:v2/content.inventory.set/merchantId": merchant_id +"/content:v2/content.inventory.set/productId": product_id +"/content:v2/content.inventory.set/storeCode": store_code +"/content:v2/content.products.custombatch/dryRun": dry_run +"/content:v2/content.products.delete": delete_product +"/content:v2/content.products.delete/dryRun": dry_run +"/content:v2/content.products.delete/merchantId": merchant_id +"/content:v2/content.products.delete/productId": product_id +"/content:v2/content.products.get": get_product +"/content:v2/content.products.get/merchantId": merchant_id +"/content:v2/content.products.get/productId": product_id +"/content:v2/content.products.insert": insert_product +"/content:v2/content.products.insert/dryRun": dry_run +"/content:v2/content.products.insert/merchantId": merchant_id +"/content:v2/content.products.list": list_products +"/content:v2/content.products.list/maxResults": max_results +"/content:v2/content.products.list/merchantId": merchant_id +"/content:v2/content.products.list/pageToken": page_token +"/content:v2/content.productstatuses.get/merchantId": merchant_id +"/content:v2/content.productstatuses.get/productId": product_id +"/content:v2/content.productstatuses.list/maxResults": max_results +"/content:v2/content.productstatuses.list/merchantId": merchant_id +"/content:v2/content.productstatuses.list/pageToken": page_token +"/content:v2/Account": account +"/content:v2/Account/adultContent": adult_content +"/content:v2/Account/adwordsLinks": adwords_links +"/content:v2/Account/adwordsLinks/adwords_link": adwords_link +"/content:v2/Account/id": id +"/content:v2/Account/kind": kind +"/content:v2/Account/name": name +"/content:v2/Account/reviewsUrl": reviews_url +"/content:v2/Account/sellerId": seller_id +"/content:v2/Account/users": users +"/content:v2/Account/users/user": user +"/content:v2/Account/websiteUrl": website_url +"/content:v2/AccountAdwordsLink": account_adwords_link +"/content:v2/AccountAdwordsLink/adwordsId": adwords_id +"/content:v2/AccountAdwordsLink/status": status +"/content:v2/AccountIdentifier": account_identifier +"/content:v2/AccountIdentifier/aggregatorId": aggregator_id +"/content:v2/AccountIdentifier/merchantId": merchant_id +"/content:v2/AccountShipping": account_shipping +"/content:v2/AccountShipping/accountId": account_id +"/content:v2/AccountShipping/carrierRates": carrier_rates +"/content:v2/AccountShipping/carrierRates/carrier_rate": carrier_rate +"/content:v2/AccountShipping/kind": kind +"/content:v2/AccountShipping/locationGroups": location_groups +"/content:v2/AccountShipping/locationGroups/location_group": location_group +"/content:v2/AccountShipping/rateTables": rate_tables +"/content:v2/AccountShipping/rateTables/rate_table": rate_table +"/content:v2/AccountShipping/services": services +"/content:v2/AccountShipping/services/service": service +"/content:v2/AccountShippingCarrierRate": account_shipping_carrier_rate +"/content:v2/AccountShippingCarrierRate/carrier": carrier +"/content:v2/AccountShippingCarrierRate/carrierService": carrier_service +"/content:v2/AccountShippingCarrierRate/modifierFlatRate": modifier_flat_rate +"/content:v2/AccountShippingCarrierRate/modifierPercent": modifier_percent +"/content:v2/AccountShippingCarrierRate/name": name +"/content:v2/AccountShippingCarrierRate/saleCountry": sale_country +"/content:v2/AccountShippingCarrierRate/shippingOrigin": shipping_origin +"/content:v2/AccountShippingCondition": account_shipping_condition +"/content:v2/AccountShippingCondition/deliveryLocationGroup": delivery_location_group +"/content:v2/AccountShippingCondition/deliveryLocationId": delivery_location_id +"/content:v2/AccountShippingCondition/deliveryPostalCode": delivery_postal_code +"/content:v2/AccountShippingCondition/deliveryPostalCodeRange": delivery_postal_code_range +"/content:v2/AccountShippingCondition/priceMax": price_max +"/content:v2/AccountShippingCondition/shippingLabel": shipping_label +"/content:v2/AccountShippingCondition/weightMax": weight_max +"/content:v2/AccountShippingLocationGroup": account_shipping_location_group +"/content:v2/AccountShippingLocationGroup/country": country +"/content:v2/AccountShippingLocationGroup/locationIds": location_ids +"/content:v2/AccountShippingLocationGroup/locationIds/location_id": location_id +"/content:v2/AccountShippingLocationGroup/name": name +"/content:v2/AccountShippingLocationGroup/postalCodeRanges": postal_code_ranges +"/content:v2/AccountShippingLocationGroup/postalCodeRanges/postal_code_range": postal_code_range +"/content:v2/AccountShippingLocationGroup/postalCodes": postal_codes +"/content:v2/AccountShippingLocationGroup/postalCodes/postal_code": postal_code +"/content:v2/AccountShippingPostalCodeRange": account_shipping_postal_code_range +"/content:v2/AccountShippingPostalCodeRange/end": end +"/content:v2/AccountShippingPostalCodeRange/start": start +"/content:v2/AccountShippingRateTable": account_shipping_rate_table +"/content:v2/AccountShippingRateTable/content": content +"/content:v2/AccountShippingRateTable/content/content": content +"/content:v2/AccountShippingRateTable/name": name +"/content:v2/AccountShippingRateTable/saleCountry": sale_country +"/content:v2/AccountShippingRateTableCell": account_shipping_rate_table_cell +"/content:v2/AccountShippingRateTableCell/condition": condition +"/content:v2/AccountShippingRateTableCell/rate": rate +"/content:v2/AccountShippingShippingService": account_shipping_shipping_service +"/content:v2/AccountShippingShippingService/active": active +"/content:v2/AccountShippingShippingService/calculationMethod": calculation_method +"/content:v2/AccountShippingShippingService/costRuleTree": cost_rule_tree +"/content:v2/AccountShippingShippingService/name": name +"/content:v2/AccountShippingShippingService/saleCountry": sale_country +"/content:v2/AccountShippingShippingServiceCalculationMethod": account_shipping_shipping_service_calculation_method +"/content:v2/AccountShippingShippingServiceCalculationMethod/carrierRate": carrier_rate +"/content:v2/AccountShippingShippingServiceCalculationMethod/excluded": excluded +"/content:v2/AccountShippingShippingServiceCalculationMethod/flatRate": flat_rate +"/content:v2/AccountShippingShippingServiceCalculationMethod/percentageRate": percentage_rate +"/content:v2/AccountShippingShippingServiceCalculationMethod/rateTable": rate_table +"/content:v2/AccountShippingShippingServiceCostRule": account_shipping_shipping_service_cost_rule +"/content:v2/AccountShippingShippingServiceCostRule/calculationMethod": calculation_method +"/content:v2/AccountShippingShippingServiceCostRule/children": children +"/content:v2/AccountShippingShippingServiceCostRule/children/child": child +"/content:v2/AccountShippingShippingServiceCostRule/condition": condition +"/content:v2/AccountStatus": account_status +"/content:v2/AccountStatus/accountId": account_id +"/content:v2/AccountStatus/dataQualityIssues": data_quality_issues +"/content:v2/AccountStatus/dataQualityIssues/data_quality_issue": data_quality_issue +"/content:v2/AccountStatus/kind": kind +"/content:v2/AccountStatusDataQualityIssue": account_status_data_quality_issue +"/content:v2/AccountStatusDataQualityIssue/country": country +"/content:v2/AccountStatusDataQualityIssue/displayedValue": displayed_value +"/content:v2/AccountStatusDataQualityIssue/exampleItems": example_items +"/content:v2/AccountStatusDataQualityIssue/exampleItems/example_item": example_item +"/content:v2/AccountStatusDataQualityIssue/id": id +"/content:v2/AccountStatusDataQualityIssue/lastChecked": last_checked +"/content:v2/AccountStatusDataQualityIssue/numItems": num_items +"/content:v2/AccountStatusDataQualityIssue/severity": severity +"/content:v2/AccountStatusDataQualityIssue/submittedValue": submitted_value +"/content:v2/AccountStatusExampleItem": account_status_example_item +"/content:v2/AccountStatusExampleItem/itemId": item_id +"/content:v2/AccountStatusExampleItem/link": link +"/content:v2/AccountStatusExampleItem/submittedValue": submitted_value +"/content:v2/AccountStatusExampleItem/title": title +"/content:v2/AccountStatusExampleItem/valueOnLandingPage": value_on_landing_page +"/content:v2/AccountTax": account_tax +"/content:v2/AccountTax/accountId": account_id +"/content:v2/AccountTax/kind": kind +"/content:v2/AccountTax/rules": rules +"/content:v2/AccountTax/rules/rule": rule +"/content:v2/AccountTaxTaxRule": account_tax_tax_rule +"/content:v2/AccountTaxTaxRule/country": country +"/content:v2/AccountTaxTaxRule/locationId": location_id +"/content:v2/AccountTaxTaxRule/ratePercent": rate_percent +"/content:v2/AccountTaxTaxRule/shippingTaxed": shipping_taxed +"/content:v2/AccountTaxTaxRule/useGlobalRate": use_global_rate +"/content:v2/AccountUser": account_user +"/content:v2/AccountUser/admin": admin +"/content:v2/AccountUser/emailAddress": email_address +"/content:v2/AccountsAuthInfoResponse/accountIdentifiers": account_identifiers +"/content:v2/AccountsAuthInfoResponse/accountIdentifiers/account_identifier": account_identifier +"/content:v2/AccountsAuthInfoResponse/kind": kind +"/content:v2/AccountsCustomBatchRequest/entries": entries +"/content:v2/AccountsCustomBatchRequest/entries/entry": entry +"/content:v2/AccountsCustomBatchRequestEntry/account": account +"/content:v2/AccountsCustomBatchRequestEntry/accountId": account_id +"/content:v2/AccountsCustomBatchRequestEntry/batchId": batch_id +"/content:v2/AccountsCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/AccountsCustomBatchResponse/entries": entries +"/content:v2/AccountsCustomBatchResponse/entries/entry": entry +"/content:v2/AccountsCustomBatchResponse/kind": kind +"/content:v2/AccountsCustomBatchResponseEntry/account": account +"/content:v2/AccountsCustomBatchResponseEntry/batchId": batch_id +"/content:v2/AccountsCustomBatchResponseEntry/errors": errors +"/content:v2/AccountsCustomBatchResponseEntry/kind": kind +"/content:v2/AccountsListResponse/kind": kind +"/content:v2/AccountsListResponse/nextPageToken": next_page_token +"/content:v2/AccountsListResponse/resources": resources +"/content:v2/AccountsListResponse/resources/resource": resource +"/content:v2/AccountshippingCustomBatchRequest/entries": entries +"/content:v2/AccountshippingCustomBatchRequest/entries/entry": entry +"/content:v2/AccountshippingCustomBatchRequestEntry/accountId": account_id +"/content:v2/AccountshippingCustomBatchRequestEntry/accountShipping": account_shipping +"/content:v2/AccountshippingCustomBatchRequestEntry/batchId": batch_id +"/content:v2/AccountshippingCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/AccountshippingCustomBatchResponse/entries": entries +"/content:v2/AccountshippingCustomBatchResponse/entries/entry": entry +"/content:v2/AccountshippingCustomBatchResponse/kind": kind +"/content:v2/AccountshippingCustomBatchResponseEntry/accountShipping": account_shipping +"/content:v2/AccountshippingCustomBatchResponseEntry/batchId": batch_id +"/content:v2/AccountshippingCustomBatchResponseEntry/errors": errors +"/content:v2/AccountshippingCustomBatchResponseEntry/kind": kind +"/content:v2/AccountshippingListResponse/kind": kind +"/content:v2/AccountshippingListResponse/nextPageToken": next_page_token +"/content:v2/AccountshippingListResponse/resources": resources +"/content:v2/AccountshippingListResponse/resources/resource": resource +"/content:v2/AccountstatusesCustomBatchRequest/entries": entries +"/content:v2/AccountstatusesCustomBatchRequest/entries/entry": entry +"/content:v2/AccountstatusesCustomBatchRequestEntry/accountId": account_id +"/content:v2/AccountstatusesCustomBatchRequestEntry/batchId": batch_id +"/content:v2/AccountstatusesCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/AccountstatusesCustomBatchResponse/entries": entries +"/content:v2/AccountstatusesCustomBatchResponse/entries/entry": entry +"/content:v2/AccountstatusesCustomBatchResponse/kind": kind +"/content:v2/AccountstatusesCustomBatchResponseEntry/accountStatus": account_status +"/content:v2/AccountstatusesCustomBatchResponseEntry/batchId": batch_id +"/content:v2/AccountstatusesCustomBatchResponseEntry/errors": errors +"/content:v2/AccountstatusesListResponse/kind": kind +"/content:v2/AccountstatusesListResponse/nextPageToken": next_page_token +"/content:v2/AccountstatusesListResponse/resources": resources +"/content:v2/AccountstatusesListResponse/resources/resource": resource +"/content:v2/AccounttaxCustomBatchRequest/entries": entries +"/content:v2/AccounttaxCustomBatchRequest/entries/entry": entry +"/content:v2/AccounttaxCustomBatchRequestEntry/accountId": account_id +"/content:v2/AccounttaxCustomBatchRequestEntry/accountTax": account_tax +"/content:v2/AccounttaxCustomBatchRequestEntry/batchId": batch_id +"/content:v2/AccounttaxCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/AccounttaxCustomBatchResponse/entries": entries +"/content:v2/AccounttaxCustomBatchResponse/entries/entry": entry +"/content:v2/AccounttaxCustomBatchResponse/kind": kind +"/content:v2/AccounttaxCustomBatchResponseEntry/accountTax": account_tax +"/content:v2/AccounttaxCustomBatchResponseEntry/batchId": batch_id +"/content:v2/AccounttaxCustomBatchResponseEntry/errors": errors +"/content:v2/AccounttaxCustomBatchResponseEntry/kind": kind +"/content:v2/AccounttaxListResponse/kind": kind +"/content:v2/AccounttaxListResponse/nextPageToken": next_page_token +"/content:v2/AccounttaxListResponse/resources": resources +"/content:v2/AccounttaxListResponse/resources/resource": resource +"/content:v2/Datafeed": datafeed +"/content:v2/Datafeed/attributeLanguage": attribute_language +"/content:v2/Datafeed/contentLanguage": content_language +"/content:v2/Datafeed/contentType": content_type +"/content:v2/Datafeed/fetchSchedule": fetch_schedule +"/content:v2/Datafeed/fileName": file_name +"/content:v2/Datafeed/format": format +"/content:v2/Datafeed/id": id +"/content:v2/Datafeed/intendedDestinations": intended_destinations +"/content:v2/Datafeed/intendedDestinations/intended_destination": intended_destination +"/content:v2/Datafeed/kind": kind +"/content:v2/Datafeed/name": name +"/content:v2/Datafeed/targetCountry": target_country +"/content:v2/DatafeedFetchSchedule": datafeed_fetch_schedule +"/content:v2/DatafeedFetchSchedule/dayOfMonth": day_of_month +"/content:v2/DatafeedFetchSchedule/fetchUrl": fetch_url +"/content:v2/DatafeedFetchSchedule/hour": hour +"/content:v2/DatafeedFetchSchedule/password": password +"/content:v2/DatafeedFetchSchedule/timeZone": time_zone +"/content:v2/DatafeedFetchSchedule/username": username +"/content:v2/DatafeedFetchSchedule/weekday": weekday +"/content:v2/DatafeedFormat": datafeed_format +"/content:v2/DatafeedFormat/columnDelimiter": column_delimiter +"/content:v2/DatafeedFormat/fileEncoding": file_encoding +"/content:v2/DatafeedFormat/quotingMode": quoting_mode +"/content:v2/DatafeedStatus": datafeed_status +"/content:v2/DatafeedStatus/datafeedId": datafeed_id +"/content:v2/DatafeedStatus/errors": errors +"/content:v2/DatafeedStatus/errors/error": error +"/content:v2/DatafeedStatus/itemsTotal": items_total +"/content:v2/DatafeedStatus/itemsValid": items_valid +"/content:v2/DatafeedStatus/kind": kind +"/content:v2/DatafeedStatus/lastUploadDate": last_upload_date +"/content:v2/DatafeedStatus/processingStatus": processing_status +"/content:v2/DatafeedStatus/warnings": warnings +"/content:v2/DatafeedStatus/warnings/warning": warning +"/content:v2/DatafeedStatusError": datafeed_status_error +"/content:v2/DatafeedStatusError/code": code +"/content:v2/DatafeedStatusError/count": count +"/content:v2/DatafeedStatusError/examples": examples +"/content:v2/DatafeedStatusError/examples/example": example +"/content:v2/DatafeedStatusError/message": message +"/content:v2/DatafeedStatusExample": datafeed_status_example +"/content:v2/DatafeedStatusExample/itemId": item_id +"/content:v2/DatafeedStatusExample/lineNumber": line_number +"/content:v2/DatafeedStatusExample/value": value +"/content:v2/DatafeedsCustomBatchRequest/entries": entries +"/content:v2/DatafeedsCustomBatchRequest/entries/entry": entry +"/content:v2/DatafeedsCustomBatchRequestEntry/batchId": batch_id +"/content:v2/DatafeedsCustomBatchRequestEntry/datafeed": datafeed +"/content:v2/DatafeedsCustomBatchRequestEntry/datafeedId": datafeed_id +"/content:v2/DatafeedsCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/DatafeedsCustomBatchResponse/entries": entries +"/content:v2/DatafeedsCustomBatchResponse/entries/entry": entry +"/content:v2/DatafeedsCustomBatchResponse/kind": kind +"/content:v2/DatafeedsCustomBatchResponseEntry/batchId": batch_id +"/content:v2/DatafeedsCustomBatchResponseEntry/datafeed": datafeed +"/content:v2/DatafeedsCustomBatchResponseEntry/errors": errors +"/content:v2/DatafeedsListResponse/kind": kind +"/content:v2/DatafeedsListResponse/nextPageToken": next_page_token +"/content:v2/DatafeedsListResponse/resources": resources +"/content:v2/DatafeedsListResponse/resources/resource": resource +"/content:v2/DatafeedstatusesCustomBatchRequest/entries": entries +"/content:v2/DatafeedstatusesCustomBatchRequest/entries/entry": entry +"/content:v2/DatafeedstatusesCustomBatchRequestEntry/batchId": batch_id +"/content:v2/DatafeedstatusesCustomBatchRequestEntry/datafeedId": datafeed_id +"/content:v2/DatafeedstatusesCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/DatafeedstatusesCustomBatchResponse/entries": entries +"/content:v2/DatafeedstatusesCustomBatchResponse/entries/entry": entry +"/content:v2/DatafeedstatusesCustomBatchResponse/kind": kind +"/content:v2/DatafeedstatusesCustomBatchResponseEntry/batchId": batch_id +"/content:v2/DatafeedstatusesCustomBatchResponseEntry/datafeedStatus": datafeed_status +"/content:v2/DatafeedstatusesCustomBatchResponseEntry/errors": errors +"/content:v2/DatafeedstatusesListResponse/kind": kind +"/content:v2/DatafeedstatusesListResponse/nextPageToken": next_page_token +"/content:v2/DatafeedstatusesListResponse/resources": resources +"/content:v2/DatafeedstatusesListResponse/resources/resource": resource +"/content:v2/Error": error +"/content:v2/Error/domain": domain +"/content:v2/Error/message": message +"/content:v2/Error/reason": reason +"/content:v2/Errors": errors +"/content:v2/Errors/code": code +"/content:v2/Errors/errors": errors +"/content:v2/Errors/errors/error": error +"/content:v2/Errors/message": message +"/content:v2/Inventory": inventory +"/content:v2/Inventory/availability": availability +"/content:v2/Inventory/kind": kind +"/content:v2/Inventory/price": price +"/content:v2/Inventory/quantity": quantity +"/content:v2/Inventory/salePrice": sale_price +"/content:v2/Inventory/salePriceEffectiveDate": sale_price_effective_date +"/content:v2/InventoryCustomBatchRequest/entries": entries +"/content:v2/InventoryCustomBatchRequest/entries/entry": entry +"/content:v2/InventoryCustomBatchRequestEntry/batchId": batch_id +"/content:v2/InventoryCustomBatchRequestEntry/inventory": inventory +"/content:v2/InventoryCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/InventoryCustomBatchRequestEntry/productId": product_id +"/content:v2/InventoryCustomBatchRequestEntry/storeCode": store_code +"/content:v2/InventoryCustomBatchResponse/entries": entries +"/content:v2/InventoryCustomBatchResponse/entries/entry": entry +"/content:v2/InventoryCustomBatchResponse/kind": kind +"/content:v2/InventoryCustomBatchResponseEntry/batchId": batch_id +"/content:v2/InventoryCustomBatchResponseEntry/errors": errors +"/content:v2/InventoryCustomBatchResponseEntry/kind": kind +"/content:v2/InventorySetRequest/availability": availability +"/content:v2/InventorySetRequest/price": price +"/content:v2/InventorySetRequest/quantity": quantity +"/content:v2/InventorySetRequest/salePrice": sale_price +"/content:v2/InventorySetRequest/salePriceEffectiveDate": sale_price_effective_date +"/content:v2/InventorySetResponse/kind": kind +"/content:v2/LoyaltyPoints": loyalty_points +"/content:v2/LoyaltyPoints/name": name +"/content:v2/LoyaltyPoints/pointsValue": points_value +"/content:v2/LoyaltyPoints/ratio": ratio +"/content:v2/Price": price +"/content:v2/Price/currency": currency +"/content:v2/Price/value": value +"/content:v2/Product": product +"/content:v2/Product/additionalImageLinks": additional_image_links +"/content:v2/Product/additionalImageLinks/additional_image_link": additional_image_link +"/content:v2/Product/adult": adult +"/content:v2/Product/adwordsGrouping": adwords_grouping +"/content:v2/Product/adwordsLabels": adwords_labels +"/content:v2/Product/adwordsLabels/adwords_label": adwords_label +"/content:v2/Product/adwordsRedirect": adwords_redirect +"/content:v2/Product/ageGroup": age_group +"/content:v2/Product/aspects": aspects +"/content:v2/Product/aspects/aspect": aspect +"/content:v2/Product/availability": availability +"/content:v2/Product/availabilityDate": availability_date +"/content:v2/Product/brand": brand +"/content:v2/Product/channel": channel +"/content:v2/Product/color": color +"/content:v2/Product/condition": condition +"/content:v2/Product/contentLanguage": content_language +"/content:v2/Product/customAttributes": custom_attributes +"/content:v2/Product/customAttributes/custom_attribute": custom_attribute +"/content:v2/Product/customGroups": custom_groups +"/content:v2/Product/customGroups/custom_group": custom_group +"/content:v2/Product/customLabel0": custom_label0 +"/content:v2/Product/customLabel1": custom_label1 +"/content:v2/Product/customLabel2": custom_label2 +"/content:v2/Product/customLabel3": custom_label3 +"/content:v2/Product/customLabel4": custom_label4 +"/content:v2/Product/description": description +"/content:v2/Product/destinations": destinations +"/content:v2/Product/destinations/destination": destination +"/content:v2/Product/displayAdsId": display_ads_id +"/content:v2/Product/displayAdsLink": display_ads_link +"/content:v2/Product/displayAdsSimilarIds": display_ads_similar_ids +"/content:v2/Product/displayAdsSimilarIds/display_ads_similar_id": display_ads_similar_id +"/content:v2/Product/displayAdsTitle": display_ads_title +"/content:v2/Product/displayAdsValue": display_ads_value +"/content:v2/Product/energyEfficiencyClass": energy_efficiency_class +"/content:v2/Product/expirationDate": expiration_date +"/content:v2/Product/gender": gender +"/content:v2/Product/googleProductCategory": google_product_category +"/content:v2/Product/gtin": gtin +"/content:v2/Product/id": id +"/content:v2/Product/identifierExists": identifier_exists +"/content:v2/Product/imageLink": image_link +"/content:v2/Product/installment": installment +"/content:v2/Product/isBundle": is_bundle +"/content:v2/Product/itemGroupId": item_group_id +"/content:v2/Product/kind": kind +"/content:v2/Product/link": link +"/content:v2/Product/loyaltyPoints": loyalty_points +"/content:v2/Product/material": material +"/content:v2/Product/mobileLink": mobile_link +"/content:v2/Product/mpn": mpn +"/content:v2/Product/multipack": multipack +"/content:v2/Product/offerId": offer_id +"/content:v2/Product/onlineOnly": online_only +"/content:v2/Product/pattern": pattern +"/content:v2/Product/price": price +"/content:v2/Product/productType": product_type +"/content:v2/Product/salePrice": sale_price +"/content:v2/Product/salePriceEffectiveDate": sale_price_effective_date +"/content:v2/Product/shipping": shipping +"/content:v2/Product/shipping/shipping": shipping +"/content:v2/Product/shippingHeight": shipping_height +"/content:v2/Product/shippingLabel": shipping_label +"/content:v2/Product/shippingLength": shipping_length +"/content:v2/Product/shippingWeight": shipping_weight +"/content:v2/Product/shippingWidth": shipping_width +"/content:v2/Product/sizeSystem": size_system +"/content:v2/Product/sizeType": size_type +"/content:v2/Product/sizes": sizes +"/content:v2/Product/sizes/size": size +"/content:v2/Product/targetCountry": target_country +"/content:v2/Product/taxes": taxes +"/content:v2/Product/taxes/tax": tax +"/content:v2/Product/title": title +"/content:v2/Product/unitPricingBaseMeasure": unit_pricing_base_measure +"/content:v2/Product/unitPricingMeasure": unit_pricing_measure +"/content:v2/Product/validatedDestinations": validated_destinations +"/content:v2/Product/validatedDestinations/validated_destination": validated_destination +"/content:v2/Product/warnings": warnings +"/content:v2/Product/warnings/warning": warning +"/content:v2/ProductAspect": product_aspect +"/content:v2/ProductAspect/aspectName": aspect_name +"/content:v2/ProductAspect/destinationName": destination_name +"/content:v2/ProductAspect/intention": intention +"/content:v2/ProductCustomAttribute": product_custom_attribute +"/content:v2/ProductCustomAttribute/name": name +"/content:v2/ProductCustomAttribute/type": type +"/content:v2/ProductCustomAttribute/unit": unit +"/content:v2/ProductCustomAttribute/value": value +"/content:v2/ProductCustomGroup": product_custom_group +"/content:v2/ProductCustomGroup/attributes": attributes +"/content:v2/ProductCustomGroup/attributes/attribute": attribute +"/content:v2/ProductCustomGroup/name": name +"/content:v2/ProductDestination": product_destination +"/content:v2/ProductDestination/destinationName": destination_name +"/content:v2/ProductDestination/intention": intention +"/content:v2/ProductInstallment": product_installment +"/content:v2/ProductInstallment/amount": amount +"/content:v2/ProductInstallment/months": months +"/content:v2/ProductShipping": product_shipping +"/content:v2/ProductShipping/country": country +"/content:v2/ProductShipping/locationGroupName": location_group_name +"/content:v2/ProductShipping/locationId": location_id +"/content:v2/ProductShipping/postalCode": postal_code +"/content:v2/ProductShipping/price": price +"/content:v2/ProductShipping/region": region +"/content:v2/ProductShipping/service": service +"/content:v2/ProductShippingDimension": product_shipping_dimension +"/content:v2/ProductShippingDimension/unit": unit +"/content:v2/ProductShippingDimension/value": value +"/content:v2/ProductShippingWeight": product_shipping_weight +"/content:v2/ProductShippingWeight/unit": unit +"/content:v2/ProductShippingWeight/value": value +"/content:v2/ProductStatus": product_status +"/content:v2/ProductStatus/creationDate": creation_date +"/content:v2/ProductStatus/dataQualityIssues": data_quality_issues +"/content:v2/ProductStatus/dataQualityIssues/data_quality_issue": data_quality_issue +"/content:v2/ProductStatus/destinationStatuses": destination_statuses +"/content:v2/ProductStatus/destinationStatuses/destination_status": destination_status +"/content:v2/ProductStatus/googleExpirationDate": google_expiration_date +"/content:v2/ProductStatus/kind": kind +"/content:v2/ProductStatus/lastUpdateDate": last_update_date +"/content:v2/ProductStatus/link": link +"/content:v2/ProductStatus/productId": product_id +"/content:v2/ProductStatus/title": title +"/content:v2/ProductStatusDataQualityIssue": product_status_data_quality_issue +"/content:v2/ProductStatusDataQualityIssue/detail": detail +"/content:v2/ProductStatusDataQualityIssue/fetchStatus": fetch_status +"/content:v2/ProductStatusDataQualityIssue/id": id +"/content:v2/ProductStatusDataQualityIssue/location": location +"/content:v2/ProductStatusDataQualityIssue/severity": severity +"/content:v2/ProductStatusDataQualityIssue/timestamp": timestamp +"/content:v2/ProductStatusDataQualityIssue/valueOnLandingPage": value_on_landing_page +"/content:v2/ProductStatusDataQualityIssue/valueProvided": value_provided +"/content:v2/ProductStatusDestinationStatus": product_status_destination_status +"/content:v2/ProductStatusDestinationStatus/approvalStatus": approval_status +"/content:v2/ProductStatusDestinationStatus/destination": destination +"/content:v2/ProductStatusDestinationStatus/intention": intention +"/content:v2/ProductTax": product_tax +"/content:v2/ProductTax/country": country +"/content:v2/ProductTax/locationId": location_id +"/content:v2/ProductTax/postalCode": postal_code +"/content:v2/ProductTax/rate": rate +"/content:v2/ProductTax/region": region +"/content:v2/ProductTax/taxShip": tax_ship +"/content:v2/ProductUnitPricingBaseMeasure": product_unit_pricing_base_measure +"/content:v2/ProductUnitPricingBaseMeasure/unit": unit +"/content:v2/ProductUnitPricingBaseMeasure/value": value +"/content:v2/ProductUnitPricingMeasure": product_unit_pricing_measure +"/content:v2/ProductUnitPricingMeasure/unit": unit +"/content:v2/ProductUnitPricingMeasure/value": value +"/content:v2/ProductsCustomBatchRequest/entries": entries +"/content:v2/ProductsCustomBatchRequest/entries/entry": entry +"/content:v2/ProductsCustomBatchRequestEntry/batchId": batch_id +"/content:v2/ProductsCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/ProductsCustomBatchRequestEntry/product": product +"/content:v2/ProductsCustomBatchRequestEntry/productId": product_id +"/content:v2/ProductsCustomBatchResponse/entries": entries +"/content:v2/ProductsCustomBatchResponse/entries/entry": entry +"/content:v2/ProductsCustomBatchResponse/kind": kind +"/content:v2/ProductsCustomBatchResponseEntry/batchId": batch_id +"/content:v2/ProductsCustomBatchResponseEntry/errors": errors +"/content:v2/ProductsCustomBatchResponseEntry/kind": kind +"/content:v2/ProductsCustomBatchResponseEntry/product": product +"/content:v2/ProductsListResponse/kind": kind +"/content:v2/ProductsListResponse/nextPageToken": next_page_token +"/content:v2/ProductsListResponse/resources": resources +"/content:v2/ProductsListResponse/resources/resource": resource +"/content:v2/ProductstatusesCustomBatchRequest/entries": entries +"/content:v2/ProductstatusesCustomBatchRequest/entries/entry": entry +"/content:v2/ProductstatusesCustomBatchRequestEntry/batchId": batch_id +"/content:v2/ProductstatusesCustomBatchRequestEntry/merchantId": merchant_id +"/content:v2/ProductstatusesCustomBatchRequestEntry/productId": product_id +"/content:v2/ProductstatusesCustomBatchResponse/entries": entries +"/content:v2/ProductstatusesCustomBatchResponse/entries/entry": entry +"/content:v2/ProductstatusesCustomBatchResponse/kind": kind +"/content:v2/ProductstatusesCustomBatchResponseEntry/batchId": batch_id +"/content:v2/ProductstatusesCustomBatchResponseEntry/errors": errors +"/content:v2/ProductstatusesCustomBatchResponseEntry/kind": kind +"/content:v2/ProductstatusesCustomBatchResponseEntry/productStatus": product_status +"/content:v2/ProductstatusesListResponse/kind": kind +"/content:v2/ProductstatusesListResponse/nextPageToken": next_page_token +"/content:v2/ProductstatusesListResponse/resources": resources +"/content:v2/ProductstatusesListResponse/resources/resource": resource +"/content:v2/Weight": weight +"/content:v2/Weight/unit": unit +"/content:v2/Weight/value": value +"/coordinate:v1/fields": fields +"/coordinate:v1/key": key +"/coordinate:v1/quotaUser": quota_user +"/coordinate:v1/userIp": user_ip +"/coordinate:v1/coordinate.customFieldDef.list": list_custom_field_defs +"/coordinate:v1/coordinate.customFieldDef.list/teamId": team_id +"/coordinate:v1/coordinate.jobs.get": get_job +"/coordinate:v1/coordinate.jobs.get/jobId": job_id +"/coordinate:v1/coordinate.jobs.get/teamId": team_id +"/coordinate:v1/coordinate.jobs.insert": insert_job +"/coordinate:v1/coordinate.jobs.insert/address": address +"/coordinate:v1/coordinate.jobs.insert/assignee": assignee +"/coordinate:v1/coordinate.jobs.insert/customField": custom_field +"/coordinate:v1/coordinate.jobs.insert/customerName": customer_name +"/coordinate:v1/coordinate.jobs.insert/customerPhoneNumber": customer_phone_number +"/coordinate:v1/coordinate.jobs.insert/lat": lat +"/coordinate:v1/coordinate.jobs.insert/lng": lng +"/coordinate:v1/coordinate.jobs.insert/note": note +"/coordinate:v1/coordinate.jobs.insert/teamId": team_id +"/coordinate:v1/coordinate.jobs.insert/title": title +"/coordinate:v1/coordinate.jobs.list": list_jobs +"/coordinate:v1/coordinate.jobs.list/maxResults": max_results +"/coordinate:v1/coordinate.jobs.list/minModifiedTimestampMs": min_modified_timestamp_ms +"/coordinate:v1/coordinate.jobs.list/pageToken": page_token +"/coordinate:v1/coordinate.jobs.list/teamId": team_id +"/coordinate:v1/coordinate.jobs.patch": patch_job +"/coordinate:v1/coordinate.jobs.patch/address": address +"/coordinate:v1/coordinate.jobs.patch/assignee": assignee +"/coordinate:v1/coordinate.jobs.patch/customField": custom_field +"/coordinate:v1/coordinate.jobs.patch/customerName": customer_name +"/coordinate:v1/coordinate.jobs.patch/customerPhoneNumber": customer_phone_number +"/coordinate:v1/coordinate.jobs.patch/jobId": job_id +"/coordinate:v1/coordinate.jobs.patch/lat": lat +"/coordinate:v1/coordinate.jobs.patch/lng": lng +"/coordinate:v1/coordinate.jobs.patch/note": note +"/coordinate:v1/coordinate.jobs.patch/progress": progress +"/coordinate:v1/coordinate.jobs.patch/teamId": team_id +"/coordinate:v1/coordinate.jobs.patch/title": title +"/coordinate:v1/coordinate.jobs.update": update_job +"/coordinate:v1/coordinate.jobs.update/address": address +"/coordinate:v1/coordinate.jobs.update/assignee": assignee +"/coordinate:v1/coordinate.jobs.update/customField": custom_field +"/coordinate:v1/coordinate.jobs.update/customerName": customer_name +"/coordinate:v1/coordinate.jobs.update/customerPhoneNumber": customer_phone_number +"/coordinate:v1/coordinate.jobs.update/jobId": job_id +"/coordinate:v1/coordinate.jobs.update/lat": lat +"/coordinate:v1/coordinate.jobs.update/lng": lng +"/coordinate:v1/coordinate.jobs.update/note": note +"/coordinate:v1/coordinate.jobs.update/progress": progress +"/coordinate:v1/coordinate.jobs.update/teamId": team_id +"/coordinate:v1/coordinate.jobs.update/title": title +"/coordinate:v1/coordinate.location.list": list_locations +"/coordinate:v1/coordinate.location.list/maxResults": max_results +"/coordinate:v1/coordinate.location.list/pageToken": page_token +"/coordinate:v1/coordinate.location.list/startTimestampMs": start_timestamp_ms +"/coordinate:v1/coordinate.location.list/teamId": team_id +"/coordinate:v1/coordinate.location.list/workerEmail": worker_email +"/coordinate:v1/coordinate.schedule.get": get_schedule +"/coordinate:v1/coordinate.schedule.get/jobId": job_id +"/coordinate:v1/coordinate.schedule.get/teamId": team_id +"/coordinate:v1/coordinate.schedule.patch": patch_schedule +"/coordinate:v1/coordinate.schedule.patch/allDay": all_day +"/coordinate:v1/coordinate.schedule.patch/duration": duration +"/coordinate:v1/coordinate.schedule.patch/endTime": end_time +"/coordinate:v1/coordinate.schedule.patch/jobId": job_id +"/coordinate:v1/coordinate.schedule.patch/startTime": start_time +"/coordinate:v1/coordinate.schedule.patch/teamId": team_id +"/coordinate:v1/coordinate.schedule.update": update_schedule +"/coordinate:v1/coordinate.schedule.update/allDay": all_day +"/coordinate:v1/coordinate.schedule.update/duration": duration +"/coordinate:v1/coordinate.schedule.update/endTime": end_time +"/coordinate:v1/coordinate.schedule.update/jobId": job_id +"/coordinate:v1/coordinate.schedule.update/startTime": start_time +"/coordinate:v1/coordinate.schedule.update/teamId": team_id +"/coordinate:v1/coordinate.team.list": list_teams +"/coordinate:v1/coordinate.team.list/admin": admin +"/coordinate:v1/coordinate.team.list/dispatcher": dispatcher +"/coordinate:v1/coordinate.team.list/worker": worker +"/coordinate:v1/coordinate.worker.list": list_workers +"/coordinate:v1/coordinate.worker.list/teamId": team_id +"/coordinate:v1/CustomField": custom_field +"/coordinate:v1/CustomField/customFieldId": custom_field_id +"/coordinate:v1/CustomField/kind": kind +"/coordinate:v1/CustomField/value": value +"/coordinate:v1/CustomFieldDef": custom_field_def +"/coordinate:v1/CustomFieldDef/enabled": enabled +"/coordinate:v1/CustomFieldDef/enumitems": enumitems +"/coordinate:v1/CustomFieldDef/enumitems/enumitem": enumitem +"/coordinate:v1/CustomFieldDef/id": id +"/coordinate:v1/CustomFieldDef/kind": kind +"/coordinate:v1/CustomFieldDef/name": name +"/coordinate:v1/CustomFieldDef/requiredForCheckout": required_for_checkout +"/coordinate:v1/CustomFieldDef/type": type +"/coordinate:v1/CustomFieldDefListResponse/items": items +"/coordinate:v1/CustomFieldDefListResponse/items/item": item +"/coordinate:v1/CustomFieldDefListResponse/kind": kind +"/coordinate:v1/CustomFields": custom_fields +"/coordinate:v1/CustomFields/customField": custom_field +"/coordinate:v1/CustomFields/customField/custom_field": custom_field +"/coordinate:v1/CustomFields/kind": kind +"/coordinate:v1/EnumItemDef": enum_item_def +"/coordinate:v1/EnumItemDef/active": active +"/coordinate:v1/EnumItemDef/kind": kind +"/coordinate:v1/EnumItemDef/value": value +"/coordinate:v1/Job": job +"/coordinate:v1/Job/id": id +"/coordinate:v1/Job/jobChange": job_change +"/coordinate:v1/Job/jobChange/job_change": job_change +"/coordinate:v1/Job/kind": kind +"/coordinate:v1/Job/state": state +"/coordinate:v1/JobChange": job_change +"/coordinate:v1/JobChange/kind": kind +"/coordinate:v1/JobChange/state": state +"/coordinate:v1/JobChange/timestamp": timestamp +"/coordinate:v1/JobListResponse/items": items +"/coordinate:v1/JobListResponse/items/item": item +"/coordinate:v1/JobListResponse/kind": kind +"/coordinate:v1/JobListResponse/nextPageToken": next_page_token +"/coordinate:v1/JobState": job_state +"/coordinate:v1/JobState/assignee": assignee +"/coordinate:v1/JobState/customFields": custom_fields +"/coordinate:v1/JobState/customerName": customer_name +"/coordinate:v1/JobState/customerPhoneNumber": customer_phone_number +"/coordinate:v1/JobState/kind": kind +"/coordinate:v1/JobState/location": location +"/coordinate:v1/JobState/note": note +"/coordinate:v1/JobState/note/note": note +"/coordinate:v1/JobState/progress": progress +"/coordinate:v1/JobState/title": title +"/coordinate:v1/Location": location +"/coordinate:v1/Location/addressLine": address_line +"/coordinate:v1/Location/addressLine/address_line": address_line +"/coordinate:v1/Location/kind": kind +"/coordinate:v1/Location/lat": lat +"/coordinate:v1/Location/lng": lng +"/coordinate:v1/LocationListResponse/items": items +"/coordinate:v1/LocationListResponse/items/item": item +"/coordinate:v1/LocationListResponse/kind": kind +"/coordinate:v1/LocationListResponse/nextPageToken": next_page_token +"/coordinate:v1/LocationListResponse/tokenPagination": token_pagination +"/coordinate:v1/LocationRecord": location_record +"/coordinate:v1/LocationRecord/collectionTime": collection_time +"/coordinate:v1/LocationRecord/confidenceRadius": confidence_radius +"/coordinate:v1/LocationRecord/kind": kind +"/coordinate:v1/LocationRecord/latitude": latitude +"/coordinate:v1/LocationRecord/longitude": longitude +"/coordinate:v1/Schedule": schedule +"/coordinate:v1/Schedule/allDay": all_day +"/coordinate:v1/Schedule/duration": duration +"/coordinate:v1/Schedule/endTime": end_time +"/coordinate:v1/Schedule/kind": kind +"/coordinate:v1/Schedule/startTime": start_time +"/coordinate:v1/Team": team +"/coordinate:v1/Team/id": id +"/coordinate:v1/Team/kind": kind +"/coordinate:v1/Team/name": name +"/coordinate:v1/TeamListResponse/items": items +"/coordinate:v1/TeamListResponse/items/item": item +"/coordinate:v1/TeamListResponse/kind": kind +"/coordinate:v1/TokenPagination": token_pagination +"/coordinate:v1/TokenPagination/kind": kind +"/coordinate:v1/TokenPagination/nextPageToken": next_page_token +"/coordinate:v1/TokenPagination/previousPageToken": previous_page_token +"/coordinate:v1/Worker": worker +"/coordinate:v1/Worker/id": id +"/coordinate:v1/Worker/kind": kind +"/coordinate:v1/WorkerListResponse/items": items +"/coordinate:v1/WorkerListResponse/items/item": item +"/coordinate:v1/WorkerListResponse/kind": kind +"/customsearch:v1/fields": fields +"/customsearch:v1/key": key +"/customsearch:v1/quotaUser": quota_user +"/customsearch:v1/userIp": user_ip +"/customsearch:v1/search.cse.list": list_cses +"/customsearch:v1/search.cse.list/c2coff": c2coff +"/customsearch:v1/search.cse.list/cr": cr +"/customsearch:v1/search.cse.list/cref": cref +"/customsearch:v1/search.cse.list/cx": cx +"/customsearch:v1/search.cse.list/dateRestrict": date_restrict +"/customsearch:v1/search.cse.list/exactTerms": exact_terms +"/customsearch:v1/search.cse.list/excludeTerms": exclude_terms +"/customsearch:v1/search.cse.list/fileType": file_type +"/customsearch:v1/search.cse.list/filter": filter +"/customsearch:v1/search.cse.list/gl": gl +"/customsearch:v1/search.cse.list/googlehost": googlehost +"/customsearch:v1/search.cse.list/highRange": high_range +"/customsearch:v1/search.cse.list/hl": hl +"/customsearch:v1/search.cse.list/hq": hq +"/customsearch:v1/search.cse.list/imgColorType": img_color_type +"/customsearch:v1/search.cse.list/imgDominantColor": img_dominant_color +"/customsearch:v1/search.cse.list/imgSize": img_size +"/customsearch:v1/search.cse.list/imgType": img_type +"/customsearch:v1/search.cse.list/linkSite": link_site +"/customsearch:v1/search.cse.list/lowRange": low_range +"/customsearch:v1/search.cse.list/lr": lr +"/customsearch:v1/search.cse.list/num": num +"/customsearch:v1/search.cse.list/orTerms": or_terms +"/customsearch:v1/search.cse.list/q": q +"/customsearch:v1/search.cse.list/relatedSite": related_site +"/customsearch:v1/search.cse.list/rights": rights +"/customsearch:v1/search.cse.list/safe": safe +"/customsearch:v1/search.cse.list/searchType": search_type +"/customsearch:v1/search.cse.list/siteSearch": site_search +"/customsearch:v1/search.cse.list/siteSearchFilter": site_search_filter +"/customsearch:v1/search.cse.list/sort": sort +"/customsearch:v1/search.cse.list/start": start +"/customsearch:v1/Context": context +"/customsearch:v1/Context/facets": facets +"/customsearch:v1/Context/facets/facet": facet +"/customsearch:v1/Context/facets/facet/facet": facet +"/customsearch:v1/Context/facets/facet/facet/anchor": anchor +"/customsearch:v1/Context/facets/facet/facet/label": label +"/customsearch:v1/Context/facets/facet/facet/label_with_op": label_with_op +"/customsearch:v1/Context/title": title +"/customsearch:v1/Promotion": promotion +"/customsearch:v1/Promotion/bodyLines": body_lines +"/customsearch:v1/Promotion/bodyLines/body_line": body_line +"/customsearch:v1/Promotion/bodyLines/body_line/htmlTitle": html_title +"/customsearch:v1/Promotion/bodyLines/body_line/link": link +"/customsearch:v1/Promotion/bodyLines/body_line/title": title +"/customsearch:v1/Promotion/bodyLines/body_line/url": url +"/customsearch:v1/Promotion/displayLink": display_link +"/customsearch:v1/Promotion/htmlTitle": html_title +"/customsearch:v1/Promotion/image": image +"/customsearch:v1/Promotion/image/height": height +"/customsearch:v1/Promotion/image/source": source +"/customsearch:v1/Promotion/image/width": width +"/customsearch:v1/Promotion/link": link +"/customsearch:v1/Promotion/title": title +"/customsearch:v1/Query": query +"/customsearch:v1/Query/count": count +"/customsearch:v1/Query/cr": cr +"/customsearch:v1/Query/cref": cref +"/customsearch:v1/Query/cx": cx +"/customsearch:v1/Query/dateRestrict": date_restrict +"/customsearch:v1/Query/disableCnTwTranslation": disable_cn_tw_translation +"/customsearch:v1/Query/exactTerms": exact_terms +"/customsearch:v1/Query/excludeTerms": exclude_terms +"/customsearch:v1/Query/fileType": file_type +"/customsearch:v1/Query/filter": filter +"/customsearch:v1/Query/gl": gl +"/customsearch:v1/Query/googleHost": google_host +"/customsearch:v1/Query/highRange": high_range +"/customsearch:v1/Query/hl": hl +"/customsearch:v1/Query/hq": hq +"/customsearch:v1/Query/imgColorType": img_color_type +"/customsearch:v1/Query/imgDominantColor": img_dominant_color +"/customsearch:v1/Query/imgSize": img_size +"/customsearch:v1/Query/imgType": img_type +"/customsearch:v1/Query/inputEncoding": input_encoding +"/customsearch:v1/Query/language": language +"/customsearch:v1/Query/linkSite": link_site +"/customsearch:v1/Query/lowRange": low_range +"/customsearch:v1/Query/orTerms": or_terms +"/customsearch:v1/Query/outputEncoding": output_encoding +"/customsearch:v1/Query/relatedSite": related_site +"/customsearch:v1/Query/rights": rights +"/customsearch:v1/Query/safe": safe +"/customsearch:v1/Query/searchTerms": search_terms +"/customsearch:v1/Query/searchType": search_type +"/customsearch:v1/Query/siteSearch": site_search +"/customsearch:v1/Query/siteSearchFilter": site_search_filter +"/customsearch:v1/Query/sort": sort +"/customsearch:v1/Query/startIndex": start_index +"/customsearch:v1/Query/startPage": start_page +"/customsearch:v1/Query/title": title +"/customsearch:v1/Query/totalResults": total_results +"/customsearch:v1/Result": result +"/customsearch:v1/Result/cacheId": cache_id +"/customsearch:v1/Result/displayLink": display_link +"/customsearch:v1/Result/fileFormat": file_format +"/customsearch:v1/Result/formattedUrl": formatted_url +"/customsearch:v1/Result/htmlFormattedUrl": html_formatted_url +"/customsearch:v1/Result/htmlSnippet": html_snippet +"/customsearch:v1/Result/htmlTitle": html_title +"/customsearch:v1/Result/image": image +"/customsearch:v1/Result/image/byteSize": byte_size +"/customsearch:v1/Result/image/contextLink": context_link +"/customsearch:v1/Result/image/height": height +"/customsearch:v1/Result/image/thumbnailHeight": thumbnail_height +"/customsearch:v1/Result/image/thumbnailLink": thumbnail_link +"/customsearch:v1/Result/image/thumbnailWidth": thumbnail_width +"/customsearch:v1/Result/image/width": width +"/customsearch:v1/Result/kind": kind +"/customsearch:v1/Result/labels": labels +"/customsearch:v1/Result/labels/label": label +"/customsearch:v1/Result/labels/label/displayName": display_name +"/customsearch:v1/Result/labels/label/label_with_op": label_with_op +"/customsearch:v1/Result/labels/label/name": name +"/customsearch:v1/Result/link": link +"/customsearch:v1/Result/mime": mime +"/customsearch:v1/Result/pagemap": pagemap +"/customsearch:v1/Result/pagemap/pagemap": pagemap +"/customsearch:v1/Result/pagemap/pagemap/pagemap": pagemap +"/customsearch:v1/Result/pagemap/pagemap/pagemap/pagemap": pagemap +"/customsearch:v1/Result/snippet": snippet +"/customsearch:v1/Result/title": title +"/customsearch:v1/Search": search +"/customsearch:v1/Search/context": context +"/customsearch:v1/Search/items": items +"/customsearch:v1/Search/items/item": item +"/customsearch:v1/Search/kind": kind +"/customsearch:v1/Search/promotions": promotions +"/customsearch:v1/Search/promotions/promotion": promotion +"/customsearch:v1/Search/queries": queries +"/customsearch:v1/Search/queries/query": query +"/customsearch:v1/Search/queries/query/query": query +"/customsearch:v1/Search/searchInformation": search_information +"/customsearch:v1/Search/searchInformation/formattedSearchTime": formatted_search_time +"/customsearch:v1/Search/searchInformation/formattedTotalResults": formatted_total_results +"/customsearch:v1/Search/searchInformation/searchTime": search_time +"/customsearch:v1/Search/searchInformation/totalResults": total_results +"/customsearch:v1/Search/spelling": spelling +"/customsearch:v1/Search/spelling/correctedQuery": corrected_query +"/customsearch:v1/Search/spelling/htmlCorrectedQuery": html_corrected_query +"/customsearch:v1/Search/url": url +"/customsearch:v1/Search/url/template": template +"/customsearch:v1/Search/url/type": type +"/datastore:v1beta2/fields": fields +"/datastore:v1beta2/key": key +"/datastore:v1beta2/quotaUser": quota_user +"/datastore:v1beta2/userIp": user_ip +"/datastore:v1beta2/datastore.datasets.allocateIds": allocate_ids +"/datastore:v1beta2/datastore.datasets.allocateIds/datasetId": dataset_id +"/datastore:v1beta2/datastore.datasets.beginTransaction": begin_transaction +"/datastore:v1beta2/datastore.datasets.beginTransaction/datasetId": dataset_id +"/datastore:v1beta2/datastore.datasets.commit": commit +"/datastore:v1beta2/datastore.datasets.commit/datasetId": dataset_id +"/datastore:v1beta2/datastore.datasets.lookup": lookup +"/datastore:v1beta2/datastore.datasets.lookup/datasetId": dataset_id +"/datastore:v1beta2/datastore.datasets.rollback": rollback +"/datastore:v1beta2/datastore.datasets.rollback/datasetId": dataset_id +"/datastore:v1beta2/datastore.datasets.runQuery": run_query +"/datastore:v1beta2/datastore.datasets.runQuery/datasetId": dataset_id +"/datastore:v1beta2/AllocateIdsRequest/keys": keys +"/datastore:v1beta2/AllocateIdsRequest/keys/key": key +"/datastore:v1beta2/AllocateIdsResponse/header": header +"/datastore:v1beta2/AllocateIdsResponse/keys": keys +"/datastore:v1beta2/AllocateIdsResponse/keys/key": key +"/datastore:v1beta2/BeginTransactionRequest/isolationLevel": isolation_level +"/datastore:v1beta2/BeginTransactionResponse/header": header +"/datastore:v1beta2/BeginTransactionResponse/transaction": transaction +"/datastore:v1beta2/CommitRequest": commit_request +"/datastore:v1beta2/CommitRequest/ignoreReadOnly": ignore_read_only +"/datastore:v1beta2/CommitRequest/mode": mode +"/datastore:v1beta2/CommitRequest/mutation": mutation +"/datastore:v1beta2/CommitRequest/transaction": transaction +"/datastore:v1beta2/CommitResponse": commit_response +"/datastore:v1beta2/CommitResponse/header": header +"/datastore:v1beta2/CommitResponse/mutationResult": mutation_result +"/datastore:v1beta2/CompositeFilter": composite_filter +"/datastore:v1beta2/CompositeFilter/filters": filters +"/datastore:v1beta2/CompositeFilter/filters/filter": filter +"/datastore:v1beta2/CompositeFilter/operator": operator +"/datastore:v1beta2/Entity": entity +"/datastore:v1beta2/Entity/key": key +"/datastore:v1beta2/Entity/properties": properties +"/datastore:v1beta2/Entity/properties/property": property +"/datastore:v1beta2/EntityResult": entity_result +"/datastore:v1beta2/EntityResult/entity": entity +"/datastore:v1beta2/Filter": filter +"/datastore:v1beta2/Filter/compositeFilter": composite_filter +"/datastore:v1beta2/Filter/propertyFilter": property_filter +"/datastore:v1beta2/GqlQuery": gql_query +"/datastore:v1beta2/GqlQuery/allowLiteral": allow_literal +"/datastore:v1beta2/GqlQuery/nameArgs": name_args +"/datastore:v1beta2/GqlQuery/nameArgs/name_arg": name_arg +"/datastore:v1beta2/GqlQuery/numberArgs": number_args +"/datastore:v1beta2/GqlQuery/numberArgs/number_arg": number_arg +"/datastore:v1beta2/GqlQuery/queryString": query_string +"/datastore:v1beta2/GqlQueryArg": gql_query_arg +"/datastore:v1beta2/GqlQueryArg/cursor": cursor +"/datastore:v1beta2/GqlQueryArg/name": name +"/datastore:v1beta2/GqlQueryArg/value": value +"/datastore:v1beta2/Key": key +"/datastore:v1beta2/Key/partitionId": partition_id +"/datastore:v1beta2/Key/path": path +"/datastore:v1beta2/Key/path/path": path +"/datastore:v1beta2/KeyPathElement": key_path_element +"/datastore:v1beta2/KeyPathElement/id": id +"/datastore:v1beta2/KeyPathElement/kind": kind +"/datastore:v1beta2/KeyPathElement/name": name +"/datastore:v1beta2/KindExpression": kind_expression +"/datastore:v1beta2/KindExpression/name": name +"/datastore:v1beta2/LookupRequest": lookup_request +"/datastore:v1beta2/LookupRequest/keys": keys +"/datastore:v1beta2/LookupRequest/keys/key": key +"/datastore:v1beta2/LookupRequest/readOptions": read_options +"/datastore:v1beta2/LookupResponse": lookup_response +"/datastore:v1beta2/LookupResponse/deferred": deferred +"/datastore:v1beta2/LookupResponse/deferred/deferred": deferred +"/datastore:v1beta2/LookupResponse/found": found +"/datastore:v1beta2/LookupResponse/found/found": found +"/datastore:v1beta2/LookupResponse/header": header +"/datastore:v1beta2/LookupResponse/missing": missing +"/datastore:v1beta2/LookupResponse/missing/missing": missing +"/datastore:v1beta2/Mutation": mutation +"/datastore:v1beta2/Mutation/delete": delete +"/datastore:v1beta2/Mutation/delete/delete": delete +"/datastore:v1beta2/Mutation/force": force +"/datastore:v1beta2/Mutation/insert": insert +"/datastore:v1beta2/Mutation/insert/insert": insert +"/datastore:v1beta2/Mutation/insertAutoId": insert_auto_id +"/datastore:v1beta2/Mutation/insertAutoId/insert_auto_id": insert_auto_id +"/datastore:v1beta2/Mutation/update": update +"/datastore:v1beta2/Mutation/update/update": update +"/datastore:v1beta2/Mutation/upsert": upsert +"/datastore:v1beta2/Mutation/upsert/upsert": upsert +"/datastore:v1beta2/MutationResult": mutation_result +"/datastore:v1beta2/MutationResult/indexUpdates": index_updates +"/datastore:v1beta2/MutationResult/insertAutoIdKeys": insert_auto_id_keys +"/datastore:v1beta2/MutationResult/insertAutoIdKeys/insert_auto_id_key": insert_auto_id_key +"/datastore:v1beta2/PartitionId": partition_id +"/datastore:v1beta2/PartitionId/datasetId": dataset_id +"/datastore:v1beta2/PartitionId/namespace": namespace +"/datastore:v1beta2/Property": property +"/datastore:v1beta2/Property/blobKeyValue": blob_key_value +"/datastore:v1beta2/Property/blobValue": blob_value +"/datastore:v1beta2/Property/booleanValue": boolean_value +"/datastore:v1beta2/Property/dateTimeValue": date_time_value +"/datastore:v1beta2/Property/doubleValue": double_value +"/datastore:v1beta2/Property/entityValue": entity_value +"/datastore:v1beta2/Property/indexed": indexed +"/datastore:v1beta2/Property/integerValue": integer_value +"/datastore:v1beta2/Property/keyValue": key_value +"/datastore:v1beta2/Property/listValue": list_value +"/datastore:v1beta2/Property/listValue/list_value": list_value +"/datastore:v1beta2/Property/meaning": meaning +"/datastore:v1beta2/Property/stringValue": string_value +"/datastore:v1beta2/PropertyExpression": property_expression +"/datastore:v1beta2/PropertyExpression/aggregationFunction": aggregation_function +"/datastore:v1beta2/PropertyExpression/property": property +"/datastore:v1beta2/PropertyFilter": property_filter +"/datastore:v1beta2/PropertyFilter/operator": operator +"/datastore:v1beta2/PropertyFilter/property": property +"/datastore:v1beta2/PropertyFilter/value": value +"/datastore:v1beta2/PropertyOrder": property_order +"/datastore:v1beta2/PropertyOrder/direction": direction +"/datastore:v1beta2/PropertyOrder/property": property +"/datastore:v1beta2/PropertyReference": property_reference +"/datastore:v1beta2/PropertyReference/name": name +"/datastore:v1beta2/Query": query +"/datastore:v1beta2/Query/endCursor": end_cursor +"/datastore:v1beta2/Query/filter": filter +"/datastore:v1beta2/Query/groupBy": group_by +"/datastore:v1beta2/Query/groupBy/group_by": group_by +"/datastore:v1beta2/Query/kinds": kinds +"/datastore:v1beta2/Query/kinds/kind": kind +"/datastore:v1beta2/Query/limit": limit +"/datastore:v1beta2/Query/offset": offset +"/datastore:v1beta2/Query/order": order +"/datastore:v1beta2/Query/order/order": order +"/datastore:v1beta2/Query/projection": projection +"/datastore:v1beta2/Query/projection/projection": projection +"/datastore:v1beta2/Query/startCursor": start_cursor +"/datastore:v1beta2/QueryResultBatch": query_result_batch +"/datastore:v1beta2/QueryResultBatch/endCursor": end_cursor +"/datastore:v1beta2/QueryResultBatch/entityResultType": entity_result_type +"/datastore:v1beta2/QueryResultBatch/entityResults": entity_results +"/datastore:v1beta2/QueryResultBatch/entityResults/entity_result": entity_result +"/datastore:v1beta2/QueryResultBatch/moreResults": more_results +"/datastore:v1beta2/QueryResultBatch/skippedResults": skipped_results +"/datastore:v1beta2/ReadOptions": read_options +"/datastore:v1beta2/ReadOptions/readConsistency": read_consistency +"/datastore:v1beta2/ReadOptions/transaction": transaction +"/datastore:v1beta2/ResponseHeader": response_header +"/datastore:v1beta2/ResponseHeader/kind": kind +"/datastore:v1beta2/RollbackRequest": rollback_request +"/datastore:v1beta2/RollbackRequest/transaction": transaction +"/datastore:v1beta2/RollbackResponse": rollback_response +"/datastore:v1beta2/RollbackResponse/header": header +"/datastore:v1beta2/RunQueryRequest": run_query_request +"/datastore:v1beta2/RunQueryRequest/gqlQuery": gql_query +"/datastore:v1beta2/RunQueryRequest/partitionId": partition_id +"/datastore:v1beta2/RunQueryRequest/query": query +"/datastore:v1beta2/RunQueryRequest/readOptions": read_options +"/datastore:v1beta2/RunQueryResponse": run_query_response +"/datastore:v1beta2/RunQueryResponse/batch": batch +"/datastore:v1beta2/RunQueryResponse/header": header +"/datastore:v1beta2/Value": value +"/datastore:v1beta2/Value/blobKeyValue": blob_key_value +"/datastore:v1beta2/Value/blobValue": blob_value +"/datastore:v1beta2/Value/booleanValue": boolean_value +"/datastore:v1beta2/Value/dateTimeValue": date_time_value +"/datastore:v1beta2/Value/doubleValue": double_value +"/datastore:v1beta2/Value/entityValue": entity_value +"/datastore:v1beta2/Value/indexed": indexed +"/datastore:v1beta2/Value/integerValue": integer_value +"/datastore:v1beta2/Value/keyValue": key_value +"/datastore:v1beta2/Value/listValue": list_value +"/datastore:v1beta2/Value/listValue/list_value": list_value +"/datastore:v1beta2/Value/meaning": meaning +"/datastore:v1beta2/Value/stringValue": string_value +"/deploymentmanager:v2beta2/fields": fields +"/deploymentmanager:v2beta2/key": key +"/deploymentmanager:v2beta2/quotaUser": quota_user +"/deploymentmanager:v2beta2/userIp": user_ip +"/deploymentmanager:v2beta2/deploymentmanager.deployments.delete": delete_deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.delete/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.delete/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.get": get_deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.get/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.get/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.insert": insert_deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.insert/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.list": list_deployments +"/deploymentmanager:v2beta2/deploymentmanager.deployments.list/filter": filter +"/deploymentmanager:v2beta2/deploymentmanager.deployments.list/maxResults": max_results +"/deploymentmanager:v2beta2/deploymentmanager.deployments.list/pageToken": page_token +"/deploymentmanager:v2beta2/deploymentmanager.deployments.list/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch": patch_deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch/createPolicy": create_policy +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch/deletePolicy": delete_policy +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.patch/updatePolicy": update_policy +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update": update_deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update/createPolicy": create_policy +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update/deletePolicy": delete_policy +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update/project": project +"/deploymentmanager:v2beta2/deploymentmanager.deployments.update/updatePolicy": update_policy +"/deploymentmanager:v2beta2/deploymentmanager.manifests.get": get_manifest +"/deploymentmanager:v2beta2/deploymentmanager.manifests.get/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.manifests.get/manifest": manifest +"/deploymentmanager:v2beta2/deploymentmanager.manifests.get/project": project +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list": list_manifests +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list/filter": filter +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list/maxResults": max_results +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list/pageToken": page_token +"/deploymentmanager:v2beta2/deploymentmanager.manifests.list/project": project +"/deploymentmanager:v2beta2/deploymentmanager.operations.get": get_operation +"/deploymentmanager:v2beta2/deploymentmanager.operations.get/operation": operation +"/deploymentmanager:v2beta2/deploymentmanager.operations.get/project": project +"/deploymentmanager:v2beta2/deploymentmanager.operations.list": list_operations +"/deploymentmanager:v2beta2/deploymentmanager.operations.list/filter": filter +"/deploymentmanager:v2beta2/deploymentmanager.operations.list/maxResults": max_results +"/deploymentmanager:v2beta2/deploymentmanager.operations.list/pageToken": page_token +"/deploymentmanager:v2beta2/deploymentmanager.operations.list/project": project +"/deploymentmanager:v2beta2/deploymentmanager.resources.get": get_resource +"/deploymentmanager:v2beta2/deploymentmanager.resources.get/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.resources.get/project": project +"/deploymentmanager:v2beta2/deploymentmanager.resources.get/resource": resource +"/deploymentmanager:v2beta2/deploymentmanager.resources.list": list_resources +"/deploymentmanager:v2beta2/deploymentmanager.resources.list/deployment": deployment +"/deploymentmanager:v2beta2/deploymentmanager.resources.list/filter": filter +"/deploymentmanager:v2beta2/deploymentmanager.resources.list/maxResults": max_results +"/deploymentmanager:v2beta2/deploymentmanager.resources.list/pageToken": page_token +"/deploymentmanager:v2beta2/deploymentmanager.resources.list/project": project +"/deploymentmanager:v2beta2/deploymentmanager.types.list": list_types +"/deploymentmanager:v2beta2/deploymentmanager.types.list/filter": filter +"/deploymentmanager:v2beta2/deploymentmanager.types.list/maxResults": max_results +"/deploymentmanager:v2beta2/deploymentmanager.types.list/pageToken": page_token +"/deploymentmanager:v2beta2/deploymentmanager.types.list/project": project +"/deploymentmanager:v2beta2/Deployment": deployment +"/deploymentmanager:v2beta2/Deployment/description": description +"/deploymentmanager:v2beta2/Deployment/fingerprint": fingerprint +"/deploymentmanager:v2beta2/Deployment/id": id +"/deploymentmanager:v2beta2/Deployment/insertTime": insert_time +"/deploymentmanager:v2beta2/Deployment/intent": intent +"/deploymentmanager:v2beta2/Deployment/manifest": manifest +"/deploymentmanager:v2beta2/Deployment/name": name +"/deploymentmanager:v2beta2/Deployment/state": state +"/deploymentmanager:v2beta2/Deployment/target": target +"/deploymentmanager:v2beta2/Deployment/update": update +"/deploymentmanager:v2beta2/Deployment/updateTime": update_time +"/deploymentmanager:v2beta2/DeploymentUpdate": deployment_update +"/deploymentmanager:v2beta2/DeploymentUpdate/errors": errors +"/deploymentmanager:v2beta2/DeploymentUpdate/errors/error": error +"/deploymentmanager:v2beta2/DeploymentUpdate/manifest": manifest +"/deploymentmanager:v2beta2/DeploymentsListResponse/deployments": deployments +"/deploymentmanager:v2beta2/DeploymentsListResponse/deployments/deployment": deployment +"/deploymentmanager:v2beta2/DeploymentsListResponse/nextPageToken": next_page_token +"/deploymentmanager:v2beta2/ImportFile": import_file +"/deploymentmanager:v2beta2/ImportFile/content": content +"/deploymentmanager:v2beta2/ImportFile/name": name +"/deploymentmanager:v2beta2/Manifest": manifest +"/deploymentmanager:v2beta2/Manifest/config": config +"/deploymentmanager:v2beta2/Manifest/evaluatedConfig": evaluated_config +"/deploymentmanager:v2beta2/Manifest/id": id +"/deploymentmanager:v2beta2/Manifest/imports": imports +"/deploymentmanager:v2beta2/Manifest/imports/import": import +"/deploymentmanager:v2beta2/Manifest/insertTime": insert_time +"/deploymentmanager:v2beta2/Manifest/layout": layout +"/deploymentmanager:v2beta2/Manifest/name": name +"/deploymentmanager:v2beta2/Manifest/selfLink": self_link +"/deploymentmanager:v2beta2/ManifestsListResponse/manifests": manifests +"/deploymentmanager:v2beta2/ManifestsListResponse/manifests/manifest": manifest +"/deploymentmanager:v2beta2/ManifestsListResponse/nextPageToken": next_page_token +"/deploymentmanager:v2beta2/Operation": operation +"/deploymentmanager:v2beta2/Operation/clientOperationId": client_operation_id +"/deploymentmanager:v2beta2/Operation/creationTimestamp": creation_timestamp +"/deploymentmanager:v2beta2/Operation/endTime": end_time +"/deploymentmanager:v2beta2/Operation/error": error +"/deploymentmanager:v2beta2/Operation/error/errors": errors +"/deploymentmanager:v2beta2/Operation/error/errors/error": error +"/deploymentmanager:v2beta2/Operation/error/errors/error/code": code +"/deploymentmanager:v2beta2/Operation/error/errors/error/location": location +"/deploymentmanager:v2beta2/Operation/error/errors/error/message": message +"/deploymentmanager:v2beta2/Operation/httpErrorMessage": http_error_message +"/deploymentmanager:v2beta2/Operation/httpErrorStatusCode": http_error_status_code +"/deploymentmanager:v2beta2/Operation/id": id +"/deploymentmanager:v2beta2/Operation/insertTime": insert_time +"/deploymentmanager:v2beta2/Operation/kind": kind +"/deploymentmanager:v2beta2/Operation/name": name +"/deploymentmanager:v2beta2/Operation/operationType": operation_type +"/deploymentmanager:v2beta2/Operation/progress": progress +"/deploymentmanager:v2beta2/Operation/region": region +"/deploymentmanager:v2beta2/Operation/selfLink": self_link +"/deploymentmanager:v2beta2/Operation/startTime": start_time +"/deploymentmanager:v2beta2/Operation/status": status +"/deploymentmanager:v2beta2/Operation/statusMessage": status_message +"/deploymentmanager:v2beta2/Operation/targetId": target_id +"/deploymentmanager:v2beta2/Operation/targetLink": target_link +"/deploymentmanager:v2beta2/Operation/user": user +"/deploymentmanager:v2beta2/Operation/warnings": warnings +"/deploymentmanager:v2beta2/Operation/warnings/warning": warning +"/deploymentmanager:v2beta2/Operation/warnings/warning/code": code +"/deploymentmanager:v2beta2/Operation/warnings/warning/data": data +"/deploymentmanager:v2beta2/Operation/warnings/warning/data/datum": datum +"/deploymentmanager:v2beta2/Operation/warnings/warning/data/datum/key": key +"/deploymentmanager:v2beta2/Operation/warnings/warning/data/datum/value": value +"/deploymentmanager:v2beta2/Operation/warnings/warning/message": message +"/deploymentmanager:v2beta2/Operation/zone": zone +"/deploymentmanager:v2beta2/OperationsListResponse/nextPageToken": next_page_token +"/deploymentmanager:v2beta2/OperationsListResponse/operations": operations +"/deploymentmanager:v2beta2/OperationsListResponse/operations/operation": operation +"/deploymentmanager:v2beta2/Resource": resource +"/deploymentmanager:v2beta2/Resource/finalProperties": final_properties +"/deploymentmanager:v2beta2/Resource/id": id +"/deploymentmanager:v2beta2/Resource/insertTime": insert_time +"/deploymentmanager:v2beta2/Resource/manifest": manifest +"/deploymentmanager:v2beta2/Resource/name": name +"/deploymentmanager:v2beta2/Resource/properties": properties +"/deploymentmanager:v2beta2/Resource/type": type +"/deploymentmanager:v2beta2/Resource/update": update +"/deploymentmanager:v2beta2/Resource/updateTime": update_time +"/deploymentmanager:v2beta2/Resource/url": url +"/deploymentmanager:v2beta2/ResourceUpdate": resource_update +"/deploymentmanager:v2beta2/ResourceUpdate/errors": errors +"/deploymentmanager:v2beta2/ResourceUpdate/errors/error": error +"/deploymentmanager:v2beta2/ResourceUpdate/finalProperties": final_properties +"/deploymentmanager:v2beta2/ResourceUpdate/intent": intent +"/deploymentmanager:v2beta2/ResourceUpdate/manifest": manifest +"/deploymentmanager:v2beta2/ResourceUpdate/properties": properties +"/deploymentmanager:v2beta2/ResourceUpdate/state": state +"/deploymentmanager:v2beta2/ResourcesListResponse/nextPageToken": next_page_token +"/deploymentmanager:v2beta2/ResourcesListResponse/resources": resources +"/deploymentmanager:v2beta2/ResourcesListResponse/resources/resource": resource +"/deploymentmanager:v2beta2/TargetConfiguration": target_configuration +"/deploymentmanager:v2beta2/TargetConfiguration/config": config +"/deploymentmanager:v2beta2/TargetConfiguration/imports": imports +"/deploymentmanager:v2beta2/TargetConfiguration/imports/import": import +"/deploymentmanager:v2beta2/Type": type +"/deploymentmanager:v2beta2/Type/name": name +"/deploymentmanager:v2beta2/TypesListResponse/nextPageToken": next_page_token +"/deploymentmanager:v2beta2/TypesListResponse/types": types +"/deploymentmanager:v2beta2/TypesListResponse/types/type": type +"/dfareporting:v2.1/fields": fields +"/dfareporting:v2.1/key": key +"/dfareporting:v2.1/quotaUser": quota_user +"/dfareporting:v2.1/userIp": user_ip +"/dfareporting:v2.1/dfareporting.accountActiveAdSummaries.get": get_account_active_ad_summary +"/dfareporting:v2.1/dfareporting.accountActiveAdSummaries.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountActiveAdSummaries.get/summaryAccountId": summary_account_id +"/dfareporting:v2.1/dfareporting.accountPermissionGroups.get": get_account_permission_group +"/dfareporting:v2.1/dfareporting.accountPermissionGroups.get/id": id +"/dfareporting:v2.1/dfareporting.accountPermissionGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountPermissionGroups.list": list_account_permission_groups +"/dfareporting:v2.1/dfareporting.accountPermissionGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountPermissions.get": get_account_permission +"/dfareporting:v2.1/dfareporting.accountPermissions.get/id": id +"/dfareporting:v2.1/dfareporting.accountPermissions.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountPermissions.list": list_account_permissions +"/dfareporting:v2.1/dfareporting.accountPermissions.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.get": get_account_user_profile +"/dfareporting:v2.1/dfareporting.accountUserProfiles.get/id": id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.insert": insert_account_user_profile +"/dfareporting:v2.1/dfareporting.accountUserProfiles.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list": list_account_user_profiles +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/active": active +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/ids": ids +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/subaccountId": subaccount_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.list/userRoleId": user_role_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.patch": patch_account_user_profile +"/dfareporting:v2.1/dfareporting.accountUserProfiles.patch/id": id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accountUserProfiles.update": update_account_user_profile +"/dfareporting:v2.1/dfareporting.accountUserProfiles.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accounts.get": get_account +"/dfareporting:v2.1/dfareporting.accounts.get/id": id +"/dfareporting:v2.1/dfareporting.accounts.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accounts.list": list_accounts +"/dfareporting:v2.1/dfareporting.accounts.list/active": active +"/dfareporting:v2.1/dfareporting.accounts.list/ids": ids +"/dfareporting:v2.1/dfareporting.accounts.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.accounts.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.accounts.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accounts.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.accounts.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.accounts.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.accounts.patch": patch_account +"/dfareporting:v2.1/dfareporting.accounts.patch/id": id +"/dfareporting:v2.1/dfareporting.accounts.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.accounts.update": update_account +"/dfareporting:v2.1/dfareporting.accounts.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.ads.get": get_ad +"/dfareporting:v2.1/dfareporting.ads.get/id": id +"/dfareporting:v2.1/dfareporting.ads.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.ads.insert": insert_ad +"/dfareporting:v2.1/dfareporting.ads.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.ads.list": list_ads +"/dfareporting:v2.1/dfareporting.ads.list/active": active +"/dfareporting:v2.1/dfareporting.ads.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.ads.list/archived": archived +"/dfareporting:v2.1/dfareporting.ads.list/audienceSegmentIds": audience_segment_ids +"/dfareporting:v2.1/dfareporting.ads.list/campaignIds": campaign_ids +"/dfareporting:v2.1/dfareporting.ads.list/compatibility": compatibility +"/dfareporting:v2.1/dfareporting.ads.list/creativeIds": creative_ids +"/dfareporting:v2.1/dfareporting.ads.list/creativeOptimizationConfigurationIds": creative_optimization_configuration_ids +"/dfareporting:v2.1/dfareporting.ads.list/creativeType": creative_type +"/dfareporting:v2.1/dfareporting.ads.list/dynamicClickTracker": dynamic_click_tracker +"/dfareporting:v2.1/dfareporting.ads.list/ids": ids +"/dfareporting:v2.1/dfareporting.ads.list/landingPageIds": landing_page_ids +"/dfareporting:v2.1/dfareporting.ads.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.ads.list/overriddenEventTagId": overridden_event_tag_id +"/dfareporting:v2.1/dfareporting.ads.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.ads.list/placementIds": placement_ids +"/dfareporting:v2.1/dfareporting.ads.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.ads.list/remarketingListIds": remarketing_list_ids +"/dfareporting:v2.1/dfareporting.ads.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.ads.list/sizeIds": size_ids +"/dfareporting:v2.1/dfareporting.ads.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.ads.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.ads.list/sslCompliant": ssl_compliant +"/dfareporting:v2.1/dfareporting.ads.list/sslRequired": ssl_required +"/dfareporting:v2.1/dfareporting.ads.list/type": type +"/dfareporting:v2.1/dfareporting.ads.patch": patch_ad +"/dfareporting:v2.1/dfareporting.ads.patch/id": id +"/dfareporting:v2.1/dfareporting.ads.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.ads.update": update_ad +"/dfareporting:v2.1/dfareporting.ads.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.delete": delete_advertiser_group +"/dfareporting:v2.1/dfareporting.advertiserGroups.delete/id": id +"/dfareporting:v2.1/dfareporting.advertiserGroups.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.get": get_advertiser_group +"/dfareporting:v2.1/dfareporting.advertiserGroups.get/id": id +"/dfareporting:v2.1/dfareporting.advertiserGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.insert": insert_advertiser_group +"/dfareporting:v2.1/dfareporting.advertiserGroups.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.list": list_advertiser_groups +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/ids": ids +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.advertiserGroups.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.advertiserGroups.patch": patch_advertiser_group +"/dfareporting:v2.1/dfareporting.advertiserGroups.patch/id": id +"/dfareporting:v2.1/dfareporting.advertiserGroups.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertiserGroups.update": update_advertiser_group +"/dfareporting:v2.1/dfareporting.advertiserGroups.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertisers.get": get_advertiser +"/dfareporting:v2.1/dfareporting.advertisers.get/id": id +"/dfareporting:v2.1/dfareporting.advertisers.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertisers.insert": insert_advertiser +"/dfareporting:v2.1/dfareporting.advertisers.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertisers.list": list_advertisers +"/dfareporting:v2.1/dfareporting.advertisers.list/advertiserGroupIds": advertiser_group_ids +"/dfareporting:v2.1/dfareporting.advertisers.list/floodlightConfigurationIds": floodlight_configuration_ids +"/dfareporting:v2.1/dfareporting.advertisers.list/ids": ids +"/dfareporting:v2.1/dfareporting.advertisers.list/includeAdvertisersWithoutGroupsOnly": include_advertisers_without_groups_only +"/dfareporting:v2.1/dfareporting.advertisers.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.advertisers.list/onlyParent": only_parent +"/dfareporting:v2.1/dfareporting.advertisers.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.advertisers.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertisers.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.advertisers.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.advertisers.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.advertisers.list/status": status +"/dfareporting:v2.1/dfareporting.advertisers.list/subaccountId": subaccount_id +"/dfareporting:v2.1/dfareporting.advertisers.patch": patch_advertiser +"/dfareporting:v2.1/dfareporting.advertisers.patch/id": id +"/dfareporting:v2.1/dfareporting.advertisers.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.advertisers.update": update_advertiser +"/dfareporting:v2.1/dfareporting.advertisers.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.browsers.list": list_browsers +"/dfareporting:v2.1/dfareporting.browsers.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.insert": insert_campaign_creative_association +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.insert/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list": list_campaign_creative_associations +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaignCreativeAssociations.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.campaigns.get": get_campaign +"/dfareporting:v2.1/dfareporting.campaigns.get/id": id +"/dfareporting:v2.1/dfareporting.campaigns.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaigns.insert": insert_campaign +"/dfareporting:v2.1/dfareporting.campaigns.insert/defaultLandingPageName": default_landing_page_name +"/dfareporting:v2.1/dfareporting.campaigns.insert/defaultLandingPageUrl": default_landing_page_url +"/dfareporting:v2.1/dfareporting.campaigns.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaigns.list": list_campaigns +"/dfareporting:v2.1/dfareporting.campaigns.list/advertiserGroupIds": advertiser_group_ids +"/dfareporting:v2.1/dfareporting.campaigns.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.campaigns.list/archived": archived +"/dfareporting:v2.1/dfareporting.campaigns.list/atLeastOneOptimizationActivity": at_least_one_optimization_activity +"/dfareporting:v2.1/dfareporting.campaigns.list/excludedIds": excluded_ids +"/dfareporting:v2.1/dfareporting.campaigns.list/ids": ids +"/dfareporting:v2.1/dfareporting.campaigns.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.campaigns.list/overriddenEventTagId": overridden_event_tag_id +"/dfareporting:v2.1/dfareporting.campaigns.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.campaigns.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaigns.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.campaigns.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.campaigns.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.campaigns.list/subaccountId": subaccount_id +"/dfareporting:v2.1/dfareporting.campaigns.patch": patch_campaign +"/dfareporting:v2.1/dfareporting.campaigns.patch/id": id +"/dfareporting:v2.1/dfareporting.campaigns.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.campaigns.update": update_campaign +"/dfareporting:v2.1/dfareporting.campaigns.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.changeLogs.get": get_change_log +"/dfareporting:v2.1/dfareporting.changeLogs.get/id": id +"/dfareporting:v2.1/dfareporting.changeLogs.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.changeLogs.list": list_change_logs +"/dfareporting:v2.1/dfareporting.changeLogs.list/action": action +"/dfareporting:v2.1/dfareporting.changeLogs.list/ids": ids +"/dfareporting:v2.1/dfareporting.changeLogs.list/maxChangeTime": max_change_time +"/dfareporting:v2.1/dfareporting.changeLogs.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.changeLogs.list/minChangeTime": min_change_time +"/dfareporting:v2.1/dfareporting.changeLogs.list/objectIds": object_ids +"/dfareporting:v2.1/dfareporting.changeLogs.list/objectType": object_type +"/dfareporting:v2.1/dfareporting.changeLogs.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.changeLogs.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.changeLogs.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.changeLogs.list/userProfileIds": user_profile_ids +"/dfareporting:v2.1/dfareporting.cities.list": list_cities +"/dfareporting:v2.1/dfareporting.cities.list/countryDartIds": country_dart_ids +"/dfareporting:v2.1/dfareporting.cities.list/dartIds": dart_ids +"/dfareporting:v2.1/dfareporting.cities.list/namePrefix": name_prefix +"/dfareporting:v2.1/dfareporting.cities.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.cities.list/regionDartIds": region_dart_ids +"/dfareporting:v2.1/dfareporting.connectionTypes.get": get_connection_type +"/dfareporting:v2.1/dfareporting.connectionTypes.get/id": id +"/dfareporting:v2.1/dfareporting.connectionTypes.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.connectionTypes.list": list_connection_types +"/dfareporting:v2.1/dfareporting.connectionTypes.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.delete": delete_content_category +"/dfareporting:v2.1/dfareporting.contentCategories.delete/id": id +"/dfareporting:v2.1/dfareporting.contentCategories.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.get": get_content_category +"/dfareporting:v2.1/dfareporting.contentCategories.get/id": id +"/dfareporting:v2.1/dfareporting.contentCategories.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.insert": insert_content_category +"/dfareporting:v2.1/dfareporting.contentCategories.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.list": list_content_categories +"/dfareporting:v2.1/dfareporting.contentCategories.list/ids": ids +"/dfareporting:v2.1/dfareporting.contentCategories.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.contentCategories.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.contentCategories.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.contentCategories.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.contentCategories.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.contentCategories.patch": patch_content_category +"/dfareporting:v2.1/dfareporting.contentCategories.patch/id": id +"/dfareporting:v2.1/dfareporting.contentCategories.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.contentCategories.update": update_content_category +"/dfareporting:v2.1/dfareporting.contentCategories.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.countries.get": get_country +"/dfareporting:v2.1/dfareporting.countries.get/dartId": dart_id +"/dfareporting:v2.1/dfareporting.countries.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.countries.list": list_countries +"/dfareporting:v2.1/dfareporting.countries.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeAssets.insert": insert_creative_asset +"/dfareporting:v2.1/dfareporting.creativeAssets.insert/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.creativeAssets.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.delete": delete_creative_field_value +"/dfareporting:v2.1/dfareporting.creativeFieldValues.delete/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.delete/id": id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.get": get_creative_field_value +"/dfareporting:v2.1/dfareporting.creativeFieldValues.get/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.get/id": id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.insert": insert_creative_field_value +"/dfareporting:v2.1/dfareporting.creativeFieldValues.insert/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list": list_creative_field_values +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/ids": ids +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.creativeFieldValues.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.creativeFieldValues.patch": patch_creative_field_value +"/dfareporting:v2.1/dfareporting.creativeFieldValues.patch/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.patch/id": id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.update": update_creative_field_value +"/dfareporting:v2.1/dfareporting.creativeFieldValues.update/creativeFieldId": creative_field_id +"/dfareporting:v2.1/dfareporting.creativeFieldValues.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.delete": delete_creative_field +"/dfareporting:v2.1/dfareporting.creativeFields.delete/id": id +"/dfareporting:v2.1/dfareporting.creativeFields.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.get": get_creative_field +"/dfareporting:v2.1/dfareporting.creativeFields.get/id": id +"/dfareporting:v2.1/dfareporting.creativeFields.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.insert": insert_creative_field +"/dfareporting:v2.1/dfareporting.creativeFields.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.list": list_creative_fields +"/dfareporting:v2.1/dfareporting.creativeFields.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.creativeFields.list/ids": ids +"/dfareporting:v2.1/dfareporting.creativeFields.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.creativeFields.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.creativeFields.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.creativeFields.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.creativeFields.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.creativeFields.patch": patch_creative_field +"/dfareporting:v2.1/dfareporting.creativeFields.patch/id": id +"/dfareporting:v2.1/dfareporting.creativeFields.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeFields.update": update_creative_field +"/dfareporting:v2.1/dfareporting.creativeFields.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeGroups.get": get_creative_group +"/dfareporting:v2.1/dfareporting.creativeGroups.get/id": id +"/dfareporting:v2.1/dfareporting.creativeGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeGroups.insert": insert_creative_group +"/dfareporting:v2.1/dfareporting.creativeGroups.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeGroups.list": list_creative_groups +"/dfareporting:v2.1/dfareporting.creativeGroups.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.creativeGroups.list/groupNumber": group_number +"/dfareporting:v2.1/dfareporting.creativeGroups.list/ids": ids +"/dfareporting:v2.1/dfareporting.creativeGroups.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.creativeGroups.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.creativeGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeGroups.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.creativeGroups.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.creativeGroups.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.creativeGroups.patch": patch_creative_group +"/dfareporting:v2.1/dfareporting.creativeGroups.patch/id": id +"/dfareporting:v2.1/dfareporting.creativeGroups.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creativeGroups.update": update_creative_group +"/dfareporting:v2.1/dfareporting.creativeGroups.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creatives.get": get_creative +"/dfareporting:v2.1/dfareporting.creatives.get/id": id +"/dfareporting:v2.1/dfareporting.creatives.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creatives.insert": insert_creative +"/dfareporting:v2.1/dfareporting.creatives.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creatives.list": list_creatives +"/dfareporting:v2.1/dfareporting.creatives.list/active": active +"/dfareporting:v2.1/dfareporting.creatives.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.creatives.list/archived": archived +"/dfareporting:v2.1/dfareporting.creatives.list/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.creatives.list/companionCreativeIds": companion_creative_ids +"/dfareporting:v2.1/dfareporting.creatives.list/creativeFieldIds": creative_field_ids +"/dfareporting:v2.1/dfareporting.creatives.list/ids": ids +"/dfareporting:v2.1/dfareporting.creatives.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.creatives.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.creatives.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creatives.list/renderingIds": rendering_ids +"/dfareporting:v2.1/dfareporting.creatives.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.creatives.list/sizeIds": size_ids +"/dfareporting:v2.1/dfareporting.creatives.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.creatives.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.creatives.list/studioCreativeId": studio_creative_id +"/dfareporting:v2.1/dfareporting.creatives.list/types": types +"/dfareporting:v2.1/dfareporting.creatives.patch": patch_creative +"/dfareporting:v2.1/dfareporting.creatives.patch/id": id +"/dfareporting:v2.1/dfareporting.creatives.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.creatives.update": update_creative +"/dfareporting:v2.1/dfareporting.creatives.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.dimensionValues.query": query_dimension_value +"/dfareporting:v2.1/dfareporting.dimensionValues.query/maxResults": max_results +"/dfareporting:v2.1/dfareporting.dimensionValues.query/pageToken": page_token +"/dfareporting:v2.1/dfareporting.dimensionValues.query/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySiteContacts.get": get_directory_site_contact +"/dfareporting:v2.1/dfareporting.directorySiteContacts.get/id": id +"/dfareporting:v2.1/dfareporting.directorySiteContacts.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list": list_directory_site_contacts +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/directorySiteIds": directory_site_ids +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/ids": ids +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.directorySiteContacts.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.directorySites.get": get_directory_site +"/dfareporting:v2.1/dfareporting.directorySites.get/id": id +"/dfareporting:v2.1/dfareporting.directorySites.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySites.insert": insert_directory_site +"/dfareporting:v2.1/dfareporting.directorySites.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySites.list": list_directory_sites +"/dfareporting:v2.1/dfareporting.directorySites.list/acceptsInStreamVideoPlacements": accepts_in_stream_video_placements +"/dfareporting:v2.1/dfareporting.directorySites.list/acceptsInterstitialPlacements": accepts_interstitial_placements +"/dfareporting:v2.1/dfareporting.directorySites.list/acceptsPublisherPaidPlacements": accepts_publisher_paid_placements +"/dfareporting:v2.1/dfareporting.directorySites.list/active": active +"/dfareporting:v2.1/dfareporting.directorySites.list/countryId": country_id +"/dfareporting:v2.1/dfareporting.directorySites.list/dfp_network_code": dfp_network_code +"/dfareporting:v2.1/dfareporting.directorySites.list/ids": ids +"/dfareporting:v2.1/dfareporting.directorySites.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.directorySites.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.directorySites.list/parentId": parent_id +"/dfareporting:v2.1/dfareporting.directorySites.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.directorySites.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.directorySites.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.directorySites.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.eventTags.delete": delete_event_tag +"/dfareporting:v2.1/dfareporting.eventTags.delete/id": id +"/dfareporting:v2.1/dfareporting.eventTags.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.eventTags.get": get_event_tag +"/dfareporting:v2.1/dfareporting.eventTags.get/id": id +"/dfareporting:v2.1/dfareporting.eventTags.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.eventTags.insert": insert_event_tag +"/dfareporting:v2.1/dfareporting.eventTags.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.eventTags.list": list_event_tags +"/dfareporting:v2.1/dfareporting.eventTags.list/adId": ad_id +"/dfareporting:v2.1/dfareporting.eventTags.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.eventTags.list/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.eventTags.list/definitionsOnly": definitions_only +"/dfareporting:v2.1/dfareporting.eventTags.list/enabled": enabled +"/dfareporting:v2.1/dfareporting.eventTags.list/eventTagTypes": event_tag_types +"/dfareporting:v2.1/dfareporting.eventTags.list/ids": ids +"/dfareporting:v2.1/dfareporting.eventTags.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.eventTags.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.eventTags.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.eventTags.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.eventTags.patch": patch_event_tag +"/dfareporting:v2.1/dfareporting.eventTags.patch/id": id +"/dfareporting:v2.1/dfareporting.eventTags.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.eventTags.update": update_event_tag +"/dfareporting:v2.1/dfareporting.eventTags.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.files.get": get_file +"/dfareporting:v2.1/dfareporting.files.get/fileId": file_id +"/dfareporting:v2.1/dfareporting.files.get/reportId": report_id +"/dfareporting:v2.1/dfareporting.files.list": list_files +"/dfareporting:v2.1/dfareporting.files.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.files.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.files.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.files.list/scope": scope +"/dfareporting:v2.1/dfareporting.files.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.files.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.floodlightActivities.delete": delete_floodlight_activity +"/dfareporting:v2.1/dfareporting.floodlightActivities.delete/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivities.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.generatetag/floodlightActivityId": floodlight_activity_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.generatetag/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.get": get_floodlight_activity +"/dfareporting:v2.1/dfareporting.floodlightActivities.get/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivities.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.insert": insert_floodlight_activity +"/dfareporting:v2.1/dfareporting.floodlightActivities.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.list": list_floodlight_activities +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/floodlightActivityGroupIds": floodlight_activity_group_ids +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/floodlightActivityGroupName": floodlight_activity_group_name +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/floodlightActivityGroupTagString": floodlight_activity_group_tag_string +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/floodlightActivityGroupType": floodlight_activity_group_type +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/floodlightConfigurationId": floodlight_configuration_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/ids": ids +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.floodlightActivities.list/tagString": tag_string +"/dfareporting:v2.1/dfareporting.floodlightActivities.patch": patch_floodlight_activity +"/dfareporting:v2.1/dfareporting.floodlightActivities.patch/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivities.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivities.update": update_floodlight_activity +"/dfareporting:v2.1/dfareporting.floodlightActivities.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.delete": delete_floodlight_activity_group +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.delete/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.get": get_floodlight_activity_group +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.get/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.insert": insert_floodlight_activity_group +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list": list_floodlight_activity_groups +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/floodlightConfigurationId": floodlight_configuration_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/ids": ids +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.list/type": type +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.patch": patch_floodlight_activity_group +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.patch/id": id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.update": update_floodlight_activity_group +"/dfareporting:v2.1/dfareporting.floodlightActivityGroups.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.get": get_floodlight_configuration +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.get/id": id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.list": list_floodlight_configurations +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.list/ids": ids +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.patch": patch_floodlight_configuration +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.patch/id": id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.update": update_floodlight_configuration +"/dfareporting:v2.1/dfareporting.floodlightConfigurations.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.inventoryItems.get": get_inventory_item +"/dfareporting:v2.1/dfareporting.inventoryItems.get/id": id +"/dfareporting:v2.1/dfareporting.inventoryItems.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.inventoryItems.get/projectId": project_id +"/dfareporting:v2.1/dfareporting.inventoryItems.list": list_inventory_items +"/dfareporting:v2.1/dfareporting.inventoryItems.list/ids": ids +"/dfareporting:v2.1/dfareporting.inventoryItems.list/inPlan": in_plan +"/dfareporting:v2.1/dfareporting.inventoryItems.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.inventoryItems.list/orderId": order_id +"/dfareporting:v2.1/dfareporting.inventoryItems.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.inventoryItems.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.inventoryItems.list/projectId": project_id +"/dfareporting:v2.1/dfareporting.inventoryItems.list/siteId": site_id +"/dfareporting:v2.1/dfareporting.inventoryItems.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.inventoryItems.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.landingPages.delete": delete_landing_page +"/dfareporting:v2.1/dfareporting.landingPages.delete/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.delete/id": id +"/dfareporting:v2.1/dfareporting.landingPages.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.landingPages.get": get_landing_page +"/dfareporting:v2.1/dfareporting.landingPages.get/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.get/id": id +"/dfareporting:v2.1/dfareporting.landingPages.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.landingPages.insert": insert_landing_page +"/dfareporting:v2.1/dfareporting.landingPages.insert/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.landingPages.list": list_landing_pages +"/dfareporting:v2.1/dfareporting.landingPages.list/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.landingPages.patch": patch_landing_page +"/dfareporting:v2.1/dfareporting.landingPages.patch/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.patch/id": id +"/dfareporting:v2.1/dfareporting.landingPages.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.landingPages.update": update_landing_page +"/dfareporting:v2.1/dfareporting.landingPages.update/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.landingPages.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.metros.list": list_metros +"/dfareporting:v2.1/dfareporting.metros.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.mobileCarriers.get": get_mobile_carrier +"/dfareporting:v2.1/dfareporting.mobileCarriers.get/id": id +"/dfareporting:v2.1/dfareporting.mobileCarriers.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.mobileCarriers.list": list_mobile_carriers +"/dfareporting:v2.1/dfareporting.mobileCarriers.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.operatingSystemVersions.get": get_operating_system_version +"/dfareporting:v2.1/dfareporting.operatingSystemVersions.get/id": id +"/dfareporting:v2.1/dfareporting.operatingSystemVersions.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.operatingSystemVersions.list": list_operating_system_versions +"/dfareporting:v2.1/dfareporting.operatingSystemVersions.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.operatingSystems.get": get_operating_system +"/dfareporting:v2.1/dfareporting.operatingSystems.get/dartId": dart_id +"/dfareporting:v2.1/dfareporting.operatingSystems.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.operatingSystems.list": list_operating_systems +"/dfareporting:v2.1/dfareporting.operatingSystems.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.orderDocuments.get": get_order_document +"/dfareporting:v2.1/dfareporting.orderDocuments.get/id": id +"/dfareporting:v2.1/dfareporting.orderDocuments.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.orderDocuments.get/projectId": project_id +"/dfareporting:v2.1/dfareporting.orderDocuments.list": list_order_documents +"/dfareporting:v2.1/dfareporting.orderDocuments.list/approved": approved +"/dfareporting:v2.1/dfareporting.orderDocuments.list/ids": ids +"/dfareporting:v2.1/dfareporting.orderDocuments.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.orderDocuments.list/orderId": order_id +"/dfareporting:v2.1/dfareporting.orderDocuments.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.orderDocuments.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.orderDocuments.list/projectId": project_id +"/dfareporting:v2.1/dfareporting.orderDocuments.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.orderDocuments.list/siteId": site_id +"/dfareporting:v2.1/dfareporting.orderDocuments.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.orderDocuments.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.orders.get": get_order +"/dfareporting:v2.1/dfareporting.orders.get/id": id +"/dfareporting:v2.1/dfareporting.orders.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.orders.get/projectId": project_id +"/dfareporting:v2.1/dfareporting.orders.list": list_orders +"/dfareporting:v2.1/dfareporting.orders.list/ids": ids +"/dfareporting:v2.1/dfareporting.orders.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.orders.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.orders.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.orders.list/projectId": project_id +"/dfareporting:v2.1/dfareporting.orders.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.orders.list/siteId": site_id +"/dfareporting:v2.1/dfareporting.orders.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.orders.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.placementGroups.get": get_placement_group +"/dfareporting:v2.1/dfareporting.placementGroups.get/id": id +"/dfareporting:v2.1/dfareporting.placementGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementGroups.insert": insert_placement_group +"/dfareporting:v2.1/dfareporting.placementGroups.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementGroups.list": list_placement_groups +"/dfareporting:v2.1/dfareporting.placementGroups.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/archived": archived +"/dfareporting:v2.1/dfareporting.placementGroups.list/campaignIds": campaign_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/contentCategoryIds": content_category_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/directorySiteIds": directory_site_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/ids": ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.placementGroups.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.placementGroups.list/placementGroupType": placement_group_type +"/dfareporting:v2.1/dfareporting.placementGroups.list/placementStrategyIds": placement_strategy_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/pricingTypes": pricing_types +"/dfareporting:v2.1/dfareporting.placementGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementGroups.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.placementGroups.list/siteIds": site_ids +"/dfareporting:v2.1/dfareporting.placementGroups.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.placementGroups.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.placementGroups.patch": patch_placement_group +"/dfareporting:v2.1/dfareporting.placementGroups.patch/id": id +"/dfareporting:v2.1/dfareporting.placementGroups.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementGroups.update": update_placement_group +"/dfareporting:v2.1/dfareporting.placementGroups.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.delete": delete_placement_strategy +"/dfareporting:v2.1/dfareporting.placementStrategies.delete/id": id +"/dfareporting:v2.1/dfareporting.placementStrategies.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.get": get_placement_strategy +"/dfareporting:v2.1/dfareporting.placementStrategies.get/id": id +"/dfareporting:v2.1/dfareporting.placementStrategies.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.insert": insert_placement_strategy +"/dfareporting:v2.1/dfareporting.placementStrategies.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.list": list_placement_strategies +"/dfareporting:v2.1/dfareporting.placementStrategies.list/ids": ids +"/dfareporting:v2.1/dfareporting.placementStrategies.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.placementStrategies.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.placementStrategies.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.placementStrategies.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.placementStrategies.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.placementStrategies.patch": patch_placement_strategy +"/dfareporting:v2.1/dfareporting.placementStrategies.patch/id": id +"/dfareporting:v2.1/dfareporting.placementStrategies.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placementStrategies.update": update_placement_strategy +"/dfareporting:v2.1/dfareporting.placementStrategies.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.generatetags/campaignId": campaign_id +"/dfareporting:v2.1/dfareporting.placements.generatetags/placementIds": placement_ids +"/dfareporting:v2.1/dfareporting.placements.generatetags/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.generatetags/tagFormats": tag_formats +"/dfareporting:v2.1/dfareporting.placements.get": get_placement +"/dfareporting:v2.1/dfareporting.placements.get/id": id +"/dfareporting:v2.1/dfareporting.placements.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.insert": insert_placement +"/dfareporting:v2.1/dfareporting.placements.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.list": list_placements +"/dfareporting:v2.1/dfareporting.placements.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.placements.list/archived": archived +"/dfareporting:v2.1/dfareporting.placements.list/campaignIds": campaign_ids +"/dfareporting:v2.1/dfareporting.placements.list/compatibilities": compatibilities +"/dfareporting:v2.1/dfareporting.placements.list/contentCategoryIds": content_category_ids +"/dfareporting:v2.1/dfareporting.placements.list/directorySiteIds": directory_site_ids +"/dfareporting:v2.1/dfareporting.placements.list/groupIds": group_ids +"/dfareporting:v2.1/dfareporting.placements.list/ids": ids +"/dfareporting:v2.1/dfareporting.placements.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.placements.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.placements.list/paymentSource": payment_source +"/dfareporting:v2.1/dfareporting.placements.list/placementStrategyIds": placement_strategy_ids +"/dfareporting:v2.1/dfareporting.placements.list/pricingTypes": pricing_types +"/dfareporting:v2.1/dfareporting.placements.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.placements.list/siteIds": site_ids +"/dfareporting:v2.1/dfareporting.placements.list/sizeIds": size_ids +"/dfareporting:v2.1/dfareporting.placements.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.placements.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.placements.patch": patch_placement +"/dfareporting:v2.1/dfareporting.placements.patch/id": id +"/dfareporting:v2.1/dfareporting.placements.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.placements.update": update_placement +"/dfareporting:v2.1/dfareporting.placements.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.platformTypes.get": get_platform_type +"/dfareporting:v2.1/dfareporting.platformTypes.get/id": id +"/dfareporting:v2.1/dfareporting.platformTypes.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.platformTypes.list": list_platform_types +"/dfareporting:v2.1/dfareporting.platformTypes.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.postalCodes.get": get_postal_code +"/dfareporting:v2.1/dfareporting.postalCodes.get/code": code +"/dfareporting:v2.1/dfareporting.postalCodes.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.postalCodes.list": list_postal_codes +"/dfareporting:v2.1/dfareporting.postalCodes.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.projects.get": get_project +"/dfareporting:v2.1/dfareporting.projects.get/id": id +"/dfareporting:v2.1/dfareporting.projects.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.projects.list": list_projects +"/dfareporting:v2.1/dfareporting.projects.list/advertiserIds": advertiser_ids +"/dfareporting:v2.1/dfareporting.projects.list/ids": ids +"/dfareporting:v2.1/dfareporting.projects.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.projects.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.projects.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.projects.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.projects.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.projects.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.regions.list": list_regions +"/dfareporting:v2.1/dfareporting.regions.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingListShares.get": get_remarketing_list_share +"/dfareporting:v2.1/dfareporting.remarketingListShares.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingListShares.get/remarketingListId": remarketing_list_id +"/dfareporting:v2.1/dfareporting.remarketingListShares.patch": patch_remarketing_list_share +"/dfareporting:v2.1/dfareporting.remarketingListShares.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingListShares.patch/remarketingListId": remarketing_list_id +"/dfareporting:v2.1/dfareporting.remarketingListShares.update": update_remarketing_list_share +"/dfareporting:v2.1/dfareporting.remarketingListShares.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingLists.get": get_remarketing_list +"/dfareporting:v2.1/dfareporting.remarketingLists.get/id": id +"/dfareporting:v2.1/dfareporting.remarketingLists.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingLists.insert": insert_remarketing_list +"/dfareporting:v2.1/dfareporting.remarketingLists.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingLists.list": list_remarketing_lists +"/dfareporting:v2.1/dfareporting.remarketingLists.list/active": active +"/dfareporting:v2.1/dfareporting.remarketingLists.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.remarketingLists.list/floodlightActivityId": floodlight_activity_id +"/dfareporting:v2.1/dfareporting.remarketingLists.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.remarketingLists.list/name": name +"/dfareporting:v2.1/dfareporting.remarketingLists.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.remarketingLists.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingLists.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.remarketingLists.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.remarketingLists.patch": patch_remarketing_list +"/dfareporting:v2.1/dfareporting.remarketingLists.patch/id": id +"/dfareporting:v2.1/dfareporting.remarketingLists.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.remarketingLists.update": update_remarketing_list +"/dfareporting:v2.1/dfareporting.remarketingLists.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.delete": delete_report +"/dfareporting:v2.1/dfareporting.reports.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.delete/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.get": get_report +"/dfareporting:v2.1/dfareporting.reports.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.get/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.insert": insert_report +"/dfareporting:v2.1/dfareporting.reports.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.list": list_reports +"/dfareporting:v2.1/dfareporting.reports.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.reports.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.reports.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.list/scope": scope +"/dfareporting:v2.1/dfareporting.reports.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.reports.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.reports.patch": patch_report +"/dfareporting:v2.1/dfareporting.reports.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.patch/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.run": run_report +"/dfareporting:v2.1/dfareporting.reports.run/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.run/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.run/synchronous": synchronous +"/dfareporting:v2.1/dfareporting.reports.update": update_report +"/dfareporting:v2.1/dfareporting.reports.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.update/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.compatibleFields.query": query_report_compatible_field +"/dfareporting:v2.1/dfareporting.reports.compatibleFields.query/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.files.get": get_report_file +"/dfareporting:v2.1/dfareporting.reports.files.get/fileId": file_id +"/dfareporting:v2.1/dfareporting.reports.files.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.files.get/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.files.list": list_report_files +"/dfareporting:v2.1/dfareporting.reports.files.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.reports.files.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.reports.files.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.reports.files.list/reportId": report_id +"/dfareporting:v2.1/dfareporting.reports.files.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.reports.files.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.sites.get": get_site +"/dfareporting:v2.1/dfareporting.sites.get/id": id +"/dfareporting:v2.1/dfareporting.sites.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sites.insert": insert_site +"/dfareporting:v2.1/dfareporting.sites.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sites.list": list_sites +"/dfareporting:v2.1/dfareporting.sites.list/acceptsInStreamVideoPlacements": accepts_in_stream_video_placements +"/dfareporting:v2.1/dfareporting.sites.list/acceptsInterstitialPlacements": accepts_interstitial_placements +"/dfareporting:v2.1/dfareporting.sites.list/acceptsPublisherPaidPlacements": accepts_publisher_paid_placements +"/dfareporting:v2.1/dfareporting.sites.list/adWordsSite": ad_words_site +"/dfareporting:v2.1/dfareporting.sites.list/approved": approved +"/dfareporting:v2.1/dfareporting.sites.list/campaignIds": campaign_ids +"/dfareporting:v2.1/dfareporting.sites.list/directorySiteIds": directory_site_ids +"/dfareporting:v2.1/dfareporting.sites.list/ids": ids +"/dfareporting:v2.1/dfareporting.sites.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.sites.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.sites.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sites.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.sites.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.sites.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.sites.list/subaccountId": subaccount_id +"/dfareporting:v2.1/dfareporting.sites.list/unmappedSite": unmapped_site +"/dfareporting:v2.1/dfareporting.sites.patch": patch_site +"/dfareporting:v2.1/dfareporting.sites.patch/id": id +"/dfareporting:v2.1/dfareporting.sites.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sites.update": update_site +"/dfareporting:v2.1/dfareporting.sites.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sizes.get": get_size +"/dfareporting:v2.1/dfareporting.sizes.get/id": id +"/dfareporting:v2.1/dfareporting.sizes.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sizes.insert": insert_size +"/dfareporting:v2.1/dfareporting.sizes.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sizes.list": list_sizes +"/dfareporting:v2.1/dfareporting.sizes.list/height": height +"/dfareporting:v2.1/dfareporting.sizes.list/iabStandard": iab_standard +"/dfareporting:v2.1/dfareporting.sizes.list/ids": ids +"/dfareporting:v2.1/dfareporting.sizes.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.sizes.list/width": width +"/dfareporting:v2.1/dfareporting.subaccounts.get": get_subaccount +"/dfareporting:v2.1/dfareporting.subaccounts.get/id": id +"/dfareporting:v2.1/dfareporting.subaccounts.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.subaccounts.insert": insert_subaccount +"/dfareporting:v2.1/dfareporting.subaccounts.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.subaccounts.list": list_subaccounts +"/dfareporting:v2.1/dfareporting.subaccounts.list/ids": ids +"/dfareporting:v2.1/dfareporting.subaccounts.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.subaccounts.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.subaccounts.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.subaccounts.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.subaccounts.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.subaccounts.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.subaccounts.patch": patch_subaccount +"/dfareporting:v2.1/dfareporting.subaccounts.patch/id": id +"/dfareporting:v2.1/dfareporting.subaccounts.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.subaccounts.update": update_subaccount +"/dfareporting:v2.1/dfareporting.subaccounts.update/profileId": profile_id +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.get": get_targetable_remarketing_list +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.get/id": id +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list": list_targetable_remarketing_lists +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/active": active +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/advertiserId": advertiser_id +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/name": name +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.targetableRemarketingLists.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.userProfiles.get": get_user_profile +"/dfareporting:v2.1/dfareporting.userProfiles.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userProfiles.list": list_user_profiles +"/dfareporting:v2.1/dfareporting.userRolePermissionGroups.get": get_user_role_permission_group +"/dfareporting:v2.1/dfareporting.userRolePermissionGroups.get/id": id +"/dfareporting:v2.1/dfareporting.userRolePermissionGroups.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRolePermissionGroups.list": list_user_role_permission_groups +"/dfareporting:v2.1/dfareporting.userRolePermissionGroups.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRolePermissions.get": get_user_role_permission +"/dfareporting:v2.1/dfareporting.userRolePermissions.get/id": id +"/dfareporting:v2.1/dfareporting.userRolePermissions.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRolePermissions.list": list_user_role_permissions +"/dfareporting:v2.1/dfareporting.userRolePermissions.list/ids": ids +"/dfareporting:v2.1/dfareporting.userRolePermissions.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.delete": delete_user_role +"/dfareporting:v2.1/dfareporting.userRoles.delete/id": id +"/dfareporting:v2.1/dfareporting.userRoles.delete/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.get": get_user_role +"/dfareporting:v2.1/dfareporting.userRoles.get/id": id +"/dfareporting:v2.1/dfareporting.userRoles.get/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.insert": insert_user_role +"/dfareporting:v2.1/dfareporting.userRoles.insert/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.list": list_user_roles +"/dfareporting:v2.1/dfareporting.userRoles.list/accountUserRoleOnly": account_user_role_only +"/dfareporting:v2.1/dfareporting.userRoles.list/ids": ids +"/dfareporting:v2.1/dfareporting.userRoles.list/maxResults": max_results +"/dfareporting:v2.1/dfareporting.userRoles.list/pageToken": page_token +"/dfareporting:v2.1/dfareporting.userRoles.list/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.list/searchString": search_string +"/dfareporting:v2.1/dfareporting.userRoles.list/sortField": sort_field +"/dfareporting:v2.1/dfareporting.userRoles.list/sortOrder": sort_order +"/dfareporting:v2.1/dfareporting.userRoles.list/subaccountId": subaccount_id +"/dfareporting:v2.1/dfareporting.userRoles.patch": patch_user_role +"/dfareporting:v2.1/dfareporting.userRoles.patch/id": id +"/dfareporting:v2.1/dfareporting.userRoles.patch/profileId": profile_id +"/dfareporting:v2.1/dfareporting.userRoles.update": update_user_role +"/dfareporting:v2.1/dfareporting.userRoles.update/profileId": profile_id +"/dfareporting:v2.1/Account": account +"/dfareporting:v2.1/Account/accountPermissionIds": account_permission_ids +"/dfareporting:v2.1/Account/accountPermissionIds/account_permission_id": account_permission_id +"/dfareporting:v2.1/Account/accountProfile": account_profile +"/dfareporting:v2.1/Account/active": active +"/dfareporting:v2.1/Account/activeAdsLimitTier": active_ads_limit_tier +"/dfareporting:v2.1/Account/activeViewOptOut": active_view_opt_out +"/dfareporting:v2.1/Account/availablePermissionIds": available_permission_ids +"/dfareporting:v2.1/Account/availablePermissionIds/available_permission_id": available_permission_id +"/dfareporting:v2.1/Account/comscoreVceEnabled": comscore_vce_enabled +"/dfareporting:v2.1/Account/countryId": country_id +"/dfareporting:v2.1/Account/currencyId": currency_id +"/dfareporting:v2.1/Account/defaultCreativeSizeId": default_creative_size_id +"/dfareporting:v2.1/Account/description": description +"/dfareporting:v2.1/Account/id": id +"/dfareporting:v2.1/Account/kind": kind +"/dfareporting:v2.1/Account/locale": locale +"/dfareporting:v2.1/Account/maximumImageSize": maximum_image_size +"/dfareporting:v2.1/Account/name": name +"/dfareporting:v2.1/Account/nielsenOcrEnabled": nielsen_ocr_enabled +"/dfareporting:v2.1/Account/reportsConfiguration": reports_configuration +"/dfareporting:v2.1/Account/teaserSizeLimit": teaser_size_limit +"/dfareporting:v2.1/AccountActiveAdSummary": account_active_ad_summary +"/dfareporting:v2.1/AccountActiveAdSummary/accountId": account_id +"/dfareporting:v2.1/AccountActiveAdSummary/activeAds": active_ads +"/dfareporting:v2.1/AccountActiveAdSummary/activeAdsLimitTier": active_ads_limit_tier +"/dfareporting:v2.1/AccountActiveAdSummary/availableAds": available_ads +"/dfareporting:v2.1/AccountActiveAdSummary/kind": kind +"/dfareporting:v2.1/AccountPermission": account_permission +"/dfareporting:v2.1/AccountPermission/accountProfiles": account_profiles +"/dfareporting:v2.1/AccountPermission/accountProfiles/account_profile": account_profile +"/dfareporting:v2.1/AccountPermission/id": id +"/dfareporting:v2.1/AccountPermission/kind": kind +"/dfareporting:v2.1/AccountPermission/level": level +"/dfareporting:v2.1/AccountPermission/name": name +"/dfareporting:v2.1/AccountPermission/permissionGroupId": permission_group_id +"/dfareporting:v2.1/AccountPermissionGroup": account_permission_group +"/dfareporting:v2.1/AccountPermissionGroup/id": id +"/dfareporting:v2.1/AccountPermissionGroup/kind": kind +"/dfareporting:v2.1/AccountPermissionGroup/name": name +"/dfareporting:v2.1/AccountPermissionGroupsListResponse/accountPermissionGroups": account_permission_groups +"/dfareporting:v2.1/AccountPermissionGroupsListResponse/accountPermissionGroups/account_permission_group": account_permission_group +"/dfareporting:v2.1/AccountPermissionGroupsListResponse/kind": kind +"/dfareporting:v2.1/AccountPermissionsListResponse/accountPermissions": account_permissions +"/dfareporting:v2.1/AccountPermissionsListResponse/accountPermissions/account_permission": account_permission +"/dfareporting:v2.1/AccountPermissionsListResponse/kind": kind +"/dfareporting:v2.1/AccountUserProfile": account_user_profile +"/dfareporting:v2.1/AccountUserProfile/accountId": account_id +"/dfareporting:v2.1/AccountUserProfile/active": active +"/dfareporting:v2.1/AccountUserProfile/advertiserFilter": advertiser_filter +"/dfareporting:v2.1/AccountUserProfile/campaignFilter": campaign_filter +"/dfareporting:v2.1/AccountUserProfile/comments": comments +"/dfareporting:v2.1/AccountUserProfile/email": email +"/dfareporting:v2.1/AccountUserProfile/id": id +"/dfareporting:v2.1/AccountUserProfile/kind": kind +"/dfareporting:v2.1/AccountUserProfile/locale": locale +"/dfareporting:v2.1/AccountUserProfile/name": name +"/dfareporting:v2.1/AccountUserProfile/siteFilter": site_filter +"/dfareporting:v2.1/AccountUserProfile/subaccountId": subaccount_id +"/dfareporting:v2.1/AccountUserProfile/traffickerType": trafficker_type +"/dfareporting:v2.1/AccountUserProfile/userAccessType": user_access_type +"/dfareporting:v2.1/AccountUserProfile/userRoleFilter": user_role_filter +"/dfareporting:v2.1/AccountUserProfile/userRoleId": user_role_id +"/dfareporting:v2.1/AccountUserProfilesListResponse/accountUserProfiles": account_user_profiles +"/dfareporting:v2.1/AccountUserProfilesListResponse/accountUserProfiles/account_user_profile": account_user_profile +"/dfareporting:v2.1/AccountUserProfilesListResponse/kind": kind +"/dfareporting:v2.1/AccountUserProfilesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/AccountsListResponse/accounts": accounts +"/dfareporting:v2.1/AccountsListResponse/accounts/account": account +"/dfareporting:v2.1/AccountsListResponse/kind": kind +"/dfareporting:v2.1/AccountsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/Activities": activities +"/dfareporting:v2.1/Activities/filters": filters +"/dfareporting:v2.1/Activities/filters/filter": filter +"/dfareporting:v2.1/Activities/kind": kind +"/dfareporting:v2.1/Activities/metricNames": metric_names +"/dfareporting:v2.1/Activities/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Ad": ad +"/dfareporting:v2.1/Ad/accountId": account_id +"/dfareporting:v2.1/Ad/active": active +"/dfareporting:v2.1/Ad/advertiserId": advertiser_id +"/dfareporting:v2.1/Ad/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/Ad/archived": archived +"/dfareporting:v2.1/Ad/audienceSegmentId": audience_segment_id +"/dfareporting:v2.1/Ad/campaignId": campaign_id +"/dfareporting:v2.1/Ad/campaignIdDimensionValue": campaign_id_dimension_value +"/dfareporting:v2.1/Ad/clickThroughUrl": click_through_url +"/dfareporting:v2.1/Ad/clickThroughUrlSuffixProperties": click_through_url_suffix_properties +"/dfareporting:v2.1/Ad/comments": comments +"/dfareporting:v2.1/Ad/compatibility": compatibility +"/dfareporting:v2.1/Ad/createInfo": create_info +"/dfareporting:v2.1/Ad/creativeGroupAssignments": creative_group_assignments +"/dfareporting:v2.1/Ad/creativeGroupAssignments/creative_group_assignment": creative_group_assignment +"/dfareporting:v2.1/Ad/creativeRotation": creative_rotation +"/dfareporting:v2.1/Ad/dayPartTargeting": day_part_targeting +"/dfareporting:v2.1/Ad/defaultClickThroughEventTagProperties": default_click_through_event_tag_properties +"/dfareporting:v2.1/Ad/deliverySchedule": delivery_schedule +"/dfareporting:v2.1/Ad/dynamicClickTracker": dynamic_click_tracker +"/dfareporting:v2.1/Ad/endTime": end_time +"/dfareporting:v2.1/Ad/eventTagOverrides": event_tag_overrides +"/dfareporting:v2.1/Ad/eventTagOverrides/event_tag_override": event_tag_override +"/dfareporting:v2.1/Ad/geoTargeting": geo_targeting +"/dfareporting:v2.1/Ad/id": id +"/dfareporting:v2.1/Ad/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Ad/keyValueTargetingExpression": key_value_targeting_expression +"/dfareporting:v2.1/Ad/kind": kind +"/dfareporting:v2.1/Ad/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Ad/name": name +"/dfareporting:v2.1/Ad/placementAssignments": placement_assignments +"/dfareporting:v2.1/Ad/placementAssignments/placement_assignment": placement_assignment +"/dfareporting:v2.1/Ad/remarketing_list_expression": remarketing_list_expression +"/dfareporting:v2.1/Ad/size": size +"/dfareporting:v2.1/Ad/sslCompliant": ssl_compliant +"/dfareporting:v2.1/Ad/sslRequired": ssl_required +"/dfareporting:v2.1/Ad/startTime": start_time +"/dfareporting:v2.1/Ad/subaccountId": subaccount_id +"/dfareporting:v2.1/Ad/technologyTargeting": technology_targeting +"/dfareporting:v2.1/Ad/type": type +"/dfareporting:v2.1/AdSlot": ad_slot +"/dfareporting:v2.1/AdSlot/comment": comment +"/dfareporting:v2.1/AdSlot/compatibility": compatibility +"/dfareporting:v2.1/AdSlot/height": height +"/dfareporting:v2.1/AdSlot/linkedPlacementId": linked_placement_id +"/dfareporting:v2.1/AdSlot/name": name +"/dfareporting:v2.1/AdSlot/paymentSourceType": payment_source_type +"/dfareporting:v2.1/AdSlot/primary": primary +"/dfareporting:v2.1/AdSlot/width": width +"/dfareporting:v2.1/AdsListResponse/ads": ads +"/dfareporting:v2.1/AdsListResponse/ads/ad": ad +"/dfareporting:v2.1/AdsListResponse/kind": kind +"/dfareporting:v2.1/AdsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/Advertiser": advertiser +"/dfareporting:v2.1/Advertiser/accountId": account_id +"/dfareporting:v2.1/Advertiser/advertiserGroupId": advertiser_group_id +"/dfareporting:v2.1/Advertiser/clickThroughUrlSuffix": click_through_url_suffix +"/dfareporting:v2.1/Advertiser/defaultClickThroughEventTagId": default_click_through_event_tag_id +"/dfareporting:v2.1/Advertiser/defaultEmail": default_email +"/dfareporting:v2.1/Advertiser/floodlightConfigurationId": floodlight_configuration_id +"/dfareporting:v2.1/Advertiser/floodlightConfigurationIdDimensionValue": floodlight_configuration_id_dimension_value +"/dfareporting:v2.1/Advertiser/id": id +"/dfareporting:v2.1/Advertiser/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Advertiser/kind": kind +"/dfareporting:v2.1/Advertiser/name": name +"/dfareporting:v2.1/Advertiser/originalFloodlightConfigurationId": original_floodlight_configuration_id +"/dfareporting:v2.1/Advertiser/status": status +"/dfareporting:v2.1/Advertiser/subaccountId": subaccount_id +"/dfareporting:v2.1/AdvertiserGroup": advertiser_group +"/dfareporting:v2.1/AdvertiserGroup/accountId": account_id +"/dfareporting:v2.1/AdvertiserGroup/id": id +"/dfareporting:v2.1/AdvertiserGroup/kind": kind +"/dfareporting:v2.1/AdvertiserGroup/name": name +"/dfareporting:v2.1/AdvertiserGroupsListResponse/advertiserGroups": advertiser_groups +"/dfareporting:v2.1/AdvertiserGroupsListResponse/advertiserGroups/advertiser_group": advertiser_group +"/dfareporting:v2.1/AdvertiserGroupsListResponse/kind": kind +"/dfareporting:v2.1/AdvertiserGroupsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/AdvertisersListResponse/advertisers": advertisers +"/dfareporting:v2.1/AdvertisersListResponse/advertisers/advertiser": advertiser +"/dfareporting:v2.1/AdvertisersListResponse/kind": kind +"/dfareporting:v2.1/AdvertisersListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/AudienceSegment": audience_segment +"/dfareporting:v2.1/AudienceSegment/allocation": allocation +"/dfareporting:v2.1/AudienceSegment/id": id +"/dfareporting:v2.1/AudienceSegment/name": name +"/dfareporting:v2.1/AudienceSegmentGroup": audience_segment_group +"/dfareporting:v2.1/AudienceSegmentGroup/audienceSegments": audience_segments +"/dfareporting:v2.1/AudienceSegmentGroup/audienceSegments/audience_segment": audience_segment +"/dfareporting:v2.1/AudienceSegmentGroup/id": id +"/dfareporting:v2.1/AudienceSegmentGroup/name": name +"/dfareporting:v2.1/Browser": browser +"/dfareporting:v2.1/Browser/browserVersionId": browser_version_id +"/dfareporting:v2.1/Browser/dartId": dart_id +"/dfareporting:v2.1/Browser/kind": kind +"/dfareporting:v2.1/Browser/majorVersion": major_version +"/dfareporting:v2.1/Browser/minorVersion": minor_version +"/dfareporting:v2.1/Browser/name": name +"/dfareporting:v2.1/BrowsersListResponse/browsers": browsers +"/dfareporting:v2.1/BrowsersListResponse/browsers/browser": browser +"/dfareporting:v2.1/BrowsersListResponse/kind": kind +"/dfareporting:v2.1/Campaign": campaign +"/dfareporting:v2.1/Campaign/accountId": account_id +"/dfareporting:v2.1/Campaign/additionalCreativeOptimizationConfigurations": additional_creative_optimization_configurations +"/dfareporting:v2.1/Campaign/additionalCreativeOptimizationConfigurations/additional_creative_optimization_configuration": additional_creative_optimization_configuration +"/dfareporting:v2.1/Campaign/advertiserGroupId": advertiser_group_id +"/dfareporting:v2.1/Campaign/advertiserId": advertiser_id +"/dfareporting:v2.1/Campaign/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/Campaign/archived": archived +"/dfareporting:v2.1/Campaign/audienceSegmentGroups": audience_segment_groups +"/dfareporting:v2.1/Campaign/audienceSegmentGroups/audience_segment_group": audience_segment_group +"/dfareporting:v2.1/Campaign/billingInvoiceCode": billing_invoice_code +"/dfareporting:v2.1/Campaign/clickThroughUrlSuffixProperties": click_through_url_suffix_properties +"/dfareporting:v2.1/Campaign/comment": comment +"/dfareporting:v2.1/Campaign/comscoreVceEnabled": comscore_vce_enabled +"/dfareporting:v2.1/Campaign/createInfo": create_info +"/dfareporting:v2.1/Campaign/creativeGroupIds": creative_group_ids +"/dfareporting:v2.1/Campaign/creativeGroupIds/creative_group_id": creative_group_id +"/dfareporting:v2.1/Campaign/creativeOptimizationConfiguration": creative_optimization_configuration +"/dfareporting:v2.1/Campaign/defaultClickThroughEventTagProperties": default_click_through_event_tag_properties +"/dfareporting:v2.1/Campaign/endDate": end_date +"/dfareporting:v2.1/Campaign/eventTagOverrides": event_tag_overrides +"/dfareporting:v2.1/Campaign/eventTagOverrides/event_tag_override": event_tag_override +"/dfareporting:v2.1/Campaign/externalId": external_id +"/dfareporting:v2.1/Campaign/id": id +"/dfareporting:v2.1/Campaign/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Campaign/kind": kind +"/dfareporting:v2.1/Campaign/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Campaign/lookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/Campaign/name": name +"/dfareporting:v2.1/Campaign/nielsenOcrEnabled": nielsen_ocr_enabled +"/dfareporting:v2.1/Campaign/startDate": start_date +"/dfareporting:v2.1/Campaign/subaccountId": subaccount_id +"/dfareporting:v2.1/Campaign/traffickerEmails": trafficker_emails +"/dfareporting:v2.1/Campaign/traffickerEmails/trafficker_email": trafficker_email +"/dfareporting:v2.1/CampaignCreativeAssociation": campaign_creative_association +"/dfareporting:v2.1/CampaignCreativeAssociation/creativeId": creative_id +"/dfareporting:v2.1/CampaignCreativeAssociation/kind": kind +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse/campaignCreativeAssociations": campaign_creative_associations +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse/campaignCreativeAssociations/campaign_creative_association": campaign_creative_association +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse/kind": kind +"/dfareporting:v2.1/CampaignCreativeAssociationsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CampaignsListResponse/campaigns": campaigns +"/dfareporting:v2.1/CampaignsListResponse/campaigns/campaign": campaign +"/dfareporting:v2.1/CampaignsListResponse/kind": kind +"/dfareporting:v2.1/CampaignsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/ChangeLog": change_log +"/dfareporting:v2.1/ChangeLog/accountId": account_id +"/dfareporting:v2.1/ChangeLog/action": action +"/dfareporting:v2.1/ChangeLog/changeTime": change_time +"/dfareporting:v2.1/ChangeLog/fieldName": field_name +"/dfareporting:v2.1/ChangeLog/id": id +"/dfareporting:v2.1/ChangeLog/kind": kind +"/dfareporting:v2.1/ChangeLog/newValue": new_value +"/dfareporting:v2.1/ChangeLog/objectType": object_type +"/dfareporting:v2.1/ChangeLog/oldValue": old_value +"/dfareporting:v2.1/ChangeLog/subaccountId": subaccount_id +"/dfareporting:v2.1/ChangeLog/transactionId": transaction_id +"/dfareporting:v2.1/ChangeLog/userProfileId": user_profile_id +"/dfareporting:v2.1/ChangeLog/userProfileName": user_profile_name +"/dfareporting:v2.1/ChangeLogsListResponse/changeLogs": change_logs +"/dfareporting:v2.1/ChangeLogsListResponse/changeLogs/change_log": change_log +"/dfareporting:v2.1/ChangeLogsListResponse/kind": kind +"/dfareporting:v2.1/ChangeLogsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CitiesListResponse/cities": cities +"/dfareporting:v2.1/CitiesListResponse/cities/city": city +"/dfareporting:v2.1/CitiesListResponse/kind": kind +"/dfareporting:v2.1/City": city +"/dfareporting:v2.1/City/countryCode": country_code +"/dfareporting:v2.1/City/countryDartId": country_dart_id +"/dfareporting:v2.1/City/dartId": dart_id +"/dfareporting:v2.1/City/kind": kind +"/dfareporting:v2.1/City/metroCode": metro_code +"/dfareporting:v2.1/City/metroDmaId": metro_dma_id +"/dfareporting:v2.1/City/name": name +"/dfareporting:v2.1/City/regionCode": region_code +"/dfareporting:v2.1/City/regionDartId": region_dart_id +"/dfareporting:v2.1/ClickTag": click_tag +"/dfareporting:v2.1/ClickTag/eventName": event_name +"/dfareporting:v2.1/ClickTag/name": name +"/dfareporting:v2.1/ClickTag/value": value +"/dfareporting:v2.1/ClickThroughUrl": click_through_url +"/dfareporting:v2.1/ClickThroughUrl/customClickThroughUrl": custom_click_through_url +"/dfareporting:v2.1/ClickThroughUrl/defaultLandingPage": default_landing_page +"/dfareporting:v2.1/ClickThroughUrl/landingPageId": landing_page_id +"/dfareporting:v2.1/ClickThroughUrlSuffixProperties": click_through_url_suffix_properties +"/dfareporting:v2.1/ClickThroughUrlSuffixProperties/clickThroughUrlSuffix": click_through_url_suffix +"/dfareporting:v2.1/ClickThroughUrlSuffixProperties/overrideInheritedSuffix": override_inherited_suffix +"/dfareporting:v2.1/CompanionClickThroughOverride": companion_click_through_override +"/dfareporting:v2.1/CompanionClickThroughOverride/clickThroughUrl": click_through_url +"/dfareporting:v2.1/CompanionClickThroughOverride/creativeId": creative_id +"/dfareporting:v2.1/CompatibleFields": compatible_fields +"/dfareporting:v2.1/CompatibleFields/crossDimensionReachReportCompatibleFields": cross_dimension_reach_report_compatible_fields +"/dfareporting:v2.1/CompatibleFields/floodlightReportCompatibleFields": floodlight_report_compatible_fields +"/dfareporting:v2.1/CompatibleFields/kind": kind +"/dfareporting:v2.1/CompatibleFields/pathToConversionReportCompatibleFields": path_to_conversion_report_compatible_fields +"/dfareporting:v2.1/CompatibleFields/reachReportCompatibleFields": reach_report_compatible_fields +"/dfareporting:v2.1/CompatibleFields/reportCompatibleFields": report_compatible_fields +"/dfareporting:v2.1/ConnectionType": connection_type +"/dfareporting:v2.1/ConnectionType/id": id +"/dfareporting:v2.1/ConnectionType/kind": kind +"/dfareporting:v2.1/ConnectionType/name": name +"/dfareporting:v2.1/ConnectionTypesListResponse/connectionTypes": connection_types +"/dfareporting:v2.1/ConnectionTypesListResponse/connectionTypes/connection_type": connection_type +"/dfareporting:v2.1/ConnectionTypesListResponse/kind": kind +"/dfareporting:v2.1/ContentCategoriesListResponse/contentCategories": content_categories +"/dfareporting:v2.1/ContentCategoriesListResponse/contentCategories/content_category": content_category +"/dfareporting:v2.1/ContentCategoriesListResponse/kind": kind +"/dfareporting:v2.1/ContentCategoriesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/ContentCategory": content_category +"/dfareporting:v2.1/ContentCategory/accountId": account_id +"/dfareporting:v2.1/ContentCategory/id": id +"/dfareporting:v2.1/ContentCategory/kind": kind +"/dfareporting:v2.1/ContentCategory/name": name +"/dfareporting:v2.1/CountriesListResponse/countries": countries +"/dfareporting:v2.1/CountriesListResponse/countries/country": country +"/dfareporting:v2.1/CountriesListResponse/kind": kind +"/dfareporting:v2.1/Country": country +"/dfareporting:v2.1/Country/countryCode": country_code +"/dfareporting:v2.1/Country/dartId": dart_id +"/dfareporting:v2.1/Country/kind": kind +"/dfareporting:v2.1/Country/name": name +"/dfareporting:v2.1/Country/sslEnabled": ssl_enabled +"/dfareporting:v2.1/Creative": creative +"/dfareporting:v2.1/Creative/accountId": account_id +"/dfareporting:v2.1/Creative/active": active +"/dfareporting:v2.1/Creative/adParameters": ad_parameters +"/dfareporting:v2.1/Creative/adTagKeys": ad_tag_keys +"/dfareporting:v2.1/Creative/adTagKeys/ad_tag_key": ad_tag_key +"/dfareporting:v2.1/Creative/advertiserId": advertiser_id +"/dfareporting:v2.1/Creative/allowScriptAccess": allow_script_access +"/dfareporting:v2.1/Creative/archived": archived +"/dfareporting:v2.1/Creative/artworkType": artwork_type +"/dfareporting:v2.1/Creative/authoringTool": authoring_tool +"/dfareporting:v2.1/Creative/auto_advance_images": auto_advance_images +"/dfareporting:v2.1/Creative/backgroundColor": background_color +"/dfareporting:v2.1/Creative/backupImageClickThroughUrl": backup_image_click_through_url +"/dfareporting:v2.1/Creative/backupImageFeatures": backup_image_features +"/dfareporting:v2.1/Creative/backupImageFeatures/backup_image_feature": backup_image_feature +"/dfareporting:v2.1/Creative/backupImageReportingLabel": backup_image_reporting_label +"/dfareporting:v2.1/Creative/backupImageTargetWindow": backup_image_target_window +"/dfareporting:v2.1/Creative/clickTags": click_tags +"/dfareporting:v2.1/Creative/clickTags/click_tag": click_tag +"/dfareporting:v2.1/Creative/commercialId": commercial_id +"/dfareporting:v2.1/Creative/companionCreatives": companion_creatives +"/dfareporting:v2.1/Creative/companionCreatives/companion_creative": companion_creative +"/dfareporting:v2.1/Creative/compatibility": compatibility +"/dfareporting:v2.1/Creative/compatibility/compatibility": compatibility +"/dfareporting:v2.1/Creative/convertFlashToHtml5": convert_flash_to_html5 +"/dfareporting:v2.1/Creative/counterCustomEvents": counter_custom_events +"/dfareporting:v2.1/Creative/counterCustomEvents/counter_custom_event": counter_custom_event +"/dfareporting:v2.1/Creative/creativeAssets": creative_assets +"/dfareporting:v2.1/Creative/creativeAssets/creative_asset": creative_asset +"/dfareporting:v2.1/Creative/creativeFieldAssignments": creative_field_assignments +"/dfareporting:v2.1/Creative/creativeFieldAssignments/creative_field_assignment": creative_field_assignment +"/dfareporting:v2.1/Creative/customKeyValues": custom_key_values +"/dfareporting:v2.1/Creative/customKeyValues/custom_key_value": custom_key_value +"/dfareporting:v2.1/Creative/exitCustomEvents": exit_custom_events +"/dfareporting:v2.1/Creative/exitCustomEvents/exit_custom_event": exit_custom_event +"/dfareporting:v2.1/Creative/fsCommand": fs_command +"/dfareporting:v2.1/Creative/htmlCode": html_code +"/dfareporting:v2.1/Creative/htmlCodeLocked": html_code_locked +"/dfareporting:v2.1/Creative/id": id +"/dfareporting:v2.1/Creative/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Creative/kind": kind +"/dfareporting:v2.1/Creative/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Creative/latestTraffickedCreativeId": latest_trafficked_creative_id +"/dfareporting:v2.1/Creative/name": name +"/dfareporting:v2.1/Creative/overrideCss": override_css +"/dfareporting:v2.1/Creative/redirectUrl": redirect_url +"/dfareporting:v2.1/Creative/renderingId": rendering_id +"/dfareporting:v2.1/Creative/renderingIdDimensionValue": rendering_id_dimension_value +"/dfareporting:v2.1/Creative/requiredFlashPluginVersion": required_flash_plugin_version +"/dfareporting:v2.1/Creative/requiredFlashVersion": required_flash_version +"/dfareporting:v2.1/Creative/size": size +"/dfareporting:v2.1/Creative/skippable": skippable +"/dfareporting:v2.1/Creative/sslCompliant": ssl_compliant +"/dfareporting:v2.1/Creative/studioAdvertiserId": studio_advertiser_id +"/dfareporting:v2.1/Creative/studioCreativeId": studio_creative_id +"/dfareporting:v2.1/Creative/studioTraffickedCreativeId": studio_trafficked_creative_id +"/dfareporting:v2.1/Creative/subaccountId": subaccount_id +"/dfareporting:v2.1/Creative/thirdPartyBackupImageImpressionsUrl": third_party_backup_image_impressions_url +"/dfareporting:v2.1/Creative/thirdPartyRichMediaImpressionsUrl": third_party_rich_media_impressions_url +"/dfareporting:v2.1/Creative/thirdPartyUrls": third_party_urls +"/dfareporting:v2.1/Creative/thirdPartyUrls/third_party_url": third_party_url +"/dfareporting:v2.1/Creative/timerCustomEvents": timer_custom_events +"/dfareporting:v2.1/Creative/timerCustomEvents/timer_custom_event": timer_custom_event +"/dfareporting:v2.1/Creative/totalFileSize": total_file_size +"/dfareporting:v2.1/Creative/type": type +"/dfareporting:v2.1/Creative/version": version +"/dfareporting:v2.1/Creative/videoDescription": video_description +"/dfareporting:v2.1/Creative/videoDuration": video_duration +"/dfareporting:v2.1/CreativeAsset": creative_asset +"/dfareporting:v2.1/CreativeAsset/actionScript3": action_script3 +"/dfareporting:v2.1/CreativeAsset/active": active +"/dfareporting:v2.1/CreativeAsset/alignment": alignment +"/dfareporting:v2.1/CreativeAsset/artworkType": artwork_type +"/dfareporting:v2.1/CreativeAsset/assetIdentifier": asset_identifier +"/dfareporting:v2.1/CreativeAsset/backupImageExit": backup_image_exit +"/dfareporting:v2.1/CreativeAsset/bitRate": bit_rate +"/dfareporting:v2.1/CreativeAsset/childAssetType": child_asset_type +"/dfareporting:v2.1/CreativeAsset/collapsedSize": collapsed_size +"/dfareporting:v2.1/CreativeAsset/customStartTimeValue": custom_start_time_value +"/dfareporting:v2.1/CreativeAsset/detectedFeatures": detected_features +"/dfareporting:v2.1/CreativeAsset/detectedFeatures/detected_feature": detected_feature +"/dfareporting:v2.1/CreativeAsset/displayType": display_type +"/dfareporting:v2.1/CreativeAsset/duration": duration +"/dfareporting:v2.1/CreativeAsset/durationType": duration_type +"/dfareporting:v2.1/CreativeAsset/expandedDimension": expanded_dimension +"/dfareporting:v2.1/CreativeAsset/fileSize": file_size +"/dfareporting:v2.1/CreativeAsset/flashVersion": flash_version +"/dfareporting:v2.1/CreativeAsset/hideFlashObjects": hide_flash_objects +"/dfareporting:v2.1/CreativeAsset/hideSelectionBoxes": hide_selection_boxes +"/dfareporting:v2.1/CreativeAsset/horizontallyLocked": horizontally_locked +"/dfareporting:v2.1/CreativeAsset/id": id +"/dfareporting:v2.1/CreativeAsset/mimeType": mime_type +"/dfareporting:v2.1/CreativeAsset/offset": offset +"/dfareporting:v2.1/CreativeAsset/originalBackup": original_backup +"/dfareporting:v2.1/CreativeAsset/position": position +"/dfareporting:v2.1/CreativeAsset/positionLeftUnit": position_left_unit +"/dfareporting:v2.1/CreativeAsset/positionTopUnit": position_top_unit +"/dfareporting:v2.1/CreativeAsset/progressiveServingUrl": progressive_serving_url +"/dfareporting:v2.1/CreativeAsset/pushdown": pushdown +"/dfareporting:v2.1/CreativeAsset/pushdownDuration": pushdown_duration +"/dfareporting:v2.1/CreativeAsset/role": role +"/dfareporting:v2.1/CreativeAsset/size": size +"/dfareporting:v2.1/CreativeAsset/sslCompliant": ssl_compliant +"/dfareporting:v2.1/CreativeAsset/startTimeType": start_time_type +"/dfareporting:v2.1/CreativeAsset/streamingServingUrl": streaming_serving_url +"/dfareporting:v2.1/CreativeAsset/transparency": transparency +"/dfareporting:v2.1/CreativeAsset/verticallyLocked": vertically_locked +"/dfareporting:v2.1/CreativeAsset/videoDuration": video_duration +"/dfareporting:v2.1/CreativeAsset/windowMode": window_mode +"/dfareporting:v2.1/CreativeAsset/zIndex": z_index +"/dfareporting:v2.1/CreativeAsset/zipFilename": zip_filename +"/dfareporting:v2.1/CreativeAsset/zipFilesize": zip_filesize +"/dfareporting:v2.1/CreativeAssetId": creative_asset_id +"/dfareporting:v2.1/CreativeAssetId/name": name +"/dfareporting:v2.1/CreativeAssetId/type": type +"/dfareporting:v2.1/CreativeAssetMetadata": creative_asset_metadata +"/dfareporting:v2.1/CreativeAssetMetadata/assetIdentifier": asset_identifier +"/dfareporting:v2.1/CreativeAssetMetadata/clickTags": click_tags +"/dfareporting:v2.1/CreativeAssetMetadata/clickTags/click_tag": click_tag +"/dfareporting:v2.1/CreativeAssetMetadata/detectedFeatures": detected_features +"/dfareporting:v2.1/CreativeAssetMetadata/detectedFeatures/detected_feature": detected_feature +"/dfareporting:v2.1/CreativeAssetMetadata/kind": kind +"/dfareporting:v2.1/CreativeAssetMetadata/warnedValidationRules": warned_validation_rules +"/dfareporting:v2.1/CreativeAssetMetadata/warnedValidationRules/warned_validation_rule": warned_validation_rule +"/dfareporting:v2.1/CreativeAssignment": creative_assignment +"/dfareporting:v2.1/CreativeAssignment/active": active +"/dfareporting:v2.1/CreativeAssignment/applyEventTags": apply_event_tags +"/dfareporting:v2.1/CreativeAssignment/clickThroughUrl": click_through_url +"/dfareporting:v2.1/CreativeAssignment/companionCreativeOverrides": companion_creative_overrides +"/dfareporting:v2.1/CreativeAssignment/companionCreativeOverrides/companion_creative_override": companion_creative_override +"/dfareporting:v2.1/CreativeAssignment/creativeGroupAssignments": creative_group_assignments +"/dfareporting:v2.1/CreativeAssignment/creativeGroupAssignments/creative_group_assignment": creative_group_assignment +"/dfareporting:v2.1/CreativeAssignment/creativeId": creative_id +"/dfareporting:v2.1/CreativeAssignment/creativeIdDimensionValue": creative_id_dimension_value +"/dfareporting:v2.1/CreativeAssignment/endTime": end_time +"/dfareporting:v2.1/CreativeAssignment/richMediaExitOverrides": rich_media_exit_overrides +"/dfareporting:v2.1/CreativeAssignment/richMediaExitOverrides/rich_media_exit_override": rich_media_exit_override +"/dfareporting:v2.1/CreativeAssignment/sequence": sequence +"/dfareporting:v2.1/CreativeAssignment/sslCompliant": ssl_compliant +"/dfareporting:v2.1/CreativeAssignment/startTime": start_time +"/dfareporting:v2.1/CreativeAssignment/weight": weight +"/dfareporting:v2.1/CreativeCustomEvent": creative_custom_event +"/dfareporting:v2.1/CreativeCustomEvent/active": active +"/dfareporting:v2.1/CreativeCustomEvent/advertiserCustomEventName": advertiser_custom_event_name +"/dfareporting:v2.1/CreativeCustomEvent/advertiserCustomEventType": advertiser_custom_event_type +"/dfareporting:v2.1/CreativeCustomEvent/artworkLabel": artwork_label +"/dfareporting:v2.1/CreativeCustomEvent/artworkType": artwork_type +"/dfareporting:v2.1/CreativeCustomEvent/exitUrl": exit_url +"/dfareporting:v2.1/CreativeCustomEvent/id": id +"/dfareporting:v2.1/CreativeCustomEvent/popupWindowProperties": popup_window_properties +"/dfareporting:v2.1/CreativeCustomEvent/targetType": target_type +"/dfareporting:v2.1/CreativeCustomEvent/videoReportingId": video_reporting_id +"/dfareporting:v2.1/CreativeField": creative_field +"/dfareporting:v2.1/CreativeField/accountId": account_id +"/dfareporting:v2.1/CreativeField/advertiserId": advertiser_id +"/dfareporting:v2.1/CreativeField/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/CreativeField/id": id +"/dfareporting:v2.1/CreativeField/kind": kind +"/dfareporting:v2.1/CreativeField/name": name +"/dfareporting:v2.1/CreativeField/subaccountId": subaccount_id +"/dfareporting:v2.1/CreativeFieldAssignment": creative_field_assignment +"/dfareporting:v2.1/CreativeFieldAssignment/creativeFieldId": creative_field_id +"/dfareporting:v2.1/CreativeFieldAssignment/creativeFieldValueId": creative_field_value_id +"/dfareporting:v2.1/CreativeFieldValue": creative_field_value +"/dfareporting:v2.1/CreativeFieldValue/id": id +"/dfareporting:v2.1/CreativeFieldValue/kind": kind +"/dfareporting:v2.1/CreativeFieldValue/value": value +"/dfareporting:v2.1/CreativeFieldValuesListResponse/creativeFieldValues": creative_field_values +"/dfareporting:v2.1/CreativeFieldValuesListResponse/creativeFieldValues/creative_field_value": creative_field_value +"/dfareporting:v2.1/CreativeFieldValuesListResponse/kind": kind +"/dfareporting:v2.1/CreativeFieldValuesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CreativeFieldsListResponse/creativeFields": creative_fields +"/dfareporting:v2.1/CreativeFieldsListResponse/creativeFields/creative_field": creative_field +"/dfareporting:v2.1/CreativeFieldsListResponse/kind": kind +"/dfareporting:v2.1/CreativeFieldsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CreativeGroup": creative_group +"/dfareporting:v2.1/CreativeGroup/accountId": account_id +"/dfareporting:v2.1/CreativeGroup/advertiserId": advertiser_id +"/dfareporting:v2.1/CreativeGroup/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/CreativeGroup/groupNumber": group_number +"/dfareporting:v2.1/CreativeGroup/id": id +"/dfareporting:v2.1/CreativeGroup/kind": kind +"/dfareporting:v2.1/CreativeGroup/name": name +"/dfareporting:v2.1/CreativeGroup/subaccountId": subaccount_id +"/dfareporting:v2.1/CreativeGroupAssignment": creative_group_assignment +"/dfareporting:v2.1/CreativeGroupAssignment/creativeGroupId": creative_group_id +"/dfareporting:v2.1/CreativeGroupAssignment/creativeGroupNumber": creative_group_number +"/dfareporting:v2.1/CreativeGroupsListResponse/creativeGroups": creative_groups +"/dfareporting:v2.1/CreativeGroupsListResponse/creativeGroups/creative_group": creative_group +"/dfareporting:v2.1/CreativeGroupsListResponse/kind": kind +"/dfareporting:v2.1/CreativeGroupsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CreativeOptimizationConfiguration": creative_optimization_configuration +"/dfareporting:v2.1/CreativeOptimizationConfiguration/id": id +"/dfareporting:v2.1/CreativeOptimizationConfiguration/name": name +"/dfareporting:v2.1/CreativeOptimizationConfiguration/optimizationActivitys": optimization_activitys +"/dfareporting:v2.1/CreativeOptimizationConfiguration/optimizationActivitys/optimization_activity": optimization_activity +"/dfareporting:v2.1/CreativeOptimizationConfiguration/optimizationModel": optimization_model +"/dfareporting:v2.1/CreativeRotation": creative_rotation +"/dfareporting:v2.1/CreativeRotation/creativeAssignments": creative_assignments +"/dfareporting:v2.1/CreativeRotation/creativeAssignments/creative_assignment": creative_assignment +"/dfareporting:v2.1/CreativeRotation/creativeOptimizationConfigurationId": creative_optimization_configuration_id +"/dfareporting:v2.1/CreativeRotation/type": type +"/dfareporting:v2.1/CreativeRotation/weightCalculationStrategy": weight_calculation_strategy +"/dfareporting:v2.1/CreativeSettings": creative_settings +"/dfareporting:v2.1/CreativeSettings/iFrameFooter": i_frame_footer +"/dfareporting:v2.1/CreativeSettings/iFrameHeader": i_frame_header +"/dfareporting:v2.1/CreativesListResponse/creatives": creatives +"/dfareporting:v2.1/CreativesListResponse/creatives/creative": creative +"/dfareporting:v2.1/CreativesListResponse/kind": kind +"/dfareporting:v2.1/CreativesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields": cross_dimension_reach_report_compatible_fields +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/breakdown": breakdown +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/breakdown/breakdown": breakdown +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/dimensionFilters": dimension_filters +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/kind": kind +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/metrics": metrics +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/metrics/metric": metric +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/overlapMetrics": overlap_metrics +"/dfareporting:v2.1/CrossDimensionReachReportCompatibleFields/overlapMetrics/overlap_metric": overlap_metric +"/dfareporting:v2.1/CustomRichMediaEvents": custom_rich_media_events +"/dfareporting:v2.1/CustomRichMediaEvents/filteredEventIds": filtered_event_ids +"/dfareporting:v2.1/CustomRichMediaEvents/filteredEventIds/filtered_event_id": filtered_event_id +"/dfareporting:v2.1/CustomRichMediaEvents/kind": kind +"/dfareporting:v2.1/DateRange": date_range +"/dfareporting:v2.1/DateRange/endDate": end_date +"/dfareporting:v2.1/DateRange/kind": kind +"/dfareporting:v2.1/DateRange/relativeDateRange": relative_date_range +"/dfareporting:v2.1/DateRange/startDate": start_date +"/dfareporting:v2.1/DayPartTargeting": day_part_targeting +"/dfareporting:v2.1/DayPartTargeting/daysOfWeek": days_of_week +"/dfareporting:v2.1/DayPartTargeting/daysOfWeek/days_of_week": days_of_week +"/dfareporting:v2.1/DayPartTargeting/hoursOfDay": hours_of_day +"/dfareporting:v2.1/DayPartTargeting/hoursOfDay/hours_of_day": hours_of_day +"/dfareporting:v2.1/DayPartTargeting/userLocalTime": user_local_time +"/dfareporting:v2.1/DefaultClickThroughEventTagProperties": default_click_through_event_tag_properties +"/dfareporting:v2.1/DefaultClickThroughEventTagProperties/defaultClickThroughEventTagId": default_click_through_event_tag_id +"/dfareporting:v2.1/DefaultClickThroughEventTagProperties/overrideInheritedEventTag": override_inherited_event_tag +"/dfareporting:v2.1/DeliverySchedule": delivery_schedule +"/dfareporting:v2.1/DeliverySchedule/frequencyCap": frequency_cap +"/dfareporting:v2.1/DeliverySchedule/hardCutoff": hard_cutoff +"/dfareporting:v2.1/DeliverySchedule/impressionRatio": impression_ratio +"/dfareporting:v2.1/DeliverySchedule/priority": priority +"/dfareporting:v2.1/DfpSettings": dfp_settings +"/dfareporting:v2.1/DfpSettings/dfp_network_code": dfp_network_code +"/dfareporting:v2.1/DfpSettings/dfp_network_name": dfp_network_name +"/dfareporting:v2.1/DfpSettings/programmaticPlacementAccepted": programmatic_placement_accepted +"/dfareporting:v2.1/DfpSettings/pubPaidPlacementAccepted": pub_paid_placement_accepted +"/dfareporting:v2.1/DfpSettings/publisherPortalOnly": publisher_portal_only +"/dfareporting:v2.1/Dimension": dimension +"/dfareporting:v2.1/Dimension/kind": kind +"/dfareporting:v2.1/Dimension/name": name +"/dfareporting:v2.1/DimensionFilter": dimension_filter +"/dfareporting:v2.1/DimensionFilter/dimensionName": dimension_name +"/dfareporting:v2.1/DimensionFilter/kind": kind +"/dfareporting:v2.1/DimensionFilter/value": value +"/dfareporting:v2.1/DimensionValue": dimension_value +"/dfareporting:v2.1/DimensionValue/dimensionName": dimension_name +"/dfareporting:v2.1/DimensionValue/etag": etag +"/dfareporting:v2.1/DimensionValue/id": id +"/dfareporting:v2.1/DimensionValue/kind": kind +"/dfareporting:v2.1/DimensionValue/matchType": match_type +"/dfareporting:v2.1/DimensionValue/value": value +"/dfareporting:v2.1/DimensionValueList": dimension_value_list +"/dfareporting:v2.1/DimensionValueList/etag": etag +"/dfareporting:v2.1/DimensionValueList/items": items +"/dfareporting:v2.1/DimensionValueList/items/item": item +"/dfareporting:v2.1/DimensionValueList/kind": kind +"/dfareporting:v2.1/DimensionValueList/nextPageToken": next_page_token +"/dfareporting:v2.1/DimensionValueRequest/dimensionName": dimension_name +"/dfareporting:v2.1/DimensionValueRequest/endDate": end_date +"/dfareporting:v2.1/DimensionValueRequest/filters": filters +"/dfareporting:v2.1/DimensionValueRequest/filters/filter": filter +"/dfareporting:v2.1/DimensionValueRequest/kind": kind +"/dfareporting:v2.1/DimensionValueRequest/startDate": start_date +"/dfareporting:v2.1/DirectorySite": directory_site +"/dfareporting:v2.1/DirectorySite/active": active +"/dfareporting:v2.1/DirectorySite/contactAssignments": contact_assignments +"/dfareporting:v2.1/DirectorySite/contactAssignments/contact_assignment": contact_assignment +"/dfareporting:v2.1/DirectorySite/countryId": country_id +"/dfareporting:v2.1/DirectorySite/currencyId": currency_id +"/dfareporting:v2.1/DirectorySite/description": description +"/dfareporting:v2.1/DirectorySite/id": id +"/dfareporting:v2.1/DirectorySite/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/DirectorySite/inpageTagFormats": inpage_tag_formats +"/dfareporting:v2.1/DirectorySite/inpageTagFormats/inpage_tag_format": inpage_tag_format +"/dfareporting:v2.1/DirectorySite/interstitialTagFormats": interstitial_tag_formats +"/dfareporting:v2.1/DirectorySite/interstitialTagFormats/interstitial_tag_format": interstitial_tag_format +"/dfareporting:v2.1/DirectorySite/kind": kind +"/dfareporting:v2.1/DirectorySite/name": name +"/dfareporting:v2.1/DirectorySite/parentId": parent_id +"/dfareporting:v2.1/DirectorySite/settings": settings +"/dfareporting:v2.1/DirectorySite/url": url +"/dfareporting:v2.1/DirectorySiteContact": directory_site_contact +"/dfareporting:v2.1/DirectorySiteContact/address": address +"/dfareporting:v2.1/DirectorySiteContact/email": email +"/dfareporting:v2.1/DirectorySiteContact/firstName": first_name +"/dfareporting:v2.1/DirectorySiteContact/id": id +"/dfareporting:v2.1/DirectorySiteContact/kind": kind +"/dfareporting:v2.1/DirectorySiteContact/lastName": last_name +"/dfareporting:v2.1/DirectorySiteContact/phone": phone +"/dfareporting:v2.1/DirectorySiteContact/role": role +"/dfareporting:v2.1/DirectorySiteContact/title": title +"/dfareporting:v2.1/DirectorySiteContact/type": type +"/dfareporting:v2.1/DirectorySiteContactAssignment": directory_site_contact_assignment +"/dfareporting:v2.1/DirectorySiteContactAssignment/contactId": contact_id +"/dfareporting:v2.1/DirectorySiteContactAssignment/visibility": visibility +"/dfareporting:v2.1/DirectorySiteContactsListResponse/directorySiteContacts": directory_site_contacts +"/dfareporting:v2.1/DirectorySiteContactsListResponse/directorySiteContacts/directory_site_contact": directory_site_contact +"/dfareporting:v2.1/DirectorySiteContactsListResponse/kind": kind +"/dfareporting:v2.1/DirectorySiteContactsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/DirectorySiteSettings": directory_site_settings +"/dfareporting:v2.1/DirectorySiteSettings/activeViewOptOut": active_view_opt_out +"/dfareporting:v2.1/DirectorySiteSettings/dfp_settings": dfp_settings +"/dfareporting:v2.1/DirectorySiteSettings/instream_video_placement_accepted": instream_video_placement_accepted +"/dfareporting:v2.1/DirectorySiteSettings/interstitialPlacementAccepted": interstitial_placement_accepted +"/dfareporting:v2.1/DirectorySiteSettings/nielsenOcrOptOut": nielsen_ocr_opt_out +"/dfareporting:v2.1/DirectorySiteSettings/verificationTagOptOut": verification_tag_opt_out +"/dfareporting:v2.1/DirectorySiteSettings/videoActiveViewOptOut": video_active_view_opt_out +"/dfareporting:v2.1/DirectorySitesListResponse/directorySites": directory_sites +"/dfareporting:v2.1/DirectorySitesListResponse/directorySites/directory_site": directory_site +"/dfareporting:v2.1/DirectorySitesListResponse/kind": kind +"/dfareporting:v2.1/DirectorySitesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/EventTag": event_tag +"/dfareporting:v2.1/EventTag/accountId": account_id +"/dfareporting:v2.1/EventTag/advertiserId": advertiser_id +"/dfareporting:v2.1/EventTag/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/EventTag/campaignId": campaign_id +"/dfareporting:v2.1/EventTag/campaignIdDimensionValue": campaign_id_dimension_value +"/dfareporting:v2.1/EventTag/enabledByDefault": enabled_by_default +"/dfareporting:v2.1/EventTag/id": id +"/dfareporting:v2.1/EventTag/kind": kind +"/dfareporting:v2.1/EventTag/name": name +"/dfareporting:v2.1/EventTag/siteFilterType": site_filter_type +"/dfareporting:v2.1/EventTag/siteIds": site_ids +"/dfareporting:v2.1/EventTag/siteIds/site_id": site_id +"/dfareporting:v2.1/EventTag/sslCompliant": ssl_compliant +"/dfareporting:v2.1/EventTag/status": status +"/dfareporting:v2.1/EventTag/subaccountId": subaccount_id +"/dfareporting:v2.1/EventTag/type": type +"/dfareporting:v2.1/EventTag/url": url +"/dfareporting:v2.1/EventTag/urlEscapeLevels": url_escape_levels +"/dfareporting:v2.1/EventTagOverride": event_tag_override +"/dfareporting:v2.1/EventTagOverride/enabled": enabled +"/dfareporting:v2.1/EventTagOverride/id": id +"/dfareporting:v2.1/EventTagsListResponse/eventTags": event_tags +"/dfareporting:v2.1/EventTagsListResponse/eventTags/event_tag": event_tag +"/dfareporting:v2.1/EventTagsListResponse/kind": kind +"/dfareporting:v2.1/File": file +"/dfareporting:v2.1/File/dateRange": date_range +"/dfareporting:v2.1/File/etag": etag +"/dfareporting:v2.1/File/fileName": file_name +"/dfareporting:v2.1/File/format": format +"/dfareporting:v2.1/File/id": id +"/dfareporting:v2.1/File/kind": kind +"/dfareporting:v2.1/File/lastModifiedTime": last_modified_time +"/dfareporting:v2.1/File/reportId": report_id +"/dfareporting:v2.1/File/status": status +"/dfareporting:v2.1/File/urls": urls +"/dfareporting:v2.1/File/urls/apiUrl": api_url +"/dfareporting:v2.1/File/urls/browserUrl": browser_url +"/dfareporting:v2.1/FileList": file_list +"/dfareporting:v2.1/FileList/etag": etag +"/dfareporting:v2.1/FileList/items": items +"/dfareporting:v2.1/FileList/items/item": item +"/dfareporting:v2.1/FileList/kind": kind +"/dfareporting:v2.1/FileList/nextPageToken": next_page_token +"/dfareporting:v2.1/Flight": flight +"/dfareporting:v2.1/Flight/endDate": end_date +"/dfareporting:v2.1/Flight/rateOrCost": rate_or_cost +"/dfareporting:v2.1/Flight/startDate": start_date +"/dfareporting:v2.1/Flight/units": units +"/dfareporting:v2.1/FloodlightActivitiesGenerateTagResponse/floodlightActivityTag": floodlight_activity_tag +"/dfareporting:v2.1/FloodlightActivitiesGenerateTagResponse/kind": kind +"/dfareporting:v2.1/FloodlightActivitiesListResponse/floodlightActivities": floodlight_activities +"/dfareporting:v2.1/FloodlightActivitiesListResponse/floodlightActivities/floodlight_activity": floodlight_activity +"/dfareporting:v2.1/FloodlightActivitiesListResponse/kind": kind +"/dfareporting:v2.1/FloodlightActivitiesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/FloodlightActivity": floodlight_activity +"/dfareporting:v2.1/FloodlightActivity/accountId": account_id +"/dfareporting:v2.1/FloodlightActivity/advertiserId": advertiser_id +"/dfareporting:v2.1/FloodlightActivity/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/FloodlightActivity/cacheBustingType": cache_busting_type +"/dfareporting:v2.1/FloodlightActivity/countingMethod": counting_method +"/dfareporting:v2.1/FloodlightActivity/defaultTags": default_tags +"/dfareporting:v2.1/FloodlightActivity/defaultTags/default_tag": default_tag +"/dfareporting:v2.1/FloodlightActivity/expectedUrl": expected_url +"/dfareporting:v2.1/FloodlightActivity/floodlightActivityGroupId": floodlight_activity_group_id +"/dfareporting:v2.1/FloodlightActivity/floodlightActivityGroupName": floodlight_activity_group_name +"/dfareporting:v2.1/FloodlightActivity/floodlightActivityGroupTagString": floodlight_activity_group_tag_string +"/dfareporting:v2.1/FloodlightActivity/floodlightActivityGroupType": floodlight_activity_group_type +"/dfareporting:v2.1/FloodlightActivity/floodlightConfigurationId": floodlight_configuration_id +"/dfareporting:v2.1/FloodlightActivity/floodlightConfigurationIdDimensionValue": floodlight_configuration_id_dimension_value +"/dfareporting:v2.1/FloodlightActivity/hidden": hidden +"/dfareporting:v2.1/FloodlightActivity/id": id +"/dfareporting:v2.1/FloodlightActivity/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/FloodlightActivity/imageTagEnabled": image_tag_enabled +"/dfareporting:v2.1/FloodlightActivity/kind": kind +"/dfareporting:v2.1/FloodlightActivity/name": name +"/dfareporting:v2.1/FloodlightActivity/notes": notes +"/dfareporting:v2.1/FloodlightActivity/publisherTags": publisher_tags +"/dfareporting:v2.1/FloodlightActivity/publisherTags/publisher_tag": publisher_tag +"/dfareporting:v2.1/FloodlightActivity/secure": secure +"/dfareporting:v2.1/FloodlightActivity/sslCompliant": ssl_compliant +"/dfareporting:v2.1/FloodlightActivity/sslRequired": ssl_required +"/dfareporting:v2.1/FloodlightActivity/subaccountId": subaccount_id +"/dfareporting:v2.1/FloodlightActivity/tagFormat": tag_format +"/dfareporting:v2.1/FloodlightActivity/tagString": tag_string +"/dfareporting:v2.1/FloodlightActivity/userDefinedVariableTypes": user_defined_variable_types +"/dfareporting:v2.1/FloodlightActivity/userDefinedVariableTypes/user_defined_variable_type": user_defined_variable_type +"/dfareporting:v2.1/FloodlightActivityDynamicTag": floodlight_activity_dynamic_tag +"/dfareporting:v2.1/FloodlightActivityDynamicTag/id": id +"/dfareporting:v2.1/FloodlightActivityDynamicTag/name": name +"/dfareporting:v2.1/FloodlightActivityDynamicTag/tag": tag +"/dfareporting:v2.1/FloodlightActivityGroup": floodlight_activity_group +"/dfareporting:v2.1/FloodlightActivityGroup/accountId": account_id +"/dfareporting:v2.1/FloodlightActivityGroup/advertiserId": advertiser_id +"/dfareporting:v2.1/FloodlightActivityGroup/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/FloodlightActivityGroup/floodlightConfigurationId": floodlight_configuration_id +"/dfareporting:v2.1/FloodlightActivityGroup/floodlightConfigurationIdDimensionValue": floodlight_configuration_id_dimension_value +"/dfareporting:v2.1/FloodlightActivityGroup/id": id +"/dfareporting:v2.1/FloodlightActivityGroup/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/FloodlightActivityGroup/kind": kind +"/dfareporting:v2.1/FloodlightActivityGroup/name": name +"/dfareporting:v2.1/FloodlightActivityGroup/subaccountId": subaccount_id +"/dfareporting:v2.1/FloodlightActivityGroup/tagString": tag_string +"/dfareporting:v2.1/FloodlightActivityGroup/type": type +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse/floodlightActivityGroups": floodlight_activity_groups +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse/floodlightActivityGroups/floodlight_activity_group": floodlight_activity_group +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse/kind": kind +"/dfareporting:v2.1/FloodlightActivityGroupsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag": floodlight_activity_publisher_dynamic_tag +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/clickThrough": click_through +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/directorySiteId": directory_site_id +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/dynamicTag": dynamic_tag +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/siteId": site_id +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/siteIdDimensionValue": site_id_dimension_value +"/dfareporting:v2.1/FloodlightActivityPublisherDynamicTag/viewThrough": view_through +"/dfareporting:v2.1/FloodlightConfiguration": floodlight_configuration +"/dfareporting:v2.1/FloodlightConfiguration/accountId": account_id +"/dfareporting:v2.1/FloodlightConfiguration/advertiserId": advertiser_id +"/dfareporting:v2.1/FloodlightConfiguration/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/FloodlightConfiguration/analyticsDataSharingEnabled": analytics_data_sharing_enabled +"/dfareporting:v2.1/FloodlightConfiguration/exposureToConversionEnabled": exposure_to_conversion_enabled +"/dfareporting:v2.1/FloodlightConfiguration/firstDayOfWeek": first_day_of_week +"/dfareporting:v2.1/FloodlightConfiguration/id": id +"/dfareporting:v2.1/FloodlightConfiguration/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/FloodlightConfiguration/kind": kind +"/dfareporting:v2.1/FloodlightConfiguration/lookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/FloodlightConfiguration/naturalSearchConversionAttributionOption": natural_search_conversion_attribution_option +"/dfareporting:v2.1/FloodlightConfiguration/omnitureSettings": omniture_settings +"/dfareporting:v2.1/FloodlightConfiguration/sslRequired": ssl_required +"/dfareporting:v2.1/FloodlightConfiguration/standardVariableTypes": standard_variable_types +"/dfareporting:v2.1/FloodlightConfiguration/standardVariableTypes/standard_variable_type": standard_variable_type +"/dfareporting:v2.1/FloodlightConfiguration/subaccountId": subaccount_id +"/dfareporting:v2.1/FloodlightConfiguration/tagSettings": tag_settings +"/dfareporting:v2.1/FloodlightConfiguration/userDefinedVariableConfigurations": user_defined_variable_configurations +"/dfareporting:v2.1/FloodlightConfiguration/userDefinedVariableConfigurations/user_defined_variable_configuration": user_defined_variable_configuration +"/dfareporting:v2.1/FloodlightConfigurationsListResponse/floodlightConfigurations": floodlight_configurations +"/dfareporting:v2.1/FloodlightConfigurationsListResponse/floodlightConfigurations/floodlight_configuration": floodlight_configuration +"/dfareporting:v2.1/FloodlightConfigurationsListResponse/kind": kind +"/dfareporting:v2.1/FloodlightReportCompatibleFields": floodlight_report_compatible_fields +"/dfareporting:v2.1/FloodlightReportCompatibleFields/dimensionFilters": dimension_filters +"/dfareporting:v2.1/FloodlightReportCompatibleFields/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/FloodlightReportCompatibleFields/dimensions": dimensions +"/dfareporting:v2.1/FloodlightReportCompatibleFields/dimensions/dimension": dimension +"/dfareporting:v2.1/FloodlightReportCompatibleFields/kind": kind +"/dfareporting:v2.1/FloodlightReportCompatibleFields/metrics": metrics +"/dfareporting:v2.1/FloodlightReportCompatibleFields/metrics/metric": metric +"/dfareporting:v2.1/FrequencyCap": frequency_cap +"/dfareporting:v2.1/FrequencyCap/duration": duration +"/dfareporting:v2.1/FrequencyCap/impressions": impressions +"/dfareporting:v2.1/FsCommand": fs_command +"/dfareporting:v2.1/FsCommand/left": left +"/dfareporting:v2.1/FsCommand/positionOption": position_option +"/dfareporting:v2.1/FsCommand/top": top +"/dfareporting:v2.1/FsCommand/windowHeight": window_height +"/dfareporting:v2.1/FsCommand/windowWidth": window_width +"/dfareporting:v2.1/GeoTargeting": geo_targeting +"/dfareporting:v2.1/GeoTargeting/cities": cities +"/dfareporting:v2.1/GeoTargeting/cities/city": city +"/dfareporting:v2.1/GeoTargeting/countries": countries +"/dfareporting:v2.1/GeoTargeting/countries/country": country +"/dfareporting:v2.1/GeoTargeting/excludeCountries": exclude_countries +"/dfareporting:v2.1/GeoTargeting/metros": metros +"/dfareporting:v2.1/GeoTargeting/metros/metro": metro +"/dfareporting:v2.1/GeoTargeting/postalCodes": postal_codes +"/dfareporting:v2.1/GeoTargeting/postalCodes/postal_code": postal_code +"/dfareporting:v2.1/GeoTargeting/regions": regions +"/dfareporting:v2.1/GeoTargeting/regions/region": region +"/dfareporting:v2.1/InventoryItem": inventory_item +"/dfareporting:v2.1/InventoryItem/accountId": account_id +"/dfareporting:v2.1/InventoryItem/adSlots": ad_slots +"/dfareporting:v2.1/InventoryItem/adSlots/ad_slot": ad_slot +"/dfareporting:v2.1/InventoryItem/advertiserId": advertiser_id +"/dfareporting:v2.1/InventoryItem/contentCategoryId": content_category_id +"/dfareporting:v2.1/InventoryItem/estimatedClickThroughRate": estimated_click_through_rate +"/dfareporting:v2.1/InventoryItem/estimatedConversionRate": estimated_conversion_rate +"/dfareporting:v2.1/InventoryItem/id": id +"/dfareporting:v2.1/InventoryItem/inPlan": in_plan +"/dfareporting:v2.1/InventoryItem/kind": kind +"/dfareporting:v2.1/InventoryItem/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/InventoryItem/name": name +"/dfareporting:v2.1/InventoryItem/negotiationChannelId": negotiation_channel_id +"/dfareporting:v2.1/InventoryItem/orderId": order_id +"/dfareporting:v2.1/InventoryItem/placementStrategyId": placement_strategy_id +"/dfareporting:v2.1/InventoryItem/pricing": pricing +"/dfareporting:v2.1/InventoryItem/projectId": project_id +"/dfareporting:v2.1/InventoryItem/rfpId": rfp_id +"/dfareporting:v2.1/InventoryItem/siteId": site_id +"/dfareporting:v2.1/InventoryItem/subaccountId": subaccount_id +"/dfareporting:v2.1/InventoryItemsListResponse/inventoryItems": inventory_items +"/dfareporting:v2.1/InventoryItemsListResponse/inventoryItems/inventory_item": inventory_item +"/dfareporting:v2.1/InventoryItemsListResponse/kind": kind +"/dfareporting:v2.1/InventoryItemsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/KeyValueTargetingExpression": key_value_targeting_expression +"/dfareporting:v2.1/KeyValueTargetingExpression/expression": expression +"/dfareporting:v2.1/LandingPage": landing_page +"/dfareporting:v2.1/LandingPage/default": default +"/dfareporting:v2.1/LandingPage/id": id +"/dfareporting:v2.1/LandingPage/kind": kind +"/dfareporting:v2.1/LandingPage/name": name +"/dfareporting:v2.1/LandingPage/url": url +"/dfareporting:v2.1/LandingPagesListResponse/kind": kind +"/dfareporting:v2.1/LandingPagesListResponse/landingPages": landing_pages +"/dfareporting:v2.1/LandingPagesListResponse/landingPages/landing_page": landing_page +"/dfareporting:v2.1/LastModifiedInfo": last_modified_info +"/dfareporting:v2.1/LastModifiedInfo/time": time +"/dfareporting:v2.1/ListPopulationClause": list_population_clause +"/dfareporting:v2.1/ListPopulationClause/terms": terms +"/dfareporting:v2.1/ListPopulationClause/terms/term": term +"/dfareporting:v2.1/ListPopulationRule": list_population_rule +"/dfareporting:v2.1/ListPopulationRule/floodlightActivityId": floodlight_activity_id +"/dfareporting:v2.1/ListPopulationRule/floodlightActivityName": floodlight_activity_name +"/dfareporting:v2.1/ListPopulationRule/listPopulationClauses": list_population_clauses +"/dfareporting:v2.1/ListPopulationRule/listPopulationClauses/list_population_clause": list_population_clause +"/dfareporting:v2.1/ListPopulationTerm": list_population_term +"/dfareporting:v2.1/ListPopulationTerm/contains": contains +"/dfareporting:v2.1/ListPopulationTerm/negation": negation +"/dfareporting:v2.1/ListPopulationTerm/operator": operator +"/dfareporting:v2.1/ListPopulationTerm/remarketingListId": remarketing_list_id +"/dfareporting:v2.1/ListPopulationTerm/type": type +"/dfareporting:v2.1/ListPopulationTerm/value": value +"/dfareporting:v2.1/ListPopulationTerm/variableFriendlyName": variable_friendly_name +"/dfareporting:v2.1/ListPopulationTerm/variableName": variable_name +"/dfareporting:v2.1/ListTargetingExpression": list_targeting_expression +"/dfareporting:v2.1/ListTargetingExpression/expression": expression +"/dfareporting:v2.1/LookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/LookbackConfiguration/clickDuration": click_duration +"/dfareporting:v2.1/LookbackConfiguration/postImpressionActivitiesDuration": post_impression_activities_duration +"/dfareporting:v2.1/Metric": metric +"/dfareporting:v2.1/Metric/kind": kind +"/dfareporting:v2.1/Metric/name": name +"/dfareporting:v2.1/Metro": metro +"/dfareporting:v2.1/Metro/countryCode": country_code +"/dfareporting:v2.1/Metro/countryDartId": country_dart_id +"/dfareporting:v2.1/Metro/dartId": dart_id +"/dfareporting:v2.1/Metro/dmaId": dma_id +"/dfareporting:v2.1/Metro/kind": kind +"/dfareporting:v2.1/Metro/metroCode": metro_code +"/dfareporting:v2.1/Metro/name": name +"/dfareporting:v2.1/MetrosListResponse/kind": kind +"/dfareporting:v2.1/MetrosListResponse/metros": metros +"/dfareporting:v2.1/MetrosListResponse/metros/metro": metro +"/dfareporting:v2.1/MobileCarrier": mobile_carrier +"/dfareporting:v2.1/MobileCarrier/countryCode": country_code +"/dfareporting:v2.1/MobileCarrier/countryDartId": country_dart_id +"/dfareporting:v2.1/MobileCarrier/id": id +"/dfareporting:v2.1/MobileCarrier/kind": kind +"/dfareporting:v2.1/MobileCarrier/name": name +"/dfareporting:v2.1/MobileCarriersListResponse/kind": kind +"/dfareporting:v2.1/MobileCarriersListResponse/mobileCarriers": mobile_carriers +"/dfareporting:v2.1/MobileCarriersListResponse/mobileCarriers/mobile_carrier": mobile_carrier +"/dfareporting:v2.1/ObjectFilter": object_filter +"/dfareporting:v2.1/ObjectFilter/kind": kind +"/dfareporting:v2.1/ObjectFilter/objectIds": object_ids +"/dfareporting:v2.1/ObjectFilter/status": status +"/dfareporting:v2.1/OffsetPosition": offset_position +"/dfareporting:v2.1/OffsetPosition/left": left +"/dfareporting:v2.1/OffsetPosition/top": top +"/dfareporting:v2.1/OmnitureSettings": omniture_settings +"/dfareporting:v2.1/OmnitureSettings/omnitureCostDataEnabled": omniture_cost_data_enabled +"/dfareporting:v2.1/OmnitureSettings/omnitureIntegrationEnabled": omniture_integration_enabled +"/dfareporting:v2.1/OperatingSystem": operating_system +"/dfareporting:v2.1/OperatingSystem/dartId": dart_id +"/dfareporting:v2.1/OperatingSystem/desktop": desktop +"/dfareporting:v2.1/OperatingSystem/kind": kind +"/dfareporting:v2.1/OperatingSystem/mobile": mobile +"/dfareporting:v2.1/OperatingSystem/name": name +"/dfareporting:v2.1/OperatingSystemVersion": operating_system_version +"/dfareporting:v2.1/OperatingSystemVersion/id": id +"/dfareporting:v2.1/OperatingSystemVersion/kind": kind +"/dfareporting:v2.1/OperatingSystemVersion/majorVersion": major_version +"/dfareporting:v2.1/OperatingSystemVersion/minorVersion": minor_version +"/dfareporting:v2.1/OperatingSystemVersion/name": name +"/dfareporting:v2.1/OperatingSystemVersion/operatingSystem": operating_system +"/dfareporting:v2.1/OperatingSystemVersionsListResponse/kind": kind +"/dfareporting:v2.1/OperatingSystemVersionsListResponse/operatingSystemVersions": operating_system_versions +"/dfareporting:v2.1/OperatingSystemVersionsListResponse/operatingSystemVersions/operating_system_version": operating_system_version +"/dfareporting:v2.1/OperatingSystemsListResponse/kind": kind +"/dfareporting:v2.1/OperatingSystemsListResponse/operatingSystems": operating_systems +"/dfareporting:v2.1/OperatingSystemsListResponse/operatingSystems/operating_system": operating_system +"/dfareporting:v2.1/OptimizationActivity": optimization_activity +"/dfareporting:v2.1/OptimizationActivity/floodlightActivityId": floodlight_activity_id +"/dfareporting:v2.1/OptimizationActivity/floodlightActivityIdDimensionValue": floodlight_activity_id_dimension_value +"/dfareporting:v2.1/OptimizationActivity/weight": weight +"/dfareporting:v2.1/Order": order +"/dfareporting:v2.1/Order/accountId": account_id +"/dfareporting:v2.1/Order/advertiserId": advertiser_id +"/dfareporting:v2.1/Order/approverUserProfileIds": approver_user_profile_ids +"/dfareporting:v2.1/Order/approverUserProfileIds/approver_user_profile_id": approver_user_profile_id +"/dfareporting:v2.1/Order/buyerInvoiceId": buyer_invoice_id +"/dfareporting:v2.1/Order/buyerOrganizationName": buyer_organization_name +"/dfareporting:v2.1/Order/comments": comments +"/dfareporting:v2.1/Order/contacts": contacts +"/dfareporting:v2.1/Order/contacts/contact": contact +"/dfareporting:v2.1/Order/id": id +"/dfareporting:v2.1/Order/kind": kind +"/dfareporting:v2.1/Order/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Order/name": name +"/dfareporting:v2.1/Order/notes": notes +"/dfareporting:v2.1/Order/planningTermId": planning_term_id +"/dfareporting:v2.1/Order/projectId": project_id +"/dfareporting:v2.1/Order/sellerOrderId": seller_order_id +"/dfareporting:v2.1/Order/sellerOrganizationName": seller_organization_name +"/dfareporting:v2.1/Order/siteId": site_id +"/dfareporting:v2.1/Order/siteId/site_id": site_id +"/dfareporting:v2.1/Order/siteNames": site_names +"/dfareporting:v2.1/Order/siteNames/site_name": site_name +"/dfareporting:v2.1/Order/subaccountId": subaccount_id +"/dfareporting:v2.1/Order/termsAndConditions": terms_and_conditions +"/dfareporting:v2.1/OrderContact": order_contact +"/dfareporting:v2.1/OrderContact/contactInfo": contact_info +"/dfareporting:v2.1/OrderContact/contactName": contact_name +"/dfareporting:v2.1/OrderContact/contactTitle": contact_title +"/dfareporting:v2.1/OrderContact/contactType": contact_type +"/dfareporting:v2.1/OrderContact/signatureUserProfileId": signature_user_profile_id +"/dfareporting:v2.1/OrderDocument": order_document +"/dfareporting:v2.1/OrderDocument/accountId": account_id +"/dfareporting:v2.1/OrderDocument/advertiserId": advertiser_id +"/dfareporting:v2.1/OrderDocument/amendedOrderDocumentId": amended_order_document_id +"/dfareporting:v2.1/OrderDocument/approvedByUserProfileIds": approved_by_user_profile_ids +"/dfareporting:v2.1/OrderDocument/approvedByUserProfileIds/approved_by_user_profile_id": approved_by_user_profile_id +"/dfareporting:v2.1/OrderDocument/cancelled": cancelled +"/dfareporting:v2.1/OrderDocument/createdInfo": created_info +"/dfareporting:v2.1/OrderDocument/effectiveDate": effective_date +"/dfareporting:v2.1/OrderDocument/id": id +"/dfareporting:v2.1/OrderDocument/kind": kind +"/dfareporting:v2.1/OrderDocument/orderId": order_id +"/dfareporting:v2.1/OrderDocument/projectId": project_id +"/dfareporting:v2.1/OrderDocument/signed": signed +"/dfareporting:v2.1/OrderDocument/subaccountId": subaccount_id +"/dfareporting:v2.1/OrderDocument/title": title +"/dfareporting:v2.1/OrderDocument/type": type +"/dfareporting:v2.1/OrderDocumentsListResponse/kind": kind +"/dfareporting:v2.1/OrderDocumentsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/OrderDocumentsListResponse/orderDocuments": order_documents +"/dfareporting:v2.1/OrderDocumentsListResponse/orderDocuments/order_document": order_document +"/dfareporting:v2.1/OrdersListResponse/kind": kind +"/dfareporting:v2.1/OrdersListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/OrdersListResponse/orders": orders +"/dfareporting:v2.1/OrdersListResponse/orders/order": order +"/dfareporting:v2.1/PathToConversionReportCompatibleFields": path_to_conversion_report_compatible_fields +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/conversionDimensions": conversion_dimensions +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/conversionDimensions/conversion_dimension": conversion_dimension +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/customFloodlightVariables": custom_floodlight_variables +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/customFloodlightVariables/custom_floodlight_variable": custom_floodlight_variable +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/kind": kind +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/metrics": metrics +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/metrics/metric": metric +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/perInteractionDimensions": per_interaction_dimensions +"/dfareporting:v2.1/PathToConversionReportCompatibleFields/perInteractionDimensions/per_interaction_dimension": per_interaction_dimension +"/dfareporting:v2.1/Placement": placement +"/dfareporting:v2.1/Placement/accountId": account_id +"/dfareporting:v2.1/Placement/advertiserId": advertiser_id +"/dfareporting:v2.1/Placement/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/Placement/archived": archived +"/dfareporting:v2.1/Placement/campaignId": campaign_id +"/dfareporting:v2.1/Placement/campaignIdDimensionValue": campaign_id_dimension_value +"/dfareporting:v2.1/Placement/comment": comment +"/dfareporting:v2.1/Placement/compatibility": compatibility +"/dfareporting:v2.1/Placement/contentCategoryId": content_category_id +"/dfareporting:v2.1/Placement/createInfo": create_info +"/dfareporting:v2.1/Placement/directorySiteId": directory_site_id +"/dfareporting:v2.1/Placement/directorySiteIdDimensionValue": directory_site_id_dimension_value +"/dfareporting:v2.1/Placement/externalId": external_id +"/dfareporting:v2.1/Placement/id": id +"/dfareporting:v2.1/Placement/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Placement/keyName": key_name +"/dfareporting:v2.1/Placement/kind": kind +"/dfareporting:v2.1/Placement/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Placement/lookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/Placement/name": name +"/dfareporting:v2.1/Placement/paymentApproved": payment_approved +"/dfareporting:v2.1/Placement/paymentSource": payment_source +"/dfareporting:v2.1/Placement/placementGroupId": placement_group_id +"/dfareporting:v2.1/Placement/placementGroupIdDimensionValue": placement_group_id_dimension_value +"/dfareporting:v2.1/Placement/placementStrategyId": placement_strategy_id +"/dfareporting:v2.1/Placement/pricingSchedule": pricing_schedule +"/dfareporting:v2.1/Placement/primary": primary +"/dfareporting:v2.1/Placement/publisherUpdateInfo": publisher_update_info +"/dfareporting:v2.1/Placement/siteId": site_id +"/dfareporting:v2.1/Placement/siteIdDimensionValue": site_id_dimension_value +"/dfareporting:v2.1/Placement/size": size +"/dfareporting:v2.1/Placement/sslRequired": ssl_required +"/dfareporting:v2.1/Placement/status": status +"/dfareporting:v2.1/Placement/subaccountId": subaccount_id +"/dfareporting:v2.1/Placement/tagFormats": tag_formats +"/dfareporting:v2.1/Placement/tagFormats/tag_format": tag_format +"/dfareporting:v2.1/Placement/tagSetting": tag_setting +"/dfareporting:v2.1/PlacementAssignment": placement_assignment +"/dfareporting:v2.1/PlacementAssignment/active": active +"/dfareporting:v2.1/PlacementAssignment/placementId": placement_id +"/dfareporting:v2.1/PlacementAssignment/placementIdDimensionValue": placement_id_dimension_value +"/dfareporting:v2.1/PlacementAssignment/sslRequired": ssl_required +"/dfareporting:v2.1/PlacementGroup": placement_group +"/dfareporting:v2.1/PlacementGroup/accountId": account_id +"/dfareporting:v2.1/PlacementGroup/advertiserId": advertiser_id +"/dfareporting:v2.1/PlacementGroup/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/PlacementGroup/archived": archived +"/dfareporting:v2.1/PlacementGroup/campaignId": campaign_id +"/dfareporting:v2.1/PlacementGroup/campaignIdDimensionValue": campaign_id_dimension_value +"/dfareporting:v2.1/PlacementGroup/childPlacementIds": child_placement_ids +"/dfareporting:v2.1/PlacementGroup/childPlacementIds/child_placement_id": child_placement_id +"/dfareporting:v2.1/PlacementGroup/comment": comment +"/dfareporting:v2.1/PlacementGroup/contentCategoryId": content_category_id +"/dfareporting:v2.1/PlacementGroup/createInfo": create_info +"/dfareporting:v2.1/PlacementGroup/directorySiteId": directory_site_id +"/dfareporting:v2.1/PlacementGroup/directorySiteIdDimensionValue": directory_site_id_dimension_value +"/dfareporting:v2.1/PlacementGroup/externalId": external_id +"/dfareporting:v2.1/PlacementGroup/id": id +"/dfareporting:v2.1/PlacementGroup/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/PlacementGroup/kind": kind +"/dfareporting:v2.1/PlacementGroup/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/PlacementGroup/name": name +"/dfareporting:v2.1/PlacementGroup/placementGroupType": placement_group_type +"/dfareporting:v2.1/PlacementGroup/placementStrategyId": placement_strategy_id +"/dfareporting:v2.1/PlacementGroup/pricingSchedule": pricing_schedule +"/dfareporting:v2.1/PlacementGroup/primaryPlacementId": primary_placement_id +"/dfareporting:v2.1/PlacementGroup/primaryPlacementIdDimensionValue": primary_placement_id_dimension_value +"/dfareporting:v2.1/PlacementGroup/programmaticSetting": programmatic_setting +"/dfareporting:v2.1/PlacementGroup/siteId": site_id +"/dfareporting:v2.1/PlacementGroup/siteIdDimensionValue": site_id_dimension_value +"/dfareporting:v2.1/PlacementGroup/subaccountId": subaccount_id +"/dfareporting:v2.1/PlacementGroupsListResponse/kind": kind +"/dfareporting:v2.1/PlacementGroupsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/PlacementGroupsListResponse/placementGroups": placement_groups +"/dfareporting:v2.1/PlacementGroupsListResponse/placementGroups/placement_group": placement_group +"/dfareporting:v2.1/PlacementStrategiesListResponse/kind": kind +"/dfareporting:v2.1/PlacementStrategiesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/PlacementStrategiesListResponse/placementStrategies": placement_strategies +"/dfareporting:v2.1/PlacementStrategiesListResponse/placementStrategies/placement_strategy": placement_strategy +"/dfareporting:v2.1/PlacementStrategy": placement_strategy +"/dfareporting:v2.1/PlacementStrategy/accountId": account_id +"/dfareporting:v2.1/PlacementStrategy/id": id +"/dfareporting:v2.1/PlacementStrategy/kind": kind +"/dfareporting:v2.1/PlacementStrategy/name": name +"/dfareporting:v2.1/PlacementTag": placement_tag +"/dfareporting:v2.1/PlacementTag/placementId": placement_id +"/dfareporting:v2.1/PlacementTag/tagDatas": tag_datas +"/dfareporting:v2.1/PlacementTag/tagDatas/tag_data": tag_data +"/dfareporting:v2.1/PlacementsGenerateTagsResponse/kind": kind +"/dfareporting:v2.1/PlacementsGenerateTagsResponse/placementTags": placement_tags +"/dfareporting:v2.1/PlacementsGenerateTagsResponse/placementTags/placement_tag": placement_tag +"/dfareporting:v2.1/PlacementsListResponse/kind": kind +"/dfareporting:v2.1/PlacementsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/PlacementsListResponse/placements": placements +"/dfareporting:v2.1/PlacementsListResponse/placements/placement": placement +"/dfareporting:v2.1/PlatformType": platform_type +"/dfareporting:v2.1/PlatformType/id": id +"/dfareporting:v2.1/PlatformType/kind": kind +"/dfareporting:v2.1/PlatformType/name": name +"/dfareporting:v2.1/PlatformTypesListResponse/kind": kind +"/dfareporting:v2.1/PlatformTypesListResponse/platformTypes": platform_types +"/dfareporting:v2.1/PlatformTypesListResponse/platformTypes/platform_type": platform_type +"/dfareporting:v2.1/PopupWindowProperties": popup_window_properties +"/dfareporting:v2.1/PopupWindowProperties/dimension": dimension +"/dfareporting:v2.1/PopupWindowProperties/offset": offset +"/dfareporting:v2.1/PopupWindowProperties/positionType": position_type +"/dfareporting:v2.1/PopupWindowProperties/showAddressBar": show_address_bar +"/dfareporting:v2.1/PopupWindowProperties/showMenuBar": show_menu_bar +"/dfareporting:v2.1/PopupWindowProperties/showScrollBar": show_scroll_bar +"/dfareporting:v2.1/PopupWindowProperties/showStatusBar": show_status_bar +"/dfareporting:v2.1/PopupWindowProperties/showToolBar": show_tool_bar +"/dfareporting:v2.1/PopupWindowProperties/title": title +"/dfareporting:v2.1/PostalCode": postal_code +"/dfareporting:v2.1/PostalCode/code": code +"/dfareporting:v2.1/PostalCode/countryCode": country_code +"/dfareporting:v2.1/PostalCode/countryDartId": country_dart_id +"/dfareporting:v2.1/PostalCode/id": id +"/dfareporting:v2.1/PostalCode/kind": kind +"/dfareporting:v2.1/PostalCodesListResponse/kind": kind +"/dfareporting:v2.1/PostalCodesListResponse/postalCodes": postal_codes +"/dfareporting:v2.1/PostalCodesListResponse/postalCodes/postal_code": postal_code +"/dfareporting:v2.1/Pricing": pricing +"/dfareporting:v2.1/Pricing/capCostType": cap_cost_type +"/dfareporting:v2.1/Pricing/endDate": end_date +"/dfareporting:v2.1/Pricing/flights": flights +"/dfareporting:v2.1/Pricing/flights/flight": flight +"/dfareporting:v2.1/Pricing/groupType": group_type +"/dfareporting:v2.1/Pricing/pricingType": pricing_type +"/dfareporting:v2.1/Pricing/startDate": start_date +"/dfareporting:v2.1/PricingSchedule": pricing_schedule +"/dfareporting:v2.1/PricingSchedule/capCostOption": cap_cost_option +"/dfareporting:v2.1/PricingSchedule/disregardOverdelivery": disregard_overdelivery +"/dfareporting:v2.1/PricingSchedule/endDate": end_date +"/dfareporting:v2.1/PricingSchedule/flighted": flighted +"/dfareporting:v2.1/PricingSchedule/floodlightActivityId": floodlight_activity_id +"/dfareporting:v2.1/PricingSchedule/pricingPeriods": pricing_periods +"/dfareporting:v2.1/PricingSchedule/pricingPeriods/pricing_period": pricing_period +"/dfareporting:v2.1/PricingSchedule/pricingType": pricing_type +"/dfareporting:v2.1/PricingSchedule/startDate": start_date +"/dfareporting:v2.1/PricingSchedule/testingStartDate": testing_start_date +"/dfareporting:v2.1/PricingSchedulePricingPeriod": pricing_schedule_pricing_period +"/dfareporting:v2.1/PricingSchedulePricingPeriod/endDate": end_date +"/dfareporting:v2.1/PricingSchedulePricingPeriod/pricingComment": pricing_comment +"/dfareporting:v2.1/PricingSchedulePricingPeriod/rateOrCostNanos": rate_or_cost_nanos +"/dfareporting:v2.1/PricingSchedulePricingPeriod/startDate": start_date +"/dfareporting:v2.1/PricingSchedulePricingPeriod/units": units +"/dfareporting:v2.1/ProgrammaticSetting": programmatic_setting +"/dfareporting:v2.1/ProgrammaticSetting/adxDealIds": adx_deal_ids +"/dfareporting:v2.1/ProgrammaticSetting/adxDealIds/adx_deal_id": adx_deal_id +"/dfareporting:v2.1/ProgrammaticSetting/insertionOrderId": insertion_order_id +"/dfareporting:v2.1/ProgrammaticSetting/insertionOrderIdStatus": insertion_order_id_status +"/dfareporting:v2.1/ProgrammaticSetting/mediaCostNanos": media_cost_nanos +"/dfareporting:v2.1/ProgrammaticSetting/programmatic": programmatic +"/dfareporting:v2.1/ProgrammaticSetting/traffickerEmails": trafficker_emails +"/dfareporting:v2.1/ProgrammaticSetting/traffickerEmails/trafficker_email": trafficker_email +"/dfareporting:v2.1/Project": project +"/dfareporting:v2.1/Project/accountId": account_id +"/dfareporting:v2.1/Project/advertiserId": advertiser_id +"/dfareporting:v2.1/Project/audienceAgeGroup": audience_age_group +"/dfareporting:v2.1/Project/audienceGender": audience_gender +"/dfareporting:v2.1/Project/budget": budget +"/dfareporting:v2.1/Project/clientBillingCode": client_billing_code +"/dfareporting:v2.1/Project/clientName": client_name +"/dfareporting:v2.1/Project/endDate": end_date +"/dfareporting:v2.1/Project/id": id +"/dfareporting:v2.1/Project/kind": kind +"/dfareporting:v2.1/Project/lastModifiedInfo": last_modified_info +"/dfareporting:v2.1/Project/name": name +"/dfareporting:v2.1/Project/overview": overview +"/dfareporting:v2.1/Project/startDate": start_date +"/dfareporting:v2.1/Project/subaccountId": subaccount_id +"/dfareporting:v2.1/Project/targetClicks": target_clicks +"/dfareporting:v2.1/Project/targetConversions": target_conversions +"/dfareporting:v2.1/Project/targetCpaNanos": target_cpa_nanos +"/dfareporting:v2.1/Project/targetCpcNanos": target_cpc_nanos +"/dfareporting:v2.1/Project/targetCpmNanos": target_cpm_nanos +"/dfareporting:v2.1/Project/targetImpressions": target_impressions +"/dfareporting:v2.1/ProjectsListResponse/kind": kind +"/dfareporting:v2.1/ProjectsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/ProjectsListResponse/projects": projects +"/dfareporting:v2.1/ProjectsListResponse/projects/project": project +"/dfareporting:v2.1/ReachReportCompatibleFields": reach_report_compatible_fields +"/dfareporting:v2.1/ReachReportCompatibleFields/dimensionFilters": dimension_filters +"/dfareporting:v2.1/ReachReportCompatibleFields/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/ReachReportCompatibleFields/dimensions": dimensions +"/dfareporting:v2.1/ReachReportCompatibleFields/dimensions/dimension": dimension +"/dfareporting:v2.1/ReachReportCompatibleFields/kind": kind +"/dfareporting:v2.1/ReachReportCompatibleFields/metrics": metrics +"/dfareporting:v2.1/ReachReportCompatibleFields/metrics/metric": metric +"/dfareporting:v2.1/ReachReportCompatibleFields/pivotedActivityMetrics": pivoted_activity_metrics +"/dfareporting:v2.1/ReachReportCompatibleFields/pivotedActivityMetrics/pivoted_activity_metric": pivoted_activity_metric +"/dfareporting:v2.1/ReachReportCompatibleFields/reachByFrequencyMetrics": reach_by_frequency_metrics +"/dfareporting:v2.1/ReachReportCompatibleFields/reachByFrequencyMetrics/reach_by_frequency_metric": reach_by_frequency_metric +"/dfareporting:v2.1/Recipient": recipient +"/dfareporting:v2.1/Recipient/deliveryType": delivery_type +"/dfareporting:v2.1/Recipient/email": email +"/dfareporting:v2.1/Recipient/kind": kind +"/dfareporting:v2.1/Region": region +"/dfareporting:v2.1/Region/countryCode": country_code +"/dfareporting:v2.1/Region/countryDartId": country_dart_id +"/dfareporting:v2.1/Region/dartId": dart_id +"/dfareporting:v2.1/Region/kind": kind +"/dfareporting:v2.1/Region/name": name +"/dfareporting:v2.1/Region/regionCode": region_code +"/dfareporting:v2.1/RegionsListResponse/kind": kind +"/dfareporting:v2.1/RegionsListResponse/regions": regions +"/dfareporting:v2.1/RegionsListResponse/regions/region": region +"/dfareporting:v2.1/RemarketingList": remarketing_list +"/dfareporting:v2.1/RemarketingList/accountId": account_id +"/dfareporting:v2.1/RemarketingList/active": active +"/dfareporting:v2.1/RemarketingList/advertiserId": advertiser_id +"/dfareporting:v2.1/RemarketingList/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/RemarketingList/description": description +"/dfareporting:v2.1/RemarketingList/id": id +"/dfareporting:v2.1/RemarketingList/kind": kind +"/dfareporting:v2.1/RemarketingList/lifeSpan": life_span +"/dfareporting:v2.1/RemarketingList/listPopulationRule": list_population_rule +"/dfareporting:v2.1/RemarketingList/listSize": list_size +"/dfareporting:v2.1/RemarketingList/listSource": list_source +"/dfareporting:v2.1/RemarketingList/name": name +"/dfareporting:v2.1/RemarketingList/subaccountId": subaccount_id +"/dfareporting:v2.1/RemarketingListShare": remarketing_list_share +"/dfareporting:v2.1/RemarketingListShare/kind": kind +"/dfareporting:v2.1/RemarketingListShare/remarketingListId": remarketing_list_id +"/dfareporting:v2.1/RemarketingListShare/sharedAccountIds": shared_account_ids +"/dfareporting:v2.1/RemarketingListShare/sharedAccountIds/shared_account_id": shared_account_id +"/dfareporting:v2.1/RemarketingListShare/sharedAdvertiserIds": shared_advertiser_ids +"/dfareporting:v2.1/RemarketingListShare/sharedAdvertiserIds/shared_advertiser_id": shared_advertiser_id +"/dfareporting:v2.1/RemarketingListsListResponse/kind": kind +"/dfareporting:v2.1/RemarketingListsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/RemarketingListsListResponse/remarketingLists": remarketing_lists +"/dfareporting:v2.1/RemarketingListsListResponse/remarketingLists/remarketing_list": remarketing_list +"/dfareporting:v2.1/Report": report +"/dfareporting:v2.1/Report/accountId": account_id +"/dfareporting:v2.1/Report/criteria": criteria +"/dfareporting:v2.1/Report/criteria/activities": activities +"/dfareporting:v2.1/Report/criteria/customRichMediaEvents": custom_rich_media_events +"/dfareporting:v2.1/Report/criteria/dateRange": date_range +"/dfareporting:v2.1/Report/criteria/dimensionFilters": dimension_filters +"/dfareporting:v2.1/Report/criteria/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/Report/criteria/dimensions": dimensions +"/dfareporting:v2.1/Report/criteria/dimensions/dimension": dimension +"/dfareporting:v2.1/Report/criteria/metricNames": metric_names +"/dfareporting:v2.1/Report/criteria/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Report/crossDimensionReachCriteria": cross_dimension_reach_criteria +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/breakdown": breakdown +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/breakdown/breakdown": breakdown +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/dateRange": date_range +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/dimension": dimension +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/dimensionFilters": dimension_filters +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/metricNames": metric_names +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/overlapMetricNames": overlap_metric_names +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/overlapMetricNames/overlap_metric_name": overlap_metric_name +"/dfareporting:v2.1/Report/crossDimensionReachCriteria/pivoted": pivoted +"/dfareporting:v2.1/Report/delivery": delivery +"/dfareporting:v2.1/Report/delivery/emailOwner": email_owner +"/dfareporting:v2.1/Report/delivery/emailOwnerDeliveryType": email_owner_delivery_type +"/dfareporting:v2.1/Report/delivery/message": message +"/dfareporting:v2.1/Report/delivery/recipients": recipients +"/dfareporting:v2.1/Report/delivery/recipients/recipient": recipient +"/dfareporting:v2.1/Report/etag": etag +"/dfareporting:v2.1/Report/fileName": file_name +"/dfareporting:v2.1/Report/floodlightCriteria": floodlight_criteria +"/dfareporting:v2.1/Report/floodlightCriteria/customRichMediaEvents": custom_rich_media_events +"/dfareporting:v2.1/Report/floodlightCriteria/customRichMediaEvents/custom_rich_media_event": custom_rich_media_event +"/dfareporting:v2.1/Report/floodlightCriteria/dateRange": date_range +"/dfareporting:v2.1/Report/floodlightCriteria/dimensionFilters": dimension_filters +"/dfareporting:v2.1/Report/floodlightCriteria/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/Report/floodlightCriteria/dimensions": dimensions +"/dfareporting:v2.1/Report/floodlightCriteria/dimensions/dimension": dimension +"/dfareporting:v2.1/Report/floodlightCriteria/floodlightConfigId": floodlight_config_id +"/dfareporting:v2.1/Report/floodlightCriteria/metricNames": metric_names +"/dfareporting:v2.1/Report/floodlightCriteria/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Report/floodlightCriteria/reportProperties": report_properties +"/dfareporting:v2.1/Report/floodlightCriteria/reportProperties/includeAttributedIPConversions": include_attributed_ip_conversions +"/dfareporting:v2.1/Report/floodlightCriteria/reportProperties/includeUnattributedCookieConversions": include_unattributed_cookie_conversions +"/dfareporting:v2.1/Report/floodlightCriteria/reportProperties/includeUnattributedIPConversions": include_unattributed_ip_conversions +"/dfareporting:v2.1/Report/format": format +"/dfareporting:v2.1/Report/id": id +"/dfareporting:v2.1/Report/kind": kind +"/dfareporting:v2.1/Report/lastModifiedTime": last_modified_time +"/dfareporting:v2.1/Report/name": name +"/dfareporting:v2.1/Report/ownerProfileId": owner_profile_id +"/dfareporting:v2.1/Report/pathToConversionCriteria": path_to_conversion_criteria +"/dfareporting:v2.1/Report/pathToConversionCriteria/activityFilters": activity_filters +"/dfareporting:v2.1/Report/pathToConversionCriteria/activityFilters/activity_filter": activity_filter +"/dfareporting:v2.1/Report/pathToConversionCriteria/conversionDimensions": conversion_dimensions +"/dfareporting:v2.1/Report/pathToConversionCriteria/conversionDimensions/conversion_dimension": conversion_dimension +"/dfareporting:v2.1/Report/pathToConversionCriteria/customFloodlightVariables": custom_floodlight_variables +"/dfareporting:v2.1/Report/pathToConversionCriteria/customFloodlightVariables/custom_floodlight_variable": custom_floodlight_variable +"/dfareporting:v2.1/Report/pathToConversionCriteria/customRichMediaEvents": custom_rich_media_events +"/dfareporting:v2.1/Report/pathToConversionCriteria/customRichMediaEvents/custom_rich_media_event": custom_rich_media_event +"/dfareporting:v2.1/Report/pathToConversionCriteria/dateRange": date_range +"/dfareporting:v2.1/Report/pathToConversionCriteria/floodlightConfigId": floodlight_config_id +"/dfareporting:v2.1/Report/pathToConversionCriteria/metricNames": metric_names +"/dfareporting:v2.1/Report/pathToConversionCriteria/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Report/pathToConversionCriteria/perInteractionDimensions": per_interaction_dimensions +"/dfareporting:v2.1/Report/pathToConversionCriteria/perInteractionDimensions/per_interaction_dimension": per_interaction_dimension +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties": report_properties +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/clicksLookbackWindow": clicks_lookback_window +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/impressionsLookbackWindow": impressions_lookback_window +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/includeAttributedIPConversions": include_attributed_ip_conversions +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/includeUnattributedCookieConversions": include_unattributed_cookie_conversions +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/includeUnattributedIPConversions": include_unattributed_ip_conversions +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/maximumClickInteractions": maximum_click_interactions +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/maximumImpressionInteractions": maximum_impression_interactions +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/maximumInteractionGap": maximum_interaction_gap +"/dfareporting:v2.1/Report/pathToConversionCriteria/reportProperties/pivotOnInteractionPath": pivot_on_interaction_path +"/dfareporting:v2.1/Report/reachCriteria": reach_criteria +"/dfareporting:v2.1/Report/reachCriteria/activities": activities +"/dfareporting:v2.1/Report/reachCriteria/customRichMediaEvents": custom_rich_media_events +"/dfareporting:v2.1/Report/reachCriteria/dateRange": date_range +"/dfareporting:v2.1/Report/reachCriteria/dimensionFilters": dimension_filters +"/dfareporting:v2.1/Report/reachCriteria/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/Report/reachCriteria/dimensions": dimensions +"/dfareporting:v2.1/Report/reachCriteria/dimensions/dimension": dimension +"/dfareporting:v2.1/Report/reachCriteria/enableAllDimensionCombinations": enable_all_dimension_combinations +"/dfareporting:v2.1/Report/reachCriteria/metricNames": metric_names +"/dfareporting:v2.1/Report/reachCriteria/metricNames/metric_name": metric_name +"/dfareporting:v2.1/Report/reachCriteria/reachByFrequencyMetricNames": reach_by_frequency_metric_names +"/dfareporting:v2.1/Report/reachCriteria/reachByFrequencyMetricNames/reach_by_frequency_metric_name": reach_by_frequency_metric_name +"/dfareporting:v2.1/Report/schedule": schedule +"/dfareporting:v2.1/Report/schedule/active": active +"/dfareporting:v2.1/Report/schedule/every": every +"/dfareporting:v2.1/Report/schedule/expirationDate": expiration_date +"/dfareporting:v2.1/Report/schedule/repeats": repeats +"/dfareporting:v2.1/Report/schedule/repeatsOnWeekDays": repeats_on_week_days +"/dfareporting:v2.1/Report/schedule/repeatsOnWeekDays/repeats_on_week_day": repeats_on_week_day +"/dfareporting:v2.1/Report/schedule/runsOnDayOfMonth": runs_on_day_of_month +"/dfareporting:v2.1/Report/schedule/startDate": start_date +"/dfareporting:v2.1/Report/subAccountId": sub_account_id +"/dfareporting:v2.1/Report/type": type +"/dfareporting:v2.1/ReportCompatibleFields": report_compatible_fields +"/dfareporting:v2.1/ReportCompatibleFields/dimensionFilters": dimension_filters +"/dfareporting:v2.1/ReportCompatibleFields/dimensionFilters/dimension_filter": dimension_filter +"/dfareporting:v2.1/ReportCompatibleFields/dimensions": dimensions +"/dfareporting:v2.1/ReportCompatibleFields/dimensions/dimension": dimension +"/dfareporting:v2.1/ReportCompatibleFields/kind": kind +"/dfareporting:v2.1/ReportCompatibleFields/metrics": metrics +"/dfareporting:v2.1/ReportCompatibleFields/metrics/metric": metric +"/dfareporting:v2.1/ReportCompatibleFields/pivotedActivityMetrics": pivoted_activity_metrics +"/dfareporting:v2.1/ReportCompatibleFields/pivotedActivityMetrics/pivoted_activity_metric": pivoted_activity_metric +"/dfareporting:v2.1/ReportList": report_list +"/dfareporting:v2.1/ReportList/etag": etag +"/dfareporting:v2.1/ReportList/items": items +"/dfareporting:v2.1/ReportList/items/item": item +"/dfareporting:v2.1/ReportList/kind": kind +"/dfareporting:v2.1/ReportList/nextPageToken": next_page_token +"/dfareporting:v2.1/ReportsConfiguration": reports_configuration +"/dfareporting:v2.1/ReportsConfiguration/exposureToConversionEnabled": exposure_to_conversion_enabled +"/dfareporting:v2.1/ReportsConfiguration/lookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/ReportsConfiguration/reportGenerationTimeZoneId": report_generation_time_zone_id +"/dfareporting:v2.1/RichMediaExitOverride": rich_media_exit_override +"/dfareporting:v2.1/RichMediaExitOverride/customExitUrl": custom_exit_url +"/dfareporting:v2.1/RichMediaExitOverride/exitId": exit_id +"/dfareporting:v2.1/RichMediaExitOverride/useCustomExitUrl": use_custom_exit_url +"/dfareporting:v2.1/Site": site +"/dfareporting:v2.1/Site/accountId": account_id +"/dfareporting:v2.1/Site/approved": approved +"/dfareporting:v2.1/Site/directorySiteId": directory_site_id +"/dfareporting:v2.1/Site/directorySiteIdDimensionValue": directory_site_id_dimension_value +"/dfareporting:v2.1/Site/id": id +"/dfareporting:v2.1/Site/idDimensionValue": id_dimension_value +"/dfareporting:v2.1/Site/keyName": key_name +"/dfareporting:v2.1/Site/kind": kind +"/dfareporting:v2.1/Site/name": name +"/dfareporting:v2.1/Site/siteContacts": site_contacts +"/dfareporting:v2.1/Site/siteContacts/site_contact": site_contact +"/dfareporting:v2.1/Site/siteSettings": site_settings +"/dfareporting:v2.1/Site/subaccountId": subaccount_id +"/dfareporting:v2.1/SiteContact": site_contact +"/dfareporting:v2.1/SiteContact/address": address +"/dfareporting:v2.1/SiteContact/contactType": contact_type +"/dfareporting:v2.1/SiteContact/email": email +"/dfareporting:v2.1/SiteContact/firstName": first_name +"/dfareporting:v2.1/SiteContact/id": id +"/dfareporting:v2.1/SiteContact/lastName": last_name +"/dfareporting:v2.1/SiteContact/phone": phone +"/dfareporting:v2.1/SiteContact/title": title +"/dfareporting:v2.1/SiteSettings": site_settings +"/dfareporting:v2.1/SiteSettings/activeViewOptOut": active_view_opt_out +"/dfareporting:v2.1/SiteSettings/creativeSettings": creative_settings +"/dfareporting:v2.1/SiteSettings/disableBrandSafeAds": disable_brand_safe_ads +"/dfareporting:v2.1/SiteSettings/disableNewCookie": disable_new_cookie +"/dfareporting:v2.1/SiteSettings/lookbackConfiguration": lookback_configuration +"/dfareporting:v2.1/SiteSettings/tagSetting": tag_setting +"/dfareporting:v2.1/SitesListResponse/kind": kind +"/dfareporting:v2.1/SitesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/SitesListResponse/sites": sites +"/dfareporting:v2.1/SitesListResponse/sites/site": site +"/dfareporting:v2.1/Size": size +"/dfareporting:v2.1/Size/height": height +"/dfareporting:v2.1/Size/iab": iab +"/dfareporting:v2.1/Size/id": id +"/dfareporting:v2.1/Size/kind": kind +"/dfareporting:v2.1/Size/width": width +"/dfareporting:v2.1/SizesListResponse/kind": kind +"/dfareporting:v2.1/SizesListResponse/sizes": sizes +"/dfareporting:v2.1/SizesListResponse/sizes/size": size +"/dfareporting:v2.1/SortedDimension": sorted_dimension +"/dfareporting:v2.1/SortedDimension/kind": kind +"/dfareporting:v2.1/SortedDimension/name": name +"/dfareporting:v2.1/SortedDimension/sortOrder": sort_order +"/dfareporting:v2.1/Subaccount": subaccount +"/dfareporting:v2.1/Subaccount/accountId": account_id +"/dfareporting:v2.1/Subaccount/availablePermissionIds": available_permission_ids +"/dfareporting:v2.1/Subaccount/availablePermissionIds/available_permission_id": available_permission_id +"/dfareporting:v2.1/Subaccount/id": id +"/dfareporting:v2.1/Subaccount/kind": kind +"/dfareporting:v2.1/Subaccount/name": name +"/dfareporting:v2.1/SubaccountsListResponse/kind": kind +"/dfareporting:v2.1/SubaccountsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/SubaccountsListResponse/subaccounts": subaccounts +"/dfareporting:v2.1/SubaccountsListResponse/subaccounts/subaccount": subaccount +"/dfareporting:v2.1/TagData": tag_data +"/dfareporting:v2.1/TagData/adId": ad_id +"/dfareporting:v2.1/TagData/clickTag": click_tag +"/dfareporting:v2.1/TagData/creativeId": creative_id +"/dfareporting:v2.1/TagData/format": format +"/dfareporting:v2.1/TagData/impressionTag": impression_tag +"/dfareporting:v2.1/TagSetting": tag_setting +"/dfareporting:v2.1/TagSetting/additionalKeyValues": additional_key_values +"/dfareporting:v2.1/TagSetting/includeClickThroughUrls": include_click_through_urls +"/dfareporting:v2.1/TagSetting/includeClickTracking": include_click_tracking +"/dfareporting:v2.1/TagSetting/keywordOption": keyword_option +"/dfareporting:v2.1/TagSettings": tag_settings +"/dfareporting:v2.1/TagSettings/dynamicTagEnabled": dynamic_tag_enabled +"/dfareporting:v2.1/TagSettings/imageTagEnabled": image_tag_enabled +"/dfareporting:v2.1/TargetWindow": target_window +"/dfareporting:v2.1/TargetWindow/customHtml": custom_html +"/dfareporting:v2.1/TargetWindow/targetWindowOption": target_window_option +"/dfareporting:v2.1/TargetableRemarketingList": targetable_remarketing_list +"/dfareporting:v2.1/TargetableRemarketingList/accountId": account_id +"/dfareporting:v2.1/TargetableRemarketingList/active": active +"/dfareporting:v2.1/TargetableRemarketingList/advertiserId": advertiser_id +"/dfareporting:v2.1/TargetableRemarketingList/advertiserIdDimensionValue": advertiser_id_dimension_value +"/dfareporting:v2.1/TargetableRemarketingList/description": description +"/dfareporting:v2.1/TargetableRemarketingList/id": id +"/dfareporting:v2.1/TargetableRemarketingList/kind": kind +"/dfareporting:v2.1/TargetableRemarketingList/lifeSpan": life_span +"/dfareporting:v2.1/TargetableRemarketingList/listSize": list_size +"/dfareporting:v2.1/TargetableRemarketingList/listSource": list_source +"/dfareporting:v2.1/TargetableRemarketingList/name": name +"/dfareporting:v2.1/TargetableRemarketingList/subaccountId": subaccount_id +"/dfareporting:v2.1/TargetableRemarketingListsListResponse/kind": kind +"/dfareporting:v2.1/TargetableRemarketingListsListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/TargetableRemarketingListsListResponse/targetableRemarketingLists": targetable_remarketing_lists +"/dfareporting:v2.1/TargetableRemarketingListsListResponse/targetableRemarketingLists/targetable_remarketing_list": targetable_remarketing_list +"/dfareporting:v2.1/TechnologyTargeting": technology_targeting +"/dfareporting:v2.1/TechnologyTargeting/browsers": browsers +"/dfareporting:v2.1/TechnologyTargeting/browsers/browser": browser +"/dfareporting:v2.1/TechnologyTargeting/connectionTypes": connection_types +"/dfareporting:v2.1/TechnologyTargeting/connectionTypes/connection_type": connection_type +"/dfareporting:v2.1/TechnologyTargeting/mobileCarriers": mobile_carriers +"/dfareporting:v2.1/TechnologyTargeting/mobileCarriers/mobile_carrier": mobile_carrier +"/dfareporting:v2.1/TechnologyTargeting/operatingSystemVersions": operating_system_versions +"/dfareporting:v2.1/TechnologyTargeting/operatingSystemVersions/operating_system_version": operating_system_version +"/dfareporting:v2.1/TechnologyTargeting/operatingSystems": operating_systems +"/dfareporting:v2.1/TechnologyTargeting/operatingSystems/operating_system": operating_system +"/dfareporting:v2.1/TechnologyTargeting/platformTypes": platform_types +"/dfareporting:v2.1/TechnologyTargeting/platformTypes/platform_type": platform_type +"/dfareporting:v2.1/ThirdPartyTrackingUrl": third_party_tracking_url +"/dfareporting:v2.1/ThirdPartyTrackingUrl/thirdPartyUrlType": third_party_url_type +"/dfareporting:v2.1/ThirdPartyTrackingUrl/url": url +"/dfareporting:v2.1/UserDefinedVariableConfiguration": user_defined_variable_configuration +"/dfareporting:v2.1/UserDefinedVariableConfiguration/dataType": data_type +"/dfareporting:v2.1/UserDefinedVariableConfiguration/reportName": report_name +"/dfareporting:v2.1/UserDefinedVariableConfiguration/variableType": variable_type +"/dfareporting:v2.1/UserProfile": user_profile +"/dfareporting:v2.1/UserProfile/accountId": account_id +"/dfareporting:v2.1/UserProfile/accountName": account_name +"/dfareporting:v2.1/UserProfile/etag": etag +"/dfareporting:v2.1/UserProfile/kind": kind +"/dfareporting:v2.1/UserProfile/profileId": profile_id +"/dfareporting:v2.1/UserProfile/subAccountId": sub_account_id +"/dfareporting:v2.1/UserProfile/subAccountName": sub_account_name +"/dfareporting:v2.1/UserProfile/userName": user_name +"/dfareporting:v2.1/UserProfileList": user_profile_list +"/dfareporting:v2.1/UserProfileList/etag": etag +"/dfareporting:v2.1/UserProfileList/items": items +"/dfareporting:v2.1/UserProfileList/items/item": item +"/dfareporting:v2.1/UserProfileList/kind": kind +"/dfareporting:v2.1/UserRole": user_role +"/dfareporting:v2.1/UserRole/accountId": account_id +"/dfareporting:v2.1/UserRole/defaultUserRole": default_user_role +"/dfareporting:v2.1/UserRole/id": id +"/dfareporting:v2.1/UserRole/kind": kind +"/dfareporting:v2.1/UserRole/name": name +"/dfareporting:v2.1/UserRole/parentUserRoleId": parent_user_role_id +"/dfareporting:v2.1/UserRole/permissions": permissions +"/dfareporting:v2.1/UserRole/permissions/permission": permission +"/dfareporting:v2.1/UserRole/subaccountId": subaccount_id +"/dfareporting:v2.1/UserRolePermission": user_role_permission +"/dfareporting:v2.1/UserRolePermission/availability": availability +"/dfareporting:v2.1/UserRolePermission/id": id +"/dfareporting:v2.1/UserRolePermission/kind": kind +"/dfareporting:v2.1/UserRolePermission/name": name +"/dfareporting:v2.1/UserRolePermission/permissionGroupId": permission_group_id +"/dfareporting:v2.1/UserRolePermissionGroup": user_role_permission_group +"/dfareporting:v2.1/UserRolePermissionGroup/id": id +"/dfareporting:v2.1/UserRolePermissionGroup/kind": kind +"/dfareporting:v2.1/UserRolePermissionGroup/name": name +"/dfareporting:v2.1/UserRolePermissionGroupsListResponse/kind": kind +"/dfareporting:v2.1/UserRolePermissionGroupsListResponse/userRolePermissionGroups": user_role_permission_groups +"/dfareporting:v2.1/UserRolePermissionGroupsListResponse/userRolePermissionGroups/user_role_permission_group": user_role_permission_group +"/dfareporting:v2.1/UserRolePermissionsListResponse/kind": kind +"/dfareporting:v2.1/UserRolePermissionsListResponse/userRolePermissions": user_role_permissions +"/dfareporting:v2.1/UserRolePermissionsListResponse/userRolePermissions/user_role_permission": user_role_permission +"/dfareporting:v2.1/UserRolesListResponse/kind": kind +"/dfareporting:v2.1/UserRolesListResponse/nextPageToken": next_page_token +"/dfareporting:v2.1/UserRolesListResponse/userRoles": user_roles +"/dfareporting:v2.1/UserRolesListResponse/userRoles/user_role": user_role +"/discovery:v1/fields": fields +"/discovery:v1/key": key +"/discovery:v1/quotaUser": quota_user +"/discovery:v1/userIp": user_ip +"/discovery:v1/discovery.apis.getRest": get_rest_api +"/discovery:v1/discovery.apis.getRest/api": api +"/discovery:v1/discovery.apis.getRest/version": version +"/discovery:v1/discovery.apis.list": list_apis +"/discovery:v1/discovery.apis.list/name": name +"/discovery:v1/discovery.apis.list/preferred": preferred +"/discovery:v1/DirectoryList": directory_list +"/discovery:v1/DirectoryList/discoveryVersion": discovery_version +"/discovery:v1/DirectoryList/items": items +"/discovery:v1/DirectoryList/items/item": item +"/discovery:v1/DirectoryList/items/item/description": description +"/discovery:v1/DirectoryList/items/item/discoveryLink": discovery_link +"/discovery:v1/DirectoryList/items/item/discoveryRestUrl": discovery_rest_url +"/discovery:v1/DirectoryList/items/item/documentationLink": documentation_link +"/discovery:v1/DirectoryList/items/item/icons": icons +"/discovery:v1/DirectoryList/items/item/icons/x16": x16 +"/discovery:v1/DirectoryList/items/item/icons/x32": x32 +"/discovery:v1/DirectoryList/items/item/id": id +"/discovery:v1/DirectoryList/items/item/kind": kind +"/discovery:v1/DirectoryList/items/item/labels": labels +"/discovery:v1/DirectoryList/items/item/labels/label": label +"/discovery:v1/DirectoryList/items/item/name": name +"/discovery:v1/DirectoryList/items/item/preferred": preferred +"/discovery:v1/DirectoryList/items/item/title": title +"/discovery:v1/DirectoryList/items/item/version": version +"/discovery:v1/DirectoryList/kind": kind +"/discovery:v1/JsonSchema": json_schema +"/discovery:v1/JsonSchema/$ref": _ref +"/discovery:v1/JsonSchema/additionalProperties": additional_properties +"/discovery:v1/JsonSchema/annotations": annotations +"/discovery:v1/JsonSchema/annotations/required": required +"/discovery:v1/JsonSchema/annotations/required/required": required +"/discovery:v1/JsonSchema/default": default +"/discovery:v1/JsonSchema/description": description +"/discovery:v1/JsonSchema/enum": enum +"/discovery:v1/JsonSchema/enum/enum": enum +"/discovery:v1/JsonSchema/enumDescriptions": enum_descriptions +"/discovery:v1/JsonSchema/enumDescriptions/enum_description": enum_description +"/discovery:v1/JsonSchema/format": format +"/discovery:v1/JsonSchema/id": id +"/discovery:v1/JsonSchema/items": items +"/discovery:v1/JsonSchema/location": location +"/discovery:v1/JsonSchema/maximum": maximum +"/discovery:v1/JsonSchema/minimum": minimum +"/discovery:v1/JsonSchema/pattern": pattern +"/discovery:v1/JsonSchema/properties": properties +"/discovery:v1/JsonSchema/properties/property": property +"/discovery:v1/JsonSchema/readOnly": read_only +"/discovery:v1/JsonSchema/repeated": repeated +"/discovery:v1/JsonSchema/required": required +"/discovery:v1/JsonSchema/type": type +"/discovery:v1/JsonSchema/variant": variant +"/discovery:v1/JsonSchema/variant/discriminant": discriminant +"/discovery:v1/JsonSchema/variant/map": map +"/discovery:v1/JsonSchema/variant/map/map": map +"/discovery:v1/JsonSchema/variant/map/map/$ref": _ref +"/discovery:v1/JsonSchema/variant/map/map/type_value": type_value +"/discovery:v1/RestDescription": rest_description +"/discovery:v1/RestDescription/auth": auth +"/discovery:v1/RestDescription/auth/oauth2": oauth2 +"/discovery:v1/RestDescription/auth/oauth2/scopes": scopes +"/discovery:v1/RestDescription/auth/oauth2/scopes/scope": scope +"/discovery:v1/RestDescription/auth/oauth2/scopes/scope/description": description +"/discovery:v1/RestDescription/basePath": base_path +"/discovery:v1/RestDescription/baseUrl": base_url +"/discovery:v1/RestDescription/batchPath": batch_path +"/discovery:v1/RestDescription/canonicalName": canonical_name +"/discovery:v1/RestDescription/description": description +"/discovery:v1/RestDescription/discoveryVersion": discovery_version +"/discovery:v1/RestDescription/documentationLink": documentation_link +"/discovery:v1/RestDescription/etag": etag +"/discovery:v1/RestDescription/features": features +"/discovery:v1/RestDescription/features/feature": feature +"/discovery:v1/RestDescription/icons": icons +"/discovery:v1/RestDescription/icons/x16": x16 +"/discovery:v1/RestDescription/icons/x32": x32 +"/discovery:v1/RestDescription/id": id +"/discovery:v1/RestDescription/kind": kind +"/discovery:v1/RestDescription/labels": labels +"/discovery:v1/RestDescription/labels/label": label +"/discovery:v1/RestDescription/methods/api_method": api_method +"/discovery:v1/RestDescription/name": name +"/discovery:v1/RestDescription/ownerDomain": owner_domain +"/discovery:v1/RestDescription/ownerName": owner_name +"/discovery:v1/RestDescription/packagePath": package_path +"/discovery:v1/RestDescription/parameters": parameters +"/discovery:v1/RestDescription/parameters/parameter": parameter +"/discovery:v1/RestDescription/protocol": protocol +"/discovery:v1/RestDescription/resources": resources +"/discovery:v1/RestDescription/resources/resource": resource +"/discovery:v1/RestDescription/revision": revision +"/discovery:v1/RestDescription/rootUrl": root_url +"/discovery:v1/RestDescription/schemas": schemas +"/discovery:v1/RestDescription/schemas/schema": schema +"/discovery:v1/RestDescription/servicePath": service_path +"/discovery:v1/RestDescription/title": title +"/discovery:v1/RestDescription/version": version +"/discovery:v1/RestMethod": rest_method +"/discovery:v1/RestMethod/description": description +"/discovery:v1/RestMethod/etagRequired": etag_required +"/discovery:v1/RestMethod/httpMethod": http_method +"/discovery:v1/RestMethod/id": id +"/discovery:v1/RestMethod/mediaUpload": media_upload +"/discovery:v1/RestMethod/mediaUpload/accept": accept +"/discovery:v1/RestMethod/mediaUpload/accept/accept": accept +"/discovery:v1/RestMethod/mediaUpload/maxSize": max_size +"/discovery:v1/RestMethod/mediaUpload/protocols": protocols +"/discovery:v1/RestMethod/mediaUpload/protocols/resumable": resumable +"/discovery:v1/RestMethod/mediaUpload/protocols/resumable/multipart": multipart +"/discovery:v1/RestMethod/mediaUpload/protocols/resumable/path": path +"/discovery:v1/RestMethod/mediaUpload/protocols/simple": simple +"/discovery:v1/RestMethod/mediaUpload/protocols/simple/multipart": multipart +"/discovery:v1/RestMethod/mediaUpload/protocols/simple/path": path +"/discovery:v1/RestMethod/parameterOrder": parameter_order +"/discovery:v1/RestMethod/parameterOrder/parameter_order": parameter_order +"/discovery:v1/RestMethod/parameters": parameters +"/discovery:v1/RestMethod/parameters/parameter": parameter +"/discovery:v1/RestMethod/path": path +"/discovery:v1/RestMethod/request": request +"/discovery:v1/RestMethod/request/$ref": _ref +"/discovery:v1/RestMethod/request/parameterName": parameter_name +"/discovery:v1/RestMethod/response": response +"/discovery:v1/RestMethod/response/$ref": _ref +"/discovery:v1/RestMethod/scopes": scopes +"/discovery:v1/RestMethod/scopes/scope": scope +"/discovery:v1/RestMethod/supportsMediaDownload": supports_media_download +"/discovery:v1/RestMethod/supportsMediaUpload": supports_media_upload +"/discovery:v1/RestMethod/supportsSubscription": supports_subscription +"/discovery:v1/RestMethod/useMediaDownloadService": use_media_download_service +"/discovery:v1/RestResource": rest_resource +"/discovery:v1/RestResource/methods/api_method": api_method +"/discovery:v1/RestResource/resources": resources +"/discovery:v1/RestResource/resources/resource": resource +"/dns:v1/fields": fields +"/dns:v1/key": key +"/dns:v1/quotaUser": quota_user +"/dns:v1/userIp": user_ip +"/dns:v1/dns.changes.create": create_change +"/dns:v1/dns.changes.create/managedZone": managed_zone +"/dns:v1/dns.changes.create/project": project +"/dns:v1/dns.changes.get": get_change +"/dns:v1/dns.changes.get/changeId": change_id +"/dns:v1/dns.changes.get/managedZone": managed_zone +"/dns:v1/dns.changes.get/project": project +"/dns:v1/dns.changes.list": list_changes +"/dns:v1/dns.changes.list/managedZone": managed_zone +"/dns:v1/dns.changes.list/maxResults": max_results +"/dns:v1/dns.changes.list/pageToken": page_token +"/dns:v1/dns.changes.list/project": project +"/dns:v1/dns.changes.list/sortBy": sort_by +"/dns:v1/dns.changes.list/sortOrder": sort_order +"/dns:v1/dns.managedZones.create": create_managed_zone +"/dns:v1/dns.managedZones.create/project": project +"/dns:v1/dns.managedZones.delete": delete_managed_zone +"/dns:v1/dns.managedZones.delete/managedZone": managed_zone +"/dns:v1/dns.managedZones.delete/project": project +"/dns:v1/dns.managedZones.get": get_managed_zone +"/dns:v1/dns.managedZones.get/managedZone": managed_zone +"/dns:v1/dns.managedZones.get/project": project +"/dns:v1/dns.managedZones.list": list_managed_zones +"/dns:v1/dns.managedZones.list/maxResults": max_results +"/dns:v1/dns.managedZones.list/pageToken": page_token +"/dns:v1/dns.managedZones.list/project": project +"/dns:v1/dns.projects.get": get_project +"/dns:v1/dns.projects.get/project": project +"/dns:v1/dns.resourceRecordSets.list": list_resource_record_sets +"/dns:v1/dns.resourceRecordSets.list/managedZone": managed_zone +"/dns:v1/dns.resourceRecordSets.list/maxResults": max_results +"/dns:v1/dns.resourceRecordSets.list/name": name +"/dns:v1/dns.resourceRecordSets.list/pageToken": page_token +"/dns:v1/dns.resourceRecordSets.list/project": project +"/dns:v1/dns.resourceRecordSets.list/type": type +"/dns:v1/Change": change +"/dns:v1/Change/additions": additions +"/dns:v1/Change/additions/addition": addition +"/dns:v1/Change/deletions": deletions +"/dns:v1/Change/deletions/deletion": deletion +"/dns:v1/Change/id": id +"/dns:v1/Change/kind": kind +"/dns:v1/Change/startTime": start_time +"/dns:v1/Change/status": status +"/dns:v1/ChangesListResponse/changes": changes +"/dns:v1/ChangesListResponse/changes/change": change +"/dns:v1/ChangesListResponse/kind": kind +"/dns:v1/ChangesListResponse/nextPageToken": next_page_token +"/dns:v1/ManagedZone": managed_zone +"/dns:v1/ManagedZone/creationTime": creation_time +"/dns:v1/ManagedZone/description": description +"/dns:v1/ManagedZone/dnsName": dns_name +"/dns:v1/ManagedZone/id": id +"/dns:v1/ManagedZone/kind": kind +"/dns:v1/ManagedZone/name": name +"/dns:v1/ManagedZone/nameServerSet": name_server_set +"/dns:v1/ManagedZone/nameServers": name_servers +"/dns:v1/ManagedZone/nameServers/name_server": name_server +"/dns:v1/ManagedZonesListResponse/kind": kind +"/dns:v1/ManagedZonesListResponse/managedZones": managed_zones +"/dns:v1/ManagedZonesListResponse/managedZones/managed_zone": managed_zone +"/dns:v1/ManagedZonesListResponse/nextPageToken": next_page_token +"/dns:v1/Project": project +"/dns:v1/Project/id": id +"/dns:v1/Project/kind": kind +"/dns:v1/Project/number": number +"/dns:v1/Project/quota": quota +"/dns:v1/Quota": quota +"/dns:v1/Quota/kind": kind +"/dns:v1/Quota/managedZones": managed_zones +"/dns:v1/Quota/resourceRecordsPerRrset": resource_records_per_rrset +"/dns:v1/Quota/rrsetAdditionsPerChange": rrset_additions_per_change +"/dns:v1/Quota/rrsetDeletionsPerChange": rrset_deletions_per_change +"/dns:v1/Quota/rrsetsPerManagedZone": rrsets_per_managed_zone +"/dns:v1/Quota/totalRrdataSizePerChange": total_rrdata_size_per_change +"/dns:v1/ResourceRecordSet": resource_record_set +"/dns:v1/ResourceRecordSet/kind": kind +"/dns:v1/ResourceRecordSet/name": name +"/dns:v1/ResourceRecordSet/rrdatas": rrdatas +"/dns:v1/ResourceRecordSet/rrdatas/rrdata": rrdata +"/dns:v1/ResourceRecordSet/ttl": ttl +"/dns:v1/ResourceRecordSet/type": type +"/dns:v1/ResourceRecordSetsListResponse/kind": kind +"/dns:v1/ResourceRecordSetsListResponse/nextPageToken": next_page_token +"/dns:v1/ResourceRecordSetsListResponse/rrsets": rrsets +"/dns:v1/ResourceRecordSetsListResponse/rrsets/rrset": rrset +"/doubleclickbidmanager:v1/fields": fields +"/doubleclickbidmanager:v1/key": key +"/doubleclickbidmanager:v1/quotaUser": quota_user +"/doubleclickbidmanager:v1/userIp": user_ip +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.deletequery/queryId": query_id +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.getquery/queryId": query_id +"/doubleclickbidmanager:v1/doubleclickbidmanager.queries.runquery/queryId": query_id +"/doubleclickbidmanager:v1/doubleclickbidmanager.reports.listreports/queryId": query_id +"/doubleclickbidmanager:v1/DownloadLineItemsRequest/filterIds": filter_ids +"/doubleclickbidmanager:v1/DownloadLineItemsRequest/filterIds/filter_id": filter_id +"/doubleclickbidmanager:v1/DownloadLineItemsRequest/filterType": filter_type +"/doubleclickbidmanager:v1/DownloadLineItemsRequest/format": format +"/doubleclickbidmanager:v1/DownloadLineItemsResponse/lineItems": line_items +"/doubleclickbidmanager:v1/FilterPair": filter_pair +"/doubleclickbidmanager:v1/FilterPair/type": type +"/doubleclickbidmanager:v1/FilterPair/value": value +"/doubleclickbidmanager:v1/ListQueriesResponse/kind": kind +"/doubleclickbidmanager:v1/ListQueriesResponse/queries": queries +"/doubleclickbidmanager:v1/ListQueriesResponse/queries/query": query +"/doubleclickbidmanager:v1/ListReportsResponse/kind": kind +"/doubleclickbidmanager:v1/ListReportsResponse/reports": reports +"/doubleclickbidmanager:v1/ListReportsResponse/reports/report": report +"/doubleclickbidmanager:v1/Parameters": parameters +"/doubleclickbidmanager:v1/Parameters/filters": filters +"/doubleclickbidmanager:v1/Parameters/filters/filter": filter +"/doubleclickbidmanager:v1/Parameters/groupBys": group_bys +"/doubleclickbidmanager:v1/Parameters/groupBys/group_by": group_by +"/doubleclickbidmanager:v1/Parameters/includeInviteData": include_invite_data +"/doubleclickbidmanager:v1/Parameters/metrics": metrics +"/doubleclickbidmanager:v1/Parameters/metrics/metric": metric +"/doubleclickbidmanager:v1/Parameters/type": type +"/doubleclickbidmanager:v1/Query": query +"/doubleclickbidmanager:v1/Query/kind": kind +"/doubleclickbidmanager:v1/Query/metadata": metadata +"/doubleclickbidmanager:v1/Query/params": params +"/doubleclickbidmanager:v1/Query/queryId": query_id +"/doubleclickbidmanager:v1/Query/reportDataEndTimeMs": report_data_end_time_ms +"/doubleclickbidmanager:v1/Query/reportDataStartTimeMs": report_data_start_time_ms +"/doubleclickbidmanager:v1/Query/schedule": schedule +"/doubleclickbidmanager:v1/Query/timezoneCode": timezone_code +"/doubleclickbidmanager:v1/QueryMetadata": query_metadata +"/doubleclickbidmanager:v1/QueryMetadata/dataRange": data_range +"/doubleclickbidmanager:v1/QueryMetadata/format": format +"/doubleclickbidmanager:v1/QueryMetadata/googleCloudStoragePathForLatestReport": google_cloud_storage_path_for_latest_report +"/doubleclickbidmanager:v1/QueryMetadata/googleDrivePathForLatestReport": google_drive_path_for_latest_report +"/doubleclickbidmanager:v1/QueryMetadata/latestReportRunTimeMs": latest_report_run_time_ms +"/doubleclickbidmanager:v1/QueryMetadata/locale": locale +"/doubleclickbidmanager:v1/QueryMetadata/reportCount": report_count +"/doubleclickbidmanager:v1/QueryMetadata/running": running +"/doubleclickbidmanager:v1/QueryMetadata/sendNotification": send_notification +"/doubleclickbidmanager:v1/QueryMetadata/shareEmailAddress": share_email_address +"/doubleclickbidmanager:v1/QueryMetadata/shareEmailAddress/share_email_address": share_email_address +"/doubleclickbidmanager:v1/QueryMetadata/title": title +"/doubleclickbidmanager:v1/QuerySchedule": query_schedule +"/doubleclickbidmanager:v1/QuerySchedule/endTimeMs": end_time_ms +"/doubleclickbidmanager:v1/QuerySchedule/frequency": frequency +"/doubleclickbidmanager:v1/QuerySchedule/nextRunMinuteOfDay": next_run_minute_of_day +"/doubleclickbidmanager:v1/QuerySchedule/nextRunTimezoneCode": next_run_timezone_code +"/doubleclickbidmanager:v1/Report": report +"/doubleclickbidmanager:v1/Report/key": key +"/doubleclickbidmanager:v1/Report/metadata": metadata +"/doubleclickbidmanager:v1/Report/params": params +"/doubleclickbidmanager:v1/ReportFailure": report_failure +"/doubleclickbidmanager:v1/ReportFailure/errorCode": error_code +"/doubleclickbidmanager:v1/ReportKey": report_key +"/doubleclickbidmanager:v1/ReportKey/queryId": query_id +"/doubleclickbidmanager:v1/ReportKey/reportId": report_id +"/doubleclickbidmanager:v1/ReportMetadata": report_metadata +"/doubleclickbidmanager:v1/ReportMetadata/googleCloudStoragePath": google_cloud_storage_path +"/doubleclickbidmanager:v1/ReportMetadata/reportDataEndTimeMs": report_data_end_time_ms +"/doubleclickbidmanager:v1/ReportMetadata/reportDataStartTimeMs": report_data_start_time_ms +"/doubleclickbidmanager:v1/ReportMetadata/status": status +"/doubleclickbidmanager:v1/ReportStatus": report_status +"/doubleclickbidmanager:v1/ReportStatus/failure": failure +"/doubleclickbidmanager:v1/ReportStatus/finishTimeMs": finish_time_ms +"/doubleclickbidmanager:v1/ReportStatus/format": format +"/doubleclickbidmanager:v1/ReportStatus/state": state +"/doubleclickbidmanager:v1/RowStatus": row_status +"/doubleclickbidmanager:v1/RowStatus/changed": changed +"/doubleclickbidmanager:v1/RowStatus/entityId": entity_id +"/doubleclickbidmanager:v1/RowStatus/entityName": entity_name +"/doubleclickbidmanager:v1/RowStatus/errors": errors +"/doubleclickbidmanager:v1/RowStatus/errors/error": error +"/doubleclickbidmanager:v1/RowStatus/persisted": persisted +"/doubleclickbidmanager:v1/RowStatus/rowNumber": row_number +"/doubleclickbidmanager:v1/RunQueryRequest/dataRange": data_range +"/doubleclickbidmanager:v1/RunQueryRequest/reportDataEndTimeMs": report_data_end_time_ms +"/doubleclickbidmanager:v1/RunQueryRequest/reportDataStartTimeMs": report_data_start_time_ms +"/doubleclickbidmanager:v1/RunQueryRequest/timezoneCode": timezone_code +"/doubleclickbidmanager:v1/UploadLineItemsRequest/dryRun": dry_run +"/doubleclickbidmanager:v1/UploadLineItemsRequest/format": format +"/doubleclickbidmanager:v1/UploadLineItemsRequest/lineItems": line_items +"/doubleclickbidmanager:v1/UploadLineItemsResponse/uploadStatus": upload_status +"/doubleclickbidmanager:v1/UploadStatus": upload_status +"/doubleclickbidmanager:v1/UploadStatus/errors": errors +"/doubleclickbidmanager:v1/UploadStatus/errors/error": error +"/doubleclickbidmanager:v1/UploadStatus/rowStatus": row_status +"/doubleclickbidmanager:v1/UploadStatus/rowStatus/row_status": row_status +"/doubleclicksearch:v2/fields": fields +"/doubleclicksearch:v2/key": key +"/doubleclicksearch:v2/quotaUser": quota_user +"/doubleclicksearch:v2/userIp": user_ip +"/doubleclicksearch:v2/doubleclicksearch.conversion.get": get_conversion +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/adGroupId": ad_group_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/adId": ad_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/advertiserId": advertiser_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/agencyId": agency_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/campaignId": campaign_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/criterionId": criterion_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/endDate": end_date +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/engineAccountId": engine_account_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/rowCount": row_count +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/startDate": start_date +"/doubleclicksearch:v2/doubleclicksearch.conversion.get/startRow": start_row +"/doubleclicksearch:v2/doubleclicksearch.conversion.insert": insert_conversion +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch": patch_conversion +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/advertiserId": advertiser_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/agencyId": agency_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/endDate": end_date +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/engineAccountId": engine_account_id +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/rowCount": row_count +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/startDate": start_date +"/doubleclicksearch:v2/doubleclicksearch.conversion.patch/startRow": start_row +"/doubleclicksearch:v2/doubleclicksearch.conversion.update": update_conversion +"/doubleclicksearch:v2/doubleclicksearch.conversion.updateAvailability": update_availability +"/doubleclicksearch:v2/doubleclicksearch.reports.generate": generate_report +"/doubleclicksearch:v2/doubleclicksearch.reports.get": get_report +"/doubleclicksearch:v2/doubleclicksearch.reports.get/reportId": report_id +"/doubleclicksearch:v2/doubleclicksearch.reports.getFile": get_file_report +"/doubleclicksearch:v2/doubleclicksearch.reports.getFile/reportFragment": report_fragment +"/doubleclicksearch:v2/doubleclicksearch.reports.getFile/reportId": report_id +"/doubleclicksearch:v2/doubleclicksearch.reports.request": request_report +"/doubleclicksearch:v2/doubleclicksearch.savedColumns.list": list_saved_columns +"/doubleclicksearch:v2/doubleclicksearch.savedColumns.list/advertiserId": advertiser_id +"/doubleclicksearch:v2/doubleclicksearch.savedColumns.list/agencyId": agency_id +"/doubleclicksearch:v2/Availability": availability +"/doubleclicksearch:v2/Availability/advertiserId": advertiser_id +"/doubleclicksearch:v2/Availability/agencyId": agency_id +"/doubleclicksearch:v2/Availability/availabilityTimestamp": availability_timestamp +"/doubleclicksearch:v2/Availability/segmentationId": segmentation_id +"/doubleclicksearch:v2/Availability/segmentationName": segmentation_name +"/doubleclicksearch:v2/Availability/segmentationType": segmentation_type +"/doubleclicksearch:v2/Conversion": conversion +"/doubleclicksearch:v2/Conversion/adGroupId": ad_group_id +"/doubleclicksearch:v2/Conversion/adId": ad_id +"/doubleclicksearch:v2/Conversion/advertiserId": advertiser_id +"/doubleclicksearch:v2/Conversion/agencyId": agency_id +"/doubleclicksearch:v2/Conversion/attributionModel": attribution_model +"/doubleclicksearch:v2/Conversion/campaignId": campaign_id +"/doubleclicksearch:v2/Conversion/channel": channel +"/doubleclicksearch:v2/Conversion/clickId": click_id +"/doubleclicksearch:v2/Conversion/conversionId": conversion_id +"/doubleclicksearch:v2/Conversion/conversionModifiedTimestamp": conversion_modified_timestamp +"/doubleclicksearch:v2/Conversion/conversionTimestamp": conversion_timestamp +"/doubleclicksearch:v2/Conversion/countMillis": count_millis +"/doubleclicksearch:v2/Conversion/criterionId": criterion_id +"/doubleclicksearch:v2/Conversion/currencyCode": currency_code +"/doubleclicksearch:v2/Conversion/customDimension": custom_dimension +"/doubleclicksearch:v2/Conversion/customDimension/custom_dimension": custom_dimension +"/doubleclicksearch:v2/Conversion/customMetric": custom_metric +"/doubleclicksearch:v2/Conversion/customMetric/custom_metric": custom_metric +"/doubleclicksearch:v2/Conversion/deviceType": device_type +"/doubleclicksearch:v2/Conversion/dsConversionId": ds_conversion_id +"/doubleclicksearch:v2/Conversion/engineAccountId": engine_account_id +"/doubleclicksearch:v2/Conversion/floodlightOrderId": floodlight_order_id +"/doubleclicksearch:v2/Conversion/inventoryAccountId": inventory_account_id +"/doubleclicksearch:v2/Conversion/productCountry": product_country +"/doubleclicksearch:v2/Conversion/productGroupId": product_group_id +"/doubleclicksearch:v2/Conversion/productId": product_id +"/doubleclicksearch:v2/Conversion/productLanguage": product_language +"/doubleclicksearch:v2/Conversion/quantityMillis": quantity_millis +"/doubleclicksearch:v2/Conversion/revenueMicros": revenue_micros +"/doubleclicksearch:v2/Conversion/segmentationId": segmentation_id +"/doubleclicksearch:v2/Conversion/segmentationName": segmentation_name +"/doubleclicksearch:v2/Conversion/segmentationType": segmentation_type +"/doubleclicksearch:v2/Conversion/state": state +"/doubleclicksearch:v2/Conversion/storeId": store_id +"/doubleclicksearch:v2/Conversion/type": type +"/doubleclicksearch:v2/ConversionList": conversion_list +"/doubleclicksearch:v2/ConversionList/conversion": conversion +"/doubleclicksearch:v2/ConversionList/conversion/conversion": conversion +"/doubleclicksearch:v2/ConversionList/kind": kind +"/doubleclicksearch:v2/CustomDimension": custom_dimension +"/doubleclicksearch:v2/CustomDimension/name": name +"/doubleclicksearch:v2/CustomDimension/value": value +"/doubleclicksearch:v2/CustomMetric": custom_metric +"/doubleclicksearch:v2/CustomMetric/name": name +"/doubleclicksearch:v2/CustomMetric/value": value +"/doubleclicksearch:v2/Report": report +"/doubleclicksearch:v2/Report/files": files +"/doubleclicksearch:v2/Report/files/file": file +"/doubleclicksearch:v2/Report/files/file/byteCount": byte_count +"/doubleclicksearch:v2/Report/files/file/url": url +"/doubleclicksearch:v2/Report/id": id +"/doubleclicksearch:v2/Report/isReportReady": is_report_ready +"/doubleclicksearch:v2/Report/kind": kind +"/doubleclicksearch:v2/Report/request": request +"/doubleclicksearch:v2/Report/rowCount": row_count +"/doubleclicksearch:v2/Report/rows": rows +"/doubleclicksearch:v2/Report/rows/row": row +"/doubleclicksearch:v2/Report/statisticsCurrencyCode": statistics_currency_code +"/doubleclicksearch:v2/Report/statisticsTimeZone": statistics_time_zone +"/doubleclicksearch:v2/ReportApiColumnSpec": report_api_column_spec +"/doubleclicksearch:v2/ReportApiColumnSpec/columnName": column_name +"/doubleclicksearch:v2/ReportApiColumnSpec/customDimensionName": custom_dimension_name +"/doubleclicksearch:v2/ReportApiColumnSpec/customMetricName": custom_metric_name +"/doubleclicksearch:v2/ReportApiColumnSpec/endDate": end_date +"/doubleclicksearch:v2/ReportApiColumnSpec/groupByColumn": group_by_column +"/doubleclicksearch:v2/ReportApiColumnSpec/headerText": header_text +"/doubleclicksearch:v2/ReportApiColumnSpec/platformSource": platform_source +"/doubleclicksearch:v2/ReportApiColumnSpec/savedColumnName": saved_column_name +"/doubleclicksearch:v2/ReportApiColumnSpec/startDate": start_date +"/doubleclicksearch:v2/ReportRequest/columns": columns +"/doubleclicksearch:v2/ReportRequest/columns/column": column +"/doubleclicksearch:v2/ReportRequest/downloadFormat": download_format +"/doubleclicksearch:v2/ReportRequest/filters": filters +"/doubleclicksearch:v2/ReportRequest/filters/filter": filter +"/doubleclicksearch:v2/ReportRequest/filters/filter/column": column +"/doubleclicksearch:v2/ReportRequest/filters/filter/operator": operator +"/doubleclicksearch:v2/ReportRequest/filters/filter/values": values +"/doubleclicksearch:v2/ReportRequest/filters/filter/values/value": value +"/doubleclicksearch:v2/ReportRequest/includeDeletedEntities": include_deleted_entities +"/doubleclicksearch:v2/ReportRequest/includeRemovedEntities": include_removed_entities +"/doubleclicksearch:v2/ReportRequest/maxRowsPerFile": max_rows_per_file +"/doubleclicksearch:v2/ReportRequest/orderBy": order_by +"/doubleclicksearch:v2/ReportRequest/orderBy/order_by": order_by +"/doubleclicksearch:v2/ReportRequest/orderBy/order_by/column": column +"/doubleclicksearch:v2/ReportRequest/orderBy/order_by/sortOrder": sort_order +"/doubleclicksearch:v2/ReportRequest/reportScope": report_scope +"/doubleclicksearch:v2/ReportRequest/reportScope/adGroupId": ad_group_id +"/doubleclicksearch:v2/ReportRequest/reportScope/adId": ad_id +"/doubleclicksearch:v2/ReportRequest/reportScope/advertiserId": advertiser_id +"/doubleclicksearch:v2/ReportRequest/reportScope/agencyId": agency_id +"/doubleclicksearch:v2/ReportRequest/reportScope/campaignId": campaign_id +"/doubleclicksearch:v2/ReportRequest/reportScope/engineAccountId": engine_account_id +"/doubleclicksearch:v2/ReportRequest/reportScope/keywordId": keyword_id +"/doubleclicksearch:v2/ReportRequest/reportType": report_type +"/doubleclicksearch:v2/ReportRequest/rowCount": row_count +"/doubleclicksearch:v2/ReportRequest/startRow": start_row +"/doubleclicksearch:v2/ReportRequest/statisticsCurrency": statistics_currency +"/doubleclicksearch:v2/ReportRequest/timeRange": time_range +"/doubleclicksearch:v2/ReportRequest/timeRange/changedAttributesSinceTimestamp": changed_attributes_since_timestamp +"/doubleclicksearch:v2/ReportRequest/timeRange/changedMetricsSinceTimestamp": changed_metrics_since_timestamp +"/doubleclicksearch:v2/ReportRequest/timeRange/endDate": end_date +"/doubleclicksearch:v2/ReportRequest/timeRange/startDate": start_date +"/doubleclicksearch:v2/ReportRequest/verifySingleTimeZone": verify_single_time_zone +"/doubleclicksearch:v2/ReportRow": report_row +"/doubleclicksearch:v2/ReportRow/report_row": report_row +"/doubleclicksearch:v2/SavedColumn": saved_column +"/doubleclicksearch:v2/SavedColumn/kind": kind +"/doubleclicksearch:v2/SavedColumn/savedColumnName": saved_column_name +"/doubleclicksearch:v2/SavedColumn/type": type +"/doubleclicksearch:v2/SavedColumnList": saved_column_list +"/doubleclicksearch:v2/SavedColumnList/items": items +"/doubleclicksearch:v2/SavedColumnList/items/item": item +"/doubleclicksearch:v2/SavedColumnList/kind": kind +"/doubleclicksearch:v2/UpdateAvailabilityRequest/availabilities": availabilities +"/doubleclicksearch:v2/UpdateAvailabilityRequest/availabilities/availability": availability +"/doubleclicksearch:v2/UpdateAvailabilityResponse/availabilities": availabilities +"/doubleclicksearch:v2/UpdateAvailabilityResponse/availabilities/availability": availability +"/drive:v2/fields": fields +"/drive:v2/key": key +"/drive:v2/quotaUser": quota_user +"/drive:v2/userIp": user_ip +"/drive:v2/drive.about.get": get_about +"/drive:v2/drive.about.get/includeSubscribed": include_subscribed +"/drive:v2/drive.about.get/maxChangeIdCount": max_change_id_count +"/drive:v2/drive.about.get/startChangeId": start_change_id +"/drive:v2/drive.apps.get": get_app +"/drive:v2/drive.apps.get/appId": app_id +"/drive:v2/drive.apps.list": list_apps +"/drive:v2/drive.apps.list/appFilterExtensions": app_filter_extensions +"/drive:v2/drive.apps.list/appFilterMimeTypes": app_filter_mime_types +"/drive:v2/drive.apps.list/languageCode": language_code +"/drive:v2/drive.changes.get": get_change +"/drive:v2/drive.changes.get/changeId": change_id +"/drive:v2/drive.changes.list": list_changes +"/drive:v2/drive.changes.list/includeDeleted": include_deleted +"/drive:v2/drive.changes.list/includeSubscribed": include_subscribed +"/drive:v2/drive.changes.list/maxResults": max_results +"/drive:v2/drive.changes.list/pageToken": page_token +"/drive:v2/drive.changes.list/spaces": spaces +"/drive:v2/drive.changes.list/startChangeId": start_change_id +"/drive:v2/drive.changes.watch": watch_change +"/drive:v2/drive.changes.watch/includeDeleted": include_deleted +"/drive:v2/drive.changes.watch/includeSubscribed": include_subscribed +"/drive:v2/drive.changes.watch/maxResults": max_results +"/drive:v2/drive.changes.watch/pageToken": page_token +"/drive:v2/drive.changes.watch/spaces": spaces +"/drive:v2/drive.changes.watch/startChangeId": start_change_id +"/drive:v2/drive.channels.stop": stop_channel +"/drive:v2/drive.children.delete": delete_child +"/drive:v2/drive.children.delete/childId": child_id +"/drive:v2/drive.children.delete/folderId": folder_id +"/drive:v2/drive.children.get": get_child +"/drive:v2/drive.children.get/childId": child_id +"/drive:v2/drive.children.get/folderId": folder_id +"/drive:v2/drive.children.insert": insert_child +"/drive:v2/drive.children.insert/folderId": folder_id +"/drive:v2/drive.children.list": list_children +"/drive:v2/drive.children.list/folderId": folder_id +"/drive:v2/drive.children.list/maxResults": max_results +"/drive:v2/drive.children.list/pageToken": page_token +"/drive:v2/drive.children.list/q": q +"/drive:v2/drive.comments.delete": delete_comment +"/drive:v2/drive.comments.delete/commentId": comment_id +"/drive:v2/drive.comments.delete/fileId": file_id +"/drive:v2/drive.comments.get": get_comment +"/drive:v2/drive.comments.get/commentId": comment_id +"/drive:v2/drive.comments.get/fileId": file_id +"/drive:v2/drive.comments.get/includeDeleted": include_deleted +"/drive:v2/drive.comments.insert": insert_comment +"/drive:v2/drive.comments.insert/fileId": file_id +"/drive:v2/drive.comments.list": list_comments +"/drive:v2/drive.comments.list/fileId": file_id +"/drive:v2/drive.comments.list/includeDeleted": include_deleted +"/drive:v2/drive.comments.list/maxResults": max_results +"/drive:v2/drive.comments.list/pageToken": page_token +"/drive:v2/drive.comments.list/updatedMin": updated_min +"/drive:v2/drive.comments.patch": patch_comment +"/drive:v2/drive.comments.patch/commentId": comment_id +"/drive:v2/drive.comments.patch/fileId": file_id +"/drive:v2/drive.comments.update": update_comment +"/drive:v2/drive.comments.update/commentId": comment_id +"/drive:v2/drive.comments.update/fileId": file_id +"/drive:v2/drive.files.copy": copy_file +"/drive:v2/drive.files.copy/convert": convert +"/drive:v2/drive.files.copy/fileId": file_id +"/drive:v2/drive.files.copy/ocr": ocr +"/drive:v2/drive.files.copy/ocrLanguage": ocr_language +"/drive:v2/drive.files.copy/pinned": pinned +"/drive:v2/drive.files.copy/timedTextLanguage": timed_text_language +"/drive:v2/drive.files.copy/timedTextTrackName": timed_text_track_name +"/drive:v2/drive.files.copy/visibility": visibility +"/drive:v2/drive.files.delete": delete_file +"/drive:v2/drive.files.delete/fileId": file_id +"/drive:v2/drive.files.get": get_file +"/drive:v2/drive.files.get/acknowledgeAbuse": acknowledge_abuse +"/drive:v2/drive.files.get/fileId": file_id +"/drive:v2/drive.files.get/projection": projection +"/drive:v2/drive.files.get/revisionId": revision_id +"/drive:v2/drive.files.get/updateViewedDate": update_viewed_date +"/drive:v2/drive.files.insert": insert_file +"/drive:v2/drive.files.insert/convert": convert +"/drive:v2/drive.files.insert/ocr": ocr +"/drive:v2/drive.files.insert/ocrLanguage": ocr_language +"/drive:v2/drive.files.insert/pinned": pinned +"/drive:v2/drive.files.insert/timedTextLanguage": timed_text_language +"/drive:v2/drive.files.insert/timedTextTrackName": timed_text_track_name +"/drive:v2/drive.files.insert/useContentAsIndexableText": use_content_as_indexable_text +"/drive:v2/drive.files.insert/visibility": visibility +"/drive:v2/drive.files.list": list_files +"/drive:v2/drive.files.list/corpus": corpus +"/drive:v2/drive.files.list/maxResults": max_results +"/drive:v2/drive.files.list/pageToken": page_token +"/drive:v2/drive.files.list/projection": projection +"/drive:v2/drive.files.list/q": q +"/drive:v2/drive.files.list/spaces": spaces +"/drive:v2/drive.files.patch": patch_file +"/drive:v2/drive.files.patch/addParents": add_parents +"/drive:v2/drive.files.patch/convert": convert +"/drive:v2/drive.files.patch/fileId": file_id +"/drive:v2/drive.files.patch/newRevision": new_revision +"/drive:v2/drive.files.patch/ocr": ocr +"/drive:v2/drive.files.patch/ocrLanguage": ocr_language +"/drive:v2/drive.files.patch/pinned": pinned +"/drive:v2/drive.files.patch/removeParents": remove_parents +"/drive:v2/drive.files.patch/setModifiedDate": set_modified_date +"/drive:v2/drive.files.patch/timedTextLanguage": timed_text_language +"/drive:v2/drive.files.patch/timedTextTrackName": timed_text_track_name +"/drive:v2/drive.files.patch/updateViewedDate": update_viewed_date +"/drive:v2/drive.files.patch/useContentAsIndexableText": use_content_as_indexable_text +"/drive:v2/drive.files.touch": touch_file +"/drive:v2/drive.files.touch/fileId": file_id +"/drive:v2/drive.files.trash": trash_file +"/drive:v2/drive.files.trash/fileId": file_id +"/drive:v2/drive.files.untrash": untrash_file +"/drive:v2/drive.files.untrash/fileId": file_id +"/drive:v2/drive.files.update": update_file +"/drive:v2/drive.files.update/addParents": add_parents +"/drive:v2/drive.files.update/convert": convert +"/drive:v2/drive.files.update/fileId": file_id +"/drive:v2/drive.files.update/newRevision": new_revision +"/drive:v2/drive.files.update/ocr": ocr +"/drive:v2/drive.files.update/ocrLanguage": ocr_language +"/drive:v2/drive.files.update/pinned": pinned +"/drive:v2/drive.files.update/removeParents": remove_parents +"/drive:v2/drive.files.update/setModifiedDate": set_modified_date +"/drive:v2/drive.files.update/timedTextLanguage": timed_text_language +"/drive:v2/drive.files.update/timedTextTrackName": timed_text_track_name +"/drive:v2/drive.files.update/updateViewedDate": update_viewed_date +"/drive:v2/drive.files.update/useContentAsIndexableText": use_content_as_indexable_text +"/drive:v2/drive.files.watch": watch_file +"/drive:v2/drive.files.watch/acknowledgeAbuse": acknowledge_abuse +"/drive:v2/drive.files.watch/fileId": file_id +"/drive:v2/drive.files.watch/projection": projection +"/drive:v2/drive.files.watch/revisionId": revision_id +"/drive:v2/drive.files.watch/updateViewedDate": update_viewed_date +"/drive:v2/drive.parents.delete": delete_parent +"/drive:v2/drive.parents.delete/fileId": file_id +"/drive:v2/drive.parents.delete/parentId": parent_id +"/drive:v2/drive.parents.get": get_parent +"/drive:v2/drive.parents.get/fileId": file_id +"/drive:v2/drive.parents.get/parentId": parent_id +"/drive:v2/drive.parents.insert": insert_parent +"/drive:v2/drive.parents.insert/fileId": file_id +"/drive:v2/drive.parents.list": list_parents +"/drive:v2/drive.parents.list/fileId": file_id +"/drive:v2/drive.permissions.delete": delete_permission +"/drive:v2/drive.permissions.delete/fileId": file_id +"/drive:v2/drive.permissions.delete/permissionId": permission_id +"/drive:v2/drive.permissions.get": get_permission +"/drive:v2/drive.permissions.get/fileId": file_id +"/drive:v2/drive.permissions.get/permissionId": permission_id +"/drive:v2/drive.permissions.getIdForEmail/email": email +"/drive:v2/drive.permissions.insert": insert_permission +"/drive:v2/drive.permissions.insert/emailMessage": email_message +"/drive:v2/drive.permissions.insert/fileId": file_id +"/drive:v2/drive.permissions.insert/sendNotificationEmails": send_notification_emails +"/drive:v2/drive.permissions.list": list_permissions +"/drive:v2/drive.permissions.list/fileId": file_id +"/drive:v2/drive.permissions.patch": patch_permission +"/drive:v2/drive.permissions.patch/fileId": file_id +"/drive:v2/drive.permissions.patch/permissionId": permission_id +"/drive:v2/drive.permissions.patch/transferOwnership": transfer_ownership +"/drive:v2/drive.permissions.update": update_permission +"/drive:v2/drive.permissions.update/fileId": file_id +"/drive:v2/drive.permissions.update/permissionId": permission_id +"/drive:v2/drive.permissions.update/transferOwnership": transfer_ownership +"/drive:v2/drive.properties.delete": delete_property +"/drive:v2/drive.properties.delete/fileId": file_id +"/drive:v2/drive.properties.delete/propertyKey": property_key +"/drive:v2/drive.properties.delete/visibility": visibility +"/drive:v2/drive.properties.get": get_property +"/drive:v2/drive.properties.get/fileId": file_id +"/drive:v2/drive.properties.get/propertyKey": property_key +"/drive:v2/drive.properties.get/visibility": visibility +"/drive:v2/drive.properties.insert": insert_property +"/drive:v2/drive.properties.insert/fileId": file_id +"/drive:v2/drive.properties.list": list_properties +"/drive:v2/drive.properties.list/fileId": file_id +"/drive:v2/drive.properties.patch": patch_property +"/drive:v2/drive.properties.patch/fileId": file_id +"/drive:v2/drive.properties.patch/propertyKey": property_key +"/drive:v2/drive.properties.patch/visibility": visibility +"/drive:v2/drive.properties.update": update_property +"/drive:v2/drive.properties.update/fileId": file_id +"/drive:v2/drive.properties.update/propertyKey": property_key +"/drive:v2/drive.properties.update/visibility": visibility +"/drive:v2/drive.realtime.get": get_realtime +"/drive:v2/drive.realtime.get/fileId": file_id +"/drive:v2/drive.realtime.get/revision": revision +"/drive:v2/drive.realtime.update": update_realtime +"/drive:v2/drive.realtime.update/baseRevision": base_revision +"/drive:v2/drive.realtime.update/fileId": file_id +"/drive:v2/drive.replies.delete": delete_reply +"/drive:v2/drive.replies.delete/commentId": comment_id +"/drive:v2/drive.replies.delete/fileId": file_id +"/drive:v2/drive.replies.delete/replyId": reply_id +"/drive:v2/drive.replies.get": get_reply +"/drive:v2/drive.replies.get/commentId": comment_id +"/drive:v2/drive.replies.get/fileId": file_id +"/drive:v2/drive.replies.get/includeDeleted": include_deleted +"/drive:v2/drive.replies.get/replyId": reply_id +"/drive:v2/drive.replies.insert": insert_reply +"/drive:v2/drive.replies.insert/commentId": comment_id +"/drive:v2/drive.replies.insert/fileId": file_id +"/drive:v2/drive.replies.list": list_replies +"/drive:v2/drive.replies.list/commentId": comment_id +"/drive:v2/drive.replies.list/fileId": file_id +"/drive:v2/drive.replies.list/includeDeleted": include_deleted +"/drive:v2/drive.replies.list/maxResults": max_results +"/drive:v2/drive.replies.list/pageToken": page_token +"/drive:v2/drive.replies.patch": patch_reply +"/drive:v2/drive.replies.patch/commentId": comment_id +"/drive:v2/drive.replies.patch/fileId": file_id +"/drive:v2/drive.replies.patch/replyId": reply_id +"/drive:v2/drive.replies.update": update_reply +"/drive:v2/drive.replies.update/commentId": comment_id +"/drive:v2/drive.replies.update/fileId": file_id +"/drive:v2/drive.replies.update/replyId": reply_id +"/drive:v2/drive.revisions.delete": delete_revision +"/drive:v2/drive.revisions.delete/fileId": file_id +"/drive:v2/drive.revisions.delete/revisionId": revision_id +"/drive:v2/drive.revisions.get": get_revision +"/drive:v2/drive.revisions.get/fileId": file_id +"/drive:v2/drive.revisions.get/revisionId": revision_id +"/drive:v2/drive.revisions.list": list_revisions +"/drive:v2/drive.revisions.list/fileId": file_id +"/drive:v2/drive.revisions.patch": patch_revision +"/drive:v2/drive.revisions.patch/fileId": file_id +"/drive:v2/drive.revisions.patch/revisionId": revision_id +"/drive:v2/drive.revisions.update": update_revision +"/drive:v2/drive.revisions.update/fileId": file_id +"/drive:v2/drive.revisions.update/revisionId": revision_id +"/drive:v2/About": about +"/drive:v2/About/additionalRoleInfo": additional_role_info +"/drive:v2/About/additionalRoleInfo/additional_role_info": additional_role_info +"/drive:v2/About/additionalRoleInfo/additional_role_info/roleSets": role_sets +"/drive:v2/About/additionalRoleInfo/additional_role_info/roleSets/role_set": role_set +"/drive:v2/About/additionalRoleInfo/additional_role_info/roleSets/role_set/additionalRoles": additional_roles +"/drive:v2/About/additionalRoleInfo/additional_role_info/roleSets/role_set/additionalRoles/additional_role": additional_role +"/drive:v2/About/additionalRoleInfo/additional_role_info/roleSets/role_set/primaryRole": primary_role +"/drive:v2/About/additionalRoleInfo/additional_role_info/type": type +"/drive:v2/About/domainSharingPolicy": domain_sharing_policy +"/drive:v2/About/etag": etag +"/drive:v2/About/exportFormats": export_formats +"/drive:v2/About/exportFormats/export_format": export_format +"/drive:v2/About/exportFormats/export_format/source": source +"/drive:v2/About/exportFormats/export_format/targets": targets +"/drive:v2/About/exportFormats/export_format/targets/target": target +"/drive:v2/About/features": features +"/drive:v2/About/features/feature": feature +"/drive:v2/About/features/feature/featureName": feature_name +"/drive:v2/About/features/feature/featureRate": feature_rate +"/drive:v2/About/folderColorPalette": folder_color_palette +"/drive:v2/About/folderColorPalette/folder_color_palette": folder_color_palette +"/drive:v2/About/importFormats": import_formats +"/drive:v2/About/importFormats/import_format": import_format +"/drive:v2/About/importFormats/import_format/source": source +"/drive:v2/About/importFormats/import_format/targets": targets +"/drive:v2/About/importFormats/import_format/targets/target": target +"/drive:v2/About/isCurrentAppInstalled": is_current_app_installed +"/drive:v2/About/kind": kind +"/drive:v2/About/languageCode": language_code +"/drive:v2/About/largestChangeId": largest_change_id +"/drive:v2/About/maxUploadSizes": max_upload_sizes +"/drive:v2/About/maxUploadSizes/max_upload_size": max_upload_size +"/drive:v2/About/maxUploadSizes/max_upload_size/size": size +"/drive:v2/About/maxUploadSizes/max_upload_size/type": type +"/drive:v2/About/name": name +"/drive:v2/About/permissionId": permission_id +"/drive:v2/About/quotaBytesByService": quota_bytes_by_service +"/drive:v2/About/quotaBytesByService/quota_bytes_by_service": quota_bytes_by_service +"/drive:v2/About/quotaBytesByService/quota_bytes_by_service/bytesUsed": bytes_used +"/drive:v2/About/quotaBytesByService/quota_bytes_by_service/serviceName": service_name +"/drive:v2/About/quotaBytesTotal": quota_bytes_total +"/drive:v2/About/quotaBytesUsed": quota_bytes_used +"/drive:v2/About/quotaBytesUsedAggregate": quota_bytes_used_aggregate +"/drive:v2/About/quotaBytesUsedInTrash": quota_bytes_used_in_trash +"/drive:v2/About/quotaType": quota_type +"/drive:v2/About/remainingChangeIds": remaining_change_ids +"/drive:v2/About/rootFolderId": root_folder_id +"/drive:v2/About/selfLink": self_link +"/drive:v2/About/user": user +"/drive:v2/App": app +"/drive:v2/App/authorized": authorized +"/drive:v2/App/createInFolderTemplate": create_in_folder_template +"/drive:v2/App/createUrl": create_url +"/drive:v2/App/hasDriveWideScope": has_drive_wide_scope +"/drive:v2/App/icons": icons +"/drive:v2/App/icons/icon": icon +"/drive:v2/App/icons/icon/category": category +"/drive:v2/App/icons/icon/iconUrl": icon_url +"/drive:v2/App/icons/icon/size": size +"/drive:v2/App/id": id +"/drive:v2/App/installed": installed +"/drive:v2/App/kind": kind +"/drive:v2/App/longDescription": long_description +"/drive:v2/App/name": name +"/drive:v2/App/objectType": object_type +"/drive:v2/App/openUrlTemplate": open_url_template +"/drive:v2/App/primaryFileExtensions": primary_file_extensions +"/drive:v2/App/primaryFileExtensions/primary_file_extension": primary_file_extension +"/drive:v2/App/primaryMimeTypes": primary_mime_types +"/drive:v2/App/primaryMimeTypes/primary_mime_type": primary_mime_type +"/drive:v2/App/productId": product_id +"/drive:v2/App/productUrl": product_url +"/drive:v2/App/secondaryFileExtensions": secondary_file_extensions +"/drive:v2/App/secondaryFileExtensions/secondary_file_extension": secondary_file_extension +"/drive:v2/App/secondaryMimeTypes": secondary_mime_types +"/drive:v2/App/secondaryMimeTypes/secondary_mime_type": secondary_mime_type +"/drive:v2/App/shortDescription": short_description +"/drive:v2/App/supportsCreate": supports_create +"/drive:v2/App/supportsImport": supports_import +"/drive:v2/App/supportsMultiOpen": supports_multi_open +"/drive:v2/App/supportsOfflineCreate": supports_offline_create +"/drive:v2/App/useByDefault": use_by_default +"/drive:v2/AppList": app_list +"/drive:v2/AppList/defaultAppIds": default_app_ids +"/drive:v2/AppList/defaultAppIds/default_app_id": default_app_id +"/drive:v2/AppList/etag": etag +"/drive:v2/AppList/items": items +"/drive:v2/AppList/items/item": item +"/drive:v2/AppList/kind": kind +"/drive:v2/AppList/selfLink": self_link +"/drive:v2/Change": change +"/drive:v2/Change/deleted": deleted +"/drive:v2/Change/file": file +"/drive:v2/Change/fileId": file_id +"/drive:v2/Change/id": id +"/drive:v2/Change/kind": kind +"/drive:v2/Change/modificationDate": modification_date +"/drive:v2/Change/selfLink": self_link +"/drive:v2/ChangeList": change_list +"/drive:v2/ChangeList/etag": etag +"/drive:v2/ChangeList/items": items +"/drive:v2/ChangeList/items/item": item +"/drive:v2/ChangeList/kind": kind +"/drive:v2/ChangeList/largestChangeId": largest_change_id +"/drive:v2/ChangeList/nextLink": next_link +"/drive:v2/ChangeList/nextPageToken": next_page_token +"/drive:v2/ChangeList/selfLink": self_link +"/drive:v2/Channel": channel +"/drive:v2/Channel/address": address +"/drive:v2/Channel/expiration": expiration +"/drive:v2/Channel/id": id +"/drive:v2/Channel/kind": kind +"/drive:v2/Channel/params": params +"/drive:v2/Channel/params/param": param +"/drive:v2/Channel/payload": payload +"/drive:v2/Channel/resourceId": resource_id +"/drive:v2/Channel/resourceUri": resource_uri +"/drive:v2/Channel/token": token +"/drive:v2/Channel/type": type +"/drive:v2/ChildList": child_list +"/drive:v2/ChildList/etag": etag +"/drive:v2/ChildList/items": items +"/drive:v2/ChildList/items/item": item +"/drive:v2/ChildList/kind": kind +"/drive:v2/ChildList/nextLink": next_link +"/drive:v2/ChildList/nextPageToken": next_page_token +"/drive:v2/ChildList/selfLink": self_link +"/drive:v2/ChildReference": child_reference +"/drive:v2/ChildReference/childLink": child_link +"/drive:v2/ChildReference/id": id +"/drive:v2/ChildReference/kind": kind +"/drive:v2/ChildReference/selfLink": self_link +"/drive:v2/Comment": comment +"/drive:v2/Comment/anchor": anchor +"/drive:v2/Comment/author": author +"/drive:v2/Comment/commentId": comment_id +"/drive:v2/Comment/content": content +"/drive:v2/Comment/context": context +"/drive:v2/Comment/context/type": type +"/drive:v2/Comment/context/value": value +"/drive:v2/Comment/createdDate": created_date +"/drive:v2/Comment/deleted": deleted +"/drive:v2/Comment/fileId": file_id +"/drive:v2/Comment/fileTitle": file_title +"/drive:v2/Comment/htmlContent": html_content +"/drive:v2/Comment/kind": kind +"/drive:v2/Comment/modifiedDate": modified_date +"/drive:v2/Comment/replies": replies +"/drive:v2/Comment/replies/reply": reply +"/drive:v2/Comment/selfLink": self_link +"/drive:v2/Comment/status": status +"/drive:v2/CommentList": comment_list +"/drive:v2/CommentList/items": items +"/drive:v2/CommentList/items/item": item +"/drive:v2/CommentList/kind": kind +"/drive:v2/CommentList/nextLink": next_link +"/drive:v2/CommentList/nextPageToken": next_page_token +"/drive:v2/CommentList/selfLink": self_link +"/drive:v2/CommentReply": comment_reply +"/drive:v2/CommentReply/author": author +"/drive:v2/CommentReply/content": content +"/drive:v2/CommentReply/createdDate": created_date +"/drive:v2/CommentReply/deleted": deleted +"/drive:v2/CommentReply/htmlContent": html_content +"/drive:v2/CommentReply/kind": kind +"/drive:v2/CommentReply/modifiedDate": modified_date +"/drive:v2/CommentReply/replyId": reply_id +"/drive:v2/CommentReply/verb": verb +"/drive:v2/CommentReplyList": comment_reply_list +"/drive:v2/CommentReplyList/items": items +"/drive:v2/CommentReplyList/items/item": item +"/drive:v2/CommentReplyList/kind": kind +"/drive:v2/CommentReplyList/nextLink": next_link +"/drive:v2/CommentReplyList/nextPageToken": next_page_token +"/drive:v2/CommentReplyList/selfLink": self_link +"/drive:v2/File": file +"/drive:v2/File/alternateLink": alternate_link +"/drive:v2/File/appDataContents": app_data_contents +"/drive:v2/File/copyable": copyable +"/drive:v2/File/createdDate": created_date +"/drive:v2/File/defaultOpenWithLink": default_open_with_link +"/drive:v2/File/description": description +"/drive:v2/File/downloadUrl": download_url +"/drive:v2/File/editable": editable +"/drive:v2/File/embedLink": embed_link +"/drive:v2/File/etag": etag +"/drive:v2/File/explicitlyTrashed": explicitly_trashed +"/drive:v2/File/exportLinks": export_links +"/drive:v2/File/exportLinks/export_link": export_link +"/drive:v2/File/fileExtension": file_extension +"/drive:v2/File/fileSize": file_size +"/drive:v2/File/folderColorRgb": folder_color_rgb +"/drive:v2/File/headRevisionId": head_revision_id +"/drive:v2/File/iconLink": icon_link +"/drive:v2/File/id": id +"/drive:v2/File/imageMediaMetadata": image_media_metadata +"/drive:v2/File/imageMediaMetadata/aperture": aperture +"/drive:v2/File/imageMediaMetadata/cameraMake": camera_make +"/drive:v2/File/imageMediaMetadata/cameraModel": camera_model +"/drive:v2/File/imageMediaMetadata/colorSpace": color_space +"/drive:v2/File/imageMediaMetadata/date": date +"/drive:v2/File/imageMediaMetadata/exposureBias": exposure_bias +"/drive:v2/File/imageMediaMetadata/exposureMode": exposure_mode +"/drive:v2/File/imageMediaMetadata/exposureTime": exposure_time +"/drive:v2/File/imageMediaMetadata/flashUsed": flash_used +"/drive:v2/File/imageMediaMetadata/focalLength": focal_length +"/drive:v2/File/imageMediaMetadata/height": height +"/drive:v2/File/imageMediaMetadata/isoSpeed": iso_speed +"/drive:v2/File/imageMediaMetadata/lens": lens +"/drive:v2/File/imageMediaMetadata/location": location +"/drive:v2/File/imageMediaMetadata/location/altitude": altitude +"/drive:v2/File/imageMediaMetadata/location/latitude": latitude +"/drive:v2/File/imageMediaMetadata/location/longitude": longitude +"/drive:v2/File/imageMediaMetadata/maxApertureValue": max_aperture_value +"/drive:v2/File/imageMediaMetadata/meteringMode": metering_mode +"/drive:v2/File/imageMediaMetadata/rotation": rotation +"/drive:v2/File/imageMediaMetadata/sensor": sensor +"/drive:v2/File/imageMediaMetadata/subjectDistance": subject_distance +"/drive:v2/File/imageMediaMetadata/whiteBalance": white_balance +"/drive:v2/File/imageMediaMetadata/width": width +"/drive:v2/File/indexableText": indexable_text +"/drive:v2/File/indexableText/text": text +"/drive:v2/File/kind": kind +"/drive:v2/File/labels": labels +"/drive:v2/File/labels/hidden": hidden +"/drive:v2/File/labels/restricted": restricted +"/drive:v2/File/labels/starred": starred +"/drive:v2/File/labels/trashed": trashed +"/drive:v2/File/labels/viewed": viewed +"/drive:v2/File/lastModifyingUser": last_modifying_user +"/drive:v2/File/lastModifyingUserName": last_modifying_user_name +"/drive:v2/File/lastViewedByMeDate": last_viewed_by_me_date +"/drive:v2/File/markedViewedByMeDate": marked_viewed_by_me_date +"/drive:v2/File/md5Checksum": md5_checksum +"/drive:v2/File/mimeType": mime_type +"/drive:v2/File/modifiedByMeDate": modified_by_me_date +"/drive:v2/File/modifiedDate": modified_date +"/drive:v2/File/openWithLinks": open_with_links +"/drive:v2/File/openWithLinks/open_with_link": open_with_link +"/drive:v2/File/originalFilename": original_filename +"/drive:v2/File/ownerNames": owner_names +"/drive:v2/File/ownerNames/owner_name": owner_name +"/drive:v2/File/owners": owners +"/drive:v2/File/owners/owner": owner +"/drive:v2/File/parents": parents +"/drive:v2/File/parents/parent": parent +"/drive:v2/File/permissions": permissions +"/drive:v2/File/permissions/permission": permission +"/drive:v2/File/properties": properties +"/drive:v2/File/properties/property": property +"/drive:v2/File/quotaBytesUsed": quota_bytes_used +"/drive:v2/File/selfLink": self_link +"/drive:v2/File/shared": shared +"/drive:v2/File/sharedWithMeDate": shared_with_me_date +"/drive:v2/File/sharingUser": sharing_user +"/drive:v2/File/spaces": spaces +"/drive:v2/File/spaces/space": space +"/drive:v2/File/thumbnail": thumbnail +"/drive:v2/File/thumbnail/image": image +"/drive:v2/File/thumbnail/mimeType": mime_type +"/drive:v2/File/thumbnailLink": thumbnail_link +"/drive:v2/File/title": title +"/drive:v2/File/userPermission": user_permission +"/drive:v2/File/version": version +"/drive:v2/File/videoMediaMetadata": video_media_metadata +"/drive:v2/File/videoMediaMetadata/durationMillis": duration_millis +"/drive:v2/File/videoMediaMetadata/height": height +"/drive:v2/File/videoMediaMetadata/width": width +"/drive:v2/File/webContentLink": web_content_link +"/drive:v2/File/webViewLink": web_view_link +"/drive:v2/File/writersCanShare": writers_can_share +"/drive:v2/FileList": file_list +"/drive:v2/FileList/etag": etag +"/drive:v2/FileList/items": items +"/drive:v2/FileList/items/item": item +"/drive:v2/FileList/kind": kind +"/drive:v2/FileList/nextLink": next_link +"/drive:v2/FileList/nextPageToken": next_page_token +"/drive:v2/FileList/selfLink": self_link +"/drive:v2/ParentList": parent_list +"/drive:v2/ParentList/etag": etag +"/drive:v2/ParentList/items": items +"/drive:v2/ParentList/items/item": item +"/drive:v2/ParentList/kind": kind +"/drive:v2/ParentList/selfLink": self_link +"/drive:v2/ParentReference": parent_reference +"/drive:v2/ParentReference/id": id +"/drive:v2/ParentReference/isRoot": is_root +"/drive:v2/ParentReference/kind": kind +"/drive:v2/ParentReference/parentLink": parent_link +"/drive:v2/ParentReference/selfLink": self_link +"/drive:v2/Permission": permission +"/drive:v2/Permission/additionalRoles": additional_roles +"/drive:v2/Permission/additionalRoles/additional_role": additional_role +"/drive:v2/Permission/authKey": auth_key +"/drive:v2/Permission/domain": domain +"/drive:v2/Permission/emailAddress": email_address +"/drive:v2/Permission/etag": etag +"/drive:v2/Permission/id": id +"/drive:v2/Permission/kind": kind +"/drive:v2/Permission/name": name +"/drive:v2/Permission/photoLink": photo_link +"/drive:v2/Permission/role": role +"/drive:v2/Permission/selfLink": self_link +"/drive:v2/Permission/type": type +"/drive:v2/Permission/value": value +"/drive:v2/Permission/withLink": with_link +"/drive:v2/PermissionId": permission_id +"/drive:v2/PermissionId/id": id +"/drive:v2/PermissionId/kind": kind +"/drive:v2/PermissionList": permission_list +"/drive:v2/PermissionList/etag": etag +"/drive:v2/PermissionList/items": items +"/drive:v2/PermissionList/items/item": item +"/drive:v2/PermissionList/kind": kind +"/drive:v2/PermissionList/selfLink": self_link +"/drive:v2/Property": property +"/drive:v2/Property/etag": etag +"/drive:v2/Property/key": key +"/drive:v2/Property/kind": kind +"/drive:v2/Property/selfLink": self_link +"/drive:v2/Property/value": value +"/drive:v2/Property/visibility": visibility +"/drive:v2/PropertyList": property_list +"/drive:v2/PropertyList/etag": etag +"/drive:v2/PropertyList/items": items +"/drive:v2/PropertyList/items/item": item +"/drive:v2/PropertyList/kind": kind +"/drive:v2/PropertyList/selfLink": self_link +"/drive:v2/Revision": revision +"/drive:v2/Revision/downloadUrl": download_url +"/drive:v2/Revision/etag": etag +"/drive:v2/Revision/exportLinks": export_links +"/drive:v2/Revision/exportLinks/export_link": export_link +"/drive:v2/Revision/fileSize": file_size +"/drive:v2/Revision/id": id +"/drive:v2/Revision/kind": kind +"/drive:v2/Revision/lastModifyingUser": last_modifying_user +"/drive:v2/Revision/lastModifyingUserName": last_modifying_user_name +"/drive:v2/Revision/md5Checksum": md5_checksum +"/drive:v2/Revision/mimeType": mime_type +"/drive:v2/Revision/modifiedDate": modified_date +"/drive:v2/Revision/originalFilename": original_filename +"/drive:v2/Revision/pinned": pinned +"/drive:v2/Revision/publishAuto": publish_auto +"/drive:v2/Revision/published": published +"/drive:v2/Revision/publishedLink": published_link +"/drive:v2/Revision/publishedOutsideDomain": published_outside_domain +"/drive:v2/Revision/selfLink": self_link +"/drive:v2/RevisionList": revision_list +"/drive:v2/RevisionList/etag": etag +"/drive:v2/RevisionList/items": items +"/drive:v2/RevisionList/items/item": item +"/drive:v2/RevisionList/kind": kind +"/drive:v2/RevisionList/selfLink": self_link +"/drive:v2/User": user +"/drive:v2/User/displayName": display_name +"/drive:v2/User/emailAddress": email_address +"/drive:v2/User/isAuthenticatedUser": is_authenticated_user +"/drive:v2/User/kind": kind +"/drive:v2/User/permissionId": permission_id +"/drive:v2/User/picture": picture +"/drive:v2/User/picture/url": url +"/fitness:v1/fields": fields +"/fitness:v1/key": key +"/fitness:v1/quotaUser": quota_user +"/fitness:v1/userIp": user_ip +"/fitness:v1/fitness.users.dataSources.create": create_user_data_source +"/fitness:v1/fitness.users.dataSources.create/userId": user_id +"/fitness:v1/fitness.users.dataSources.delete": delete_user_data_source +"/fitness:v1/fitness.users.dataSources.delete/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.delete/userId": user_id +"/fitness:v1/fitness.users.dataSources.get": get_user_data_source +"/fitness:v1/fitness.users.dataSources.get/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.get/userId": user_id +"/fitness:v1/fitness.users.dataSources.list": list_user_data_sources +"/fitness:v1/fitness.users.dataSources.list/dataTypeName": data_type_name +"/fitness:v1/fitness.users.dataSources.list/userId": user_id +"/fitness:v1/fitness.users.dataSources.patch": patch_user_data_source +"/fitness:v1/fitness.users.dataSources.patch/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.patch/userId": user_id +"/fitness:v1/fitness.users.dataSources.update": update_user_data_source +"/fitness:v1/fitness.users.dataSources.update/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.update/userId": user_id +"/fitness:v1/fitness.users.dataSources.datasets.delete": delete_user_data_source_dataset +"/fitness:v1/fitness.users.dataSources.datasets.delete/currentTimeMillis": current_time_millis +"/fitness:v1/fitness.users.dataSources.datasets.delete/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.datasets.delete/datasetId": dataset_id +"/fitness:v1/fitness.users.dataSources.datasets.delete/modifiedTimeMillis": modified_time_millis +"/fitness:v1/fitness.users.dataSources.datasets.delete/userId": user_id +"/fitness:v1/fitness.users.dataSources.datasets.get": get_user_data_source_dataset +"/fitness:v1/fitness.users.dataSources.datasets.get/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.datasets.get/datasetId": dataset_id +"/fitness:v1/fitness.users.dataSources.datasets.get/limit": limit +"/fitness:v1/fitness.users.dataSources.datasets.get/pageToken": page_token +"/fitness:v1/fitness.users.dataSources.datasets.get/userId": user_id +"/fitness:v1/fitness.users.dataSources.datasets.patch": patch_user_data_source_dataset +"/fitness:v1/fitness.users.dataSources.datasets.patch/currentTimeMillis": current_time_millis +"/fitness:v1/fitness.users.dataSources.datasets.patch/dataSourceId": data_source_id +"/fitness:v1/fitness.users.dataSources.datasets.patch/datasetId": dataset_id +"/fitness:v1/fitness.users.dataSources.datasets.patch/userId": user_id +"/fitness:v1/fitness.users.dataset.aggregate": aggregate +"/fitness:v1/fitness.users.dataset.aggregate/userId": user_id +"/fitness:v1/fitness.users.sessions.delete": delete_user_session +"/fitness:v1/fitness.users.sessions.delete/currentTimeMillis": current_time_millis +"/fitness:v1/fitness.users.sessions.delete/sessionId": session_id +"/fitness:v1/fitness.users.sessions.delete/userId": user_id +"/fitness:v1/fitness.users.sessions.list": list_user_sessions +"/fitness:v1/fitness.users.sessions.list/endTime": end_time +"/fitness:v1/fitness.users.sessions.list/includeDeleted": include_deleted +"/fitness:v1/fitness.users.sessions.list/pageToken": page_token +"/fitness:v1/fitness.users.sessions.list/startTime": start_time +"/fitness:v1/fitness.users.sessions.list/userId": user_id +"/fitness:v1/fitness.users.sessions.update": update_user_session +"/fitness:v1/fitness.users.sessions.update/currentTimeMillis": current_time_millis +"/fitness:v1/fitness.users.sessions.update/sessionId": session_id +"/fitness:v1/fitness.users.sessions.update/userId": user_id +"/fitness:v1/AggregateBucket": aggregate_bucket +"/fitness:v1/AggregateBucket/activity": activity +"/fitness:v1/AggregateBucket/dataset": dataset +"/fitness:v1/AggregateBucket/dataset/dataset": dataset +"/fitness:v1/AggregateBucket/endTimeMillis": end_time_millis +"/fitness:v1/AggregateBucket/session": session +"/fitness:v1/AggregateBucket/startTimeMillis": start_time_millis +"/fitness:v1/AggregateBucket/type": type +"/fitness:v1/AggregateBy": aggregate_by +"/fitness:v1/AggregateBy/dataSourceId": data_source_id +"/fitness:v1/AggregateBy/dataTypeName": data_type_name +"/fitness:v1/AggregateBy/outputDataSourceId": output_data_source_id +"/fitness:v1/AggregateBy/outputDataTypeName": output_data_type_name +"/fitness:v1/AggregateRequest": aggregate_request +"/fitness:v1/AggregateRequest/aggregateBy": aggregate_by +"/fitness:v1/AggregateRequest/aggregateBy/aggregate_by": aggregate_by +"/fitness:v1/AggregateRequest/bucketByActivitySegment": bucket_by_activity_segment +"/fitness:v1/AggregateRequest/bucketByActivityType": bucket_by_activity_type +"/fitness:v1/AggregateRequest/bucketBySession": bucket_by_session +"/fitness:v1/AggregateRequest/bucketByTime": bucket_by_time +"/fitness:v1/AggregateRequest/endTimeMillis": end_time_millis +"/fitness:v1/AggregateRequest/startTimeMillis": start_time_millis +"/fitness:v1/AggregateResponse": aggregate_response +"/fitness:v1/AggregateResponse/bucket": bucket +"/fitness:v1/AggregateResponse/bucket/bucket": bucket +"/fitness:v1/Application": application +"/fitness:v1/Application/detailsUrl": details_url +"/fitness:v1/Application/name": name +"/fitness:v1/Application/packageName": package_name +"/fitness:v1/Application/version": version +"/fitness:v1/BucketByActivity": bucket_by_activity +"/fitness:v1/BucketByActivity/activityDataSourceId": activity_data_source_id +"/fitness:v1/BucketByActivity/minDurationMillis": min_duration_millis +"/fitness:v1/BucketBySession": bucket_by_session +"/fitness:v1/BucketBySession/minDurationMillis": min_duration_millis +"/fitness:v1/BucketByTime": bucket_by_time +"/fitness:v1/BucketByTime/durationMillis": duration_millis +"/fitness:v1/DataPoint": data_point +"/fitness:v1/DataPoint/computationTimeMillis": computation_time_millis +"/fitness:v1/DataPoint/dataTypeName": data_type_name +"/fitness:v1/DataPoint/endTimeNanos": end_time_nanos +"/fitness:v1/DataPoint/modifiedTimeMillis": modified_time_millis +"/fitness:v1/DataPoint/originDataSourceId": origin_data_source_id +"/fitness:v1/DataPoint/rawTimestampNanos": raw_timestamp_nanos +"/fitness:v1/DataPoint/startTimeNanos": start_time_nanos +"/fitness:v1/DataPoint/value": value +"/fitness:v1/DataPoint/value/value": value +"/fitness:v1/DataSource": data_source +"/fitness:v1/DataSource/application": application +"/fitness:v1/DataSource/dataStreamId": data_stream_id +"/fitness:v1/DataSource/dataStreamName": data_stream_name +"/fitness:v1/DataSource/dataType": data_type +"/fitness:v1/DataSource/device": device +"/fitness:v1/DataSource/name": name +"/fitness:v1/DataSource/type": type +"/fitness:v1/DataType": data_type +"/fitness:v1/DataType/field": field +"/fitness:v1/DataType/field/field": field +"/fitness:v1/DataType/name": name +"/fitness:v1/DataTypeField": data_type_field +"/fitness:v1/DataTypeField/format": format +"/fitness:v1/DataTypeField/name": name +"/fitness:v1/DataTypeField/optional": optional +"/fitness:v1/Dataset": dataset +"/fitness:v1/Dataset/dataSourceId": data_source_id +"/fitness:v1/Dataset/maxEndTimeNs": max_end_time_ns +"/fitness:v1/Dataset/minStartTimeNs": min_start_time_ns +"/fitness:v1/Dataset/nextPageToken": next_page_token +"/fitness:v1/Dataset/point": point +"/fitness:v1/Dataset/point/point": point +"/fitness:v1/Device": device +"/fitness:v1/Device/manufacturer": manufacturer +"/fitness:v1/Device/model": model +"/fitness:v1/Device/type": type +"/fitness:v1/Device/uid": uid +"/fitness:v1/Device/version": version +"/fitness:v1/ListDataSourcesResponse": list_data_sources_response +"/fitness:v1/ListDataSourcesResponse/dataSource": data_source +"/fitness:v1/ListDataSourcesResponse/dataSource/data_source": data_source +"/fitness:v1/ListSessionsResponse": list_sessions_response +"/fitness:v1/ListSessionsResponse/deletedSession": deleted_session +"/fitness:v1/ListSessionsResponse/deletedSession/deleted_session": deleted_session +"/fitness:v1/ListSessionsResponse/nextPageToken": next_page_token +"/fitness:v1/ListSessionsResponse/session": session +"/fitness:v1/ListSessionsResponse/session/session": session +"/fitness:v1/Session": session +"/fitness:v1/Session/activeTimeMillis": active_time_millis +"/fitness:v1/Session/activityType": activity_type +"/fitness:v1/Session/application": application +"/fitness:v1/Session/description": description +"/fitness:v1/Session/endTimeMillis": end_time_millis +"/fitness:v1/Session/id": id +"/fitness:v1/Session/modifiedTimeMillis": modified_time_millis +"/fitness:v1/Session/name": name +"/fitness:v1/Session/startTimeMillis": start_time_millis +"/fitness:v1/Value": value +"/fitness:v1/Value/fpVal": fp_val +"/fitness:v1/Value/intVal": int_val +"/fusiontables:v2/fields": fields +"/fusiontables:v2/key": key +"/fusiontables:v2/quotaUser": quota_user +"/fusiontables:v2/userIp": user_ip +"/fusiontables:v2/fusiontables.column.delete": delete_column +"/fusiontables:v2/fusiontables.column.delete/columnId": column_id +"/fusiontables:v2/fusiontables.column.delete/tableId": table_id +"/fusiontables:v2/fusiontables.column.get": get_column +"/fusiontables:v2/fusiontables.column.get/columnId": column_id +"/fusiontables:v2/fusiontables.column.get/tableId": table_id +"/fusiontables:v2/fusiontables.column.insert": insert_column +"/fusiontables:v2/fusiontables.column.insert/tableId": table_id +"/fusiontables:v2/fusiontables.column.list": list_columns +"/fusiontables:v2/fusiontables.column.list/maxResults": max_results +"/fusiontables:v2/fusiontables.column.list/pageToken": page_token +"/fusiontables:v2/fusiontables.column.list/tableId": table_id +"/fusiontables:v2/fusiontables.column.patch": patch_column +"/fusiontables:v2/fusiontables.column.patch/columnId": column_id +"/fusiontables:v2/fusiontables.column.patch/tableId": table_id +"/fusiontables:v2/fusiontables.column.update": update_column +"/fusiontables:v2/fusiontables.column.update/columnId": column_id +"/fusiontables:v2/fusiontables.column.update/tableId": table_id +"/fusiontables:v2/fusiontables.query.sql": sql_query +"/fusiontables:v2/fusiontables.query.sql/hdrs": hdrs +"/fusiontables:v2/fusiontables.query.sql/sql": sql +"/fusiontables:v2/fusiontables.query.sql/typed": typed +"/fusiontables:v2/fusiontables.query.sqlGet": sql_get_query +"/fusiontables:v2/fusiontables.query.sqlGet/hdrs": hdrs +"/fusiontables:v2/fusiontables.query.sqlGet/sql": sql +"/fusiontables:v2/fusiontables.query.sqlGet/typed": typed +"/fusiontables:v2/fusiontables.style.delete": delete_style +"/fusiontables:v2/fusiontables.style.delete/styleId": style_id +"/fusiontables:v2/fusiontables.style.delete/tableId": table_id +"/fusiontables:v2/fusiontables.style.get": get_style +"/fusiontables:v2/fusiontables.style.get/styleId": style_id +"/fusiontables:v2/fusiontables.style.get/tableId": table_id +"/fusiontables:v2/fusiontables.style.insert": insert_style +"/fusiontables:v2/fusiontables.style.insert/tableId": table_id +"/fusiontables:v2/fusiontables.style.list": list_styles +"/fusiontables:v2/fusiontables.style.list/maxResults": max_results +"/fusiontables:v2/fusiontables.style.list/pageToken": page_token +"/fusiontables:v2/fusiontables.style.list/tableId": table_id +"/fusiontables:v2/fusiontables.style.patch": patch_style +"/fusiontables:v2/fusiontables.style.patch/styleId": style_id +"/fusiontables:v2/fusiontables.style.patch/tableId": table_id +"/fusiontables:v2/fusiontables.style.update": update_style +"/fusiontables:v2/fusiontables.style.update/styleId": style_id +"/fusiontables:v2/fusiontables.style.update/tableId": table_id +"/fusiontables:v2/fusiontables.table.copy": copy_table +"/fusiontables:v2/fusiontables.table.copy/copyPresentation": copy_presentation +"/fusiontables:v2/fusiontables.table.copy/tableId": table_id +"/fusiontables:v2/fusiontables.table.delete": delete_table +"/fusiontables:v2/fusiontables.table.delete/tableId": table_id +"/fusiontables:v2/fusiontables.table.get": get_table +"/fusiontables:v2/fusiontables.table.get/tableId": table_id +"/fusiontables:v2/fusiontables.table.importRows/delimiter": delimiter +"/fusiontables:v2/fusiontables.table.importRows/encoding": encoding +"/fusiontables:v2/fusiontables.table.importRows/endLine": end_line +"/fusiontables:v2/fusiontables.table.importRows/isStrict": is_strict +"/fusiontables:v2/fusiontables.table.importRows/startLine": start_line +"/fusiontables:v2/fusiontables.table.importRows/tableId": table_id +"/fusiontables:v2/fusiontables.table.importTable/delimiter": delimiter +"/fusiontables:v2/fusiontables.table.importTable/encoding": encoding +"/fusiontables:v2/fusiontables.table.importTable/name": name +"/fusiontables:v2/fusiontables.table.insert": insert_table +"/fusiontables:v2/fusiontables.table.list": list_tables +"/fusiontables:v2/fusiontables.table.list/maxResults": max_results +"/fusiontables:v2/fusiontables.table.list/pageToken": page_token +"/fusiontables:v2/fusiontables.table.patch": patch_table +"/fusiontables:v2/fusiontables.table.patch/replaceViewDefinition": replace_view_definition +"/fusiontables:v2/fusiontables.table.patch/tableId": table_id +"/fusiontables:v2/fusiontables.table.replaceRows": replace_rows_table +"/fusiontables:v2/fusiontables.table.replaceRows/delimiter": delimiter +"/fusiontables:v2/fusiontables.table.replaceRows/encoding": encoding +"/fusiontables:v2/fusiontables.table.replaceRows/endLine": end_line +"/fusiontables:v2/fusiontables.table.replaceRows/isStrict": is_strict +"/fusiontables:v2/fusiontables.table.replaceRows/startLine": start_line +"/fusiontables:v2/fusiontables.table.replaceRows/tableId": table_id +"/fusiontables:v2/fusiontables.table.update": update_table +"/fusiontables:v2/fusiontables.table.update/replaceViewDefinition": replace_view_definition +"/fusiontables:v2/fusiontables.table.update/tableId": table_id +"/fusiontables:v2/fusiontables.task.delete": delete_task +"/fusiontables:v2/fusiontables.task.delete/tableId": table_id +"/fusiontables:v2/fusiontables.task.delete/taskId": task_id +"/fusiontables:v2/fusiontables.task.get": get_task +"/fusiontables:v2/fusiontables.task.get/tableId": table_id +"/fusiontables:v2/fusiontables.task.get/taskId": task_id +"/fusiontables:v2/fusiontables.task.list": list_tasks +"/fusiontables:v2/fusiontables.task.list/maxResults": max_results +"/fusiontables:v2/fusiontables.task.list/pageToken": page_token +"/fusiontables:v2/fusiontables.task.list/startIndex": start_index +"/fusiontables:v2/fusiontables.task.list/tableId": table_id +"/fusiontables:v2/fusiontables.template.delete": delete_template +"/fusiontables:v2/fusiontables.template.delete/tableId": table_id +"/fusiontables:v2/fusiontables.template.delete/templateId": template_id +"/fusiontables:v2/fusiontables.template.get": get_template +"/fusiontables:v2/fusiontables.template.get/tableId": table_id +"/fusiontables:v2/fusiontables.template.get/templateId": template_id +"/fusiontables:v2/fusiontables.template.insert": insert_template +"/fusiontables:v2/fusiontables.template.insert/tableId": table_id +"/fusiontables:v2/fusiontables.template.list": list_templates +"/fusiontables:v2/fusiontables.template.list/maxResults": max_results +"/fusiontables:v2/fusiontables.template.list/pageToken": page_token +"/fusiontables:v2/fusiontables.template.list/tableId": table_id +"/fusiontables:v2/fusiontables.template.patch": patch_template +"/fusiontables:v2/fusiontables.template.patch/tableId": table_id +"/fusiontables:v2/fusiontables.template.patch/templateId": template_id +"/fusiontables:v2/fusiontables.template.update": update_template +"/fusiontables:v2/fusiontables.template.update/tableId": table_id +"/fusiontables:v2/fusiontables.template.update/templateId": template_id +"/fusiontables:v2/Bucket": bucket +"/fusiontables:v2/Bucket/color": color +"/fusiontables:v2/Bucket/icon": icon +"/fusiontables:v2/Bucket/max": max +"/fusiontables:v2/Bucket/min": min +"/fusiontables:v2/Bucket/opacity": opacity +"/fusiontables:v2/Bucket/weight": weight +"/fusiontables:v2/Column": column +"/fusiontables:v2/Column/baseColumn": base_column +"/fusiontables:v2/Column/baseColumn/columnId": column_id +"/fusiontables:v2/Column/baseColumn/tableIndex": table_index +"/fusiontables:v2/Column/columnId": column_id +"/fusiontables:v2/Column/columnJsonSchema": column_json_schema +"/fusiontables:v2/Column/columnPropertiesJson": column_properties_json +"/fusiontables:v2/Column/description": description +"/fusiontables:v2/Column/formatPattern": format_pattern +"/fusiontables:v2/Column/graphPredicate": graph_predicate +"/fusiontables:v2/Column/kind": kind +"/fusiontables:v2/Column/name": name +"/fusiontables:v2/Column/type": type +"/fusiontables:v2/Column/validValues": valid_values +"/fusiontables:v2/Column/validValues/valid_value": valid_value +"/fusiontables:v2/Column/validateData": validate_data +"/fusiontables:v2/ColumnList": column_list +"/fusiontables:v2/ColumnList/items": items +"/fusiontables:v2/ColumnList/items/item": item +"/fusiontables:v2/ColumnList/kind": kind +"/fusiontables:v2/ColumnList/nextPageToken": next_page_token +"/fusiontables:v2/ColumnList/totalItems": total_items +"/fusiontables:v2/Geometry": geometry +"/fusiontables:v2/Geometry/geometries": geometries +"/fusiontables:v2/Geometry/geometries/geometry": geometry +"/fusiontables:v2/Geometry/geometry": geometry +"/fusiontables:v2/Geometry/type": type +"/fusiontables:v2/Import": import +"/fusiontables:v2/Import/kind": kind +"/fusiontables:v2/Import/numRowsReceived": num_rows_received +"/fusiontables:v2/Line": line +"/fusiontables:v2/Line/coordinates": coordinates +"/fusiontables:v2/Line/coordinates/coordinate": coordinate +"/fusiontables:v2/Line/coordinates/coordinate/coordinate": coordinate +"/fusiontables:v2/Line/type": type +"/fusiontables:v2/LineStyle": line_style +"/fusiontables:v2/LineStyle/strokeColor": stroke_color +"/fusiontables:v2/LineStyle/strokeColorStyler": stroke_color_styler +"/fusiontables:v2/LineStyle/strokeOpacity": stroke_opacity +"/fusiontables:v2/LineStyle/strokeWeight": stroke_weight +"/fusiontables:v2/LineStyle/strokeWeightStyler": stroke_weight_styler +"/fusiontables:v2/Point": point +"/fusiontables:v2/Point/coordinates": coordinates +"/fusiontables:v2/Point/coordinates/coordinate": coordinate +"/fusiontables:v2/Point/type": type +"/fusiontables:v2/PointStyle": point_style +"/fusiontables:v2/PointStyle/iconName": icon_name +"/fusiontables:v2/PointStyle/iconStyler": icon_styler +"/fusiontables:v2/Polygon": polygon +"/fusiontables:v2/Polygon/coordinates": coordinates +"/fusiontables:v2/Polygon/coordinates/coordinate": coordinate +"/fusiontables:v2/Polygon/coordinates/coordinate/coordinate": coordinate +"/fusiontables:v2/Polygon/coordinates/coordinate/coordinate/coordinate": coordinate +"/fusiontables:v2/Polygon/type": type +"/fusiontables:v2/PolygonStyle": polygon_style +"/fusiontables:v2/PolygonStyle/fillColor": fill_color +"/fusiontables:v2/PolygonStyle/fillColorStyler": fill_color_styler +"/fusiontables:v2/PolygonStyle/fillOpacity": fill_opacity +"/fusiontables:v2/PolygonStyle/strokeColor": stroke_color +"/fusiontables:v2/PolygonStyle/strokeColorStyler": stroke_color_styler +"/fusiontables:v2/PolygonStyle/strokeOpacity": stroke_opacity +"/fusiontables:v2/PolygonStyle/strokeWeight": stroke_weight +"/fusiontables:v2/PolygonStyle/strokeWeightStyler": stroke_weight_styler +"/fusiontables:v2/Sqlresponse": sqlresponse +"/fusiontables:v2/Sqlresponse/columns": columns +"/fusiontables:v2/Sqlresponse/columns/column": column +"/fusiontables:v2/Sqlresponse/kind": kind +"/fusiontables:v2/Sqlresponse/rows": rows +"/fusiontables:v2/Sqlresponse/rows/row": row +"/fusiontables:v2/Sqlresponse/rows/row/row": row +"/fusiontables:v2/StyleFunction": style_function +"/fusiontables:v2/StyleFunction/buckets": buckets +"/fusiontables:v2/StyleFunction/buckets/bucket": bucket +"/fusiontables:v2/StyleFunction/columnName": column_name +"/fusiontables:v2/StyleFunction/gradient": gradient +"/fusiontables:v2/StyleFunction/gradient/colors": colors +"/fusiontables:v2/StyleFunction/gradient/colors/color": color +"/fusiontables:v2/StyleFunction/gradient/colors/color/color": color +"/fusiontables:v2/StyleFunction/gradient/colors/color/opacity": opacity +"/fusiontables:v2/StyleFunction/gradient/max": max +"/fusiontables:v2/StyleFunction/gradient/min": min +"/fusiontables:v2/StyleFunction/kind": kind +"/fusiontables:v2/StyleSetting": style_setting +"/fusiontables:v2/StyleSetting/kind": kind +"/fusiontables:v2/StyleSetting/markerOptions": marker_options +"/fusiontables:v2/StyleSetting/name": name +"/fusiontables:v2/StyleSetting/polygonOptions": polygon_options +"/fusiontables:v2/StyleSetting/polylineOptions": polyline_options +"/fusiontables:v2/StyleSetting/styleId": style_id +"/fusiontables:v2/StyleSetting/tableId": table_id +"/fusiontables:v2/StyleSettingList": style_setting_list +"/fusiontables:v2/StyleSettingList/items": items +"/fusiontables:v2/StyleSettingList/items/item": item +"/fusiontables:v2/StyleSettingList/kind": kind +"/fusiontables:v2/StyleSettingList/nextPageToken": next_page_token +"/fusiontables:v2/StyleSettingList/totalItems": total_items +"/fusiontables:v2/Table": table +"/fusiontables:v2/Table/attribution": attribution +"/fusiontables:v2/Table/attributionLink": attribution_link +"/fusiontables:v2/Table/baseTableIds": base_table_ids +"/fusiontables:v2/Table/baseTableIds/base_table_id": base_table_id +"/fusiontables:v2/Table/columnPropertiesJsonSchema": column_properties_json_schema +"/fusiontables:v2/Table/columns": columns +"/fusiontables:v2/Table/columns/column": column +"/fusiontables:v2/Table/description": description +"/fusiontables:v2/Table/isExportable": is_exportable +"/fusiontables:v2/Table/kind": kind +"/fusiontables:v2/Table/name": name +"/fusiontables:v2/Table/sql": sql +"/fusiontables:v2/Table/tableId": table_id +"/fusiontables:v2/Table/tablePropertiesJson": table_properties_json +"/fusiontables:v2/Table/tablePropertiesJsonSchema": table_properties_json_schema +"/fusiontables:v2/TableList": table_list +"/fusiontables:v2/TableList/items": items +"/fusiontables:v2/TableList/items/item": item +"/fusiontables:v2/TableList/kind": kind +"/fusiontables:v2/TableList/nextPageToken": next_page_token +"/fusiontables:v2/Task": task +"/fusiontables:v2/Task/kind": kind +"/fusiontables:v2/Task/progress": progress +"/fusiontables:v2/Task/started": started +"/fusiontables:v2/Task/taskId": task_id +"/fusiontables:v2/Task/type": type +"/fusiontables:v2/TaskList": task_list +"/fusiontables:v2/TaskList/items": items +"/fusiontables:v2/TaskList/items/item": item +"/fusiontables:v2/TaskList/kind": kind +"/fusiontables:v2/TaskList/nextPageToken": next_page_token +"/fusiontables:v2/TaskList/totalItems": total_items +"/fusiontables:v2/Template": template +"/fusiontables:v2/Template/automaticColumnNames": automatic_column_names +"/fusiontables:v2/Template/automaticColumnNames/automatic_column_name": automatic_column_name +"/fusiontables:v2/Template/body": body +"/fusiontables:v2/Template/kind": kind +"/fusiontables:v2/Template/name": name +"/fusiontables:v2/Template/tableId": table_id +"/fusiontables:v2/Template/templateId": template_id +"/fusiontables:v2/TemplateList": template_list +"/fusiontables:v2/TemplateList/items": items +"/fusiontables:v2/TemplateList/items/item": item +"/fusiontables:v2/TemplateList/kind": kind +"/fusiontables:v2/TemplateList/nextPageToken": next_page_token +"/fusiontables:v2/TemplateList/totalItems": total_items +"/games:v1/fields": fields +"/games:v1/key": key +"/games:v1/quotaUser": quota_user +"/games:v1/userIp": user_ip +"/games:v1/games.achievementDefinitions.list": list_achievement_definitions +"/games:v1/games.achievementDefinitions.list/language": language +"/games:v1/games.achievementDefinitions.list/maxResults": max_results +"/games:v1/games.achievementDefinitions.list/pageToken": page_token +"/games:v1/games.achievements.increment": increment_achievement +"/games:v1/games.achievements.increment/achievementId": achievement_id +"/games:v1/games.achievements.increment/requestId": request_id +"/games:v1/games.achievements.increment/stepsToIncrement": steps_to_increment +"/games:v1/games.achievements.list": list_achievements +"/games:v1/games.achievements.list/language": language +"/games:v1/games.achievements.list/maxResults": max_results +"/games:v1/games.achievements.list/pageToken": page_token +"/games:v1/games.achievements.list/playerId": player_id +"/games:v1/games.achievements.list/state": state +"/games:v1/games.achievements.reveal": reveal_achievement +"/games:v1/games.achievements.reveal/achievementId": achievement_id +"/games:v1/games.achievements.setStepsAtLeast": set_steps_at_least_achievement +"/games:v1/games.achievements.setStepsAtLeast/achievementId": achievement_id +"/games:v1/games.achievements.setStepsAtLeast/steps": steps +"/games:v1/games.achievements.unlock": unlock_achievement +"/games:v1/games.achievements.unlock/achievementId": achievement_id +"/games:v1/games.applications.get": get_application +"/games:v1/games.applications.get/applicationId": application_id +"/games:v1/games.applications.get/language": language +"/games:v1/games.applications.get/platformType": platform_type +"/games:v1/games.applications.played": played_application +"/games:v1/games.events.listByPlayer": list_by_player_event +"/games:v1/games.events.listByPlayer/language": language +"/games:v1/games.events.listByPlayer/maxResults": max_results +"/games:v1/games.events.listByPlayer/pageToken": page_token +"/games:v1/games.events.listDefinitions/language": language +"/games:v1/games.events.listDefinitions/maxResults": max_results +"/games:v1/games.events.listDefinitions/pageToken": page_token +"/games:v1/games.events.record": record_event +"/games:v1/games.events.record/language": language +"/games:v1/games.leaderboards.get": get_leaderboard +"/games:v1/games.leaderboards.get/language": language +"/games:v1/games.leaderboards.get/leaderboardId": leaderboard_id +"/games:v1/games.leaderboards.list": list_leaderboards +"/games:v1/games.leaderboards.list/language": language +"/games:v1/games.leaderboards.list/maxResults": max_results +"/games:v1/games.leaderboards.list/pageToken": page_token +"/games:v1/games.metagame.listCategoriesByPlayer": list_categories_by_player_metagame +"/games:v1/games.metagame.listCategoriesByPlayer/collection": collection +"/games:v1/games.metagame.listCategoriesByPlayer/language": language +"/games:v1/games.metagame.listCategoriesByPlayer/maxResults": max_results +"/games:v1/games.metagame.listCategoriesByPlayer/pageToken": page_token +"/games:v1/games.metagame.listCategoriesByPlayer/playerId": player_id +"/games:v1/games.players.get": get_player +"/games:v1/games.players.get/language": language +"/games:v1/games.players.get/playerId": player_id +"/games:v1/games.players.list": list_players +"/games:v1/games.players.list/collection": collection +"/games:v1/games.players.list/language": language +"/games:v1/games.players.list/maxResults": max_results +"/games:v1/games.players.list/pageToken": page_token +"/games:v1/games.pushtokens.remove": remove_pushtoken +"/games:v1/games.pushtokens.update": update_pushtoken +"/games:v1/games.questMilestones.claim": claim_quest_milestone +"/games:v1/games.questMilestones.claim/milestoneId": milestone_id +"/games:v1/games.questMilestones.claim/questId": quest_id +"/games:v1/games.questMilestones.claim/requestId": request_id +"/games:v1/games.quests.accept": accept_quest +"/games:v1/games.quests.accept/language": language +"/games:v1/games.quests.accept/questId": quest_id +"/games:v1/games.quests.list": list_quests +"/games:v1/games.quests.list/language": language +"/games:v1/games.quests.list/maxResults": max_results +"/games:v1/games.quests.list/pageToken": page_token +"/games:v1/games.quests.list/playerId": player_id +"/games:v1/games.revisions.check": check_revision +"/games:v1/games.revisions.check/clientRevision": client_revision +"/games:v1/games.rooms.create": create_room +"/games:v1/games.rooms.create/language": language +"/games:v1/games.rooms.decline": decline_room +"/games:v1/games.rooms.decline/language": language +"/games:v1/games.rooms.decline/roomId": room_id +"/games:v1/games.rooms.dismiss": dismiss_room +"/games:v1/games.rooms.dismiss/roomId": room_id +"/games:v1/games.rooms.get": get_room +"/games:v1/games.rooms.get/language": language +"/games:v1/games.rooms.get/roomId": room_id +"/games:v1/games.rooms.join": join_room +"/games:v1/games.rooms.join/language": language +"/games:v1/games.rooms.join/roomId": room_id +"/games:v1/games.rooms.leave": leave_room +"/games:v1/games.rooms.leave/language": language +"/games:v1/games.rooms.leave/roomId": room_id +"/games:v1/games.rooms.list": list_rooms +"/games:v1/games.rooms.list/language": language +"/games:v1/games.rooms.list/maxResults": max_results +"/games:v1/games.rooms.list/pageToken": page_token +"/games:v1/games.rooms.reportStatus/language": language +"/games:v1/games.rooms.reportStatus/roomId": room_id +"/games:v1/games.scores.get": get_score +"/games:v1/games.scores.get/includeRankType": include_rank_type +"/games:v1/games.scores.get/language": language +"/games:v1/games.scores.get/leaderboardId": leaderboard_id +"/games:v1/games.scores.get/maxResults": max_results +"/games:v1/games.scores.get/pageToken": page_token +"/games:v1/games.scores.get/playerId": player_id +"/games:v1/games.scores.get/timeSpan": time_span +"/games:v1/games.scores.list": list_scores +"/games:v1/games.scores.list/collection": collection +"/games:v1/games.scores.list/language": language +"/games:v1/games.scores.list/leaderboardId": leaderboard_id +"/games:v1/games.scores.list/maxResults": max_results +"/games:v1/games.scores.list/pageToken": page_token +"/games:v1/games.scores.list/timeSpan": time_span +"/games:v1/games.scores.listWindow": list_window_score +"/games:v1/games.scores.listWindow/collection": collection +"/games:v1/games.scores.listWindow/language": language +"/games:v1/games.scores.listWindow/leaderboardId": leaderboard_id +"/games:v1/games.scores.listWindow/maxResults": max_results +"/games:v1/games.scores.listWindow/pageToken": page_token +"/games:v1/games.scores.listWindow/resultsAbove": results_above +"/games:v1/games.scores.listWindow/returnTopIfAbsent": return_top_if_absent +"/games:v1/games.scores.listWindow/timeSpan": time_span +"/games:v1/games.scores.submit": submit_score +"/games:v1/games.scores.submit/language": language +"/games:v1/games.scores.submit/leaderboardId": leaderboard_id +"/games:v1/games.scores.submit/score": score +"/games:v1/games.scores.submit/scoreTag": score_tag +"/games:v1/games.scores.submitMultiple": submit_multiple_score +"/games:v1/games.scores.submitMultiple/language": language +"/games:v1/games.snapshots.get": get_snapshot +"/games:v1/games.snapshots.get/language": language +"/games:v1/games.snapshots.get/snapshotId": snapshot_id +"/games:v1/games.snapshots.list": list_snapshots +"/games:v1/games.snapshots.list/language": language +"/games:v1/games.snapshots.list/maxResults": max_results +"/games:v1/games.snapshots.list/pageToken": page_token +"/games:v1/games.snapshots.list/playerId": player_id +"/games:v1/games.turnBasedMatches.cancel": cancel_turn_based_match +"/games:v1/games.turnBasedMatches.cancel/matchId": match_id +"/games:v1/games.turnBasedMatches.create": create_turn_based_match +"/games:v1/games.turnBasedMatches.create/language": language +"/games:v1/games.turnBasedMatches.decline": decline_turn_based_match +"/games:v1/games.turnBasedMatches.decline/language": language +"/games:v1/games.turnBasedMatches.decline/matchId": match_id +"/games:v1/games.turnBasedMatches.dismiss": dismiss_turn_based_match +"/games:v1/games.turnBasedMatches.dismiss/matchId": match_id +"/games:v1/games.turnBasedMatches.finish": finish_turn_based_match +"/games:v1/games.turnBasedMatches.finish/language": language +"/games:v1/games.turnBasedMatches.finish/matchId": match_id +"/games:v1/games.turnBasedMatches.get": get_turn_based_match +"/games:v1/games.turnBasedMatches.get/includeMatchData": include_match_data +"/games:v1/games.turnBasedMatches.get/language": language +"/games:v1/games.turnBasedMatches.get/matchId": match_id +"/games:v1/games.turnBasedMatches.join": join_turn_based_match +"/games:v1/games.turnBasedMatches.join/language": language +"/games:v1/games.turnBasedMatches.join/matchId": match_id +"/games:v1/games.turnBasedMatches.leave": leave_turn_based_match +"/games:v1/games.turnBasedMatches.leave/language": language +"/games:v1/games.turnBasedMatches.leave/matchId": match_id +"/games:v1/games.turnBasedMatches.leaveTurn/language": language +"/games:v1/games.turnBasedMatches.leaveTurn/matchId": match_id +"/games:v1/games.turnBasedMatches.leaveTurn/matchVersion": match_version +"/games:v1/games.turnBasedMatches.leaveTurn/pendingParticipantId": pending_participant_id +"/games:v1/games.turnBasedMatches.list": list_turn_based_matches +"/games:v1/games.turnBasedMatches.list/includeMatchData": include_match_data +"/games:v1/games.turnBasedMatches.list/language": language +"/games:v1/games.turnBasedMatches.list/maxCompletedMatches": max_completed_matches +"/games:v1/games.turnBasedMatches.list/maxResults": max_results +"/games:v1/games.turnBasedMatches.list/pageToken": page_token +"/games:v1/games.turnBasedMatches.rematch": rematch_turn_based_match +"/games:v1/games.turnBasedMatches.rematch/language": language +"/games:v1/games.turnBasedMatches.rematch/matchId": match_id +"/games:v1/games.turnBasedMatches.rematch/requestId": request_id +"/games:v1/games.turnBasedMatches.sync": sync_turn_based_match +"/games:v1/games.turnBasedMatches.sync/includeMatchData": include_match_data +"/games:v1/games.turnBasedMatches.sync/language": language +"/games:v1/games.turnBasedMatches.sync/maxCompletedMatches": max_completed_matches +"/games:v1/games.turnBasedMatches.sync/maxResults": max_results +"/games:v1/games.turnBasedMatches.sync/pageToken": page_token +"/games:v1/games.turnBasedMatches.takeTurn/language": language +"/games:v1/games.turnBasedMatches.takeTurn/matchId": match_id +"/games:v1/AchievementDefinition": achievement_definition +"/games:v1/AchievementDefinition/achievementType": achievement_type +"/games:v1/AchievementDefinition/description": description +"/games:v1/AchievementDefinition/experiencePoints": experience_points +"/games:v1/AchievementDefinition/formattedTotalSteps": formatted_total_steps +"/games:v1/AchievementDefinition/id": id +"/games:v1/AchievementDefinition/initialState": initial_state +"/games:v1/AchievementDefinition/isRevealedIconUrlDefault": is_revealed_icon_url_default +"/games:v1/AchievementDefinition/isUnlockedIconUrlDefault": is_unlocked_icon_url_default +"/games:v1/AchievementDefinition/kind": kind +"/games:v1/AchievementDefinition/name": name +"/games:v1/AchievementDefinition/revealedIconUrl": revealed_icon_url +"/games:v1/AchievementDefinition/totalSteps": total_steps +"/games:v1/AchievementDefinition/unlockedIconUrl": unlocked_icon_url +"/games:v1/AchievementDefinitionsListResponse/items": items +"/games:v1/AchievementDefinitionsListResponse/items/item": item +"/games:v1/AchievementDefinitionsListResponse/kind": kind +"/games:v1/AchievementDefinitionsListResponse/nextPageToken": next_page_token +"/games:v1/AchievementIncrementResponse/currentSteps": current_steps +"/games:v1/AchievementIncrementResponse/kind": kind +"/games:v1/AchievementIncrementResponse/newlyUnlocked": newly_unlocked +"/games:v1/AchievementRevealResponse/currentState": current_state +"/games:v1/AchievementRevealResponse/kind": kind +"/games:v1/AchievementSetStepsAtLeastResponse/currentSteps": current_steps +"/games:v1/AchievementSetStepsAtLeastResponse/kind": kind +"/games:v1/AchievementSetStepsAtLeastResponse/newlyUnlocked": newly_unlocked +"/games:v1/AchievementUnlockResponse/kind": kind +"/games:v1/AchievementUnlockResponse/newlyUnlocked": newly_unlocked +"/games:v1/AchievementUpdateMultipleRequest/kind": kind +"/games:v1/AchievementUpdateMultipleRequest/updates": updates +"/games:v1/AchievementUpdateMultipleRequest/updates/update": update +"/games:v1/AchievementUpdateMultipleResponse/kind": kind +"/games:v1/AchievementUpdateMultipleResponse/updatedAchievements": updated_achievements +"/games:v1/AchievementUpdateMultipleResponse/updatedAchievements/updated_achievement": updated_achievement +"/games:v1/AchievementUpdateRequest/achievementId": achievement_id +"/games:v1/AchievementUpdateRequest/incrementPayload": increment_payload +"/games:v1/AchievementUpdateRequest/kind": kind +"/games:v1/AchievementUpdateRequest/setStepsAtLeastPayload": set_steps_at_least_payload +"/games:v1/AchievementUpdateRequest/updateType": update_type +"/games:v1/AchievementUpdateResponse/achievementId": achievement_id +"/games:v1/AchievementUpdateResponse/currentState": current_state +"/games:v1/AchievementUpdateResponse/currentSteps": current_steps +"/games:v1/AchievementUpdateResponse/kind": kind +"/games:v1/AchievementUpdateResponse/newlyUnlocked": newly_unlocked +"/games:v1/AchievementUpdateResponse/updateOccurred": update_occurred +"/games:v1/AggregateStats": aggregate_stats +"/games:v1/AggregateStats/count": count +"/games:v1/AggregateStats/kind": kind +"/games:v1/AggregateStats/max": max +"/games:v1/AggregateStats/min": min +"/games:v1/AggregateStats/sum": sum +"/games:v1/AnonymousPlayer": anonymous_player +"/games:v1/AnonymousPlayer/avatarImageUrl": avatar_image_url +"/games:v1/AnonymousPlayer/displayName": display_name +"/games:v1/AnonymousPlayer/kind": kind +"/games:v1/Application": application +"/games:v1/Application/achievement_count": achievement_count +"/games:v1/Application/assets": assets +"/games:v1/Application/assets/asset": asset +"/games:v1/Application/author": author +"/games:v1/Application/category": category +"/games:v1/Application/description": description +"/games:v1/Application/enabledFeatures": enabled_features +"/games:v1/Application/enabledFeatures/enabled_feature": enabled_feature +"/games:v1/Application/id": id +"/games:v1/Application/instances": instances +"/games:v1/Application/instances/instance": instance +"/games:v1/Application/kind": kind +"/games:v1/Application/lastUpdatedTimestamp": last_updated_timestamp +"/games:v1/Application/leaderboard_count": leaderboard_count +"/games:v1/Application/name": name +"/games:v1/Application/themeColor": theme_color +"/games:v1/ApplicationCategory": application_category +"/games:v1/ApplicationCategory/kind": kind +"/games:v1/ApplicationCategory/primary": primary +"/games:v1/ApplicationCategory/secondary": secondary +"/games:v1/Category": category +"/games:v1/Category/category": category +"/games:v1/Category/experiencePoints": experience_points +"/games:v1/Category/kind": kind +"/games:v1/CategoryListResponse/items": items +"/games:v1/CategoryListResponse/items/item": item +"/games:v1/CategoryListResponse/kind": kind +"/games:v1/CategoryListResponse/nextPageToken": next_page_token +"/games:v1/EventBatchRecordFailure": event_batch_record_failure +"/games:v1/EventBatchRecordFailure/failureCause": failure_cause +"/games:v1/EventBatchRecordFailure/kind": kind +"/games:v1/EventBatchRecordFailure/range": range +"/games:v1/EventChild": event_child +"/games:v1/EventChild/childId": child_id +"/games:v1/EventChild/kind": kind +"/games:v1/EventDefinition": event_definition +"/games:v1/EventDefinition/childEvents": child_events +"/games:v1/EventDefinition/childEvents/child_event": child_event +"/games:v1/EventDefinition/description": description +"/games:v1/EventDefinition/displayName": display_name +"/games:v1/EventDefinition/id": id +"/games:v1/EventDefinition/imageUrl": image_url +"/games:v1/EventDefinition/isDefaultImageUrl": is_default_image_url +"/games:v1/EventDefinition/kind": kind +"/games:v1/EventDefinition/visibility": visibility +"/games:v1/EventDefinitionListResponse/items": items +"/games:v1/EventDefinitionListResponse/items/item": item +"/games:v1/EventDefinitionListResponse/kind": kind +"/games:v1/EventDefinitionListResponse/nextPageToken": next_page_token +"/games:v1/EventPeriodRange": event_period_range +"/games:v1/EventPeriodRange/kind": kind +"/games:v1/EventPeriodRange/periodEndMillis": period_end_millis +"/games:v1/EventPeriodRange/periodStartMillis": period_start_millis +"/games:v1/EventPeriodUpdate": event_period_update +"/games:v1/EventPeriodUpdate/kind": kind +"/games:v1/EventPeriodUpdate/timePeriod": time_period +"/games:v1/EventPeriodUpdate/updates": updates +"/games:v1/EventPeriodUpdate/updates/update": update +"/games:v1/EventRecordFailure": event_record_failure +"/games:v1/EventRecordFailure/eventId": event_id +"/games:v1/EventRecordFailure/failureCause": failure_cause +"/games:v1/EventRecordFailure/kind": kind +"/games:v1/EventRecordRequest/currentTimeMillis": current_time_millis +"/games:v1/EventRecordRequest/kind": kind +"/games:v1/EventRecordRequest/requestId": request_id +"/games:v1/EventRecordRequest/timePeriods": time_periods +"/games:v1/EventRecordRequest/timePeriods/time_period": time_period +"/games:v1/EventUpdateRequest/definitionId": definition_id +"/games:v1/EventUpdateRequest/kind": kind +"/games:v1/EventUpdateRequest/updateCount": update_count +"/games:v1/EventUpdateResponse/batchFailures": batch_failures +"/games:v1/EventUpdateResponse/batchFailures/batch_failure": batch_failure +"/games:v1/EventUpdateResponse/eventFailures": event_failures +"/games:v1/EventUpdateResponse/eventFailures/event_failure": event_failure +"/games:v1/EventUpdateResponse/kind": kind +"/games:v1/EventUpdateResponse/playerEvents": player_events +"/games:v1/EventUpdateResponse/playerEvents/player_event": player_event +"/games:v1/GamesAchievementIncrement": games_achievement_increment +"/games:v1/GamesAchievementIncrement/kind": kind +"/games:v1/GamesAchievementIncrement/requestId": request_id +"/games:v1/GamesAchievementIncrement/steps": steps +"/games:v1/GamesAchievementSetStepsAtLeast": games_achievement_set_steps_at_least +"/games:v1/GamesAchievementSetStepsAtLeast/kind": kind +"/games:v1/GamesAchievementSetStepsAtLeast/steps": steps +"/games:v1/ImageAsset": image_asset +"/games:v1/ImageAsset/height": height +"/games:v1/ImageAsset/kind": kind +"/games:v1/ImageAsset/name": name +"/games:v1/ImageAsset/url": url +"/games:v1/ImageAsset/width": width +"/games:v1/Instance": instance +"/games:v1/Instance/acquisitionUri": acquisition_uri +"/games:v1/Instance/androidInstance": android_instance +"/games:v1/Instance/iosInstance": ios_instance +"/games:v1/Instance/kind": kind +"/games:v1/Instance/name": name +"/games:v1/Instance/platformType": platform_type +"/games:v1/Instance/realtimePlay": realtime_play +"/games:v1/Instance/turnBasedPlay": turn_based_play +"/games:v1/Instance/webInstance": web_instance +"/games:v1/InstanceAndroidDetails": instance_android_details +"/games:v1/InstanceAndroidDetails/enablePiracyCheck": enable_piracy_check +"/games:v1/InstanceAndroidDetails/kind": kind +"/games:v1/InstanceAndroidDetails/packageName": package_name +"/games:v1/InstanceAndroidDetails/preferred": preferred +"/games:v1/InstanceIosDetails": instance_ios_details +"/games:v1/InstanceIosDetails/bundleIdentifier": bundle_identifier +"/games:v1/InstanceIosDetails/itunesAppId": itunes_app_id +"/games:v1/InstanceIosDetails/kind": kind +"/games:v1/InstanceIosDetails/preferredForIpad": preferred_for_ipad +"/games:v1/InstanceIosDetails/preferredForIphone": preferred_for_iphone +"/games:v1/InstanceIosDetails/supportIpad": support_ipad +"/games:v1/InstanceIosDetails/supportIphone": support_iphone +"/games:v1/InstanceWebDetails": instance_web_details +"/games:v1/InstanceWebDetails/kind": kind +"/games:v1/InstanceWebDetails/launchUrl": launch_url +"/games:v1/InstanceWebDetails/preferred": preferred +"/games:v1/Leaderboard": leaderboard +"/games:v1/Leaderboard/iconUrl": icon_url +"/games:v1/Leaderboard/id": id +"/games:v1/Leaderboard/isIconUrlDefault": is_icon_url_default +"/games:v1/Leaderboard/kind": kind +"/games:v1/Leaderboard/name": name +"/games:v1/Leaderboard/order": order +"/games:v1/LeaderboardEntry": leaderboard_entry +"/games:v1/LeaderboardEntry/formattedScore": formatted_score +"/games:v1/LeaderboardEntry/formattedScoreRank": formatted_score_rank +"/games:v1/LeaderboardEntry/kind": kind +"/games:v1/LeaderboardEntry/player": player +"/games:v1/LeaderboardEntry/scoreRank": score_rank +"/games:v1/LeaderboardEntry/scoreTag": score_tag +"/games:v1/LeaderboardEntry/scoreValue": score_value +"/games:v1/LeaderboardEntry/timeSpan": time_span +"/games:v1/LeaderboardEntry/writeTimestampMillis": write_timestamp_millis +"/games:v1/LeaderboardListResponse/items": items +"/games:v1/LeaderboardListResponse/items/item": item +"/games:v1/LeaderboardListResponse/kind": kind +"/games:v1/LeaderboardListResponse/nextPageToken": next_page_token +"/games:v1/LeaderboardScoreRank": leaderboard_score_rank +"/games:v1/LeaderboardScoreRank/formattedNumScores": formatted_num_scores +"/games:v1/LeaderboardScoreRank/formattedRank": formatted_rank +"/games:v1/LeaderboardScoreRank/kind": kind +"/games:v1/LeaderboardScoreRank/numScores": num_scores +"/games:v1/LeaderboardScoreRank/rank": rank +"/games:v1/LeaderboardScores": leaderboard_scores +"/games:v1/LeaderboardScores/items": items +"/games:v1/LeaderboardScores/items/item": item +"/games:v1/LeaderboardScores/kind": kind +"/games:v1/LeaderboardScores/nextPageToken": next_page_token +"/games:v1/LeaderboardScores/numScores": num_scores +"/games:v1/LeaderboardScores/playerScore": player_score +"/games:v1/LeaderboardScores/prevPageToken": prev_page_token +"/games:v1/MetagameConfig": metagame_config +"/games:v1/MetagameConfig/currentVersion": current_version +"/games:v1/MetagameConfig/kind": kind +"/games:v1/MetagameConfig/playerLevels": player_levels +"/games:v1/MetagameConfig/playerLevels/player_level": player_level +"/games:v1/NetworkDiagnostics": network_diagnostics +"/games:v1/NetworkDiagnostics/androidNetworkSubtype": android_network_subtype +"/games:v1/NetworkDiagnostics/androidNetworkType": android_network_type +"/games:v1/NetworkDiagnostics/iosNetworkType": ios_network_type +"/games:v1/NetworkDiagnostics/kind": kind +"/games:v1/NetworkDiagnostics/networkOperatorCode": network_operator_code +"/games:v1/NetworkDiagnostics/networkOperatorName": network_operator_name +"/games:v1/NetworkDiagnostics/registrationLatencyMillis": registration_latency_millis +"/games:v1/ParticipantResult": participant_result +"/games:v1/ParticipantResult/kind": kind +"/games:v1/ParticipantResult/participantId": participant_id +"/games:v1/ParticipantResult/placing": placing +"/games:v1/ParticipantResult/result": result +"/games:v1/PeerChannelDiagnostics": peer_channel_diagnostics +"/games:v1/PeerChannelDiagnostics/bytesReceived": bytes_received +"/games:v1/PeerChannelDiagnostics/bytesSent": bytes_sent +"/games:v1/PeerChannelDiagnostics/kind": kind +"/games:v1/PeerChannelDiagnostics/numMessagesLost": num_messages_lost +"/games:v1/PeerChannelDiagnostics/numMessagesReceived": num_messages_received +"/games:v1/PeerChannelDiagnostics/numMessagesSent": num_messages_sent +"/games:v1/PeerChannelDiagnostics/numSendFailures": num_send_failures +"/games:v1/PeerChannelDiagnostics/roundtripLatencyMillis": roundtrip_latency_millis +"/games:v1/PeerSessionDiagnostics": peer_session_diagnostics +"/games:v1/PeerSessionDiagnostics/connectedTimestampMillis": connected_timestamp_millis +"/games:v1/PeerSessionDiagnostics/kind": kind +"/games:v1/PeerSessionDiagnostics/participantId": participant_id +"/games:v1/PeerSessionDiagnostics/reliableChannel": reliable_channel +"/games:v1/PeerSessionDiagnostics/unreliableChannel": unreliable_channel +"/games:v1/Played": played +"/games:v1/Played/autoMatched": auto_matched +"/games:v1/Played/kind": kind +"/games:v1/Played/timeMillis": time_millis +"/games:v1/Player": player +"/games:v1/Player/avatarImageUrl": avatar_image_url +"/games:v1/Player/displayName": display_name +"/games:v1/Player/experienceInfo": experience_info +"/games:v1/Player/kind": kind +"/games:v1/Player/lastPlayedWith": last_played_with +"/games:v1/Player/name": name +"/games:v1/Player/name/familyName": family_name +"/games:v1/Player/name/givenName": given_name +"/games:v1/Player/playerId": player_id +"/games:v1/Player/title": title +"/games:v1/PlayerAchievement": player_achievement +"/games:v1/PlayerAchievement/achievementState": achievement_state +"/games:v1/PlayerAchievement/currentSteps": current_steps +"/games:v1/PlayerAchievement/experiencePoints": experience_points +"/games:v1/PlayerAchievement/formattedCurrentStepsString": formatted_current_steps_string +"/games:v1/PlayerAchievement/id": id +"/games:v1/PlayerAchievement/kind": kind +"/games:v1/PlayerAchievement/lastUpdatedTimestamp": last_updated_timestamp +"/games:v1/PlayerAchievementListResponse/items": items +"/games:v1/PlayerAchievementListResponse/items/item": item +"/games:v1/PlayerAchievementListResponse/kind": kind +"/games:v1/PlayerAchievementListResponse/nextPageToken": next_page_token +"/games:v1/PlayerEvent": player_event +"/games:v1/PlayerEvent/definitionId": definition_id +"/games:v1/PlayerEvent/formattedNumEvents": formatted_num_events +"/games:v1/PlayerEvent/kind": kind +"/games:v1/PlayerEvent/numEvents": num_events +"/games:v1/PlayerEvent/playerId": player_id +"/games:v1/PlayerEventListResponse/items": items +"/games:v1/PlayerEventListResponse/items/item": item +"/games:v1/PlayerEventListResponse/kind": kind +"/games:v1/PlayerEventListResponse/nextPageToken": next_page_token +"/games:v1/PlayerExperienceInfo": player_experience_info +"/games:v1/PlayerExperienceInfo/currentExperiencePoints": current_experience_points +"/games:v1/PlayerExperienceInfo/currentLevel": current_level +"/games:v1/PlayerExperienceInfo/kind": kind +"/games:v1/PlayerExperienceInfo/lastLevelUpTimestampMillis": last_level_up_timestamp_millis +"/games:v1/PlayerExperienceInfo/nextLevel": next_level +"/games:v1/PlayerLeaderboardScore": player_leaderboard_score +"/games:v1/PlayerLeaderboardScore/kind": kind +"/games:v1/PlayerLeaderboardScore/leaderboard_id": leaderboard_id +"/games:v1/PlayerLeaderboardScore/publicRank": public_rank +"/games:v1/PlayerLeaderboardScore/scoreString": score_string +"/games:v1/PlayerLeaderboardScore/scoreTag": score_tag +"/games:v1/PlayerLeaderboardScore/scoreValue": score_value +"/games:v1/PlayerLeaderboardScore/socialRank": social_rank +"/games:v1/PlayerLeaderboardScore/timeSpan": time_span +"/games:v1/PlayerLeaderboardScore/writeTimestamp": write_timestamp +"/games:v1/PlayerLeaderboardScoreListResponse/items": items +"/games:v1/PlayerLeaderboardScoreListResponse/items/item": item +"/games:v1/PlayerLeaderboardScoreListResponse/kind": kind +"/games:v1/PlayerLeaderboardScoreListResponse/nextPageToken": next_page_token +"/games:v1/PlayerLeaderboardScoreListResponse/player": player +"/games:v1/PlayerLevel": player_level +"/games:v1/PlayerLevel/kind": kind +"/games:v1/PlayerLevel/level": level +"/games:v1/PlayerLevel/maxExperiencePoints": max_experience_points +"/games:v1/PlayerLevel/minExperiencePoints": min_experience_points +"/games:v1/PlayerListResponse/items": items +"/games:v1/PlayerListResponse/items/item": item +"/games:v1/PlayerListResponse/kind": kind +"/games:v1/PlayerListResponse/nextPageToken": next_page_token +"/games:v1/PlayerScore": player_score +"/games:v1/PlayerScore/formattedScore": formatted_score +"/games:v1/PlayerScore/kind": kind +"/games:v1/PlayerScore/score": score +"/games:v1/PlayerScore/scoreTag": score_tag +"/games:v1/PlayerScore/timeSpan": time_span +"/games:v1/PlayerScoreListResponse/kind": kind +"/games:v1/PlayerScoreListResponse/submittedScores": submitted_scores +"/games:v1/PlayerScoreListResponse/submittedScores/submitted_score": submitted_score +"/games:v1/PlayerScoreResponse/beatenScoreTimeSpans": beaten_score_time_spans +"/games:v1/PlayerScoreResponse/beatenScoreTimeSpans/beaten_score_time_span": beaten_score_time_span +"/games:v1/PlayerScoreResponse/formattedScore": formatted_score +"/games:v1/PlayerScoreResponse/kind": kind +"/games:v1/PlayerScoreResponse/leaderboardId": leaderboard_id +"/games:v1/PlayerScoreResponse/scoreTag": score_tag +"/games:v1/PlayerScoreResponse/unbeatenScores": unbeaten_scores +"/games:v1/PlayerScoreResponse/unbeatenScores/unbeaten_score": unbeaten_score +"/games:v1/PlayerScoreSubmissionList": player_score_submission_list +"/games:v1/PlayerScoreSubmissionList/kind": kind +"/games:v1/PlayerScoreSubmissionList/scores": scores +"/games:v1/PlayerScoreSubmissionList/scores/score": score +"/games:v1/PushToken": push_token +"/games:v1/PushToken/clientRevision": client_revision +"/games:v1/PushToken/id": id +"/games:v1/PushToken/kind": kind +"/games:v1/PushToken/language": language +"/games:v1/PushTokenId": push_token_id +"/games:v1/PushTokenId/ios": ios +"/games:v1/PushTokenId/ios/apns_device_token": apns_device_token +"/games:v1/PushTokenId/ios/apns_environment": apns_environment +"/games:v1/PushTokenId/kind": kind +"/games:v1/Quest": quest +"/games:v1/Quest/acceptedTimestampMillis": accepted_timestamp_millis +"/games:v1/Quest/applicationId": application_id +"/games:v1/Quest/bannerUrl": banner_url +"/games:v1/Quest/description": description +"/games:v1/Quest/endTimestampMillis": end_timestamp_millis +"/games:v1/Quest/iconUrl": icon_url +"/games:v1/Quest/id": id +"/games:v1/Quest/isDefaultBannerUrl": is_default_banner_url +"/games:v1/Quest/isDefaultIconUrl": is_default_icon_url +"/games:v1/Quest/kind": kind +"/games:v1/Quest/lastUpdatedTimestampMillis": last_updated_timestamp_millis +"/games:v1/Quest/milestones": milestones +"/games:v1/Quest/milestones/milestone": milestone +"/games:v1/Quest/name": name +"/games:v1/Quest/notifyTimestampMillis": notify_timestamp_millis +"/games:v1/Quest/startTimestampMillis": start_timestamp_millis +"/games:v1/Quest/state": state +"/games:v1/QuestContribution": quest_contribution +"/games:v1/QuestContribution/formattedValue": formatted_value +"/games:v1/QuestContribution/kind": kind +"/games:v1/QuestContribution/value": value +"/games:v1/QuestCriterion": quest_criterion +"/games:v1/QuestCriterion/completionContribution": completion_contribution +"/games:v1/QuestCriterion/currentContribution": current_contribution +"/games:v1/QuestCriterion/eventId": event_id +"/games:v1/QuestCriterion/initialPlayerProgress": initial_player_progress +"/games:v1/QuestCriterion/kind": kind +"/games:v1/QuestListResponse/items": items +"/games:v1/QuestListResponse/items/item": item +"/games:v1/QuestListResponse/kind": kind +"/games:v1/QuestListResponse/nextPageToken": next_page_token +"/games:v1/QuestMilestone": quest_milestone +"/games:v1/QuestMilestone/completionRewardData": completion_reward_data +"/games:v1/QuestMilestone/criteria": criteria +"/games:v1/QuestMilestone/criteria/criterium": criterium +"/games:v1/QuestMilestone/id": id +"/games:v1/QuestMilestone/kind": kind +"/games:v1/QuestMilestone/state": state +"/games:v1/RevisionCheckResponse/apiVersion": api_version +"/games:v1/RevisionCheckResponse/kind": kind +"/games:v1/RevisionCheckResponse/revisionStatus": revision_status +"/games:v1/Room": room +"/games:v1/Room/applicationId": application_id +"/games:v1/Room/autoMatchingCriteria": auto_matching_criteria +"/games:v1/Room/autoMatchingStatus": auto_matching_status +"/games:v1/Room/creationDetails": creation_details +"/games:v1/Room/description": description +"/games:v1/Room/inviterId": inviter_id +"/games:v1/Room/kind": kind +"/games:v1/Room/lastUpdateDetails": last_update_details +"/games:v1/Room/participants": participants +"/games:v1/Room/participants/participant": participant +"/games:v1/Room/roomId": room_id +"/games:v1/Room/roomStatusVersion": room_status_version +"/games:v1/Room/status": status +"/games:v1/Room/variant": variant +"/games:v1/RoomAutoMatchStatus": room_auto_match_status +"/games:v1/RoomAutoMatchStatus/kind": kind +"/games:v1/RoomAutoMatchStatus/waitEstimateSeconds": wait_estimate_seconds +"/games:v1/RoomAutoMatchingCriteria": room_auto_matching_criteria +"/games:v1/RoomAutoMatchingCriteria/exclusiveBitmask": exclusive_bitmask +"/games:v1/RoomAutoMatchingCriteria/kind": kind +"/games:v1/RoomAutoMatchingCriteria/maxAutoMatchingPlayers": max_auto_matching_players +"/games:v1/RoomAutoMatchingCriteria/minAutoMatchingPlayers": min_auto_matching_players +"/games:v1/RoomClientAddress": room_client_address +"/games:v1/RoomClientAddress/kind": kind +"/games:v1/RoomClientAddress/xmppAddress": xmpp_address +"/games:v1/RoomCreateRequest/autoMatchingCriteria": auto_matching_criteria +"/games:v1/RoomCreateRequest/capabilities": capabilities +"/games:v1/RoomCreateRequest/capabilities/capability": capability +"/games:v1/RoomCreateRequest/clientAddress": client_address +"/games:v1/RoomCreateRequest/invitedPlayerIds": invited_player_ids +"/games:v1/RoomCreateRequest/invitedPlayerIds/invited_player_id": invited_player_id +"/games:v1/RoomCreateRequest/kind": kind +"/games:v1/RoomCreateRequest/networkDiagnostics": network_diagnostics +"/games:v1/RoomCreateRequest/requestId": request_id +"/games:v1/RoomCreateRequest/variant": variant +"/games:v1/RoomJoinRequest/capabilities": capabilities +"/games:v1/RoomJoinRequest/capabilities/capability": capability +"/games:v1/RoomJoinRequest/clientAddress": client_address +"/games:v1/RoomJoinRequest/kind": kind +"/games:v1/RoomJoinRequest/networkDiagnostics": network_diagnostics +"/games:v1/RoomLeaveDiagnostics": room_leave_diagnostics +"/games:v1/RoomLeaveDiagnostics/androidNetworkSubtype": android_network_subtype +"/games:v1/RoomLeaveDiagnostics/androidNetworkType": android_network_type +"/games:v1/RoomLeaveDiagnostics/iosNetworkType": ios_network_type +"/games:v1/RoomLeaveDiagnostics/kind": kind +"/games:v1/RoomLeaveDiagnostics/networkOperatorCode": network_operator_code +"/games:v1/RoomLeaveDiagnostics/networkOperatorName": network_operator_name +"/games:v1/RoomLeaveDiagnostics/peerSession": peer_session +"/games:v1/RoomLeaveDiagnostics/peerSession/peer_session": peer_session +"/games:v1/RoomLeaveDiagnostics/socketsUsed": sockets_used +"/games:v1/RoomLeaveRequest/kind": kind +"/games:v1/RoomLeaveRequest/leaveDiagnostics": leave_diagnostics +"/games:v1/RoomLeaveRequest/reason": reason +"/games:v1/RoomList": room_list +"/games:v1/RoomList/items": items +"/games:v1/RoomList/items/item": item +"/games:v1/RoomList/kind": kind +"/games:v1/RoomList/nextPageToken": next_page_token +"/games:v1/RoomModification": room_modification +"/games:v1/RoomModification/kind": kind +"/games:v1/RoomModification/modifiedTimestampMillis": modified_timestamp_millis +"/games:v1/RoomModification/participantId": participant_id +"/games:v1/RoomP2PStatus": room_p2_p_status +"/games:v1/RoomP2PStatus/connectionSetupLatencyMillis": connection_setup_latency_millis +"/games:v1/RoomP2PStatus/error": error +"/games:v1/RoomP2PStatus/error_reason": error_reason +"/games:v1/RoomP2PStatus/kind": kind +"/games:v1/RoomP2PStatus/participantId": participant_id +"/games:v1/RoomP2PStatus/status": status +"/games:v1/RoomP2PStatus/unreliableRoundtripLatencyMillis": unreliable_roundtrip_latency_millis +"/games:v1/RoomP2PStatuses": room_p2_p_statuses +"/games:v1/RoomP2PStatuses/kind": kind +"/games:v1/RoomP2PStatuses/updates": updates +"/games:v1/RoomP2PStatuses/updates/update": update +"/games:v1/RoomParticipant": room_participant +"/games:v1/RoomParticipant/autoMatched": auto_matched +"/games:v1/RoomParticipant/autoMatchedPlayer": auto_matched_player +"/games:v1/RoomParticipant/capabilities": capabilities +"/games:v1/RoomParticipant/capabilities/capability": capability +"/games:v1/RoomParticipant/clientAddress": client_address +"/games:v1/RoomParticipant/connected": connected +"/games:v1/RoomParticipant/id": id +"/games:v1/RoomParticipant/kind": kind +"/games:v1/RoomParticipant/leaveReason": leave_reason +"/games:v1/RoomParticipant/player": player +"/games:v1/RoomParticipant/status": status +"/games:v1/RoomStatus": room_status +"/games:v1/RoomStatus/autoMatchingStatus": auto_matching_status +"/games:v1/RoomStatus/kind": kind +"/games:v1/RoomStatus/participants": participants +"/games:v1/RoomStatus/participants/participant": participant +"/games:v1/RoomStatus/roomId": room_id +"/games:v1/RoomStatus/status": status +"/games:v1/RoomStatus/statusVersion": status_version +"/games:v1/ScoreSubmission": score_submission +"/games:v1/ScoreSubmission/kind": kind +"/games:v1/ScoreSubmission/leaderboardId": leaderboard_id +"/games:v1/ScoreSubmission/score": score +"/games:v1/ScoreSubmission/scoreTag": score_tag +"/games:v1/ScoreSubmission/signature": signature +"/games:v1/Snapshot": snapshot +"/games:v1/Snapshot/coverImage": cover_image +"/games:v1/Snapshot/description": description +"/games:v1/Snapshot/driveId": drive_id +"/games:v1/Snapshot/durationMillis": duration_millis +"/games:v1/Snapshot/id": id +"/games:v1/Snapshot/kind": kind +"/games:v1/Snapshot/lastModifiedMillis": last_modified_millis +"/games:v1/Snapshot/progressValue": progress_value +"/games:v1/Snapshot/title": title +"/games:v1/Snapshot/type": type +"/games:v1/Snapshot/uniqueName": unique_name +"/games:v1/SnapshotImage": snapshot_image +"/games:v1/SnapshotImage/height": height +"/games:v1/SnapshotImage/kind": kind +"/games:v1/SnapshotImage/mime_type": mime_type +"/games:v1/SnapshotImage/url": url +"/games:v1/SnapshotImage/width": width +"/games:v1/SnapshotListResponse/items": items +"/games:v1/SnapshotListResponse/items/item": item +"/games:v1/SnapshotListResponse/kind": kind +"/games:v1/SnapshotListResponse/nextPageToken": next_page_token +"/games:v1/TurnBasedAutoMatchingCriteria": turn_based_auto_matching_criteria +"/games:v1/TurnBasedAutoMatchingCriteria/exclusiveBitmask": exclusive_bitmask +"/games:v1/TurnBasedAutoMatchingCriteria/kind": kind +"/games:v1/TurnBasedAutoMatchingCriteria/maxAutoMatchingPlayers": max_auto_matching_players +"/games:v1/TurnBasedAutoMatchingCriteria/minAutoMatchingPlayers": min_auto_matching_players +"/games:v1/TurnBasedMatch": turn_based_match +"/games:v1/TurnBasedMatch/applicationId": application_id +"/games:v1/TurnBasedMatch/autoMatchingCriteria": auto_matching_criteria +"/games:v1/TurnBasedMatch/creationDetails": creation_details +"/games:v1/TurnBasedMatch/data": data +"/games:v1/TurnBasedMatch/description": description +"/games:v1/TurnBasedMatch/inviterId": inviter_id +"/games:v1/TurnBasedMatch/kind": kind +"/games:v1/TurnBasedMatch/lastUpdateDetails": last_update_details +"/games:v1/TurnBasedMatch/matchId": match_id +"/games:v1/TurnBasedMatch/matchNumber": match_number +"/games:v1/TurnBasedMatch/matchVersion": match_version +"/games:v1/TurnBasedMatch/participants": participants +"/games:v1/TurnBasedMatch/participants/participant": participant +"/games:v1/TurnBasedMatch/pendingParticipantId": pending_participant_id +"/games:v1/TurnBasedMatch/previousMatchData": previous_match_data +"/games:v1/TurnBasedMatch/rematchId": rematch_id +"/games:v1/TurnBasedMatch/results": results +"/games:v1/TurnBasedMatch/results/result": result +"/games:v1/TurnBasedMatch/status": status +"/games:v1/TurnBasedMatch/userMatchStatus": user_match_status +"/games:v1/TurnBasedMatch/variant": variant +"/games:v1/TurnBasedMatch/withParticipantId": with_participant_id +"/games:v1/TurnBasedMatchCreateRequest/autoMatchingCriteria": auto_matching_criteria +"/games:v1/TurnBasedMatchCreateRequest/invitedPlayerIds": invited_player_ids +"/games:v1/TurnBasedMatchCreateRequest/invitedPlayerIds/invited_player_id": invited_player_id +"/games:v1/TurnBasedMatchCreateRequest/kind": kind +"/games:v1/TurnBasedMatchCreateRequest/requestId": request_id +"/games:v1/TurnBasedMatchCreateRequest/variant": variant +"/games:v1/TurnBasedMatchData": turn_based_match_data +"/games:v1/TurnBasedMatchData/data": data +"/games:v1/TurnBasedMatchData/dataAvailable": data_available +"/games:v1/TurnBasedMatchData/kind": kind +"/games:v1/TurnBasedMatchDataRequest/data": data +"/games:v1/TurnBasedMatchDataRequest/kind": kind +"/games:v1/TurnBasedMatchList": turn_based_match_list +"/games:v1/TurnBasedMatchList/items": items +"/games:v1/TurnBasedMatchList/items/item": item +"/games:v1/TurnBasedMatchList/kind": kind +"/games:v1/TurnBasedMatchList/nextPageToken": next_page_token +"/games:v1/TurnBasedMatchModification": turn_based_match_modification +"/games:v1/TurnBasedMatchModification/kind": kind +"/games:v1/TurnBasedMatchModification/modifiedTimestampMillis": modified_timestamp_millis +"/games:v1/TurnBasedMatchModification/participantId": participant_id +"/games:v1/TurnBasedMatchParticipant": turn_based_match_participant +"/games:v1/TurnBasedMatchParticipant/autoMatched": auto_matched +"/games:v1/TurnBasedMatchParticipant/autoMatchedPlayer": auto_matched_player +"/games:v1/TurnBasedMatchParticipant/id": id +"/games:v1/TurnBasedMatchParticipant/kind": kind +"/games:v1/TurnBasedMatchParticipant/player": player +"/games:v1/TurnBasedMatchParticipant/status": status +"/games:v1/TurnBasedMatchRematch": turn_based_match_rematch +"/games:v1/TurnBasedMatchRematch/kind": kind +"/games:v1/TurnBasedMatchRematch/previousMatch": previous_match +"/games:v1/TurnBasedMatchRematch/rematch": rematch +"/games:v1/TurnBasedMatchResults": turn_based_match_results +"/games:v1/TurnBasedMatchResults/data": data +"/games:v1/TurnBasedMatchResults/kind": kind +"/games:v1/TurnBasedMatchResults/matchVersion": match_version +"/games:v1/TurnBasedMatchResults/results": results +"/games:v1/TurnBasedMatchResults/results/result": result +"/games:v1/TurnBasedMatchSync": turn_based_match_sync +"/games:v1/TurnBasedMatchSync/items": items +"/games:v1/TurnBasedMatchSync/items/item": item +"/games:v1/TurnBasedMatchSync/kind": kind +"/games:v1/TurnBasedMatchSync/moreAvailable": more_available +"/games:v1/TurnBasedMatchSync/nextPageToken": next_page_token +"/games:v1/TurnBasedMatchTurn": turn_based_match_turn +"/games:v1/TurnBasedMatchTurn/data": data +"/games:v1/TurnBasedMatchTurn/kind": kind +"/games:v1/TurnBasedMatchTurn/matchVersion": match_version +"/games:v1/TurnBasedMatchTurn/pendingParticipantId": pending_participant_id +"/games:v1/TurnBasedMatchTurn/results": results +"/games:v1/TurnBasedMatchTurn/results/result": result +"/gamesConfiguration:v1configuration/fields": fields +"/gamesConfiguration:v1configuration/key": key +"/gamesConfiguration:v1configuration/quotaUser": quota_user +"/gamesConfiguration:v1configuration/userIp": user_ip +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.delete": delete_achievement_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.delete/achievementId": achievement_id +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.get": get_achievement_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.get/achievementId": achievement_id +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.insert": insert_achievement_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.insert/applicationId": application_id +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.list": list_achievement_configurations +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.list/applicationId": application_id +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.list/maxResults": max_results +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.list/pageToken": page_token +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.patch": patch_achievement_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.patch/achievementId": achievement_id +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.update": update_achievement_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.achievementConfigurations.update/achievementId": achievement_id +"/gamesConfiguration:v1configuration/gamesConfiguration.imageConfigurations.upload": upload_image_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.imageConfigurations.upload/imageType": image_type +"/gamesConfiguration:v1configuration/gamesConfiguration.imageConfigurations.upload/resourceId": resource_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.delete": delete_leaderboard_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.delete/leaderboardId": leaderboard_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.get": get_leaderboard_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.get/leaderboardId": leaderboard_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.insert": insert_leaderboard_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.insert/applicationId": application_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.list": list_leaderboard_configurations +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.list/applicationId": application_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.list/maxResults": max_results +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.list/pageToken": page_token +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.patch": patch_leaderboard_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.patch/leaderboardId": leaderboard_id +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.update": update_leaderboard_configuration +"/gamesConfiguration:v1configuration/gamesConfiguration.leaderboardConfigurations.update/leaderboardId": leaderboard_id +"/gamesConfiguration:v1configuration/AchievementConfiguration": achievement_configuration +"/gamesConfiguration:v1configuration/AchievementConfiguration/achievementType": achievement_type +"/gamesConfiguration:v1configuration/AchievementConfiguration/draft": draft +"/gamesConfiguration:v1configuration/AchievementConfiguration/id": id +"/gamesConfiguration:v1configuration/AchievementConfiguration/initialState": initial_state +"/gamesConfiguration:v1configuration/AchievementConfiguration/kind": kind +"/gamesConfiguration:v1configuration/AchievementConfiguration/published": published +"/gamesConfiguration:v1configuration/AchievementConfiguration/stepsToUnlock": steps_to_unlock +"/gamesConfiguration:v1configuration/AchievementConfiguration/token": token +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail": achievement_configuration_detail +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/description": description +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/iconUrl": icon_url +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/kind": kind +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/name": name +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/pointValue": point_value +"/gamesConfiguration:v1configuration/AchievementConfigurationDetail/sortRank": sort_rank +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse/items": items +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse/items/item": item +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse/kind": kind +"/gamesConfiguration:v1configuration/AchievementConfigurationListResponse/nextPageToken": next_page_token +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration": games_number_affix_configuration +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/few": few +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/many": many +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/one": one +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/other": other +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/two": two +"/gamesConfiguration:v1configuration/GamesNumberAffixConfiguration/zero": zero +"/gamesConfiguration:v1configuration/GamesNumberFormatConfiguration": games_number_format_configuration +"/gamesConfiguration:v1configuration/GamesNumberFormatConfiguration/currencyCode": currency_code +"/gamesConfiguration:v1configuration/GamesNumberFormatConfiguration/numDecimalPlaces": num_decimal_places +"/gamesConfiguration:v1configuration/GamesNumberFormatConfiguration/numberFormatType": number_format_type +"/gamesConfiguration:v1configuration/GamesNumberFormatConfiguration/suffix": suffix +"/gamesConfiguration:v1configuration/ImageConfiguration": image_configuration +"/gamesConfiguration:v1configuration/ImageConfiguration/imageType": image_type +"/gamesConfiguration:v1configuration/ImageConfiguration/kind": kind +"/gamesConfiguration:v1configuration/ImageConfiguration/resourceId": resource_id +"/gamesConfiguration:v1configuration/ImageConfiguration/url": url +"/gamesConfiguration:v1configuration/LeaderboardConfiguration": leaderboard_configuration +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/draft": draft +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/id": id +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/kind": kind +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/published": published +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/scoreMax": score_max +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/scoreMin": score_min +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/scoreOrder": score_order +"/gamesConfiguration:v1configuration/LeaderboardConfiguration/token": token +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail": leaderboard_configuration_detail +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail/iconUrl": icon_url +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail/kind": kind +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail/name": name +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail/scoreFormat": score_format +"/gamesConfiguration:v1configuration/LeaderboardConfigurationDetail/sortRank": sort_rank +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse/items": items +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse/items/item": item +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse/kind": kind +"/gamesConfiguration:v1configuration/LeaderboardConfigurationListResponse/nextPageToken": next_page_token +"/gamesConfiguration:v1configuration/LocalizedString": localized_string +"/gamesConfiguration:v1configuration/LocalizedString/kind": kind +"/gamesConfiguration:v1configuration/LocalizedString/locale": locale +"/gamesConfiguration:v1configuration/LocalizedString/value": value +"/gamesConfiguration:v1configuration/LocalizedStringBundle": localized_string_bundle +"/gamesConfiguration:v1configuration/LocalizedStringBundle/kind": kind +"/gamesConfiguration:v1configuration/LocalizedStringBundle/translations": translations +"/gamesConfiguration:v1configuration/LocalizedStringBundle/translations/translation": translation +"/gan:v1beta1/fields": fields +"/gan:v1beta1/key": key +"/gan:v1beta1/quotaUser": quota_user +"/gan:v1beta1/userIp": user_ip +"/gan:v1beta1/gan.advertisers.get": get_advertiser +"/gan:v1beta1/gan.advertisers.get/advertiserId": advertiser_id +"/gan:v1beta1/gan.advertisers.get/role": role +"/gan:v1beta1/gan.advertisers.get/roleId": role_id +"/gan:v1beta1/gan.advertisers.list": list_advertisers +"/gan:v1beta1/gan.advertisers.list/advertiserCategory": advertiser_category +"/gan:v1beta1/gan.advertisers.list/maxResults": max_results +"/gan:v1beta1/gan.advertisers.list/minNinetyDayEpc": min_ninety_day_epc +"/gan:v1beta1/gan.advertisers.list/minPayoutRank": min_payout_rank +"/gan:v1beta1/gan.advertisers.list/minSevenDayEpc": min_seven_day_epc +"/gan:v1beta1/gan.advertisers.list/pageToken": page_token +"/gan:v1beta1/gan.advertisers.list/relationshipStatus": relationship_status +"/gan:v1beta1/gan.advertisers.list/role": role +"/gan:v1beta1/gan.advertisers.list/roleId": role_id +"/gan:v1beta1/gan.ccOffers.list": list_cc_offers +"/gan:v1beta1/gan.ccOffers.list/advertiser": advertiser +"/gan:v1beta1/gan.ccOffers.list/projection": projection +"/gan:v1beta1/gan.ccOffers.list/publisher": publisher +"/gan:v1beta1/gan.events.list": list_events +"/gan:v1beta1/gan.events.list/advertiserId": advertiser_id +"/gan:v1beta1/gan.events.list/chargeType": charge_type +"/gan:v1beta1/gan.events.list/eventDateMax": event_date_max +"/gan:v1beta1/gan.events.list/eventDateMin": event_date_min +"/gan:v1beta1/gan.events.list/linkId": link_id +"/gan:v1beta1/gan.events.list/maxResults": max_results +"/gan:v1beta1/gan.events.list/memberId": member_id +"/gan:v1beta1/gan.events.list/modifyDateMax": modify_date_max +"/gan:v1beta1/gan.events.list/modifyDateMin": modify_date_min +"/gan:v1beta1/gan.events.list/orderId": order_id +"/gan:v1beta1/gan.events.list/pageToken": page_token +"/gan:v1beta1/gan.events.list/productCategory": product_category +"/gan:v1beta1/gan.events.list/publisherId": publisher_id +"/gan:v1beta1/gan.events.list/role": role +"/gan:v1beta1/gan.events.list/roleId": role_id +"/gan:v1beta1/gan.events.list/sku": sku +"/gan:v1beta1/gan.events.list/status": status +"/gan:v1beta1/gan.events.list/type": type +"/gan:v1beta1/gan.links.get": get_link +"/gan:v1beta1/gan.links.get/linkId": link_id +"/gan:v1beta1/gan.links.get/role": role +"/gan:v1beta1/gan.links.get/roleId": role_id +"/gan:v1beta1/gan.links.insert": insert_link +"/gan:v1beta1/gan.links.insert/role": role +"/gan:v1beta1/gan.links.insert/roleId": role_id +"/gan:v1beta1/gan.links.list": list_links +"/gan:v1beta1/gan.links.list/advertiserId": advertiser_id +"/gan:v1beta1/gan.links.list/assetSize": asset_size +"/gan:v1beta1/gan.links.list/authorship": authorship +"/gan:v1beta1/gan.links.list/createDateMax": create_date_max +"/gan:v1beta1/gan.links.list/createDateMin": create_date_min +"/gan:v1beta1/gan.links.list/linkType": link_type +"/gan:v1beta1/gan.links.list/maxResults": max_results +"/gan:v1beta1/gan.links.list/pageToken": page_token +"/gan:v1beta1/gan.links.list/promotionType": promotion_type +"/gan:v1beta1/gan.links.list/relationshipStatus": relationship_status +"/gan:v1beta1/gan.links.list/role": role +"/gan:v1beta1/gan.links.list/roleId": role_id +"/gan:v1beta1/gan.links.list/searchText": search_text +"/gan:v1beta1/gan.links.list/startDateMax": start_date_max +"/gan:v1beta1/gan.links.list/startDateMin": start_date_min +"/gan:v1beta1/gan.publishers.get": get_publisher +"/gan:v1beta1/gan.publishers.get/publisherId": publisher_id +"/gan:v1beta1/gan.publishers.get/role": role +"/gan:v1beta1/gan.publishers.get/roleId": role_id +"/gan:v1beta1/gan.publishers.list": list_publishers +"/gan:v1beta1/gan.publishers.list/maxResults": max_results +"/gan:v1beta1/gan.publishers.list/minNinetyDayEpc": min_ninety_day_epc +"/gan:v1beta1/gan.publishers.list/minPayoutRank": min_payout_rank +"/gan:v1beta1/gan.publishers.list/minSevenDayEpc": min_seven_day_epc +"/gan:v1beta1/gan.publishers.list/pageToken": page_token +"/gan:v1beta1/gan.publishers.list/publisherCategory": publisher_category +"/gan:v1beta1/gan.publishers.list/relationshipStatus": relationship_status +"/gan:v1beta1/gan.publishers.list/role": role +"/gan:v1beta1/gan.publishers.list/roleId": role_id +"/gan:v1beta1/gan.reports.get": get_report +"/gan:v1beta1/gan.reports.get/advertiserId": advertiser_id +"/gan:v1beta1/gan.reports.get/calculateTotals": calculate_totals +"/gan:v1beta1/gan.reports.get/endDate": end_date +"/gan:v1beta1/gan.reports.get/eventType": event_type +"/gan:v1beta1/gan.reports.get/linkId": link_id +"/gan:v1beta1/gan.reports.get/maxResults": max_results +"/gan:v1beta1/gan.reports.get/orderId": order_id +"/gan:v1beta1/gan.reports.get/publisherId": publisher_id +"/gan:v1beta1/gan.reports.get/reportType": report_type +"/gan:v1beta1/gan.reports.get/role": role +"/gan:v1beta1/gan.reports.get/roleId": role_id +"/gan:v1beta1/gan.reports.get/startDate": start_date +"/gan:v1beta1/gan.reports.get/startIndex": start_index +"/gan:v1beta1/gan.reports.get/status": status +"/gan:v1beta1/Advertiser": advertiser +"/gan:v1beta1/Advertiser/allowPublisherCreatedLinks": allow_publisher_created_links +"/gan:v1beta1/Advertiser/category": category +"/gan:v1beta1/Advertiser/commissionDuration": commission_duration +"/gan:v1beta1/Advertiser/contactEmail": contact_email +"/gan:v1beta1/Advertiser/contactPhone": contact_phone +"/gan:v1beta1/Advertiser/defaultLinkId": default_link_id +"/gan:v1beta1/Advertiser/description": description +"/gan:v1beta1/Advertiser/epcNinetyDayAverage": epc_ninety_day_average +"/gan:v1beta1/Advertiser/epcSevenDayAverage": epc_seven_day_average +"/gan:v1beta1/Advertiser/id": id +"/gan:v1beta1/Advertiser/item": item +"/gan:v1beta1/Advertiser/joinDate": join_date +"/gan:v1beta1/Advertiser/kind": kind +"/gan:v1beta1/Advertiser/logoUrl": logo_url +"/gan:v1beta1/Advertiser/merchantCenterIds": merchant_center_ids +"/gan:v1beta1/Advertiser/merchantCenterIds/merchant_center_id": merchant_center_id +"/gan:v1beta1/Advertiser/name": name +"/gan:v1beta1/Advertiser/payoutRank": payout_rank +"/gan:v1beta1/Advertiser/productFeedsEnabled": product_feeds_enabled +"/gan:v1beta1/Advertiser/redirectDomains": redirect_domains +"/gan:v1beta1/Advertiser/redirectDomains/redirect_domain": redirect_domain +"/gan:v1beta1/Advertiser/siteUrl": site_url +"/gan:v1beta1/Advertiser/status": status +"/gan:v1beta1/Advertisers": advertisers +"/gan:v1beta1/Advertisers/items": items +"/gan:v1beta1/Advertisers/items/item": item +"/gan:v1beta1/Advertisers/kind": kind +"/gan:v1beta1/Advertisers/nextPageToken": next_page_token +"/gan:v1beta1/CcOffer": cc_offer +"/gan:v1beta1/CcOffer/additionalCardBenefits": additional_card_benefits +"/gan:v1beta1/CcOffer/additionalCardBenefits/additional_card_benefit": additional_card_benefit +"/gan:v1beta1/CcOffer/additionalCardHolderFee": additional_card_holder_fee +"/gan:v1beta1/CcOffer/ageMinimum": age_minimum +"/gan:v1beta1/CcOffer/ageMinimumDetails": age_minimum_details +"/gan:v1beta1/CcOffer/annualFee": annual_fee +"/gan:v1beta1/CcOffer/annualFeeDisplay": annual_fee_display +"/gan:v1beta1/CcOffer/annualRewardMaximum": annual_reward_maximum +"/gan:v1beta1/CcOffer/approvedCategories": approved_categories +"/gan:v1beta1/CcOffer/approvedCategories/approved_category": approved_category +"/gan:v1beta1/CcOffer/aprDisplay": apr_display +"/gan:v1beta1/CcOffer/balanceComputationMethod": balance_computation_method +"/gan:v1beta1/CcOffer/balanceTransferTerms": balance_transfer_terms +"/gan:v1beta1/CcOffer/bonusRewards": bonus_rewards +"/gan:v1beta1/CcOffer/bonusRewards/bonus_reward": bonus_reward +"/gan:v1beta1/CcOffer/bonusRewards/bonus_reward/amount": amount +"/gan:v1beta1/CcOffer/bonusRewards/bonus_reward/details": details +"/gan:v1beta1/CcOffer/carRentalInsurance": car_rental_insurance +"/gan:v1beta1/CcOffer/cardBenefits": card_benefits +"/gan:v1beta1/CcOffer/cardBenefits/card_benefit": card_benefit +"/gan:v1beta1/CcOffer/cardName": card_name +"/gan:v1beta1/CcOffer/cardType": card_type +"/gan:v1beta1/CcOffer/cashAdvanceTerms": cash_advance_terms +"/gan:v1beta1/CcOffer/creditLimitMax": credit_limit_max +"/gan:v1beta1/CcOffer/creditLimitMin": credit_limit_min +"/gan:v1beta1/CcOffer/creditRatingDisplay": credit_rating_display +"/gan:v1beta1/CcOffer/defaultFees": default_fees +"/gan:v1beta1/CcOffer/defaultFees/default_fee": default_fee +"/gan:v1beta1/CcOffer/defaultFees/default_fee/category": category +"/gan:v1beta1/CcOffer/defaultFees/default_fee/maxRate": max_rate +"/gan:v1beta1/CcOffer/defaultFees/default_fee/minRate": min_rate +"/gan:v1beta1/CcOffer/defaultFees/default_fee/rateType": rate_type +"/gan:v1beta1/CcOffer/disclaimer": disclaimer +"/gan:v1beta1/CcOffer/emergencyInsurance": emergency_insurance +"/gan:v1beta1/CcOffer/existingCustomerOnly": existing_customer_only +"/gan:v1beta1/CcOffer/extendedWarranty": extended_warranty +"/gan:v1beta1/CcOffer/firstYearAnnualFee": first_year_annual_fee +"/gan:v1beta1/CcOffer/flightAccidentInsurance": flight_accident_insurance +"/gan:v1beta1/CcOffer/foreignCurrencyTransactionFee": foreign_currency_transaction_fee +"/gan:v1beta1/CcOffer/fraudLiability": fraud_liability +"/gan:v1beta1/CcOffer/gracePeriodDisplay": grace_period_display +"/gan:v1beta1/CcOffer/imageUrl": image_url +"/gan:v1beta1/CcOffer/initialSetupAndProcessingFee": initial_setup_and_processing_fee +"/gan:v1beta1/CcOffer/introBalanceTransferTerms": intro_balance_transfer_terms +"/gan:v1beta1/CcOffer/introCashAdvanceTerms": intro_cash_advance_terms +"/gan:v1beta1/CcOffer/introPurchaseTerms": intro_purchase_terms +"/gan:v1beta1/CcOffer/issuer": issuer +"/gan:v1beta1/CcOffer/issuerId": issuer_id +"/gan:v1beta1/CcOffer/issuerWebsite": issuer_website +"/gan:v1beta1/CcOffer/kind": kind +"/gan:v1beta1/CcOffer/landingPageUrl": landing_page_url +"/gan:v1beta1/CcOffer/latePaymentFee": late_payment_fee +"/gan:v1beta1/CcOffer/luggageInsurance": luggage_insurance +"/gan:v1beta1/CcOffer/maxPurchaseRate": max_purchase_rate +"/gan:v1beta1/CcOffer/minPurchaseRate": min_purchase_rate +"/gan:v1beta1/CcOffer/minimumFinanceCharge": minimum_finance_charge +"/gan:v1beta1/CcOffer/network": network +"/gan:v1beta1/CcOffer/offerId": offer_id +"/gan:v1beta1/CcOffer/offersImmediateCashReward": offers_immediate_cash_reward +"/gan:v1beta1/CcOffer/overLimitFee": over_limit_fee +"/gan:v1beta1/CcOffer/prohibitedCategories": prohibited_categories +"/gan:v1beta1/CcOffer/prohibitedCategories/prohibited_category": prohibited_category +"/gan:v1beta1/CcOffer/purchaseRateAdditionalDetails": purchase_rate_additional_details +"/gan:v1beta1/CcOffer/purchaseRateType": purchase_rate_type +"/gan:v1beta1/CcOffer/returnedPaymentFee": returned_payment_fee +"/gan:v1beta1/CcOffer/rewardPartner": reward_partner +"/gan:v1beta1/CcOffer/rewardUnit": reward_unit +"/gan:v1beta1/CcOffer/rewards": rewards +"/gan:v1beta1/CcOffer/rewards/reward": reward +"/gan:v1beta1/CcOffer/rewards/reward/additionalDetails": additional_details +"/gan:v1beta1/CcOffer/rewards/reward/amount": amount +"/gan:v1beta1/CcOffer/rewards/reward/category": category +"/gan:v1beta1/CcOffer/rewards/reward/expirationMonths": expiration_months +"/gan:v1beta1/CcOffer/rewards/reward/maxRewardTier": max_reward_tier +"/gan:v1beta1/CcOffer/rewards/reward/minRewardTier": min_reward_tier +"/gan:v1beta1/CcOffer/rewardsExpire": rewards_expire +"/gan:v1beta1/CcOffer/rewardsHaveBlackoutDates": rewards_have_blackout_dates +"/gan:v1beta1/CcOffer/statementCopyFee": statement_copy_fee +"/gan:v1beta1/CcOffer/trackingUrl": tracking_url +"/gan:v1beta1/CcOffer/travelInsurance": travel_insurance +"/gan:v1beta1/CcOffer/variableRatesLastUpdated": variable_rates_last_updated +"/gan:v1beta1/CcOffer/variableRatesUpdateFrequency": variable_rates_update_frequency +"/gan:v1beta1/CcOffers": cc_offers +"/gan:v1beta1/CcOffers/items": items +"/gan:v1beta1/CcOffers/items/item": item +"/gan:v1beta1/CcOffers/kind": kind +"/gan:v1beta1/Event": event +"/gan:v1beta1/Event/advertiserId": advertiser_id +"/gan:v1beta1/Event/advertiserName": advertiser_name +"/gan:v1beta1/Event/chargeId": charge_id +"/gan:v1beta1/Event/chargeType": charge_type +"/gan:v1beta1/Event/commissionableSales": commissionable_sales +"/gan:v1beta1/Event/earnings": earnings +"/gan:v1beta1/Event/eventDate": event_date +"/gan:v1beta1/Event/kind": kind +"/gan:v1beta1/Event/memberId": member_id +"/gan:v1beta1/Event/modifyDate": modify_date +"/gan:v1beta1/Event/networkFee": network_fee +"/gan:v1beta1/Event/orderId": order_id +"/gan:v1beta1/Event/products": products +"/gan:v1beta1/Event/products/product": product +"/gan:v1beta1/Event/products/product/categoryId": category_id +"/gan:v1beta1/Event/products/product/categoryName": category_name +"/gan:v1beta1/Event/products/product/earnings": earnings +"/gan:v1beta1/Event/products/product/networkFee": network_fee +"/gan:v1beta1/Event/products/product/publisherFee": publisher_fee +"/gan:v1beta1/Event/products/product/quantity": quantity +"/gan:v1beta1/Event/products/product/sku": sku +"/gan:v1beta1/Event/products/product/skuName": sku_name +"/gan:v1beta1/Event/products/product/unitPrice": unit_price +"/gan:v1beta1/Event/publisherFee": publisher_fee +"/gan:v1beta1/Event/publisherId": publisher_id +"/gan:v1beta1/Event/publisherName": publisher_name +"/gan:v1beta1/Event/status": status +"/gan:v1beta1/Event/type": type +"/gan:v1beta1/Events": events +"/gan:v1beta1/Events/items": items +"/gan:v1beta1/Events/items/item": item +"/gan:v1beta1/Events/kind": kind +"/gan:v1beta1/Events/nextPageToken": next_page_token +"/gan:v1beta1/Link": link +"/gan:v1beta1/Link/advertiserId": advertiser_id +"/gan:v1beta1/Link/authorship": authorship +"/gan:v1beta1/Link/availability": availability +"/gan:v1beta1/Link/clickTrackingUrl": click_tracking_url +"/gan:v1beta1/Link/createDate": create_date +"/gan:v1beta1/Link/description": description +"/gan:v1beta1/Link/destinationUrl": destination_url +"/gan:v1beta1/Link/duration": duration +"/gan:v1beta1/Link/endDate": end_date +"/gan:v1beta1/Link/epcNinetyDayAverage": epc_ninety_day_average +"/gan:v1beta1/Link/epcSevenDayAverage": epc_seven_day_average +"/gan:v1beta1/Link/id": id +"/gan:v1beta1/Link/imageAltText": image_alt_text +"/gan:v1beta1/Link/impressionTrackingUrl": impression_tracking_url +"/gan:v1beta1/Link/isActive": is_active +"/gan:v1beta1/Link/kind": kind +"/gan:v1beta1/Link/linkType": link_type +"/gan:v1beta1/Link/name": name +"/gan:v1beta1/Link/promotionType": promotion_type +"/gan:v1beta1/Link/specialOffers": special_offers +"/gan:v1beta1/Link/specialOffers/freeGift": free_gift +"/gan:v1beta1/Link/specialOffers/freeShipping": free_shipping +"/gan:v1beta1/Link/specialOffers/freeShippingMin": free_shipping_min +"/gan:v1beta1/Link/specialOffers/percentOff": percent_off +"/gan:v1beta1/Link/specialOffers/percentOffMin": percent_off_min +"/gan:v1beta1/Link/specialOffers/priceCut": price_cut +"/gan:v1beta1/Link/specialOffers/priceCutMin": price_cut_min +"/gan:v1beta1/Link/specialOffers/promotionCodes": promotion_codes +"/gan:v1beta1/Link/specialOffers/promotionCodes/promotion_code": promotion_code +"/gan:v1beta1/Link/startDate": start_date +"/gan:v1beta1/Links": links +"/gan:v1beta1/Links/items": items +"/gan:v1beta1/Links/items/item": item +"/gan:v1beta1/Links/kind": kind +"/gan:v1beta1/Links/nextPageToken": next_page_token +"/gan:v1beta1/Money": money +"/gan:v1beta1/Money/amount": amount +"/gan:v1beta1/Money/currencyCode": currency_code +"/gan:v1beta1/Publisher": publisher +"/gan:v1beta1/Publisher/classification": classification +"/gan:v1beta1/Publisher/epcNinetyDayAverage": epc_ninety_day_average +"/gan:v1beta1/Publisher/epcSevenDayAverage": epc_seven_day_average +"/gan:v1beta1/Publisher/id": id +"/gan:v1beta1/Publisher/item": item +"/gan:v1beta1/Publisher/joinDate": join_date +"/gan:v1beta1/Publisher/kind": kind +"/gan:v1beta1/Publisher/name": name +"/gan:v1beta1/Publisher/payoutRank": payout_rank +"/gan:v1beta1/Publisher/sites": sites +"/gan:v1beta1/Publisher/sites/site": site +"/gan:v1beta1/Publisher/status": status +"/gan:v1beta1/Publishers": publishers +"/gan:v1beta1/Publishers/items": items +"/gan:v1beta1/Publishers/items/item": item +"/gan:v1beta1/Publishers/kind": kind +"/gan:v1beta1/Publishers/nextPageToken": next_page_token +"/gan:v1beta1/Report": report +"/gan:v1beta1/Report/column_names": column_names +"/gan:v1beta1/Report/column_names/column_name": column_name +"/gan:v1beta1/Report/end_date": end_date +"/gan:v1beta1/Report/kind": kind +"/gan:v1beta1/Report/matching_row_count": matching_row_count +"/gan:v1beta1/Report/rows": rows +"/gan:v1beta1/Report/rows/row": row +"/gan:v1beta1/Report/rows/row/row": row +"/gan:v1beta1/Report/start_date": start_date +"/gan:v1beta1/Report/totals_rows": totals_rows +"/gan:v1beta1/Report/totals_rows/totals_row": totals_row +"/gan:v1beta1/Report/totals_rows/totals_row/totals_row": totals_row +"/gan:v1beta1/Report/type": type +"/genomics:v1beta2/fields": fields +"/genomics:v1beta2/key": key +"/genomics:v1beta2/quotaUser": quota_user +"/genomics:v1beta2/userIp": user_ip +"/genomics:v1beta2/genomics.annotationSets.create": create_annotation_set +"/genomics:v1beta2/genomics.annotationSets.delete": delete_annotation_set +"/genomics:v1beta2/genomics.annotationSets.delete/annotationSetId": annotation_set_id +"/genomics:v1beta2/genomics.annotationSets.get": get_annotation_set +"/genomics:v1beta2/genomics.annotationSets.get/annotationSetId": annotation_set_id +"/genomics:v1beta2/genomics.annotationSets.patch": patch_annotation_set +"/genomics:v1beta2/genomics.annotationSets.patch/annotationSetId": annotation_set_id +"/genomics:v1beta2/genomics.annotationSets.search": search_annotation_sets +"/genomics:v1beta2/genomics.annotationSets.update": update_annotation_set +"/genomics:v1beta2/genomics.annotationSets.update/annotationSetId": annotation_set_id +"/genomics:v1beta2/genomics.annotations.batchCreate": batch_create_annotations +"/genomics:v1beta2/genomics.annotations.create": create_annotation +"/genomics:v1beta2/genomics.annotations.delete": delete_annotation +"/genomics:v1beta2/genomics.annotations.delete/annotationId": annotation_id +"/genomics:v1beta2/genomics.annotations.get": get_annotation +"/genomics:v1beta2/genomics.annotations.get/annotationId": annotation_id +"/genomics:v1beta2/genomics.annotations.patch": patch_annotation +"/genomics:v1beta2/genomics.annotations.patch/annotationId": annotation_id +"/genomics:v1beta2/genomics.annotations.search": search_annotations +"/genomics:v1beta2/genomics.annotations.update": update_annotation +"/genomics:v1beta2/genomics.annotations.update/annotationId": annotation_id +"/genomics:v1beta2/genomics.callsets.delete/callSetId": call_set_id +"/genomics:v1beta2/genomics.callsets.get/callSetId": call_set_id +"/genomics:v1beta2/genomics.callsets.patch/callSetId": call_set_id +"/genomics:v1beta2/genomics.callsets.update/callSetId": call_set_id +"/genomics:v1beta2/genomics.datasets.create": create_dataset +"/genomics:v1beta2/genomics.datasets.delete": delete_dataset +"/genomics:v1beta2/genomics.datasets.delete/datasetId": dataset_id +"/genomics:v1beta2/genomics.datasets.get": get_dataset +"/genomics:v1beta2/genomics.datasets.get/datasetId": dataset_id +"/genomics:v1beta2/genomics.datasets.list": list_datasets +"/genomics:v1beta2/genomics.datasets.list/pageSize": page_size +"/genomics:v1beta2/genomics.datasets.list/pageToken": page_token +"/genomics:v1beta2/genomics.datasets.list/projectNumber": project_number +"/genomics:v1beta2/genomics.datasets.patch": patch_dataset +"/genomics:v1beta2/genomics.datasets.patch/datasetId": dataset_id +"/genomics:v1beta2/genomics.datasets.undelete": undelete_dataset +"/genomics:v1beta2/genomics.datasets.undelete/datasetId": dataset_id +"/genomics:v1beta2/genomics.datasets.update": update_dataset +"/genomics:v1beta2/genomics.datasets.update/datasetId": dataset_id +"/genomics:v1beta2/genomics.experimental.jobs.create": create_experimental_job +"/genomics:v1beta2/genomics.jobs.cancel": cancel_job +"/genomics:v1beta2/genomics.jobs.cancel/jobId": job_id +"/genomics:v1beta2/genomics.jobs.get": get_job +"/genomics:v1beta2/genomics.jobs.get/jobId": job_id +"/genomics:v1beta2/genomics.jobs.search": search_jobs +"/genomics:v1beta2/genomics.readgroupsets.delete/readGroupSetId": read_group_set_id +"/genomics:v1beta2/genomics.readgroupsets.get/readGroupSetId": read_group_set_id +"/genomics:v1beta2/genomics.readgroupsets.patch/readGroupSetId": read_group_set_id +"/genomics:v1beta2/genomics.readgroupsets.update/readGroupSetId": read_group_set_id +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/pageSize": page_size +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/pageToken": page_token +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/range.end": range_end +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/range.referenceName": range_reference_name +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/range.start": range_start +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/readGroupSetId": read_group_set_id +"/genomics:v1beta2/genomics.readgroupsets.coveragebuckets.list/targetBucketWidth": target_bucket_width +"/genomics:v1beta2/genomics.reads.search": search_reads +"/genomics:v1beta2/genomics.references.get": get_reference +"/genomics:v1beta2/genomics.references.get/referenceId": reference_id +"/genomics:v1beta2/genomics.references.search": search_references +"/genomics:v1beta2/genomics.references.bases.list": list_reference_bases +"/genomics:v1beta2/genomics.references.bases.list/pageSize": page_size +"/genomics:v1beta2/genomics.references.bases.list/pageToken": page_token +"/genomics:v1beta2/genomics.references.bases.list/referenceId": reference_id +"/genomics:v1beta2/genomics.referencesets.get/referenceSetId": reference_set_id +"/genomics:v1beta2/genomics.referencesets.search": search_reference_sets +"/genomics:v1beta2/genomics.variants.create": create_variant +"/genomics:v1beta2/genomics.variants.delete": delete_variant +"/genomics:v1beta2/genomics.variants.delete/variantId": variant_id +"/genomics:v1beta2/genomics.variants.get": get_variant +"/genomics:v1beta2/genomics.variants.get/variantId": variant_id +"/genomics:v1beta2/genomics.variants.search": search_variants +"/genomics:v1beta2/genomics.variants.update": update_variant +"/genomics:v1beta2/genomics.variants.update/variantId": variant_id +"/genomics:v1beta2/genomics.variantsets.delete": delete_variantset +"/genomics:v1beta2/genomics.variantsets.delete/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.export": export_variant_set +"/genomics:v1beta2/genomics.variantsets.export/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.get": get_variantset +"/genomics:v1beta2/genomics.variantsets.get/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.importVariants": import_variants +"/genomics:v1beta2/genomics.variantsets.importVariants/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.mergeVariants": merge_variants +"/genomics:v1beta2/genomics.variantsets.mergeVariants/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.patch": patch_variantset +"/genomics:v1beta2/genomics.variantsets.patch/variantSetId": variant_set_id +"/genomics:v1beta2/genomics.variantsets.search": search_variant_sets +"/genomics:v1beta2/genomics.variantsets.update": update_variantset +"/genomics:v1beta2/genomics.variantsets.update/variantSetId": variant_set_id +"/genomics:v1beta2/AlignReadGroupSetsRequest": align_read_group_sets_request +"/genomics:v1beta2/AlignReadGroupSetsRequest/bamSourceUris": bam_source_uris +"/genomics:v1beta2/AlignReadGroupSetsRequest/bamSourceUris/bam_source_uri": bam_source_uri +"/genomics:v1beta2/AlignReadGroupSetsRequest/datasetId": dataset_id +"/genomics:v1beta2/AlignReadGroupSetsRequest/interleavedFastqSource": interleaved_fastq_source +"/genomics:v1beta2/AlignReadGroupSetsRequest/pairedFastqSource": paired_fastq_source +"/genomics:v1beta2/AlignReadGroupSetsRequest/readGroupSetId": read_group_set_id +"/genomics:v1beta2/AlignReadGroupSetsResponse": align_read_group_sets_response +"/genomics:v1beta2/AlignReadGroupSetsResponse/jobId": job_id +"/genomics:v1beta2/Annotation": annotation +"/genomics:v1beta2/Annotation/annotationSetId": annotation_set_id +"/genomics:v1beta2/Annotation/id": id +"/genomics:v1beta2/Annotation/info": info +"/genomics:v1beta2/Annotation/info/info": info +"/genomics:v1beta2/Annotation/info/info/info": info +"/genomics:v1beta2/Annotation/name": name +"/genomics:v1beta2/Annotation/position": position +"/genomics:v1beta2/Annotation/transcript": transcript +"/genomics:v1beta2/Annotation/type": type +"/genomics:v1beta2/Annotation/variant": variant +"/genomics:v1beta2/AnnotationSet": annotation_set +"/genomics:v1beta2/AnnotationSet/datasetId": dataset_id +"/genomics:v1beta2/AnnotationSet/id": id +"/genomics:v1beta2/AnnotationSet/info": info +"/genomics:v1beta2/AnnotationSet/info/info": info +"/genomics:v1beta2/AnnotationSet/info/info/info": info +"/genomics:v1beta2/AnnotationSet/name": name +"/genomics:v1beta2/AnnotationSet/referenceSetId": reference_set_id +"/genomics:v1beta2/AnnotationSet/sourceUri": source_uri +"/genomics:v1beta2/AnnotationSet/type": type +"/genomics:v1beta2/BatchAnnotationsResponse": batch_annotations_response +"/genomics:v1beta2/BatchAnnotationsResponse/entries": entries +"/genomics:v1beta2/BatchAnnotationsResponse/entries/entry": entry +"/genomics:v1beta2/BatchAnnotationsResponseEntry": batch_annotations_response_entry +"/genomics:v1beta2/BatchAnnotationsResponseEntry/annotation": annotation +"/genomics:v1beta2/BatchAnnotationsResponseEntry/status": status +"/genomics:v1beta2/BatchAnnotationsResponseEntryStatus": batch_annotations_response_entry_status +"/genomics:v1beta2/BatchAnnotationsResponseEntryStatus/code": code +"/genomics:v1beta2/BatchAnnotationsResponseEntryStatus/message": message +"/genomics:v1beta2/BatchCreateAnnotationsRequest": batch_create_annotations_request +"/genomics:v1beta2/BatchCreateAnnotationsRequest/annotations": annotations +"/genomics:v1beta2/BatchCreateAnnotationsRequest/annotations/annotation": annotation +"/genomics:v1beta2/Call": call +"/genomics:v1beta2/Call/callSetId": call_set_id +"/genomics:v1beta2/Call/callSetName": call_set_name +"/genomics:v1beta2/Call/genotype": genotype +"/genomics:v1beta2/Call/genotype/genotype": genotype +"/genomics:v1beta2/Call/genotypeLikelihood": genotype_likelihood +"/genomics:v1beta2/Call/genotypeLikelihood/genotype_likelihood": genotype_likelihood +"/genomics:v1beta2/Call/info": info +"/genomics:v1beta2/Call/info/info": info +"/genomics:v1beta2/Call/info/info/info": info +"/genomics:v1beta2/Call/phaseset": phaseset +"/genomics:v1beta2/CallReadGroupSetsRequest": call_read_group_sets_request +"/genomics:v1beta2/CallReadGroupSetsRequest/datasetId": dataset_id +"/genomics:v1beta2/CallReadGroupSetsRequest/readGroupSetId": read_group_set_id +"/genomics:v1beta2/CallReadGroupSetsRequest/sourceUris": source_uris +"/genomics:v1beta2/CallReadGroupSetsRequest/sourceUris/source_uri": source_uri +"/genomics:v1beta2/CallReadGroupSetsResponse": call_read_group_sets_response +"/genomics:v1beta2/CallReadGroupSetsResponse/jobId": job_id +"/genomics:v1beta2/CallSet": call_set +"/genomics:v1beta2/CallSet/created": created +"/genomics:v1beta2/CallSet/id": id +"/genomics:v1beta2/CallSet/info": info +"/genomics:v1beta2/CallSet/info/info": info +"/genomics:v1beta2/CallSet/info/info/info": info +"/genomics:v1beta2/CallSet/name": name +"/genomics:v1beta2/CallSet/sampleId": sample_id +"/genomics:v1beta2/CallSet/variantSetIds": variant_set_ids +"/genomics:v1beta2/CallSet/variantSetIds/variant_set_id": variant_set_id +"/genomics:v1beta2/CigarUnit": cigar_unit +"/genomics:v1beta2/CigarUnit/operation": operation +"/genomics:v1beta2/CigarUnit/operationLength": operation_length +"/genomics:v1beta2/CigarUnit/referenceSequence": reference_sequence +"/genomics:v1beta2/CoverageBucket": coverage_bucket +"/genomics:v1beta2/CoverageBucket/meanCoverage": mean_coverage +"/genomics:v1beta2/CoverageBucket/range": range +"/genomics:v1beta2/Dataset": dataset +"/genomics:v1beta2/Dataset/id": id +"/genomics:v1beta2/Dataset/isPublic": is_public +"/genomics:v1beta2/Dataset/name": name +"/genomics:v1beta2/Dataset/projectNumber": project_number +"/genomics:v1beta2/ExperimentalCreateJobRequest": experimental_create_job_request +"/genomics:v1beta2/ExperimentalCreateJobRequest/align": align +"/genomics:v1beta2/ExperimentalCreateJobRequest/callVariants": call_variants +"/genomics:v1beta2/ExperimentalCreateJobRequest/gcsOutputPath": gcs_output_path +"/genomics:v1beta2/ExperimentalCreateJobRequest/pairedSourceUris": paired_source_uris +"/genomics:v1beta2/ExperimentalCreateJobRequest/pairedSourceUris/paired_source_uri": paired_source_uri +"/genomics:v1beta2/ExperimentalCreateJobRequest/projectNumber": project_number +"/genomics:v1beta2/ExperimentalCreateJobRequest/sourceUris": source_uris +"/genomics:v1beta2/ExperimentalCreateJobRequest/sourceUris/source_uri": source_uri +"/genomics:v1beta2/ExperimentalCreateJobResponse": experimental_create_job_response +"/genomics:v1beta2/ExperimentalCreateJobResponse/jobId": job_id +"/genomics:v1beta2/ExportReadGroupSetsRequest": export_read_group_sets_request +"/genomics:v1beta2/ExportReadGroupSetsRequest/exportUri": export_uri +"/genomics:v1beta2/ExportReadGroupSetsRequest/projectNumber": project_number +"/genomics:v1beta2/ExportReadGroupSetsRequest/readGroupSetIds": read_group_set_ids +"/genomics:v1beta2/ExportReadGroupSetsRequest/readGroupSetIds/read_group_set_id": read_group_set_id +"/genomics:v1beta2/ExportReadGroupSetsRequest/referenceNames": reference_names +"/genomics:v1beta2/ExportReadGroupSetsRequest/referenceNames/reference_name": reference_name +"/genomics:v1beta2/ExportReadGroupSetsResponse": export_read_group_sets_response +"/genomics:v1beta2/ExportReadGroupSetsResponse/jobId": job_id +"/genomics:v1beta2/ExportVariantSetRequest": export_variant_set_request +"/genomics:v1beta2/ExportVariantSetRequest/bigqueryDataset": bigquery_dataset +"/genomics:v1beta2/ExportVariantSetRequest/bigqueryTable": bigquery_table +"/genomics:v1beta2/ExportVariantSetRequest/callSetIds": call_set_ids +"/genomics:v1beta2/ExportVariantSetRequest/callSetIds/call_set_id": call_set_id +"/genomics:v1beta2/ExportVariantSetRequest/format": format +"/genomics:v1beta2/ExportVariantSetRequest/projectNumber": project_number +"/genomics:v1beta2/ExportVariantSetResponse": export_variant_set_response +"/genomics:v1beta2/ExportVariantSetResponse/jobId": job_id +"/genomics:v1beta2/ExternalId": external_id +"/genomics:v1beta2/ExternalId/id": id +"/genomics:v1beta2/ExternalId/sourceName": source_name +"/genomics:v1beta2/FastqMetadata": fastq_metadata +"/genomics:v1beta2/FastqMetadata/libraryName": library_name +"/genomics:v1beta2/FastqMetadata/platformName": platform_name +"/genomics:v1beta2/FastqMetadata/platformUnit": platform_unit +"/genomics:v1beta2/FastqMetadata/readGroupName": read_group_name +"/genomics:v1beta2/FastqMetadata/sampleName": sample_name +"/genomics:v1beta2/ImportReadGroupSetsRequest": import_read_group_sets_request +"/genomics:v1beta2/ImportReadGroupSetsRequest/datasetId": dataset_id +"/genomics:v1beta2/ImportReadGroupSetsRequest/partitionStrategy": partition_strategy +"/genomics:v1beta2/ImportReadGroupSetsRequest/referenceSetId": reference_set_id +"/genomics:v1beta2/ImportReadGroupSetsRequest/sourceUris": source_uris +"/genomics:v1beta2/ImportReadGroupSetsRequest/sourceUris/source_uri": source_uri +"/genomics:v1beta2/ImportReadGroupSetsResponse": import_read_group_sets_response +"/genomics:v1beta2/ImportReadGroupSetsResponse/jobId": job_id +"/genomics:v1beta2/ImportVariantsRequest": import_variants_request +"/genomics:v1beta2/ImportVariantsRequest/format": format +"/genomics:v1beta2/ImportVariantsRequest/normalizeReferenceNames": normalize_reference_names +"/genomics:v1beta2/ImportVariantsRequest/sourceUris": source_uris +"/genomics:v1beta2/ImportVariantsRequest/sourceUris/source_uri": source_uri +"/genomics:v1beta2/ImportVariantsResponse": import_variants_response +"/genomics:v1beta2/ImportVariantsResponse/jobId": job_id +"/genomics:v1beta2/Int32Value": int32_value +"/genomics:v1beta2/Int32Value/value": value +"/genomics:v1beta2/InterleavedFastqSource": interleaved_fastq_source +"/genomics:v1beta2/InterleavedFastqSource/metadata": metadata +"/genomics:v1beta2/InterleavedFastqSource/sourceUris": source_uris +"/genomics:v1beta2/InterleavedFastqSource/sourceUris/source_uri": source_uri +"/genomics:v1beta2/Job": job +"/genomics:v1beta2/Job/created": created +"/genomics:v1beta2/Job/detailedStatus": detailed_status +"/genomics:v1beta2/Job/errors": errors +"/genomics:v1beta2/Job/errors/error": error +"/genomics:v1beta2/Job/id": id +"/genomics:v1beta2/Job/importedIds": imported_ids +"/genomics:v1beta2/Job/importedIds/imported_id": imported_id +"/genomics:v1beta2/Job/projectNumber": project_number +"/genomics:v1beta2/Job/request": request +"/genomics:v1beta2/Job/status": status +"/genomics:v1beta2/Job/warnings": warnings +"/genomics:v1beta2/Job/warnings/warning": warning +"/genomics:v1beta2/JobRequest": job_request +"/genomics:v1beta2/JobRequest/destination": destination +"/genomics:v1beta2/JobRequest/destination/destination": destination +"/genomics:v1beta2/JobRequest/source": source +"/genomics:v1beta2/JobRequest/source/source": source +"/genomics:v1beta2/JobRequest/type": type +"/genomics:v1beta2/KeyValue": key_value +"/genomics:v1beta2/KeyValue/key": key +"/genomics:v1beta2/KeyValue/value": value +"/genomics:v1beta2/KeyValue/value/value": value +"/genomics:v1beta2/LinearAlignment": linear_alignment +"/genomics:v1beta2/LinearAlignment/cigar": cigar +"/genomics:v1beta2/LinearAlignment/cigar/cigar": cigar +"/genomics:v1beta2/LinearAlignment/mappingQuality": mapping_quality +"/genomics:v1beta2/LinearAlignment/position": position +"/genomics:v1beta2/ListBasesResponse": list_bases_response +"/genomics:v1beta2/ListBasesResponse/nextPageToken": next_page_token +"/genomics:v1beta2/ListBasesResponse/offset": offset +"/genomics:v1beta2/ListBasesResponse/sequence": sequence +"/genomics:v1beta2/ListCoverageBucketsResponse": list_coverage_buckets_response +"/genomics:v1beta2/ListCoverageBucketsResponse/bucketWidth": bucket_width +"/genomics:v1beta2/ListCoverageBucketsResponse/coverageBuckets": coverage_buckets +"/genomics:v1beta2/ListCoverageBucketsResponse/coverageBuckets/coverage_bucket": coverage_bucket +"/genomics:v1beta2/ListCoverageBucketsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/ListDatasetsResponse": list_datasets_response +"/genomics:v1beta2/ListDatasetsResponse/datasets": datasets +"/genomics:v1beta2/ListDatasetsResponse/datasets/dataset": dataset +"/genomics:v1beta2/ListDatasetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/MergeVariantsRequest": merge_variants_request +"/genomics:v1beta2/MergeVariantsRequest/variants": variants +"/genomics:v1beta2/MergeVariantsRequest/variants/variant": variant +"/genomics:v1beta2/Metadata": metadata +"/genomics:v1beta2/Metadata/description": description +"/genomics:v1beta2/Metadata/id": id +"/genomics:v1beta2/Metadata/info": info +"/genomics:v1beta2/Metadata/info/info": info +"/genomics:v1beta2/Metadata/info/info/info": info +"/genomics:v1beta2/Metadata/key": key +"/genomics:v1beta2/Metadata/number": number +"/genomics:v1beta2/Metadata/type": type +"/genomics:v1beta2/Metadata/value": value +"/genomics:v1beta2/PairedFastqSource": paired_fastq_source +"/genomics:v1beta2/PairedFastqSource/firstSourceUris": first_source_uris +"/genomics:v1beta2/PairedFastqSource/firstSourceUris/first_source_uri": first_source_uri +"/genomics:v1beta2/PairedFastqSource/metadata": metadata +"/genomics:v1beta2/PairedFastqSource/secondSourceUris": second_source_uris +"/genomics:v1beta2/PairedFastqSource/secondSourceUris/second_source_uri": second_source_uri +"/genomics:v1beta2/Position": position +"/genomics:v1beta2/Position/position": position +"/genomics:v1beta2/Position/referenceName": reference_name +"/genomics:v1beta2/Position/reverseStrand": reverse_strand +"/genomics:v1beta2/QueryRange": query_range +"/genomics:v1beta2/QueryRange/end": end +"/genomics:v1beta2/QueryRange/referenceId": reference_id +"/genomics:v1beta2/QueryRange/referenceName": reference_name +"/genomics:v1beta2/QueryRange/start": start +"/genomics:v1beta2/Range": range +"/genomics:v1beta2/Range/end": end +"/genomics:v1beta2/Range/referenceName": reference_name +"/genomics:v1beta2/Range/start": start +"/genomics:v1beta2/RangePosition": range_position +"/genomics:v1beta2/RangePosition/end": end +"/genomics:v1beta2/RangePosition/referenceId": reference_id +"/genomics:v1beta2/RangePosition/referenceName": reference_name +"/genomics:v1beta2/RangePosition/reverseStrand": reverse_strand +"/genomics:v1beta2/RangePosition/start": start +"/genomics:v1beta2/Read": read +"/genomics:v1beta2/Read/alignedQuality": aligned_quality +"/genomics:v1beta2/Read/alignedQuality/aligned_quality": aligned_quality +"/genomics:v1beta2/Read/alignedSequence": aligned_sequence +"/genomics:v1beta2/Read/alignment": alignment +"/genomics:v1beta2/Read/duplicateFragment": duplicate_fragment +"/genomics:v1beta2/Read/failedVendorQualityChecks": failed_vendor_quality_checks +"/genomics:v1beta2/Read/fragmentLength": fragment_length +"/genomics:v1beta2/Read/fragmentName": fragment_name +"/genomics:v1beta2/Read/id": id +"/genomics:v1beta2/Read/info": info +"/genomics:v1beta2/Read/info/info": info +"/genomics:v1beta2/Read/info/info/info": info +"/genomics:v1beta2/Read/nextMatePosition": next_mate_position +"/genomics:v1beta2/Read/numberReads": number_reads +"/genomics:v1beta2/Read/properPlacement": proper_placement +"/genomics:v1beta2/Read/readGroupId": read_group_id +"/genomics:v1beta2/Read/readGroupSetId": read_group_set_id +"/genomics:v1beta2/Read/readNumber": read_number +"/genomics:v1beta2/Read/secondaryAlignment": secondary_alignment +"/genomics:v1beta2/Read/supplementaryAlignment": supplementary_alignment +"/genomics:v1beta2/ReadGroup": read_group +"/genomics:v1beta2/ReadGroup/datasetId": dataset_id +"/genomics:v1beta2/ReadGroup/description": description +"/genomics:v1beta2/ReadGroup/experiment": experiment +"/genomics:v1beta2/ReadGroup/id": id +"/genomics:v1beta2/ReadGroup/info": info +"/genomics:v1beta2/ReadGroup/info/info": info +"/genomics:v1beta2/ReadGroup/info/info/info": info +"/genomics:v1beta2/ReadGroup/name": name +"/genomics:v1beta2/ReadGroup/predictedInsertSize": predicted_insert_size +"/genomics:v1beta2/ReadGroup/programs": programs +"/genomics:v1beta2/ReadGroup/programs/program": program +"/genomics:v1beta2/ReadGroup/referenceSetId": reference_set_id +"/genomics:v1beta2/ReadGroup/sampleId": sample_id +"/genomics:v1beta2/ReadGroupExperiment": read_group_experiment +"/genomics:v1beta2/ReadGroupExperiment/instrumentModel": instrument_model +"/genomics:v1beta2/ReadGroupExperiment/libraryId": library_id +"/genomics:v1beta2/ReadGroupExperiment/platformUnit": platform_unit +"/genomics:v1beta2/ReadGroupExperiment/sequencingCenter": sequencing_center +"/genomics:v1beta2/ReadGroupProgram": read_group_program +"/genomics:v1beta2/ReadGroupProgram/commandLine": command_line +"/genomics:v1beta2/ReadGroupProgram/id": id +"/genomics:v1beta2/ReadGroupProgram/name": name +"/genomics:v1beta2/ReadGroupProgram/prevProgramId": prev_program_id +"/genomics:v1beta2/ReadGroupProgram/version": version +"/genomics:v1beta2/ReadGroupSet": read_group_set +"/genomics:v1beta2/ReadGroupSet/datasetId": dataset_id +"/genomics:v1beta2/ReadGroupSet/filename": filename +"/genomics:v1beta2/ReadGroupSet/id": id +"/genomics:v1beta2/ReadGroupSet/info": info +"/genomics:v1beta2/ReadGroupSet/info/info": info +"/genomics:v1beta2/ReadGroupSet/info/info/info": info +"/genomics:v1beta2/ReadGroupSet/name": name +"/genomics:v1beta2/ReadGroupSet/readGroups": read_groups +"/genomics:v1beta2/ReadGroupSet/readGroups/read_group": read_group +"/genomics:v1beta2/ReadGroupSet/referenceSetId": reference_set_id +"/genomics:v1beta2/Reference": reference +"/genomics:v1beta2/Reference/id": id +"/genomics:v1beta2/Reference/length": length +"/genomics:v1beta2/Reference/md5checksum": md5checksum +"/genomics:v1beta2/Reference/name": name +"/genomics:v1beta2/Reference/ncbiTaxonId": ncbi_taxon_id +"/genomics:v1beta2/Reference/sourceAccessions": source_accessions +"/genomics:v1beta2/Reference/sourceAccessions/source_accession": source_accession +"/genomics:v1beta2/Reference/sourceURI": source_uri +"/genomics:v1beta2/ReferenceBound": reference_bound +"/genomics:v1beta2/ReferenceBound/referenceName": reference_name +"/genomics:v1beta2/ReferenceBound/upperBound": upper_bound +"/genomics:v1beta2/ReferenceSet": reference_set +"/genomics:v1beta2/ReferenceSet/assemblyId": assembly_id +"/genomics:v1beta2/ReferenceSet/description": description +"/genomics:v1beta2/ReferenceSet/id": id +"/genomics:v1beta2/ReferenceSet/md5checksum": md5checksum +"/genomics:v1beta2/ReferenceSet/ncbiTaxonId": ncbi_taxon_id +"/genomics:v1beta2/ReferenceSet/referenceIds": reference_ids +"/genomics:v1beta2/ReferenceSet/referenceIds/reference_id": reference_id +"/genomics:v1beta2/ReferenceSet/sourceAccessions": source_accessions +"/genomics:v1beta2/ReferenceSet/sourceAccessions/source_accession": source_accession +"/genomics:v1beta2/ReferenceSet/sourceURI": source_uri +"/genomics:v1beta2/SearchAnnotationSetsRequest": search_annotation_sets_request +"/genomics:v1beta2/SearchAnnotationSetsRequest/datasetIds": dataset_ids +"/genomics:v1beta2/SearchAnnotationSetsRequest/datasetIds/dataset_id": dataset_id +"/genomics:v1beta2/SearchAnnotationSetsRequest/name": name +"/genomics:v1beta2/SearchAnnotationSetsRequest/pageSize": page_size +"/genomics:v1beta2/SearchAnnotationSetsRequest/pageToken": page_token +"/genomics:v1beta2/SearchAnnotationSetsRequest/referenceSetId": reference_set_id +"/genomics:v1beta2/SearchAnnotationSetsRequest/types": types +"/genomics:v1beta2/SearchAnnotationSetsRequest/types/type": type +"/genomics:v1beta2/SearchAnnotationSetsResponse": search_annotation_sets_response +"/genomics:v1beta2/SearchAnnotationSetsResponse/annotationSets": annotation_sets +"/genomics:v1beta2/SearchAnnotationSetsResponse/annotationSets/annotation_set": annotation_set +"/genomics:v1beta2/SearchAnnotationSetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchAnnotationsRequest": search_annotations_request +"/genomics:v1beta2/SearchAnnotationsRequest/annotationSetIds": annotation_set_ids +"/genomics:v1beta2/SearchAnnotationsRequest/annotationSetIds/annotation_set_id": annotation_set_id +"/genomics:v1beta2/SearchAnnotationsRequest/pageSize": page_size +"/genomics:v1beta2/SearchAnnotationsRequest/pageToken": page_token +"/genomics:v1beta2/SearchAnnotationsRequest/range": range +"/genomics:v1beta2/SearchAnnotationsResponse": search_annotations_response +"/genomics:v1beta2/SearchAnnotationsResponse/annotations": annotations +"/genomics:v1beta2/SearchAnnotationsResponse/annotations/annotation": annotation +"/genomics:v1beta2/SearchAnnotationsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchCallSetsRequest": search_call_sets_request +"/genomics:v1beta2/SearchCallSetsRequest/name": name +"/genomics:v1beta2/SearchCallSetsRequest/pageSize": page_size +"/genomics:v1beta2/SearchCallSetsRequest/pageToken": page_token +"/genomics:v1beta2/SearchCallSetsRequest/variantSetIds": variant_set_ids +"/genomics:v1beta2/SearchCallSetsRequest/variantSetIds/variant_set_id": variant_set_id +"/genomics:v1beta2/SearchCallSetsResponse": search_call_sets_response +"/genomics:v1beta2/SearchCallSetsResponse/callSets": call_sets +"/genomics:v1beta2/SearchCallSetsResponse/callSets/call_set": call_set +"/genomics:v1beta2/SearchCallSetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchJobsRequest": search_jobs_request +"/genomics:v1beta2/SearchJobsRequest/createdAfter": created_after +"/genomics:v1beta2/SearchJobsRequest/createdBefore": created_before +"/genomics:v1beta2/SearchJobsRequest/pageSize": page_size +"/genomics:v1beta2/SearchJobsRequest/pageToken": page_token +"/genomics:v1beta2/SearchJobsRequest/projectNumber": project_number +"/genomics:v1beta2/SearchJobsRequest/status": status +"/genomics:v1beta2/SearchJobsRequest/status/status": status +"/genomics:v1beta2/SearchJobsResponse": search_jobs_response +"/genomics:v1beta2/SearchJobsResponse/jobs": jobs +"/genomics:v1beta2/SearchJobsResponse/jobs/job": job +"/genomics:v1beta2/SearchJobsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchReadGroupSetsRequest": search_read_group_sets_request +"/genomics:v1beta2/SearchReadGroupSetsRequest/datasetIds": dataset_ids +"/genomics:v1beta2/SearchReadGroupSetsRequest/datasetIds/dataset_id": dataset_id +"/genomics:v1beta2/SearchReadGroupSetsRequest/name": name +"/genomics:v1beta2/SearchReadGroupSetsRequest/pageSize": page_size +"/genomics:v1beta2/SearchReadGroupSetsRequest/pageToken": page_token +"/genomics:v1beta2/SearchReadGroupSetsResponse": search_read_group_sets_response +"/genomics:v1beta2/SearchReadGroupSetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchReadGroupSetsResponse/readGroupSets": read_group_sets +"/genomics:v1beta2/SearchReadGroupSetsResponse/readGroupSets/read_group_set": read_group_set +"/genomics:v1beta2/SearchReadsRequest": search_reads_request +"/genomics:v1beta2/SearchReadsRequest/end": end +"/genomics:v1beta2/SearchReadsRequest/pageSize": page_size +"/genomics:v1beta2/SearchReadsRequest/pageToken": page_token +"/genomics:v1beta2/SearchReadsRequest/readGroupIds": read_group_ids +"/genomics:v1beta2/SearchReadsRequest/readGroupIds/read_group_id": read_group_id +"/genomics:v1beta2/SearchReadsRequest/readGroupSetIds": read_group_set_ids +"/genomics:v1beta2/SearchReadsRequest/readGroupSetIds/read_group_set_id": read_group_set_id +"/genomics:v1beta2/SearchReadsRequest/referenceName": reference_name +"/genomics:v1beta2/SearchReadsRequest/start": start +"/genomics:v1beta2/SearchReadsResponse": search_reads_response +"/genomics:v1beta2/SearchReadsResponse/alignments": alignments +"/genomics:v1beta2/SearchReadsResponse/alignments/alignment": alignment +"/genomics:v1beta2/SearchReadsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchReferenceSetsRequest": search_reference_sets_request +"/genomics:v1beta2/SearchReferenceSetsRequest/accessions": accessions +"/genomics:v1beta2/SearchReferenceSetsRequest/accessions/accession": accession +"/genomics:v1beta2/SearchReferenceSetsRequest/assemblyId": assembly_id +"/genomics:v1beta2/SearchReferenceSetsRequest/md5checksums": md5checksums +"/genomics:v1beta2/SearchReferenceSetsRequest/md5checksums/md5checksum": md5checksum +"/genomics:v1beta2/SearchReferenceSetsRequest/pageSize": page_size +"/genomics:v1beta2/SearchReferenceSetsRequest/pageToken": page_token +"/genomics:v1beta2/SearchReferenceSetsResponse": search_reference_sets_response +"/genomics:v1beta2/SearchReferenceSetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchReferenceSetsResponse/referenceSets": reference_sets +"/genomics:v1beta2/SearchReferenceSetsResponse/referenceSets/reference_set": reference_set +"/genomics:v1beta2/SearchReferencesRequest": search_references_request +"/genomics:v1beta2/SearchReferencesRequest/accessions": accessions +"/genomics:v1beta2/SearchReferencesRequest/accessions/accession": accession +"/genomics:v1beta2/SearchReferencesRequest/md5checksums": md5checksums +"/genomics:v1beta2/SearchReferencesRequest/md5checksums/md5checksum": md5checksum +"/genomics:v1beta2/SearchReferencesRequest/pageSize": page_size +"/genomics:v1beta2/SearchReferencesRequest/pageToken": page_token +"/genomics:v1beta2/SearchReferencesRequest/referenceSetId": reference_set_id +"/genomics:v1beta2/SearchReferencesResponse": search_references_response +"/genomics:v1beta2/SearchReferencesResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchReferencesResponse/references": references +"/genomics:v1beta2/SearchReferencesResponse/references/reference": reference +"/genomics:v1beta2/SearchVariantSetsRequest": search_variant_sets_request +"/genomics:v1beta2/SearchVariantSetsRequest/datasetIds": dataset_ids +"/genomics:v1beta2/SearchVariantSetsRequest/datasetIds/dataset_id": dataset_id +"/genomics:v1beta2/SearchVariantSetsRequest/pageSize": page_size +"/genomics:v1beta2/SearchVariantSetsRequest/pageToken": page_token +"/genomics:v1beta2/SearchVariantSetsResponse": search_variant_sets_response +"/genomics:v1beta2/SearchVariantSetsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchVariantSetsResponse/variantSets": variant_sets +"/genomics:v1beta2/SearchVariantSetsResponse/variantSets/variant_set": variant_set +"/genomics:v1beta2/SearchVariantsRequest": search_variants_request +"/genomics:v1beta2/SearchVariantsRequest/callSetIds": call_set_ids +"/genomics:v1beta2/SearchVariantsRequest/callSetIds/call_set_id": call_set_id +"/genomics:v1beta2/SearchVariantsRequest/end": end +"/genomics:v1beta2/SearchVariantsRequest/maxCalls": max_calls +"/genomics:v1beta2/SearchVariantsRequest/pageSize": page_size +"/genomics:v1beta2/SearchVariantsRequest/pageToken": page_token +"/genomics:v1beta2/SearchVariantsRequest/referenceName": reference_name +"/genomics:v1beta2/SearchVariantsRequest/start": start +"/genomics:v1beta2/SearchVariantsRequest/variantName": variant_name +"/genomics:v1beta2/SearchVariantsRequest/variantSetIds": variant_set_ids +"/genomics:v1beta2/SearchVariantsRequest/variantSetIds/variant_set_id": variant_set_id +"/genomics:v1beta2/SearchVariantsResponse": search_variants_response +"/genomics:v1beta2/SearchVariantsResponse/nextPageToken": next_page_token +"/genomics:v1beta2/SearchVariantsResponse/variants": variants +"/genomics:v1beta2/SearchVariantsResponse/variants/variant": variant +"/genomics:v1beta2/Transcript": transcript +"/genomics:v1beta2/Transcript/codingSequence": coding_sequence +"/genomics:v1beta2/Transcript/exons": exons +"/genomics:v1beta2/Transcript/exons/exon": exon +"/genomics:v1beta2/Transcript/geneId": gene_id +"/genomics:v1beta2/TranscriptCodingSequence": transcript_coding_sequence +"/genomics:v1beta2/TranscriptCodingSequence/end": end +"/genomics:v1beta2/TranscriptCodingSequence/start": start +"/genomics:v1beta2/TranscriptExon": transcript_exon +"/genomics:v1beta2/TranscriptExon/end": end +"/genomics:v1beta2/TranscriptExon/frame": frame +"/genomics:v1beta2/TranscriptExon/start": start +"/genomics:v1beta2/Variant": variant +"/genomics:v1beta2/Variant/alternateBases": alternate_bases +"/genomics:v1beta2/Variant/alternateBases/alternate_basis": alternate_basis +"/genomics:v1beta2/Variant/calls": calls +"/genomics:v1beta2/Variant/calls/call": call +"/genomics:v1beta2/Variant/created": created +"/genomics:v1beta2/Variant/end": end +"/genomics:v1beta2/Variant/filter": filter +"/genomics:v1beta2/Variant/filter/filter": filter +"/genomics:v1beta2/Variant/id": id +"/genomics:v1beta2/Variant/info": info +"/genomics:v1beta2/Variant/info/info": info +"/genomics:v1beta2/Variant/info/info/info": info +"/genomics:v1beta2/Variant/names": names +"/genomics:v1beta2/Variant/names/name": name +"/genomics:v1beta2/Variant/quality": quality +"/genomics:v1beta2/Variant/referenceBases": reference_bases +"/genomics:v1beta2/Variant/referenceName": reference_name +"/genomics:v1beta2/Variant/start": start +"/genomics:v1beta2/Variant/variantSetId": variant_set_id +"/genomics:v1beta2/VariantAnnotation": variant_annotation +"/genomics:v1beta2/VariantAnnotation/alternateBases": alternate_bases +"/genomics:v1beta2/VariantAnnotation/clinicalSignificance": clinical_significance +"/genomics:v1beta2/VariantAnnotation/conditions": conditions +"/genomics:v1beta2/VariantAnnotation/conditions/condition": condition +"/genomics:v1beta2/VariantAnnotation/effect": effect +"/genomics:v1beta2/VariantAnnotation/geneId": gene_id +"/genomics:v1beta2/VariantAnnotation/transcriptIds": transcript_ids +"/genomics:v1beta2/VariantAnnotation/transcriptIds/transcript_id": transcript_id +"/genomics:v1beta2/VariantAnnotation/type": type +"/genomics:v1beta2/VariantAnnotationCondition": variant_annotation_condition +"/genomics:v1beta2/VariantAnnotationCondition/conceptId": concept_id +"/genomics:v1beta2/VariantAnnotationCondition/externalIds": external_ids +"/genomics:v1beta2/VariantAnnotationCondition/externalIds/external_id": external_id +"/genomics:v1beta2/VariantAnnotationCondition/names": names +"/genomics:v1beta2/VariantAnnotationCondition/names/name": name +"/genomics:v1beta2/VariantAnnotationCondition/omimId": omim_id +"/genomics:v1beta2/VariantSet": variant_set +"/genomics:v1beta2/VariantSet/datasetId": dataset_id +"/genomics:v1beta2/VariantSet/id": id +"/genomics:v1beta2/VariantSet/metadata": metadata +"/genomics:v1beta2/VariantSet/metadata/metadatum": metadatum +"/genomics:v1beta2/VariantSet/referenceBounds": reference_bounds +"/genomics:v1beta2/VariantSet/referenceBounds/reference_bound": reference_bound +"/gmail:v1/fields": fields +"/gmail:v1/key": key +"/gmail:v1/quotaUser": quota_user +"/gmail:v1/userIp": user_ip +"/gmail:v1/gmail.users.getProfile/userId": user_id +"/gmail:v1/gmail.users.stop": stop_user +"/gmail:v1/gmail.users.stop/userId": user_id +"/gmail:v1/gmail.users.watch": watch +"/gmail:v1/gmail.users.watch/userId": user_id +"/gmail:v1/gmail.users.drafts.create": create_user_draft +"/gmail:v1/gmail.users.drafts.create/userId": user_id +"/gmail:v1/gmail.users.drafts.delete": delete_user_draft +"/gmail:v1/gmail.users.drafts.delete/id": id +"/gmail:v1/gmail.users.drafts.delete/userId": user_id +"/gmail:v1/gmail.users.drafts.get": get_user_draft +"/gmail:v1/gmail.users.drafts.get/format": format +"/gmail:v1/gmail.users.drafts.get/id": id +"/gmail:v1/gmail.users.drafts.get/userId": user_id +"/gmail:v1/gmail.users.drafts.list": list_user_drafts +"/gmail:v1/gmail.users.drafts.list/maxResults": max_results +"/gmail:v1/gmail.users.drafts.list/pageToken": page_token +"/gmail:v1/gmail.users.drafts.list/userId": user_id +"/gmail:v1/gmail.users.drafts.send": send_user_draft +"/gmail:v1/gmail.users.drafts.send/userId": user_id +"/gmail:v1/gmail.users.drafts.update": update_user_draft +"/gmail:v1/gmail.users.drafts.update/id": id +"/gmail:v1/gmail.users.drafts.update/userId": user_id +"/gmail:v1/gmail.users.history.list": list_user_histories +"/gmail:v1/gmail.users.history.list/labelId": label_id +"/gmail:v1/gmail.users.history.list/maxResults": max_results +"/gmail:v1/gmail.users.history.list/pageToken": page_token +"/gmail:v1/gmail.users.history.list/startHistoryId": start_history_id +"/gmail:v1/gmail.users.history.list/userId": user_id +"/gmail:v1/gmail.users.labels.create": create_user_label +"/gmail:v1/gmail.users.labels.create/userId": user_id +"/gmail:v1/gmail.users.labels.delete": delete_user_label +"/gmail:v1/gmail.users.labels.delete/id": id +"/gmail:v1/gmail.users.labels.delete/userId": user_id +"/gmail:v1/gmail.users.labels.get": get_user_label +"/gmail:v1/gmail.users.labels.get/id": id +"/gmail:v1/gmail.users.labels.get/userId": user_id +"/gmail:v1/gmail.users.labels.list": list_user_labels +"/gmail:v1/gmail.users.labels.list/userId": user_id +"/gmail:v1/gmail.users.labels.patch": patch_user_label +"/gmail:v1/gmail.users.labels.patch/id": id +"/gmail:v1/gmail.users.labels.patch/userId": user_id +"/gmail:v1/gmail.users.labels.update": update_user_label +"/gmail:v1/gmail.users.labels.update/id": id +"/gmail:v1/gmail.users.labels.update/userId": user_id +"/gmail:v1/gmail.users.messages.delete": delete_user_message +"/gmail:v1/gmail.users.messages.delete/id": id +"/gmail:v1/gmail.users.messages.delete/userId": user_id +"/gmail:v1/gmail.users.messages.get": get_user_message +"/gmail:v1/gmail.users.messages.get/format": format +"/gmail:v1/gmail.users.messages.get/id": id +"/gmail:v1/gmail.users.messages.get/metadataHeaders": metadata_headers +"/gmail:v1/gmail.users.messages.get/userId": user_id +"/gmail:v1/gmail.users.messages.import": import_user_message +"/gmail:v1/gmail.users.messages.import/deleted": deleted +"/gmail:v1/gmail.users.messages.import/internalDateSource": internal_date_source +"/gmail:v1/gmail.users.messages.import/neverMarkSpam": never_mark_spam +"/gmail:v1/gmail.users.messages.import/processForCalendar": process_for_calendar +"/gmail:v1/gmail.users.messages.import/userId": user_id +"/gmail:v1/gmail.users.messages.insert": insert_user_message +"/gmail:v1/gmail.users.messages.insert/deleted": deleted +"/gmail:v1/gmail.users.messages.insert/internalDateSource": internal_date_source +"/gmail:v1/gmail.users.messages.insert/userId": user_id +"/gmail:v1/gmail.users.messages.list": list_user_messages +"/gmail:v1/gmail.users.messages.list/includeSpamTrash": include_spam_trash +"/gmail:v1/gmail.users.messages.list/labelIds": label_ids +"/gmail:v1/gmail.users.messages.list/maxResults": max_results +"/gmail:v1/gmail.users.messages.list/pageToken": page_token +"/gmail:v1/gmail.users.messages.list/q": q +"/gmail:v1/gmail.users.messages.list/userId": user_id +"/gmail:v1/gmail.users.messages.modify": modify_message +"/gmail:v1/gmail.users.messages.modify/id": id +"/gmail:v1/gmail.users.messages.modify/userId": user_id +"/gmail:v1/gmail.users.messages.send": send_user_message +"/gmail:v1/gmail.users.messages.send/userId": user_id +"/gmail:v1/gmail.users.messages.trash": trash_user_message +"/gmail:v1/gmail.users.messages.trash/id": id +"/gmail:v1/gmail.users.messages.trash/userId": user_id +"/gmail:v1/gmail.users.messages.untrash": untrash_user_message +"/gmail:v1/gmail.users.messages.untrash/id": id +"/gmail:v1/gmail.users.messages.untrash/userId": user_id +"/gmail:v1/gmail.users.messages.attachments.get": get_user_message_attachment +"/gmail:v1/gmail.users.messages.attachments.get/id": id +"/gmail:v1/gmail.users.messages.attachments.get/messageId": message_id +"/gmail:v1/gmail.users.messages.attachments.get/userId": user_id +"/gmail:v1/gmail.users.threads.delete": delete_user_thread +"/gmail:v1/gmail.users.threads.delete/id": id +"/gmail:v1/gmail.users.threads.delete/userId": user_id +"/gmail:v1/gmail.users.threads.get": get_user_thread +"/gmail:v1/gmail.users.threads.get/format": format +"/gmail:v1/gmail.users.threads.get/id": id +"/gmail:v1/gmail.users.threads.get/metadataHeaders": metadata_headers +"/gmail:v1/gmail.users.threads.get/userId": user_id +"/gmail:v1/gmail.users.threads.list": list_user_threads +"/gmail:v1/gmail.users.threads.list/includeSpamTrash": include_spam_trash +"/gmail:v1/gmail.users.threads.list/labelIds": label_ids +"/gmail:v1/gmail.users.threads.list/maxResults": max_results +"/gmail:v1/gmail.users.threads.list/pageToken": page_token +"/gmail:v1/gmail.users.threads.list/q": q +"/gmail:v1/gmail.users.threads.list/userId": user_id +"/gmail:v1/gmail.users.threads.modify": modify_thread +"/gmail:v1/gmail.users.threads.modify/id": id +"/gmail:v1/gmail.users.threads.modify/userId": user_id +"/gmail:v1/gmail.users.threads.trash": trash_user_thread +"/gmail:v1/gmail.users.threads.trash/id": id +"/gmail:v1/gmail.users.threads.trash/userId": user_id +"/gmail:v1/gmail.users.threads.untrash": untrash_user_thread +"/gmail:v1/gmail.users.threads.untrash/id": id +"/gmail:v1/gmail.users.threads.untrash/userId": user_id +"/gmail:v1/Draft": draft +"/gmail:v1/Draft/id": id +"/gmail:v1/Draft/message": message +"/gmail:v1/History": history +"/gmail:v1/History/id": id +"/gmail:v1/History/labelsAdded": labels_added +"/gmail:v1/History/labelsAdded/labels_added": labels_added +"/gmail:v1/History/labelsRemoved": labels_removed +"/gmail:v1/History/labelsRemoved/labels_removed": labels_removed +"/gmail:v1/History/messages": messages +"/gmail:v1/History/messages/message": message +"/gmail:v1/History/messagesAdded": messages_added +"/gmail:v1/History/messagesAdded/messages_added": messages_added +"/gmail:v1/History/messagesDeleted": messages_deleted +"/gmail:v1/History/messagesDeleted/messages_deleted": messages_deleted +"/gmail:v1/HistoryLabelAdded": history_label_added +"/gmail:v1/HistoryLabelAdded/labelIds": label_ids +"/gmail:v1/HistoryLabelAdded/labelIds/label_id": label_id +"/gmail:v1/HistoryLabelAdded/message": message +"/gmail:v1/HistoryLabelRemoved": history_label_removed +"/gmail:v1/HistoryLabelRemoved/labelIds": label_ids +"/gmail:v1/HistoryLabelRemoved/labelIds/label_id": label_id +"/gmail:v1/HistoryLabelRemoved/message": message +"/gmail:v1/HistoryMessageAdded": history_message_added +"/gmail:v1/HistoryMessageAdded/message": message +"/gmail:v1/HistoryMessageDeleted": history_message_deleted +"/gmail:v1/HistoryMessageDeleted/message": message +"/gmail:v1/Label": label +"/gmail:v1/Label/id": id +"/gmail:v1/Label/labelListVisibility": label_list_visibility +"/gmail:v1/Label/messageListVisibility": message_list_visibility +"/gmail:v1/Label/messagesTotal": messages_total +"/gmail:v1/Label/messagesUnread": messages_unread +"/gmail:v1/Label/name": name +"/gmail:v1/Label/threadsTotal": threads_total +"/gmail:v1/Label/threadsUnread": threads_unread +"/gmail:v1/Label/type": type +"/gmail:v1/ListDraftsResponse": list_drafts_response +"/gmail:v1/ListDraftsResponse/drafts": drafts +"/gmail:v1/ListDraftsResponse/drafts/draft": draft +"/gmail:v1/ListDraftsResponse/nextPageToken": next_page_token +"/gmail:v1/ListDraftsResponse/resultSizeEstimate": result_size_estimate +"/gmail:v1/ListHistoryResponse": list_history_response +"/gmail:v1/ListHistoryResponse/history": history +"/gmail:v1/ListHistoryResponse/history/history": history +"/gmail:v1/ListHistoryResponse/historyId": history_id +"/gmail:v1/ListHistoryResponse/nextPageToken": next_page_token +"/gmail:v1/ListLabelsResponse": list_labels_response +"/gmail:v1/ListLabelsResponse/labels": labels +"/gmail:v1/ListLabelsResponse/labels/label": label +"/gmail:v1/ListMessagesResponse": list_messages_response +"/gmail:v1/ListMessagesResponse/messages": messages +"/gmail:v1/ListMessagesResponse/messages/message": message +"/gmail:v1/ListMessagesResponse/nextPageToken": next_page_token +"/gmail:v1/ListMessagesResponse/resultSizeEstimate": result_size_estimate +"/gmail:v1/ListThreadsResponse": list_threads_response +"/gmail:v1/ListThreadsResponse/nextPageToken": next_page_token +"/gmail:v1/ListThreadsResponse/resultSizeEstimate": result_size_estimate +"/gmail:v1/ListThreadsResponse/threads": threads +"/gmail:v1/ListThreadsResponse/threads/thread": thread +"/gmail:v1/Message": message +"/gmail:v1/Message/historyId": history_id +"/gmail:v1/Message/id": id +"/gmail:v1/Message/labelIds": label_ids +"/gmail:v1/Message/labelIds/label_id": label_id +"/gmail:v1/Message/payload": payload +"/gmail:v1/Message/raw": raw +"/gmail:v1/Message/sizeEstimate": size_estimate +"/gmail:v1/Message/snippet": snippet +"/gmail:v1/Message/threadId": thread_id +"/gmail:v1/MessagePart": message_part +"/gmail:v1/MessagePart/body": body +"/gmail:v1/MessagePart/filename": filename +"/gmail:v1/MessagePart/headers": headers +"/gmail:v1/MessagePart/headers/header": header +"/gmail:v1/MessagePart/mimeType": mime_type +"/gmail:v1/MessagePart/partId": part_id +"/gmail:v1/MessagePart/parts": parts +"/gmail:v1/MessagePart/parts/part": part +"/gmail:v1/MessagePartBody": message_part_body +"/gmail:v1/MessagePartBody/attachmentId": attachment_id +"/gmail:v1/MessagePartBody/data": data +"/gmail:v1/MessagePartBody/size": size +"/gmail:v1/MessagePartHeader": message_part_header +"/gmail:v1/MessagePartHeader/name": name +"/gmail:v1/MessagePartHeader/value": value +"/gmail:v1/ModifyMessageRequest": modify_message_request +"/gmail:v1/ModifyMessageRequest/addLabelIds": add_label_ids +"/gmail:v1/ModifyMessageRequest/addLabelIds/add_label_id": add_label_id +"/gmail:v1/ModifyMessageRequest/removeLabelIds": remove_label_ids +"/gmail:v1/ModifyMessageRequest/removeLabelIds/remove_label_id": remove_label_id +"/gmail:v1/ModifyThreadRequest": modify_thread_request +"/gmail:v1/ModifyThreadRequest/addLabelIds": add_label_ids +"/gmail:v1/ModifyThreadRequest/addLabelIds/add_label_id": add_label_id +"/gmail:v1/ModifyThreadRequest/removeLabelIds": remove_label_ids +"/gmail:v1/ModifyThreadRequest/removeLabelIds/remove_label_id": remove_label_id +"/gmail:v1/Profile": profile +"/gmail:v1/Profile/emailAddress": email_address +"/gmail:v1/Profile/historyId": history_id +"/gmail:v1/Profile/messagesTotal": messages_total +"/gmail:v1/Profile/threadsTotal": threads_total +"/gmail:v1/Thread": thread +"/gmail:v1/Thread/historyId": history_id +"/gmail:v1/Thread/id": id +"/gmail:v1/Thread/messages": messages +"/gmail:v1/Thread/messages/message": message +"/gmail:v1/Thread/snippet": snippet +"/gmail:v1/WatchRequest": watch_request +"/gmail:v1/WatchRequest/labelFilterAction": label_filter_action +"/gmail:v1/WatchRequest/labelIds": label_ids +"/gmail:v1/WatchRequest/labelIds/label_id": label_id +"/gmail:v1/WatchRequest/topicName": topic_name +"/gmail:v1/WatchResponse": watch_response +"/gmail:v1/WatchResponse/expiration": expiration +"/gmail:v1/WatchResponse/historyId": history_id +"/groupsmigration:v1/fields": fields +"/groupsmigration:v1/key": key +"/groupsmigration:v1/quotaUser": quota_user +"/groupsmigration:v1/userIp": user_ip +"/groupsmigration:v1/groupsmigration.archive.insert": insert_archive +"/groupsmigration:v1/groupsmigration.archive.insert/groupId": group_id +"/groupsmigration:v1/Groups": groups +"/groupsmigration:v1/Groups/kind": kind +"/groupsmigration:v1/Groups/responseCode": response_code +"/groupssettings:v1/fields": fields +"/groupssettings:v1/key": key +"/groupssettings:v1/quotaUser": quota_user +"/groupssettings:v1/userIp": user_ip +"/groupssettings:v1/groupsSettings.groups.get": get_group +"/groupssettings:v1/groupsSettings.groups.get/groupUniqueId": group_unique_id +"/groupssettings:v1/groupsSettings.groups.patch": patch_group +"/groupssettings:v1/groupsSettings.groups.patch/groupUniqueId": group_unique_id +"/groupssettings:v1/groupsSettings.groups.update": update_group +"/groupssettings:v1/groupsSettings.groups.update/groupUniqueId": group_unique_id +"/groupssettings:v1/Groups": groups +"/groupssettings:v1/Groups/allowExternalMembers": allow_external_members +"/groupssettings:v1/Groups/allowGoogleCommunication": allow_google_communication +"/groupssettings:v1/Groups/allowWebPosting": allow_web_posting +"/groupssettings:v1/Groups/archiveOnly": archive_only +"/groupssettings:v1/Groups/customReplyTo": custom_reply_to +"/groupssettings:v1/Groups/defaultMessageDenyNotificationText": default_message_deny_notification_text +"/groupssettings:v1/Groups/description": description +"/groupssettings:v1/Groups/email": email +"/groupssettings:v1/Groups/includeInGlobalAddressList": include_in_global_address_list +"/groupssettings:v1/Groups/isArchived": is_archived +"/groupssettings:v1/Groups/kind": kind +"/groupssettings:v1/Groups/maxMessageBytes": max_message_bytes +"/groupssettings:v1/Groups/membersCanPostAsTheGroup": members_can_post_as_the_group +"/groupssettings:v1/Groups/messageDisplayFont": message_display_font +"/groupssettings:v1/Groups/messageModerationLevel": message_moderation_level +"/groupssettings:v1/Groups/name": name +"/groupssettings:v1/Groups/primaryLanguage": primary_language +"/groupssettings:v1/Groups/replyTo": reply_to +"/groupssettings:v1/Groups/sendMessageDenyNotification": send_message_deny_notification +"/groupssettings:v1/Groups/showInGroupDirectory": show_in_group_directory +"/groupssettings:v1/Groups/spamModerationLevel": spam_moderation_level +"/groupssettings:v1/Groups/whoCanContactOwner": who_can_contact_owner +"/groupssettings:v1/Groups/whoCanInvite": who_can_invite +"/groupssettings:v1/Groups/whoCanJoin": who_can_join +"/groupssettings:v1/Groups/whoCanLeaveGroup": who_can_leave_group +"/groupssettings:v1/Groups/whoCanPostMessage": who_can_post_message +"/groupssettings:v1/Groups/whoCanViewGroup": who_can_view_group +"/groupssettings:v1/Groups/whoCanViewMembership": who_can_view_membership +"/cloudresourcemanager:v1beta1/fields": fields +"/cloudresourcemanager:v1beta1/key": key +"/cloudresourcemanager:v1beta1/quotaUser": quota_user +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.create": create_project +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.list": list_projects +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.list/pageToken": page_token +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.list/pageSize": page_size +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.list/filter": filter +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.get": get_project +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.get/projectId": project_id +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.update": update_project +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.update/projectId": project_id +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.delete": delete_project +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.delete/projectId": project_id +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.undelete": undelete_project +"/cloudresourcemanager:v1beta1/cloudresourcemanager.projects.undelete/projectId": project_id +"/cloudresourcemanager:v1beta1/Project": project +"/cloudresourcemanager:v1beta1/Project/projectNumber": project_number +"/cloudresourcemanager:v1beta1/Project/projectId": project_id +"/cloudresourcemanager:v1beta1/Project/lifecycleState": lifecycle_state +"/cloudresourcemanager:v1beta1/Project/name": name +"/cloudresourcemanager:v1beta1/Project/createTime": create_time +"/cloudresourcemanager:v1beta1/Project/labels": labels +"/cloudresourcemanager:v1beta1/Project/labels/label": label +"/cloudresourcemanager:v1beta1/ListProjectsResponse": list_projects_response +"/cloudresourcemanager:v1beta1/ListProjectsResponse/projects": projects +"/cloudresourcemanager:v1beta1/ListProjectsResponse/projects/project": project +"/cloudresourcemanager:v1beta1/ListProjectsResponse/nextPageToken": next_page_token +"/cloudresourcemanager:v1beta1/Empty": empty +"/logging:v1beta3/fields": fields +"/logging:v1beta3/key": key +"/logging:v1beta3/quotaUser": quota_user +"/logging:v1beta3/logging.projects.logs.list/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.list/serviceName": service_name +"/logging:v1beta3/logging.projects.logs.list/serviceIndexPrefix": service_index_prefix +"/logging:v1beta3/logging.projects.logs.list/pageSize": page_size +"/logging:v1beta3/logging.projects.logs.list/pageToken": page_token +"/logging:v1beta3/logging.projects.logs.delete/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.delete/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.entries.write": write_log_entries +"/logging:v1beta3/logging.projects.logs.entries.write/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.entries.write/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.list/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.sinks.list/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.get/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.sinks.get/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.get/sinksId": sinks_id +"/logging:v1beta3/logging.projects.logs.sinks.create/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.sinks.create/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.update/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.sinks.update/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.update/sinksId": sinks_id +"/logging:v1beta3/logging.projects.logs.sinks.delete/projectsId": projects_id +"/logging:v1beta3/logging.projects.logs.sinks.delete/logsId": logs_id +"/logging:v1beta3/logging.projects.logs.sinks.delete/sinksId": sinks_id +"/logging:v1beta3/logging.projects.logServices.list/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.list/log": log +"/logging:v1beta3/logging.projects.logServices.list/pageSize": page_size +"/logging:v1beta3/logging.projects.logServices.list/pageToken": page_token +"/logging:v1beta3/logging.projects.logServices.indexes.list/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.indexes.list/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.indexes.list/indexPrefix": index_prefix +"/logging:v1beta3/logging.projects.logServices.indexes.list/depth": depth +"/logging:v1beta3/logging.projects.logServices.indexes.list/log": log +"/logging:v1beta3/logging.projects.logServices.indexes.list/pageSize": page_size +"/logging:v1beta3/logging.projects.logServices.indexes.list/pageToken": page_token +"/logging:v1beta3/logging.projects.logServices.sinks.list/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.sinks.list/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.sinks.get/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.sinks.get/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.sinks.get/sinksId": sinks_id +"/logging:v1beta3/logging.projects.logServices.sinks.create/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.sinks.create/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.sinks.update/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.sinks.update/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.sinks.update/sinksId": sinks_id +"/logging:v1beta3/logging.projects.logServices.sinks.delete/projectsId": projects_id +"/logging:v1beta3/logging.projects.logServices.sinks.delete/logServicesId": log_services_id +"/logging:v1beta3/logging.projects.logServices.sinks.delete/sinksId": sinks_id +"/logging:v1beta3/ListLogsResponse": list_logs_response +"/logging:v1beta3/ListLogsResponse/logs": logs +"/logging:v1beta3/ListLogsResponse/logs/log": log +"/logging:v1beta3/ListLogsResponse/nextPageToken": next_page_token +"/logging:v1beta3/Log": log +"/logging:v1beta3/Log/name": name +"/logging:v1beta3/Log/displayName": display_name +"/logging:v1beta3/Log/payloadType": payload_type +"/logging:v1beta3/Empty": empty +"/logging:v1beta3/WriteLogEntriesRequest": write_log_entries_request +"/logging:v1beta3/WriteLogEntriesRequest/commonLabels": common_labels +"/logging:v1beta3/WriteLogEntriesRequest/commonLabels/common_label": common_label +"/logging:v1beta3/WriteLogEntriesRequest/entries": entries +"/logging:v1beta3/WriteLogEntriesRequest/entries/entry": entry +"/logging:v1beta3/LogEntry": log_entry +"/logging:v1beta3/LogEntry/metadata": metadata +"/logging:v1beta3/LogEntry/protoPayload": proto_payload +"/logging:v1beta3/LogEntry/protoPayload/proto_payload": proto_payload +"/logging:v1beta3/LogEntry/textPayload": text_payload +"/logging:v1beta3/LogEntry/structPayload": struct_payload +"/logging:v1beta3/LogEntry/structPayload/struct_payload": struct_payload +"/logging:v1beta3/LogEntry/insertId": insert_id +"/logging:v1beta3/LogEntry/log": log +"/logging:v1beta3/LogEntryMetadata": log_entry_metadata +"/logging:v1beta3/LogEntryMetadata/timestamp": timestamp +"/logging:v1beta3/LogEntryMetadata/severity": severity +"/logging:v1beta3/LogEntryMetadata/projectId": project_id +"/logging:v1beta3/LogEntryMetadata/serviceName": service_name +"/logging:v1beta3/LogEntryMetadata/region": region +"/logging:v1beta3/LogEntryMetadata/zone": zone +"/logging:v1beta3/LogEntryMetadata/userId": user_id +"/logging:v1beta3/LogEntryMetadata/labels": labels +"/logging:v1beta3/LogEntryMetadata/labels/label": label +"/logging:v1beta3/WriteLogEntriesResponse": write_log_entries_response +"/logging:v1beta3/ListLogServicesResponse": list_log_services_response +"/logging:v1beta3/ListLogServicesResponse/logServices": log_services +"/logging:v1beta3/ListLogServicesResponse/logServices/log_service": log_service +"/logging:v1beta3/ListLogServicesResponse/nextPageToken": next_page_token +"/logging:v1beta3/LogService": log_service +"/logging:v1beta3/LogService/name": name +"/logging:v1beta3/LogService/indexKeys": index_keys +"/logging:v1beta3/LogService/indexKeys/index_key": index_key +"/logging:v1beta3/ListLogServiceIndexesResponse": list_log_service_indexes_response +"/logging:v1beta3/ListLogServiceIndexesResponse/serviceIndexPrefixes": service_index_prefixes +"/logging:v1beta3/ListLogServiceIndexesResponse/serviceIndexPrefixes/service_index_prefix": service_index_prefix +"/logging:v1beta3/ListLogServiceIndexesResponse/nextPageToken": next_page_token +"/logging:v1beta3/ListLogSinksResponse": list_log_sinks_response +"/logging:v1beta3/ListLogSinksResponse/sinks": sinks +"/logging:v1beta3/ListLogSinksResponse/sinks/sink": sink +"/logging:v1beta3/LogSink": log_sink +"/logging:v1beta3/LogSink/name": name +"/logging:v1beta3/LogSink/destination": destination +"/logging:v1beta3/LogSink/errors": errors +"/logging:v1beta3/LogSink/errors/error": error +"/logging:v1beta3/LogError": log_error +"/logging:v1beta3/LogError/resource": resource +"/logging:v1beta3/LogError/status": status +"/logging:v1beta3/LogError/timeNanos": time_nanos +"/logging:v1beta3/Status": status +"/logging:v1beta3/Status/code": code +"/logging:v1beta3/Status/message": message +"/logging:v1beta3/Status/details": details +"/logging:v1beta3/Status/details/detail": detail +"/logging:v1beta3/Status/details/detail/detail": detail +"/logging:v1beta3/ListLogServiceSinksResponse": list_log_service_sinks_response +"/logging:v1beta3/ListLogServiceSinksResponse/sinks": sinks +"/logging:v1beta3/ListLogServiceSinksResponse/sinks/sink": sink +"/pubsub:v1beta2/fields": fields +"/pubsub:v1beta2/key": key +"/pubsub:v1beta2/quotaUser": quota_user +"/pubsub:v1beta2/pubsub.projects.topics.setIamPolicy/resource": resource +"/pubsub:v1beta2/pubsub.projects.topics.getIamPolicy": get_iam_policy_project_topic +"/pubsub:v1beta2/pubsub.projects.topics.getIamPolicy/resource": resource +"/pubsub:v1beta2/pubsub.projects.topics.testIamPermissions/resource": resource +"/pubsub:v1beta2/pubsub.projects.topics.create/name": name +"/pubsub:v1beta2/pubsub.projects.topics.publish": publish +"/pubsub:v1beta2/pubsub.projects.topics.publish/topic": topic +"/pubsub:v1beta2/pubsub.projects.topics.get/topic": topic +"/pubsub:v1beta2/pubsub.projects.topics.list/project": project +"/pubsub:v1beta2/pubsub.projects.topics.list/pageSize": page_size +"/pubsub:v1beta2/pubsub.projects.topics.list/pageToken": page_token +"/pubsub:v1beta2/pubsub.projects.topics.delete/topic": topic +"/pubsub:v1beta2/pubsub.projects.topics.subscriptions.list/topic": topic +"/pubsub:v1beta2/pubsub.projects.topics.subscriptions.list/pageSize": page_size +"/pubsub:v1beta2/pubsub.projects.topics.subscriptions.list/pageToken": page_token +"/pubsub:v1beta2/pubsub.projects.subscriptions.setIamPolicy/resource": resource +"/pubsub:v1beta2/pubsub.projects.subscriptions.getIamPolicy": get_iam_policy_project_subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.getIamPolicy/resource": resource +"/pubsub:v1beta2/pubsub.projects.subscriptions.testIamPermissions/resource": resource +"/pubsub:v1beta2/pubsub.projects.subscriptions.create/name": name +"/pubsub:v1beta2/pubsub.projects.subscriptions.get/subscription": subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.list/project": project +"/pubsub:v1beta2/pubsub.projects.subscriptions.list/pageSize": page_size +"/pubsub:v1beta2/pubsub.projects.subscriptions.list/pageToken": page_token +"/pubsub:v1beta2/pubsub.projects.subscriptions.delete/subscription": subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.modifyAckDeadline": modify_ack_deadline +"/pubsub:v1beta2/pubsub.projects.subscriptions.modifyAckDeadline/subscription": subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.acknowledge": acknowledge +"/pubsub:v1beta2/pubsub.projects.subscriptions.acknowledge/subscription": subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.pull": pull +"/pubsub:v1beta2/pubsub.projects.subscriptions.pull/subscription": subscription +"/pubsub:v1beta2/pubsub.projects.subscriptions.modifyPushConfig": modify_push_config +"/pubsub:v1beta2/pubsub.projects.subscriptions.modifyPushConfig/subscription": subscription +"/pubsub:v1beta2/SetIamPolicyRequest": set_iam_policy_request +"/pubsub:v1beta2/SetIamPolicyRequest/policy": policy +"/pubsub:v1beta2/Policy": policy +"/pubsub:v1beta2/Policy/version": version +"/pubsub:v1beta2/Policy/bindings": bindings +"/pubsub:v1beta2/Policy/bindings/binding": binding +"/pubsub:v1beta2/Policy/rules": rules +"/pubsub:v1beta2/Policy/rules/rule": rule +"/pubsub:v1beta2/Policy/etag": etag +"/pubsub:v1beta2/Binding": binding +"/pubsub:v1beta2/Binding/role": role +"/pubsub:v1beta2/Binding/members": members +"/pubsub:v1beta2/Binding/members/member": member +"/pubsub:v1beta2/Rule": rule +"/pubsub:v1beta2/Rule/description": description +"/pubsub:v1beta2/Rule/permissions": permissions +"/pubsub:v1beta2/Rule/permissions/permission": permission +"/pubsub:v1beta2/Rule/action": action +"/pubsub:v1beta2/Rule/in": in +"/pubsub:v1beta2/Rule/in/in": in +"/pubsub:v1beta2/Rule/notIn": not_in +"/pubsub:v1beta2/Rule/notIn/not_in": not_in +"/pubsub:v1beta2/Rule/conditions": conditions +"/pubsub:v1beta2/Rule/conditions/condition": condition +"/pubsub:v1beta2/Rule/logConfig": log_config +"/pubsub:v1beta2/Rule/logConfig/log_config": log_config +"/pubsub:v1beta2/Condition": condition +"/pubsub:v1beta2/Condition/iam": iam +"/pubsub:v1beta2/Condition/sys": sys +"/pubsub:v1beta2/Condition/svc": svc +"/pubsub:v1beta2/Condition/op": op +"/pubsub:v1beta2/Condition/value": value +"/pubsub:v1beta2/Condition/values": values +"/pubsub:v1beta2/Condition/values/value": value +"/pubsub:v1beta2/LogConfig": log_config +"/pubsub:v1beta2/LogConfig/counter": counter +"/pubsub:v1beta2/LogConfig/dataAccess": data_access +"/pubsub:v1beta2/LogConfig/cloudAudit": cloud_audit +"/pubsub:v1beta2/CounterOptions": counter_options +"/pubsub:v1beta2/CounterOptions/metric": metric +"/pubsub:v1beta2/CounterOptions/field": field +"/pubsub:v1beta2/DataAccessOptions": data_access_options +"/pubsub:v1beta2/CloudAuditOptions": cloud_audit_options +"/pubsub:v1beta2/TestIamPermissionsRequest": test_iam_permissions_request +"/pubsub:v1beta2/TestIamPermissionsRequest/permissions": permissions +"/pubsub:v1beta2/TestIamPermissionsRequest/permissions/permission": permission +"/pubsub:v1beta2/TestIamPermissionsResponse": test_iam_permissions_response +"/pubsub:v1beta2/TestIamPermissionsResponse/permissions": permissions +"/pubsub:v1beta2/TestIamPermissionsResponse/permissions/permission": permission +"/pubsub:v1beta2/Topic": topic +"/pubsub:v1beta2/Topic/name": name +"/pubsub:v1beta2/PublishRequest": publish_request +"/pubsub:v1beta2/PublishRequest/messages": messages +"/pubsub:v1beta2/PublishRequest/messages/message": message +"/pubsub:v1beta2/PubsubMessage/data": data +"/pubsub:v1beta2/PubsubMessage/attributes": attributes +"/pubsub:v1beta2/PubsubMessage/attributes/attribute": attribute +"/pubsub:v1beta2/PubsubMessage/messageId": message_id +"/pubsub:v1beta2/PublishResponse": publish_response +"/pubsub:v1beta2/PublishResponse/messageIds": message_ids +"/pubsub:v1beta2/PublishResponse/messageIds/message_id": message_id +"/pubsub:v1beta2/ListTopicsResponse": list_topics_response +"/pubsub:v1beta2/ListTopicsResponse/topics": topics +"/pubsub:v1beta2/ListTopicsResponse/topics/topic": topic +"/pubsub:v1beta2/ListTopicsResponse/nextPageToken": next_page_token +"/pubsub:v1beta2/ListTopicSubscriptionsResponse": list_topic_subscriptions_response +"/pubsub:v1beta2/ListTopicSubscriptionsResponse/subscriptions": subscriptions +"/pubsub:v1beta2/ListTopicSubscriptionsResponse/subscriptions/subscription": subscription +"/pubsub:v1beta2/ListTopicSubscriptionsResponse/nextPageToken": next_page_token +"/pubsub:v1beta2/Empty": empty +"/pubsub:v1beta2/Subscription": subscription +"/pubsub:v1beta2/Subscription/name": name +"/pubsub:v1beta2/Subscription/topic": topic +"/pubsub:v1beta2/Subscription/pushConfig": push_config +"/pubsub:v1beta2/Subscription/ackDeadlineSeconds": ack_deadline_seconds +"/pubsub:v1beta2/PushConfig": push_config +"/pubsub:v1beta2/PushConfig/pushEndpoint": push_endpoint +"/pubsub:v1beta2/PushConfig/attributes": attributes +"/pubsub:v1beta2/PushConfig/attributes/attribute": attribute +"/pubsub:v1beta2/ListSubscriptionsResponse": list_subscriptions_response +"/pubsub:v1beta2/ListSubscriptionsResponse/subscriptions": subscriptions +"/pubsub:v1beta2/ListSubscriptionsResponse/subscriptions/subscription": subscription +"/pubsub:v1beta2/ListSubscriptionsResponse/nextPageToken": next_page_token +"/pubsub:v1beta2/ModifyAckDeadlineRequest": modify_ack_deadline_request +"/pubsub:v1beta2/ModifyAckDeadlineRequest/ackId": ack_id +"/pubsub:v1beta2/ModifyAckDeadlineRequest/ackIds": ack_ids +"/pubsub:v1beta2/ModifyAckDeadlineRequest/ackIds/ack_id": ack_id +"/pubsub:v1beta2/ModifyAckDeadlineRequest/ackDeadlineSeconds": ack_deadline_seconds +"/pubsub:v1beta2/AcknowledgeRequest": acknowledge_request +"/pubsub:v1beta2/AcknowledgeRequest/ackIds": ack_ids +"/pubsub:v1beta2/AcknowledgeRequest/ackIds/ack_id": ack_id +"/pubsub:v1beta2/PullRequest": pull_request +"/pubsub:v1beta2/PullRequest/returnImmediately": return_immediately +"/pubsub:v1beta2/PullRequest/maxMessages": max_messages +"/pubsub:v1beta2/PullResponse": pull_response +"/pubsub:v1beta2/PullResponse/receivedMessages": received_messages +"/pubsub:v1beta2/PullResponse/receivedMessages/received_message": received_message +"/pubsub:v1beta2/ReceivedMessage": received_message +"/pubsub:v1beta2/ReceivedMessage/ackId": ack_id +"/pubsub:v1beta2/ReceivedMessage/message": message +"/pubsub:v1beta2/ModifyPushConfigRequest": modify_push_config_request +"/pubsub:v1beta2/ModifyPushConfigRequest/pushConfig": push_config +"/identitytoolkit:v3/fields": fields +"/identitytoolkit:v3/key": key +"/identitytoolkit:v3/quotaUser": quota_user +"/identitytoolkit:v3/userIp": user_ip +"/identitytoolkit:v3/CreateAuthUriResponse": create_auth_uri_response +"/identitytoolkit:v3/CreateAuthUriResponse/authUri": auth_uri +"/identitytoolkit:v3/CreateAuthUriResponse/captchaRequired": captcha_required +"/identitytoolkit:v3/CreateAuthUriResponse/forExistingProvider": for_existing_provider +"/identitytoolkit:v3/CreateAuthUriResponse/kind": kind +"/identitytoolkit:v3/CreateAuthUriResponse/providerId": provider_id +"/identitytoolkit:v3/CreateAuthUriResponse/registered": registered +"/identitytoolkit:v3/DeleteAccountResponse": delete_account_response +"/identitytoolkit:v3/DeleteAccountResponse/kind": kind +"/identitytoolkit:v3/DownloadAccountResponse": download_account_response +"/identitytoolkit:v3/DownloadAccountResponse/kind": kind +"/identitytoolkit:v3/DownloadAccountResponse/nextPageToken": next_page_token +"/identitytoolkit:v3/DownloadAccountResponse/users": users +"/identitytoolkit:v3/DownloadAccountResponse/users/user": user +"/identitytoolkit:v3/GetAccountInfoResponse": get_account_info_response +"/identitytoolkit:v3/GetAccountInfoResponse/kind": kind +"/identitytoolkit:v3/GetAccountInfoResponse/users": users +"/identitytoolkit:v3/GetAccountInfoResponse/users/user": user +"/identitytoolkit:v3/GetOobConfirmationCodeResponse": get_oob_confirmation_code_response +"/identitytoolkit:v3/GetOobConfirmationCodeResponse/kind": kind +"/identitytoolkit:v3/GetOobConfirmationCodeResponse/oobCode": oob_code +"/identitytoolkit:v3/GetRecaptchaParamResponse": get_recaptcha_param_response +"/identitytoolkit:v3/GetRecaptchaParamResponse/kind": kind +"/identitytoolkit:v3/GetRecaptchaParamResponse/recaptchaSiteKey": recaptcha_site_key +"/identitytoolkit:v3/GetRecaptchaParamResponse/recaptchaStoken": recaptcha_stoken +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/appId": app_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/clientId": client_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/context": context +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/continueUri": continue_uri +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/identifier": identifier +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/oauthConsumerKey": oauth_consumer_key +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/oauthScope": oauth_scope +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/openidRealm": openid_realm +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/otaApp": ota_app +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyCreateAuthUriRequest/providerId": provider_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDeleteAccountRequest/localId": local_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDownloadAccountRequest/maxResults": max_results +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyDownloadAccountRequest/nextPageToken": next_page_token +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest/email": email +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest/email/email": email +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest/idToken": id_token +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest/localId": local_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyGetAccountInfoRequest/localId/local_id": local_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest/email": email +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest/newPassword": new_password +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest/oldPassword": old_password +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyResetPasswordRequest/oobCode": oob_code +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/captchaChallenge": captcha_challenge +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/captchaResponse": captcha_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/disableUser": disable_user +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/displayName": display_name +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/email": email +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/emailVerified": email_verified +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/idToken": id_token +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/localId": local_id +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/oobCode": oob_code +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/password": password +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/provider": provider +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/provider/provider": provider +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/upgradeToFederatedLogin": upgrade_to_federated_login +"/identitytoolkit:v3/IdentitytoolkitRelyingpartySetAccountInfoRequest/validSince": valid_since +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/hashAlgorithm": hash_algorithm +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/memoryCost": memory_cost +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/rounds": rounds +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/saltSeparator": salt_separator +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/signerKey": signer_key +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/users": users +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyUploadAccountRequest/users/user": user +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest/pendingIdToken": pending_id_token +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest/postBody": post_body +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest/requestUri": request_uri +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyAssertionRequest/returnRefreshToken": return_refresh_token +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest/captchaChallenge": captcha_challenge +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest/captchaResponse": captcha_response +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest/email": email +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest/password": password +"/identitytoolkit:v3/IdentitytoolkitRelyingpartyVerifyPasswordRequest/pendingIdToken": pending_id_token +"/identitytoolkit:v3/Relyingparty": relyingparty +"/identitytoolkit:v3/Relyingparty/captchaResp": captcha_resp +"/identitytoolkit:v3/Relyingparty/challenge": challenge +"/identitytoolkit:v3/Relyingparty/email": email +"/identitytoolkit:v3/Relyingparty/idToken": id_token +"/identitytoolkit:v3/Relyingparty/kind": kind +"/identitytoolkit:v3/Relyingparty/newEmail": new_email +"/identitytoolkit:v3/Relyingparty/requestType": request_type +"/identitytoolkit:v3/Relyingparty/userIp": user_ip +"/identitytoolkit:v3/ResetPasswordResponse": reset_password_response +"/identitytoolkit:v3/ResetPasswordResponse/email": email +"/identitytoolkit:v3/ResetPasswordResponse/kind": kind +"/identitytoolkit:v3/SetAccountInfoResponse": set_account_info_response +"/identitytoolkit:v3/SetAccountInfoResponse/displayName": display_name +"/identitytoolkit:v3/SetAccountInfoResponse/email": email +"/identitytoolkit:v3/SetAccountInfoResponse/idToken": id_token +"/identitytoolkit:v3/SetAccountInfoResponse/kind": kind +"/identitytoolkit:v3/SetAccountInfoResponse/providerUserInfo": provider_user_info +"/identitytoolkit:v3/SetAccountInfoResponse/providerUserInfo/provider_user_info": provider_user_info +"/identitytoolkit:v3/SetAccountInfoResponse/providerUserInfo/provider_user_info/displayName": display_name +"/identitytoolkit:v3/SetAccountInfoResponse/providerUserInfo/provider_user_info/photoUrl": photo_url +"/identitytoolkit:v3/SetAccountInfoResponse/providerUserInfo/provider_user_info/providerId": provider_id +"/identitytoolkit:v3/UploadAccountResponse": upload_account_response +"/identitytoolkit:v3/UploadAccountResponse/error": error +"/identitytoolkit:v3/UploadAccountResponse/error/error": error +"/identitytoolkit:v3/UploadAccountResponse/error/error/index": index +"/identitytoolkit:v3/UploadAccountResponse/error/error/message": message +"/identitytoolkit:v3/UploadAccountResponse/kind": kind +"/identitytoolkit:v3/UserInfo": user_info +"/identitytoolkit:v3/UserInfo/disabled": disabled +"/identitytoolkit:v3/UserInfo/displayName": display_name +"/identitytoolkit:v3/UserInfo/email": email +"/identitytoolkit:v3/UserInfo/emailVerified": email_verified +"/identitytoolkit:v3/UserInfo/localId": local_id +"/identitytoolkit:v3/UserInfo/passwordHash": password_hash +"/identitytoolkit:v3/UserInfo/passwordUpdatedAt": password_updated_at +"/identitytoolkit:v3/UserInfo/photoUrl": photo_url +"/identitytoolkit:v3/UserInfo/providerUserInfo": provider_user_info +"/identitytoolkit:v3/UserInfo/providerUserInfo/provider_user_info": provider_user_info +"/identitytoolkit:v3/UserInfo/providerUserInfo/provider_user_info/displayName": display_name +"/identitytoolkit:v3/UserInfo/providerUserInfo/provider_user_info/federatedId": federated_id +"/identitytoolkit:v3/UserInfo/providerUserInfo/provider_user_info/photoUrl": photo_url +"/identitytoolkit:v3/UserInfo/providerUserInfo/provider_user_info/providerId": provider_id +"/identitytoolkit:v3/UserInfo/salt": salt +"/identitytoolkit:v3/UserInfo/validSince": valid_since +"/identitytoolkit:v3/UserInfo/version": version +"/identitytoolkit:v3/VerifyAssertionResponse": verify_assertion_response +"/identitytoolkit:v3/VerifyAssertionResponse/action": action +"/identitytoolkit:v3/VerifyAssertionResponse/appInstallationUrl": app_installation_url +"/identitytoolkit:v3/VerifyAssertionResponse/appScheme": app_scheme +"/identitytoolkit:v3/VerifyAssertionResponse/context": context +"/identitytoolkit:v3/VerifyAssertionResponse/dateOfBirth": date_of_birth +"/identitytoolkit:v3/VerifyAssertionResponse/displayName": display_name +"/identitytoolkit:v3/VerifyAssertionResponse/email": email +"/identitytoolkit:v3/VerifyAssertionResponse/emailRecycled": email_recycled +"/identitytoolkit:v3/VerifyAssertionResponse/emailVerified": email_verified +"/identitytoolkit:v3/VerifyAssertionResponse/federatedId": federated_id +"/identitytoolkit:v3/VerifyAssertionResponse/firstName": first_name +"/identitytoolkit:v3/VerifyAssertionResponse/fullName": full_name +"/identitytoolkit:v3/VerifyAssertionResponse/idToken": id_token +"/identitytoolkit:v3/VerifyAssertionResponse/inputEmail": input_email +"/identitytoolkit:v3/VerifyAssertionResponse/kind": kind +"/identitytoolkit:v3/VerifyAssertionResponse/language": language +"/identitytoolkit:v3/VerifyAssertionResponse/lastName": last_name +"/identitytoolkit:v3/VerifyAssertionResponse/localId": local_id +"/identitytoolkit:v3/VerifyAssertionResponse/needConfirmation": need_confirmation +"/identitytoolkit:v3/VerifyAssertionResponse/nickName": nick_name +"/identitytoolkit:v3/VerifyAssertionResponse/oauthAccessToken": oauth_access_token +"/identitytoolkit:v3/VerifyAssertionResponse/oauthAuthorizationCode": oauth_authorization_code +"/identitytoolkit:v3/VerifyAssertionResponse/oauthExpireIn": oauth_expire_in +"/identitytoolkit:v3/VerifyAssertionResponse/oauthRequestToken": oauth_request_token +"/identitytoolkit:v3/VerifyAssertionResponse/oauthScope": oauth_scope +"/identitytoolkit:v3/VerifyAssertionResponse/originalEmail": original_email +"/identitytoolkit:v3/VerifyAssertionResponse/photoUrl": photo_url +"/identitytoolkit:v3/VerifyAssertionResponse/providerId": provider_id +"/identitytoolkit:v3/VerifyAssertionResponse/timeZone": time_zone +"/identitytoolkit:v3/VerifyAssertionResponse/verifiedProvider": verified_provider +"/identitytoolkit:v3/VerifyAssertionResponse/verifiedProvider/verified_provider": verified_provider +"/identitytoolkit:v3/VerifyPasswordResponse": verify_password_response +"/identitytoolkit:v3/VerifyPasswordResponse/displayName": display_name +"/identitytoolkit:v3/VerifyPasswordResponse/email": email +"/identitytoolkit:v3/VerifyPasswordResponse/idToken": id_token +"/identitytoolkit:v3/VerifyPasswordResponse/kind": kind +"/identitytoolkit:v3/VerifyPasswordResponse/localId": local_id +"/identitytoolkit:v3/VerifyPasswordResponse/photoUrl": photo_url +"/identitytoolkit:v3/VerifyPasswordResponse/registered": registered +"/licensing:v1/fields": fields +"/licensing:v1/key": key +"/licensing:v1/quotaUser": quota_user +"/licensing:v1/userIp": user_ip +"/licensing:v1/licensing.licenseAssignments.delete": delete_license_assignment +"/licensing:v1/licensing.licenseAssignments.delete/productId": product_id +"/licensing:v1/licensing.licenseAssignments.delete/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.delete/userId": user_id +"/licensing:v1/licensing.licenseAssignments.get": get_license_assignment +"/licensing:v1/licensing.licenseAssignments.get/productId": product_id +"/licensing:v1/licensing.licenseAssignments.get/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.get/userId": user_id +"/licensing:v1/licensing.licenseAssignments.insert": insert_license_assignment +"/licensing:v1/licensing.licenseAssignments.insert/productId": product_id +"/licensing:v1/licensing.licenseAssignments.insert/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.listForProduct/customerId": customer_id +"/licensing:v1/licensing.licenseAssignments.listForProduct/maxResults": max_results +"/licensing:v1/licensing.licenseAssignments.listForProduct/pageToken": page_token +"/licensing:v1/licensing.licenseAssignments.listForProduct/productId": product_id +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku/customerId": customer_id +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku/maxResults": max_results +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku/pageToken": page_token +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku/productId": product_id +"/licensing:v1/licensing.licenseAssignments.listForProductAndSku/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.patch": patch_license_assignment +"/licensing:v1/licensing.licenseAssignments.patch/productId": product_id +"/licensing:v1/licensing.licenseAssignments.patch/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.patch/userId": user_id +"/licensing:v1/licensing.licenseAssignments.update": update_license_assignment +"/licensing:v1/licensing.licenseAssignments.update/productId": product_id +"/licensing:v1/licensing.licenseAssignments.update/skuId": sku_id +"/licensing:v1/licensing.licenseAssignments.update/userId": user_id +"/licensing:v1/LicenseAssignment": license_assignment +"/licensing:v1/LicenseAssignment/etags": etags +"/licensing:v1/LicenseAssignment/kind": kind +"/licensing:v1/LicenseAssignment/productId": product_id +"/licensing:v1/LicenseAssignment/selfLink": self_link +"/licensing:v1/LicenseAssignment/skuId": sku_id +"/licensing:v1/LicenseAssignment/userId": user_id +"/licensing:v1/LicenseAssignmentInsert": license_assignment_insert +"/licensing:v1/LicenseAssignmentInsert/userId": user_id +"/licensing:v1/LicenseAssignmentList": license_assignment_list +"/licensing:v1/LicenseAssignmentList/etag": etag +"/licensing:v1/LicenseAssignmentList/items": items +"/licensing:v1/LicenseAssignmentList/items/item": item +"/licensing:v1/LicenseAssignmentList/kind": kind +"/licensing:v1/LicenseAssignmentList/nextPageToken": next_page_token +"/manager:v1beta2/fields": fields +"/manager:v1beta2/key": key +"/manager:v1beta2/quotaUser": quota_user +"/manager:v1beta2/userIp": user_ip +"/manager:v1beta2/manager.deployments.delete": delete_deployment +"/manager:v1beta2/manager.deployments.delete/deploymentName": deployment_name +"/manager:v1beta2/manager.deployments.delete/projectId": project_id +"/manager:v1beta2/manager.deployments.delete/region": region +"/manager:v1beta2/manager.deployments.get": get_deployment +"/manager:v1beta2/manager.deployments.get/deploymentName": deployment_name +"/manager:v1beta2/manager.deployments.get/projectId": project_id +"/manager:v1beta2/manager.deployments.get/region": region +"/manager:v1beta2/manager.deployments.insert": insert_deployment +"/manager:v1beta2/manager.deployments.insert/projectId": project_id +"/manager:v1beta2/manager.deployments.insert/region": region +"/manager:v1beta2/manager.deployments.list": list_deployments +"/manager:v1beta2/manager.deployments.list/maxResults": max_results +"/manager:v1beta2/manager.deployments.list/pageToken": page_token +"/manager:v1beta2/manager.deployments.list/projectId": project_id +"/manager:v1beta2/manager.deployments.list/region": region +"/manager:v1beta2/manager.templates.delete": delete_template +"/manager:v1beta2/manager.templates.delete/projectId": project_id +"/manager:v1beta2/manager.templates.delete/templateName": template_name +"/manager:v1beta2/manager.templates.get": get_template +"/manager:v1beta2/manager.templates.get/projectId": project_id +"/manager:v1beta2/manager.templates.get/templateName": template_name +"/manager:v1beta2/manager.templates.insert": insert_template +"/manager:v1beta2/manager.templates.insert/projectId": project_id +"/manager:v1beta2/manager.templates.list": list_templates +"/manager:v1beta2/manager.templates.list/maxResults": max_results +"/manager:v1beta2/manager.templates.list/pageToken": page_token +"/manager:v1beta2/manager.templates.list/projectId": project_id +"/manager:v1beta2/AccessConfig": access_config +"/manager:v1beta2/AccessConfig/name": name +"/manager:v1beta2/AccessConfig/natIp": nat_ip +"/manager:v1beta2/AccessConfig/type": type +"/manager:v1beta2/Action": action +"/manager:v1beta2/Action/commands": commands +"/manager:v1beta2/Action/commands/command": command +"/manager:v1beta2/Action/timeoutMs": timeout_ms +"/manager:v1beta2/AllowedRule": allowed_rule +"/manager:v1beta2/AllowedRule/IPProtocol": ip_protocol +"/manager:v1beta2/AllowedRule/ports": ports +"/manager:v1beta2/AllowedRule/ports/port": port +"/manager:v1beta2/AutoscalingModule": autoscaling_module +"/manager:v1beta2/AutoscalingModule/coolDownPeriodSec": cool_down_period_sec +"/manager:v1beta2/AutoscalingModule/description": description +"/manager:v1beta2/AutoscalingModule/maxNumReplicas": max_num_replicas +"/manager:v1beta2/AutoscalingModule/minNumReplicas": min_num_replicas +"/manager:v1beta2/AutoscalingModule/signalType": signal_type +"/manager:v1beta2/AutoscalingModule/targetModule": target_module +"/manager:v1beta2/AutoscalingModule/targetUtilization": target_utilization +"/manager:v1beta2/AutoscalingModuleStatus": autoscaling_module_status +"/manager:v1beta2/AutoscalingModuleStatus/autoscalingConfigUrl": autoscaling_config_url +"/manager:v1beta2/DeployState": deploy_state +"/manager:v1beta2/DeployState/details": details +"/manager:v1beta2/DeployState/status": status +"/manager:v1beta2/Deployment": deployment +"/manager:v1beta2/Deployment/creationDate": creation_date +"/manager:v1beta2/Deployment/description": description +"/manager:v1beta2/Deployment/modules": modules +"/manager:v1beta2/Deployment/modules/module": module +"/manager:v1beta2/Deployment/name": name +"/manager:v1beta2/Deployment/overrides": overrides +"/manager:v1beta2/Deployment/overrides/override": override +"/manager:v1beta2/Deployment/state": state +"/manager:v1beta2/Deployment/templateName": template_name +"/manager:v1beta2/DeploymentsListResponse/nextPageToken": next_page_token +"/manager:v1beta2/DeploymentsListResponse/resources": resources +"/manager:v1beta2/DeploymentsListResponse/resources/resource": resource +"/manager:v1beta2/DiskAttachment": disk_attachment +"/manager:v1beta2/DiskAttachment/deviceName": device_name +"/manager:v1beta2/DiskAttachment/index": index +"/manager:v1beta2/EnvVariable": env_variable +"/manager:v1beta2/EnvVariable/hidden": hidden +"/manager:v1beta2/EnvVariable/value": value +"/manager:v1beta2/ExistingDisk": existing_disk +"/manager:v1beta2/ExistingDisk/attachment": attachment +"/manager:v1beta2/ExistingDisk/source": source +"/manager:v1beta2/FirewallModule": firewall_module +"/manager:v1beta2/FirewallModule/allowed": allowed +"/manager:v1beta2/FirewallModule/allowed/allowed": allowed +"/manager:v1beta2/FirewallModule/description": description +"/manager:v1beta2/FirewallModule/network": network +"/manager:v1beta2/FirewallModule/sourceRanges": source_ranges +"/manager:v1beta2/FirewallModule/sourceRanges/source_range": source_range +"/manager:v1beta2/FirewallModule/sourceTags": source_tags +"/manager:v1beta2/FirewallModule/sourceTags/source_tag": source_tag +"/manager:v1beta2/FirewallModule/targetTags": target_tags +"/manager:v1beta2/FirewallModule/targetTags/target_tag": target_tag +"/manager:v1beta2/FirewallModuleStatus": firewall_module_status +"/manager:v1beta2/FirewallModuleStatus/firewallUrl": firewall_url +"/manager:v1beta2/HealthCheckModule": health_check_module +"/manager:v1beta2/HealthCheckModule/checkIntervalSec": check_interval_sec +"/manager:v1beta2/HealthCheckModule/description": description +"/manager:v1beta2/HealthCheckModule/healthyThreshold": healthy_threshold +"/manager:v1beta2/HealthCheckModule/host": host +"/manager:v1beta2/HealthCheckModule/path": path +"/manager:v1beta2/HealthCheckModule/port": port +"/manager:v1beta2/HealthCheckModule/timeoutSec": timeout_sec +"/manager:v1beta2/HealthCheckModule/unhealthyThreshold": unhealthy_threshold +"/manager:v1beta2/HealthCheckModuleStatus": health_check_module_status +"/manager:v1beta2/HealthCheckModuleStatus/healthCheckUrl": health_check_url +"/manager:v1beta2/LbModule": lb_module +"/manager:v1beta2/LbModule/description": description +"/manager:v1beta2/LbModule/healthChecks": health_checks +"/manager:v1beta2/LbModule/healthChecks/health_check": health_check +"/manager:v1beta2/LbModule/ipAddress": ip_address +"/manager:v1beta2/LbModule/ipProtocol": ip_protocol +"/manager:v1beta2/LbModule/portRange": port_range +"/manager:v1beta2/LbModule/sessionAffinity": session_affinity +"/manager:v1beta2/LbModule/targetModules": target_modules +"/manager:v1beta2/LbModule/targetModules/target_module": target_module +"/manager:v1beta2/LbModuleStatus": lb_module_status +"/manager:v1beta2/LbModuleStatus/forwardingRuleUrl": forwarding_rule_url +"/manager:v1beta2/LbModuleStatus/targetPoolUrl": target_pool_url +"/manager:v1beta2/Metadata": metadata +"/manager:v1beta2/Metadata/fingerPrint": finger_print +"/manager:v1beta2/Metadata/items": items +"/manager:v1beta2/Metadata/items/item": item +"/manager:v1beta2/MetadataItem": metadata_item +"/manager:v1beta2/MetadataItem/key": key +"/manager:v1beta2/MetadataItem/value": value +"/manager:v1beta2/Module": module +"/manager:v1beta2/Module/autoscalingModule": autoscaling_module +"/manager:v1beta2/Module/firewallModule": firewall_module +"/manager:v1beta2/Module/healthCheckModule": health_check_module +"/manager:v1beta2/Module/lbModule": lb_module +"/manager:v1beta2/Module/networkModule": network_module +"/manager:v1beta2/Module/replicaPoolModule": replica_pool_module +"/manager:v1beta2/Module/type": type +"/manager:v1beta2/ModuleStatus": module_status +"/manager:v1beta2/ModuleStatus/autoscalingModuleStatus": autoscaling_module_status +"/manager:v1beta2/ModuleStatus/firewallModuleStatus": firewall_module_status +"/manager:v1beta2/ModuleStatus/healthCheckModuleStatus": health_check_module_status +"/manager:v1beta2/ModuleStatus/lbModuleStatus": lb_module_status +"/manager:v1beta2/ModuleStatus/networkModuleStatus": network_module_status +"/manager:v1beta2/ModuleStatus/replicaPoolModuleStatus": replica_pool_module_status +"/manager:v1beta2/ModuleStatus/state": state +"/manager:v1beta2/ModuleStatus/type": type +"/manager:v1beta2/NetworkInterface": network_interface +"/manager:v1beta2/NetworkInterface/accessConfigs": access_configs +"/manager:v1beta2/NetworkInterface/accessConfigs/access_config": access_config +"/manager:v1beta2/NetworkInterface/name": name +"/manager:v1beta2/NetworkInterface/network": network +"/manager:v1beta2/NetworkInterface/networkIp": network_ip +"/manager:v1beta2/NetworkModule": network_module +"/manager:v1beta2/NetworkModule/IPv4Range": i_pv4_range +"/manager:v1beta2/NetworkModule/description": description +"/manager:v1beta2/NetworkModule/gatewayIPv4": gateway_i_pv4 +"/manager:v1beta2/NetworkModuleStatus": network_module_status +"/manager:v1beta2/NetworkModuleStatus/networkUrl": network_url +"/manager:v1beta2/NewDisk": new_disk +"/manager:v1beta2/NewDisk/attachment": attachment +"/manager:v1beta2/NewDisk/autoDelete": auto_delete +"/manager:v1beta2/NewDisk/boot": boot +"/manager:v1beta2/NewDisk/initializeParams": initialize_params +"/manager:v1beta2/NewDiskInitializeParams": new_disk_initialize_params +"/manager:v1beta2/NewDiskInitializeParams/diskSizeGb": disk_size_gb +"/manager:v1beta2/NewDiskInitializeParams/diskType": disk_type +"/manager:v1beta2/NewDiskInitializeParams/sourceImage": source_image +"/manager:v1beta2/ParamOverride": param_override +"/manager:v1beta2/ParamOverride/path": path +"/manager:v1beta2/ParamOverride/value": value +"/manager:v1beta2/ReplicaPoolModule": replica_pool_module +"/manager:v1beta2/ReplicaPoolModule/envVariables": env_variables +"/manager:v1beta2/ReplicaPoolModule/envVariables/env_variable": env_variable +"/manager:v1beta2/ReplicaPoolModule/healthChecks": health_checks +"/manager:v1beta2/ReplicaPoolModule/healthChecks/health_check": health_check +"/manager:v1beta2/ReplicaPoolModule/numReplicas": num_replicas +"/manager:v1beta2/ReplicaPoolModule/replicaPoolParams": replica_pool_params +"/manager:v1beta2/ReplicaPoolModule/resourceView": resource_view +"/manager:v1beta2/ReplicaPoolModuleStatus": replica_pool_module_status +"/manager:v1beta2/ReplicaPoolModuleStatus/replicaPoolUrl": replica_pool_url +"/manager:v1beta2/ReplicaPoolModuleStatus/resourceViewUrl": resource_view_url +"/manager:v1beta2/ReplicaPoolParams": replica_pool_params +"/manager:v1beta2/ReplicaPoolParams/v1beta1": v1beta1 +"/manager:v1beta2/ReplicaPoolParamsV1Beta1": replica_pool_params_v1_beta1 +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/autoRestart": auto_restart +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/baseInstanceName": base_instance_name +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/canIpForward": can_ip_forward +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/description": description +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/disksToAttach": disks_to_attach +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/disksToAttach/disks_to_attach": disks_to_attach +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/disksToCreate": disks_to_create +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/disksToCreate/disks_to_create": disks_to_create +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/initAction": init_action +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/machineType": machine_type +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/metadata": metadata +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/networkInterfaces": network_interfaces +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/networkInterfaces/network_interface": network_interface +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/onHostMaintenance": on_host_maintenance +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/serviceAccounts": service_accounts +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/serviceAccounts/service_account": service_account +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/tags": tags +"/manager:v1beta2/ReplicaPoolParamsV1Beta1/zone": zone +"/manager:v1beta2/ServiceAccount": service_account +"/manager:v1beta2/ServiceAccount/email": email +"/manager:v1beta2/ServiceAccount/scopes": scopes +"/manager:v1beta2/ServiceAccount/scopes/scope": scope +"/manager:v1beta2/Tag": tag +"/manager:v1beta2/Tag/fingerPrint": finger_print +"/manager:v1beta2/Tag/items": items +"/manager:v1beta2/Tag/items/item": item +"/manager:v1beta2/Template": template +"/manager:v1beta2/Template/actions": actions +"/manager:v1beta2/Template/actions/action": action +"/manager:v1beta2/Template/description": description +"/manager:v1beta2/Template/modules": modules +"/manager:v1beta2/Template/modules/module": module +"/manager:v1beta2/Template/name": name +"/manager:v1beta2/TemplatesListResponse/nextPageToken": next_page_token +"/manager:v1beta2/TemplatesListResponse/resources": resources +"/manager:v1beta2/TemplatesListResponse/resources/resource": resource +"/mapsengine:v1/fields": fields +"/mapsengine:v1/key": key +"/mapsengine:v1/quotaUser": quota_user +"/mapsengine:v1/userIp": user_ip +"/mapsengine:v1/mapsengine.assets.get": get_asset +"/mapsengine:v1/mapsengine.assets.get/id": id +"/mapsengine:v1/mapsengine.assets.list": list_assets +"/mapsengine:v1/mapsengine.assets.list/bbox": bbox +"/mapsengine:v1/mapsengine.assets.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.assets.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.assets.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.assets.list/maxResults": max_results +"/mapsengine:v1/mapsengine.assets.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.assets.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.assets.list/pageToken": page_token +"/mapsengine:v1/mapsengine.assets.list/projectId": project_id +"/mapsengine:v1/mapsengine.assets.list/role": role +"/mapsengine:v1/mapsengine.assets.list/search": search +"/mapsengine:v1/mapsengine.assets.list/tags": tags +"/mapsengine:v1/mapsengine.assets.list/type": type +"/mapsengine:v1/mapsengine.assets.parents.list": list_asset_parents +"/mapsengine:v1/mapsengine.assets.parents.list/id": id +"/mapsengine:v1/mapsengine.assets.parents.list/maxResults": max_results +"/mapsengine:v1/mapsengine.assets.parents.list/pageToken": page_token +"/mapsengine:v1/mapsengine.assets.permissions.list": list_asset_permissions +"/mapsengine:v1/mapsengine.assets.permissions.list/id": id +"/mapsengine:v1/mapsengine.layers.cancelProcessing": cancel_processing_layer +"/mapsengine:v1/mapsengine.layers.cancelProcessing/id": id +"/mapsengine:v1/mapsengine.layers.create": create_layer +"/mapsengine:v1/mapsengine.layers.create/process": process +"/mapsengine:v1/mapsengine.layers.delete": delete_layer +"/mapsengine:v1/mapsengine.layers.delete/id": id +"/mapsengine:v1/mapsengine.layers.get": get_layer +"/mapsengine:v1/mapsengine.layers.get/id": id +"/mapsengine:v1/mapsengine.layers.get/version": version +"/mapsengine:v1/mapsengine.layers.getPublished": get_published_layer +"/mapsengine:v1/mapsengine.layers.getPublished/id": id +"/mapsengine:v1/mapsengine.layers.list": list_layers +"/mapsengine:v1/mapsengine.layers.list/bbox": bbox +"/mapsengine:v1/mapsengine.layers.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.layers.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.layers.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.layers.list/maxResults": max_results +"/mapsengine:v1/mapsengine.layers.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.layers.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.layers.list/pageToken": page_token +"/mapsengine:v1/mapsengine.layers.list/processingStatus": processing_status +"/mapsengine:v1/mapsengine.layers.list/projectId": project_id +"/mapsengine:v1/mapsengine.layers.list/role": role +"/mapsengine:v1/mapsengine.layers.list/search": search +"/mapsengine:v1/mapsengine.layers.list/tags": tags +"/mapsengine:v1/mapsengine.layers.listPublished": list_published_layer +"/mapsengine:v1/mapsengine.layers.listPublished/maxResults": max_results +"/mapsengine:v1/mapsengine.layers.listPublished/pageToken": page_token +"/mapsengine:v1/mapsengine.layers.listPublished/projectId": project_id +"/mapsengine:v1/mapsengine.layers.patch": patch_layer +"/mapsengine:v1/mapsengine.layers.patch/id": id +"/mapsengine:v1/mapsengine.layers.process": process_layer +"/mapsengine:v1/mapsengine.layers.process/id": id +"/mapsengine:v1/mapsengine.layers.publish": publish_layer +"/mapsengine:v1/mapsengine.layers.publish/force": force +"/mapsengine:v1/mapsengine.layers.publish/id": id +"/mapsengine:v1/mapsengine.layers.unpublish": unpublish_layer +"/mapsengine:v1/mapsengine.layers.unpublish/id": id +"/mapsengine:v1/mapsengine.layers.parents.list": list_layer_parents +"/mapsengine:v1/mapsengine.layers.parents.list/id": id +"/mapsengine:v1/mapsengine.layers.parents.list/maxResults": max_results +"/mapsengine:v1/mapsengine.layers.parents.list/pageToken": page_token +"/mapsengine:v1/mapsengine.layers.permissions.batchDelete": batch_delete_layer_permission +"/mapsengine:v1/mapsengine.layers.permissions.batchDelete/id": id +"/mapsengine:v1/mapsengine.layers.permissions.batchUpdate": batch_update_layer_permission +"/mapsengine:v1/mapsengine.layers.permissions.batchUpdate/id": id +"/mapsengine:v1/mapsengine.layers.permissions.list": list_layer_permissions +"/mapsengine:v1/mapsengine.layers.permissions.list/id": id +"/mapsengine:v1/mapsengine.maps.create": create_map +"/mapsengine:v1/mapsengine.maps.delete": delete_map +"/mapsengine:v1/mapsengine.maps.delete/id": id +"/mapsengine:v1/mapsengine.maps.get": get_map +"/mapsengine:v1/mapsengine.maps.get/id": id +"/mapsengine:v1/mapsengine.maps.get/version": version +"/mapsengine:v1/mapsengine.maps.getPublished": get_published_map +"/mapsengine:v1/mapsengine.maps.getPublished/id": id +"/mapsengine:v1/mapsengine.maps.list": list_maps +"/mapsengine:v1/mapsengine.maps.list/bbox": bbox +"/mapsengine:v1/mapsengine.maps.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.maps.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.maps.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.maps.list/maxResults": max_results +"/mapsengine:v1/mapsengine.maps.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.maps.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.maps.list/pageToken": page_token +"/mapsengine:v1/mapsengine.maps.list/processingStatus": processing_status +"/mapsengine:v1/mapsengine.maps.list/projectId": project_id +"/mapsengine:v1/mapsengine.maps.list/role": role +"/mapsengine:v1/mapsengine.maps.list/search": search +"/mapsengine:v1/mapsengine.maps.list/tags": tags +"/mapsengine:v1/mapsengine.maps.listPublished": list_published_map +"/mapsengine:v1/mapsengine.maps.listPublished/maxResults": max_results +"/mapsengine:v1/mapsengine.maps.listPublished/pageToken": page_token +"/mapsengine:v1/mapsengine.maps.listPublished/projectId": project_id +"/mapsengine:v1/mapsengine.maps.patch": patch_map +"/mapsengine:v1/mapsengine.maps.patch/id": id +"/mapsengine:v1/mapsengine.maps.publish": publish_map +"/mapsengine:v1/mapsengine.maps.publish/force": force +"/mapsengine:v1/mapsengine.maps.publish/id": id +"/mapsengine:v1/mapsengine.maps.unpublish": unpublish_map +"/mapsengine:v1/mapsengine.maps.unpublish/id": id +"/mapsengine:v1/mapsengine.maps.permissions.batchDelete": batch_delete_map_permission +"/mapsengine:v1/mapsengine.maps.permissions.batchDelete/id": id +"/mapsengine:v1/mapsengine.maps.permissions.batchUpdate": batch_update_map_permission +"/mapsengine:v1/mapsengine.maps.permissions.batchUpdate/id": id +"/mapsengine:v1/mapsengine.maps.permissions.list": list_map_permissions +"/mapsengine:v1/mapsengine.maps.permissions.list/id": id +"/mapsengine:v1/mapsengine.projects.list": list_projects +"/mapsengine:v1/mapsengine.projects.icons.create": create_project_icon +"/mapsengine:v1/mapsengine.projects.icons.create/projectId": project_id +"/mapsengine:v1/mapsengine.projects.icons.get": get_project_icon +"/mapsengine:v1/mapsengine.projects.icons.get/id": id +"/mapsengine:v1/mapsengine.projects.icons.get/projectId": project_id +"/mapsengine:v1/mapsengine.projects.icons.list": list_project_icons +"/mapsengine:v1/mapsengine.projects.icons.list/maxResults": max_results +"/mapsengine:v1/mapsengine.projects.icons.list/pageToken": page_token +"/mapsengine:v1/mapsengine.projects.icons.list/projectId": project_id +"/mapsengine:v1/mapsengine.rasterCollections.cancelProcessing": cancel_processing_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.cancelProcessing/id": id +"/mapsengine:v1/mapsengine.rasterCollections.create": create_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.delete": delete_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.delete/id": id +"/mapsengine:v1/mapsengine.rasterCollections.get": get_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.get/id": id +"/mapsengine:v1/mapsengine.rasterCollections.list": list_raster_collections +"/mapsengine:v1/mapsengine.rasterCollections.list/bbox": bbox +"/mapsengine:v1/mapsengine.rasterCollections.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.rasterCollections.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.rasterCollections.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.rasterCollections.list/maxResults": max_results +"/mapsengine:v1/mapsengine.rasterCollections.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.rasterCollections.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.rasterCollections.list/pageToken": page_token +"/mapsengine:v1/mapsengine.rasterCollections.list/processingStatus": processing_status +"/mapsengine:v1/mapsengine.rasterCollections.list/projectId": project_id +"/mapsengine:v1/mapsengine.rasterCollections.list/role": role +"/mapsengine:v1/mapsengine.rasterCollections.list/search": search +"/mapsengine:v1/mapsengine.rasterCollections.list/tags": tags +"/mapsengine:v1/mapsengine.rasterCollections.patch": patch_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.patch/id": id +"/mapsengine:v1/mapsengine.rasterCollections.process": process_raster_collection +"/mapsengine:v1/mapsengine.rasterCollections.process/id": id +"/mapsengine:v1/mapsengine.rasterCollections.parents.list": list_raster_collection_parents +"/mapsengine:v1/mapsengine.rasterCollections.parents.list/id": id +"/mapsengine:v1/mapsengine.rasterCollections.parents.list/maxResults": max_results +"/mapsengine:v1/mapsengine.rasterCollections.parents.list/pageToken": page_token +"/mapsengine:v1/mapsengine.rasterCollections.permissions.batchDelete": batch_delete_raster_collection_permission +"/mapsengine:v1/mapsengine.rasterCollections.permissions.batchDelete/id": id +"/mapsengine:v1/mapsengine.rasterCollections.permissions.batchUpdate": batch_update_raster_collection_permission +"/mapsengine:v1/mapsengine.rasterCollections.permissions.batchUpdate/id": id +"/mapsengine:v1/mapsengine.rasterCollections.permissions.list": list_raster_collection_permissions +"/mapsengine:v1/mapsengine.rasterCollections.permissions.list/id": id +"/mapsengine:v1/mapsengine.rasterCollections.rasters.batchDelete": batch_delete_raster_collection_raster +"/mapsengine:v1/mapsengine.rasterCollections.rasters.batchDelete/id": id +"/mapsengine:v1/mapsengine.rasterCollections.rasters.batchInsert": batch_insert_raster_collection_raster +"/mapsengine:v1/mapsengine.rasterCollections.rasters.batchInsert/id": id +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list": list_raster_collection_rasters +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/bbox": bbox +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/id": id +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/maxResults": max_results +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/pageToken": page_token +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/role": role +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/search": search +"/mapsengine:v1/mapsengine.rasterCollections.rasters.list/tags": tags +"/mapsengine:v1/mapsengine.rasters.delete": delete_raster +"/mapsengine:v1/mapsengine.rasters.delete/id": id +"/mapsengine:v1/mapsengine.rasters.get": get_raster +"/mapsengine:v1/mapsengine.rasters.get/id": id +"/mapsengine:v1/mapsengine.rasters.list": list_rasters +"/mapsengine:v1/mapsengine.rasters.list/bbox": bbox +"/mapsengine:v1/mapsengine.rasters.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.rasters.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.rasters.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.rasters.list/maxResults": max_results +"/mapsengine:v1/mapsengine.rasters.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.rasters.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.rasters.list/pageToken": page_token +"/mapsengine:v1/mapsengine.rasters.list/processingStatus": processing_status +"/mapsengine:v1/mapsengine.rasters.list/projectId": project_id +"/mapsengine:v1/mapsengine.rasters.list/role": role +"/mapsengine:v1/mapsengine.rasters.list/search": search +"/mapsengine:v1/mapsengine.rasters.list/tags": tags +"/mapsengine:v1/mapsengine.rasters.patch": patch_raster +"/mapsengine:v1/mapsengine.rasters.patch/id": id +"/mapsengine:v1/mapsengine.rasters.process": process_raster +"/mapsengine:v1/mapsengine.rasters.process/id": id +"/mapsengine:v1/mapsengine.rasters.upload": upload_raster +"/mapsengine:v1/mapsengine.rasters.files.insert": insert_raster_file +"/mapsengine:v1/mapsengine.rasters.files.insert/filename": filename +"/mapsengine:v1/mapsengine.rasters.files.insert/id": id +"/mapsengine:v1/mapsengine.rasters.parents.list": list_raster_parents +"/mapsengine:v1/mapsengine.rasters.parents.list/id": id +"/mapsengine:v1/mapsengine.rasters.parents.list/maxResults": max_results +"/mapsengine:v1/mapsengine.rasters.parents.list/pageToken": page_token +"/mapsengine:v1/mapsengine.rasters.permissions.batchDelete": batch_delete_raster_permission +"/mapsengine:v1/mapsengine.rasters.permissions.batchDelete/id": id +"/mapsengine:v1/mapsengine.rasters.permissions.batchUpdate": batch_update_raster_permission +"/mapsengine:v1/mapsengine.rasters.permissions.batchUpdate/id": id +"/mapsengine:v1/mapsengine.rasters.permissions.list": list_raster_permissions +"/mapsengine:v1/mapsengine.rasters.permissions.list/id": id +"/mapsengine:v1/mapsengine.tables.create": create_table +"/mapsengine:v1/mapsengine.tables.delete": delete_table +"/mapsengine:v1/mapsengine.tables.delete/id": id +"/mapsengine:v1/mapsengine.tables.get": get_table +"/mapsengine:v1/mapsengine.tables.get/id": id +"/mapsengine:v1/mapsengine.tables.get/version": version +"/mapsengine:v1/mapsengine.tables.list": list_tables +"/mapsengine:v1/mapsengine.tables.list/bbox": bbox +"/mapsengine:v1/mapsengine.tables.list/createdAfter": created_after +"/mapsengine:v1/mapsengine.tables.list/createdBefore": created_before +"/mapsengine:v1/mapsengine.tables.list/creatorEmail": creator_email +"/mapsengine:v1/mapsengine.tables.list/maxResults": max_results +"/mapsengine:v1/mapsengine.tables.list/modifiedAfter": modified_after +"/mapsengine:v1/mapsengine.tables.list/modifiedBefore": modified_before +"/mapsengine:v1/mapsengine.tables.list/pageToken": page_token +"/mapsengine:v1/mapsengine.tables.list/processingStatus": processing_status +"/mapsengine:v1/mapsengine.tables.list/projectId": project_id +"/mapsengine:v1/mapsengine.tables.list/role": role +"/mapsengine:v1/mapsengine.tables.list/search": search +"/mapsengine:v1/mapsengine.tables.list/tags": tags +"/mapsengine:v1/mapsengine.tables.patch": patch_table +"/mapsengine:v1/mapsengine.tables.patch/id": id +"/mapsengine:v1/mapsengine.tables.process": process_table +"/mapsengine:v1/mapsengine.tables.process/id": id +"/mapsengine:v1/mapsengine.tables.upload": upload_table +"/mapsengine:v1/mapsengine.tables.features.batchDelete": batch_delete_table_feature +"/mapsengine:v1/mapsengine.tables.features.batchDelete/id": id +"/mapsengine:v1/mapsengine.tables.features.batchInsert": batch_insert_table_feature +"/mapsengine:v1/mapsengine.tables.features.batchInsert/id": id +"/mapsengine:v1/mapsengine.tables.features.batchPatch": batch_patch_table_feature +"/mapsengine:v1/mapsengine.tables.features.batchPatch/id": id +"/mapsengine:v1/mapsengine.tables.features.get": get_table_feature +"/mapsengine:v1/mapsengine.tables.features.get/id": id +"/mapsengine:v1/mapsengine.tables.features.get/select": select +"/mapsengine:v1/mapsengine.tables.features.get/tableId": table_id +"/mapsengine:v1/mapsengine.tables.features.get/version": version +"/mapsengine:v1/mapsengine.tables.features.list": list_table_features +"/mapsengine:v1/mapsengine.tables.features.list/id": id +"/mapsengine:v1/mapsengine.tables.features.list/include": include +"/mapsengine:v1/mapsengine.tables.features.list/intersects": intersects +"/mapsengine:v1/mapsengine.tables.features.list/limit": limit +"/mapsengine:v1/mapsengine.tables.features.list/maxResults": max_results +"/mapsengine:v1/mapsengine.tables.features.list/orderBy": order_by +"/mapsengine:v1/mapsengine.tables.features.list/pageToken": page_token +"/mapsengine:v1/mapsengine.tables.features.list/select": select +"/mapsengine:v1/mapsengine.tables.features.list/version": version +"/mapsengine:v1/mapsengine.tables.features.list/where": where +"/mapsengine:v1/mapsengine.tables.files.insert": insert_table_file +"/mapsengine:v1/mapsengine.tables.files.insert/filename": filename +"/mapsengine:v1/mapsengine.tables.files.insert/id": id +"/mapsengine:v1/mapsengine.tables.parents.list": list_table_parents +"/mapsengine:v1/mapsengine.tables.parents.list/id": id +"/mapsengine:v1/mapsengine.tables.parents.list/maxResults": max_results +"/mapsengine:v1/mapsengine.tables.parents.list/pageToken": page_token +"/mapsengine:v1/mapsengine.tables.permissions.batchDelete": batch_delete_table_permission +"/mapsengine:v1/mapsengine.tables.permissions.batchDelete/id": id +"/mapsengine:v1/mapsengine.tables.permissions.batchUpdate": batch_update_table_permission +"/mapsengine:v1/mapsengine.tables.permissions.batchUpdate/id": id +"/mapsengine:v1/mapsengine.tables.permissions.list": list_table_permissions +"/mapsengine:v1/mapsengine.tables.permissions.list/id": id +"/mapsengine:v1/AcquisitionTime": acquisition_time +"/mapsengine:v1/AcquisitionTime/end": end +"/mapsengine:v1/AcquisitionTime/precision": precision +"/mapsengine:v1/AcquisitionTime/start": start +"/mapsengine:v1/Asset": asset +"/mapsengine:v1/Asset/bbox": bbox +"/mapsengine:v1/Asset/bbox/bbox": bbox +"/mapsengine:v1/Asset/creationTime": creation_time +"/mapsengine:v1/Asset/creatorEmail": creator_email +"/mapsengine:v1/Asset/description": description +"/mapsengine:v1/Asset/etag": etag +"/mapsengine:v1/Asset/id": id +"/mapsengine:v1/Asset/lastModifiedTime": last_modified_time +"/mapsengine:v1/Asset/lastModifierEmail": last_modifier_email +"/mapsengine:v1/Asset/name": name +"/mapsengine:v1/Asset/projectId": project_id +"/mapsengine:v1/Asset/resource": resource +"/mapsengine:v1/Asset/tags": tags +"/mapsengine:v1/Asset/tags/tag": tag +"/mapsengine:v1/Asset/type": type +"/mapsengine:v1/Asset/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/AssetsListResponse/assets": assets +"/mapsengine:v1/AssetsListResponse/assets/asset": asset +"/mapsengine:v1/AssetsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/Border": border +"/mapsengine:v1/Border/color": color +"/mapsengine:v1/Border/opacity": opacity +"/mapsengine:v1/Border/width": width +"/mapsengine:v1/Color": color +"/mapsengine:v1/Color/color": color +"/mapsengine:v1/Color/opacity": opacity +"/mapsengine:v1/Datasource": datasource +"/mapsengine:v1/Datasource/id": id +"/mapsengine:v1/Datasources": datasources +"/mapsengine:v1/Datasources/datasource": datasource +"/mapsengine:v1/DisplayRule": display_rule +"/mapsengine:v1/DisplayRule/filters": filters +"/mapsengine:v1/DisplayRule/filters/filter": filter +"/mapsengine:v1/DisplayRule/lineOptions": line_options +"/mapsengine:v1/DisplayRule/name": name +"/mapsengine:v1/DisplayRule/pointOptions": point_options +"/mapsengine:v1/DisplayRule/polygonOptions": polygon_options +"/mapsengine:v1/DisplayRule/zoomLevels": zoom_levels +"/mapsengine:v1/Feature": feature +"/mapsengine:v1/Feature/geometry": geometry +"/mapsengine:v1/Feature/properties": properties +"/mapsengine:v1/Feature/type": type +"/mapsengine:v1/FeatureInfo": feature_info +"/mapsengine:v1/FeatureInfo/content": content +"/mapsengine:v1/FeaturesBatchDeleteRequest/gx_ids": gx_ids +"/mapsengine:v1/FeaturesBatchDeleteRequest/gx_ids/gx_id": gx_id +"/mapsengine:v1/FeaturesBatchDeleteRequest/primaryKeys": primary_keys +"/mapsengine:v1/FeaturesBatchDeleteRequest/primaryKeys/primary_key": primary_key +"/mapsengine:v1/FeaturesBatchInsertRequest/features": features +"/mapsengine:v1/FeaturesBatchInsertRequest/features/feature": feature +"/mapsengine:v1/FeaturesBatchInsertRequest/normalizeGeometries": normalize_geometries +"/mapsengine:v1/FeaturesBatchPatchRequest/features": features +"/mapsengine:v1/FeaturesBatchPatchRequest/features/feature": feature +"/mapsengine:v1/FeaturesBatchPatchRequest/normalizeGeometries": normalize_geometries +"/mapsengine:v1/FeaturesListResponse/allowedQueriesPerSecond": allowed_queries_per_second +"/mapsengine:v1/FeaturesListResponse/features": features +"/mapsengine:v1/FeaturesListResponse/features/feature": feature +"/mapsengine:v1/FeaturesListResponse/nextPageToken": next_page_token +"/mapsengine:v1/FeaturesListResponse/schema": schema +"/mapsengine:v1/FeaturesListResponse/type": type +"/mapsengine:v1/File": file +"/mapsengine:v1/File/filename": filename +"/mapsengine:v1/File/size": size +"/mapsengine:v1/File/uploadStatus": upload_status +"/mapsengine:v1/Filter": filter +"/mapsengine:v1/Filter/column": column +"/mapsengine:v1/Filter/operator": operator +"/mapsengine:v1/Filter/value": value +"/mapsengine:v1/GeoJsonGeometry": geo_json_geometry +"/mapsengine:v1/GeoJsonGeometryCollection": geo_json_geometry_collection +"/mapsengine:v1/GeoJsonGeometryCollection/geometries": geometries +"/mapsengine:v1/GeoJsonGeometryCollection/geometries/geometry": geometry +"/mapsengine:v1/GeoJsonGeometryCollection/type": type +"/mapsengine:v1/GeoJsonLineString": geo_json_line_string +"/mapsengine:v1/GeoJsonLineString/coordinates": coordinates +"/mapsengine:v1/GeoJsonLineString/coordinates/coordinate": coordinate +"/mapsengine:v1/GeoJsonLineString/type": type +"/mapsengine:v1/GeoJsonMultiLineString": geo_json_multi_line_string +"/mapsengine:v1/GeoJsonMultiLineString/coordinates": coordinates +"/mapsengine:v1/GeoJsonMultiLineString/coordinates/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiLineString/coordinates/coordinate/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiLineString/type": type +"/mapsengine:v1/GeoJsonMultiPoint": geo_json_multi_point +"/mapsengine:v1/GeoJsonMultiPoint/coordinates": coordinates +"/mapsengine:v1/GeoJsonMultiPoint/coordinates/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiPoint/type": type +"/mapsengine:v1/GeoJsonMultiPolygon": geo_json_multi_polygon +"/mapsengine:v1/GeoJsonMultiPolygon/coordinates": coordinates +"/mapsengine:v1/GeoJsonMultiPolygon/coordinates/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiPolygon/coordinates/coordinate/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiPolygon/coordinates/coordinate/coordinate/coordinate": coordinate +"/mapsengine:v1/GeoJsonMultiPolygon/type": type +"/mapsengine:v1/GeoJsonPoint": geo_json_point +"/mapsengine:v1/GeoJsonPoint/coordinates": coordinates +"/mapsengine:v1/GeoJsonPoint/type": type +"/mapsengine:v1/GeoJsonPolygon": geo_json_polygon +"/mapsengine:v1/GeoJsonPolygon/coordinates": coordinates +"/mapsengine:v1/GeoJsonPolygon/coordinates/coordinate": coordinate +"/mapsengine:v1/GeoJsonPolygon/coordinates/coordinate/coordinate": coordinate +"/mapsengine:v1/GeoJsonPolygon/type": type +"/mapsengine:v1/GeoJsonPosition": geo_json_position +"/mapsengine:v1/GeoJsonPosition/geo_json_position": geo_json_position +"/mapsengine:v1/GeoJsonProperties": geo_json_properties +"/mapsengine:v1/GeoJsonProperties/geo_json_property": geo_json_property +"/mapsengine:v1/Icon": icon +"/mapsengine:v1/Icon/description": description +"/mapsengine:v1/Icon/id": id +"/mapsengine:v1/Icon/name": name +"/mapsengine:v1/IconStyle": icon_style +"/mapsengine:v1/IconStyle/id": id +"/mapsengine:v1/IconStyle/name": name +"/mapsengine:v1/IconStyle/scaledShape": scaled_shape +"/mapsengine:v1/IconStyle/scalingFunction": scaling_function +"/mapsengine:v1/IconsListResponse/icons": icons +"/mapsengine:v1/IconsListResponse/icons/icon": icon +"/mapsengine:v1/IconsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/LabelStyle": label_style +"/mapsengine:v1/LabelStyle/color": color +"/mapsengine:v1/LabelStyle/column": column +"/mapsengine:v1/LabelStyle/fontStyle": font_style +"/mapsengine:v1/LabelStyle/fontWeight": font_weight +"/mapsengine:v1/LabelStyle/opacity": opacity +"/mapsengine:v1/LabelStyle/outline": outline +"/mapsengine:v1/LabelStyle/size": size +"/mapsengine:v1/LatLngBox": lat_lng_box +"/mapsengine:v1/LatLngBox/lat_lng_box": lat_lng_box +"/mapsengine:v1/Layer": layer +"/mapsengine:v1/Layer/bbox": bbox +"/mapsengine:v1/Layer/bbox/bbox": bbox +"/mapsengine:v1/Layer/creationTime": creation_time +"/mapsengine:v1/Layer/creatorEmail": creator_email +"/mapsengine:v1/Layer/datasourceType": datasource_type +"/mapsengine:v1/Layer/datasources": datasources +"/mapsengine:v1/Layer/description": description +"/mapsengine:v1/Layer/draftAccessList": draft_access_list +"/mapsengine:v1/Layer/etag": etag +"/mapsengine:v1/Layer/id": id +"/mapsengine:v1/Layer/lastModifiedTime": last_modified_time +"/mapsengine:v1/Layer/lastModifierEmail": last_modifier_email +"/mapsengine:v1/Layer/layerType": layer_type +"/mapsengine:v1/Layer/name": name +"/mapsengine:v1/Layer/processingStatus": processing_status +"/mapsengine:v1/Layer/projectId": project_id +"/mapsengine:v1/Layer/publishedAccessList": published_access_list +"/mapsengine:v1/Layer/publishingStatus": publishing_status +"/mapsengine:v1/Layer/style": style +"/mapsengine:v1/Layer/tags": tags +"/mapsengine:v1/Layer/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/LayersListResponse/layers": layers +"/mapsengine:v1/LayersListResponse/layers/layer": layer +"/mapsengine:v1/LayersListResponse/nextPageToken": next_page_token +"/mapsengine:v1/LineStyle": line_style +"/mapsengine:v1/LineStyle/border": border +"/mapsengine:v1/LineStyle/dash": dash +"/mapsengine:v1/LineStyle/dash/dash": dash +"/mapsengine:v1/LineStyle/label": label +"/mapsengine:v1/LineStyle/stroke": stroke +"/mapsengine:v1/LineStyle/stroke/color": color +"/mapsengine:v1/LineStyle/stroke/opacity": opacity +"/mapsengine:v1/LineStyle/stroke/width": width +"/mapsengine:v1/Map": map +"/mapsengine:v1/Map/bbox": bbox +"/mapsengine:v1/Map/bbox/bbox": bbox +"/mapsengine:v1/Map/contents": contents +"/mapsengine:v1/Map/creationTime": creation_time +"/mapsengine:v1/Map/creatorEmail": creator_email +"/mapsengine:v1/Map/defaultViewport": default_viewport +"/mapsengine:v1/Map/description": description +"/mapsengine:v1/Map/draftAccessList": draft_access_list +"/mapsengine:v1/Map/etag": etag +"/mapsengine:v1/Map/id": id +"/mapsengine:v1/Map/lastModifiedTime": last_modified_time +"/mapsengine:v1/Map/lastModifierEmail": last_modifier_email +"/mapsengine:v1/Map/name": name +"/mapsengine:v1/Map/processingStatus": processing_status +"/mapsengine:v1/Map/projectId": project_id +"/mapsengine:v1/Map/publishedAccessList": published_access_list +"/mapsengine:v1/Map/publishingStatus": publishing_status +"/mapsengine:v1/Map/tags": tags +"/mapsengine:v1/Map/versions": versions +"/mapsengine:v1/Map/versions/version": version +"/mapsengine:v1/Map/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/MapContents": map_contents +"/mapsengine:v1/MapContents/map_content": map_content +"/mapsengine:v1/MapFolder": map_folder +"/mapsengine:v1/MapFolder/contents": contents +"/mapsengine:v1/MapFolder/contents/content": content +"/mapsengine:v1/MapFolder/defaultViewport": default_viewport +"/mapsengine:v1/MapFolder/defaultViewport/default_viewport": default_viewport +"/mapsengine:v1/MapFolder/expandable": expandable +"/mapsengine:v1/MapFolder/key": key +"/mapsengine:v1/MapFolder/name": name +"/mapsengine:v1/MapFolder/type": type +"/mapsengine:v1/MapFolder/visibility": visibility +"/mapsengine:v1/MapItem": map_item +"/mapsengine:v1/MapKmlLink": map_kml_link +"/mapsengine:v1/MapKmlLink/defaultViewport": default_viewport +"/mapsengine:v1/MapKmlLink/defaultViewport/default_viewport": default_viewport +"/mapsengine:v1/MapKmlLink/kmlUrl": kml_url +"/mapsengine:v1/MapKmlLink/name": name +"/mapsengine:v1/MapKmlLink/type": type +"/mapsengine:v1/MapKmlLink/visibility": visibility +"/mapsengine:v1/MapLayer": map_layer +"/mapsengine:v1/MapLayer/defaultViewport": default_viewport +"/mapsengine:v1/MapLayer/defaultViewport/default_viewport": default_viewport +"/mapsengine:v1/MapLayer/id": id +"/mapsengine:v1/MapLayer/key": key +"/mapsengine:v1/MapLayer/name": name +"/mapsengine:v1/MapLayer/type": type +"/mapsengine:v1/MapLayer/visibility": visibility +"/mapsengine:v1/MapsListResponse/maps": maps +"/mapsengine:v1/MapsListResponse/maps/map": map +"/mapsengine:v1/MapsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/Parent": parent +"/mapsengine:v1/Parent/id": id +"/mapsengine:v1/ParentsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/ParentsListResponse/parents": parents +"/mapsengine:v1/ParentsListResponse/parents/parent": parent +"/mapsengine:v1/Permission": permission +"/mapsengine:v1/Permission/discoverable": discoverable +"/mapsengine:v1/Permission/id": id +"/mapsengine:v1/Permission/role": role +"/mapsengine:v1/Permission/type": type +"/mapsengine:v1/PermissionsBatchDeleteRequest/ids": ids +"/mapsengine:v1/PermissionsBatchDeleteRequest/ids/id": id +"/mapsengine:v1/PermissionsBatchUpdateRequest/permissions": permissions +"/mapsengine:v1/PermissionsBatchUpdateRequest/permissions/permission": permission +"/mapsengine:v1/PermissionsListResponse/permissions": permissions +"/mapsengine:v1/PermissionsListResponse/permissions/permission": permission +"/mapsengine:v1/PointStyle": point_style +"/mapsengine:v1/PointStyle/icon": icon +"/mapsengine:v1/PointStyle/label": label +"/mapsengine:v1/PolygonStyle": polygon_style +"/mapsengine:v1/PolygonStyle/fill": fill +"/mapsengine:v1/PolygonStyle/label": label +"/mapsengine:v1/PolygonStyle/stroke": stroke +"/mapsengine:v1/ProcessResponse": process_response +"/mapsengine:v1/Project": project +"/mapsengine:v1/Project/id": id +"/mapsengine:v1/Project/name": name +"/mapsengine:v1/ProjectsListResponse/projects": projects +"/mapsengine:v1/ProjectsListResponse/projects/project": project +"/mapsengine:v1/PublishResponse": publish_response +"/mapsengine:v1/PublishedLayer": published_layer +"/mapsengine:v1/PublishedLayer/description": description +"/mapsengine:v1/PublishedLayer/id": id +"/mapsengine:v1/PublishedLayer/layerType": layer_type +"/mapsengine:v1/PublishedLayer/name": name +"/mapsengine:v1/PublishedLayer/projectId": project_id +"/mapsengine:v1/PublishedLayersListResponse/layers": layers +"/mapsengine:v1/PublishedLayersListResponse/layers/layer": layer +"/mapsengine:v1/PublishedLayersListResponse/nextPageToken": next_page_token +"/mapsengine:v1/PublishedMap": published_map +"/mapsengine:v1/PublishedMap/contents": contents +"/mapsengine:v1/PublishedMap/defaultViewport": default_viewport +"/mapsengine:v1/PublishedMap/description": description +"/mapsengine:v1/PublishedMap/id": id +"/mapsengine:v1/PublishedMap/name": name +"/mapsengine:v1/PublishedMap/projectId": project_id +"/mapsengine:v1/PublishedMapsListResponse/maps": maps +"/mapsengine:v1/PublishedMapsListResponse/maps/map": map +"/mapsengine:v1/PublishedMapsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/Raster": raster +"/mapsengine:v1/Raster/acquisitionTime": acquisition_time +"/mapsengine:v1/Raster/attribution": attribution +"/mapsengine:v1/Raster/bbox": bbox +"/mapsengine:v1/Raster/bbox/bbox": bbox +"/mapsengine:v1/Raster/creationTime": creation_time +"/mapsengine:v1/Raster/creatorEmail": creator_email +"/mapsengine:v1/Raster/description": description +"/mapsengine:v1/Raster/draftAccessList": draft_access_list +"/mapsengine:v1/Raster/etag": etag +"/mapsengine:v1/Raster/files": files +"/mapsengine:v1/Raster/files/file": file +"/mapsengine:v1/Raster/id": id +"/mapsengine:v1/Raster/lastModifiedTime": last_modified_time +"/mapsengine:v1/Raster/lastModifierEmail": last_modifier_email +"/mapsengine:v1/Raster/maskType": mask_type +"/mapsengine:v1/Raster/name": name +"/mapsengine:v1/Raster/processingStatus": processing_status +"/mapsengine:v1/Raster/projectId": project_id +"/mapsengine:v1/Raster/rasterType": raster_type +"/mapsengine:v1/Raster/tags": tags +"/mapsengine:v1/Raster/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/RasterCollection": raster_collection +"/mapsengine:v1/RasterCollection/attribution": attribution +"/mapsengine:v1/RasterCollection/bbox": bbox +"/mapsengine:v1/RasterCollection/bbox/bbox": bbox +"/mapsengine:v1/RasterCollection/creationTime": creation_time +"/mapsengine:v1/RasterCollection/creatorEmail": creator_email +"/mapsengine:v1/RasterCollection/description": description +"/mapsengine:v1/RasterCollection/draftAccessList": draft_access_list +"/mapsengine:v1/RasterCollection/etag": etag +"/mapsengine:v1/RasterCollection/id": id +"/mapsengine:v1/RasterCollection/lastModifiedTime": last_modified_time +"/mapsengine:v1/RasterCollection/lastModifierEmail": last_modifier_email +"/mapsengine:v1/RasterCollection/mosaic": mosaic +"/mapsengine:v1/RasterCollection/name": name +"/mapsengine:v1/RasterCollection/processingStatus": processing_status +"/mapsengine:v1/RasterCollection/projectId": project_id +"/mapsengine:v1/RasterCollection/rasterType": raster_type +"/mapsengine:v1/RasterCollection/tags": tags +"/mapsengine:v1/RasterCollection/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/RasterCollectionsListResponse/nextPageToken": next_page_token +"/mapsengine:v1/RasterCollectionsListResponse/rasterCollections": raster_collections +"/mapsengine:v1/RasterCollectionsListResponse/rasterCollections/raster_collection": raster_collection +"/mapsengine:v1/RasterCollectionsRaster": raster_collections_raster +"/mapsengine:v1/RasterCollectionsRaster/bbox": bbox +"/mapsengine:v1/RasterCollectionsRaster/bbox/bbox": bbox +"/mapsengine:v1/RasterCollectionsRaster/creationTime": creation_time +"/mapsengine:v1/RasterCollectionsRaster/description": description +"/mapsengine:v1/RasterCollectionsRaster/id": id +"/mapsengine:v1/RasterCollectionsRaster/lastModifiedTime": last_modified_time +"/mapsengine:v1/RasterCollectionsRaster/name": name +"/mapsengine:v1/RasterCollectionsRaster/projectId": project_id +"/mapsengine:v1/RasterCollectionsRaster/rasterType": raster_type +"/mapsengine:v1/RasterCollectionsRaster/tags": tags +"/mapsengine:v1/RasterCollectionsRaster/tags/tag": tag +"/mapsengine:v1/RasterCollectionsRasterBatchDeleteRequest/ids": ids +"/mapsengine:v1/RasterCollectionsRasterBatchDeleteRequest/ids/id": id +"/mapsengine:v1/RasterCollectionsRastersBatchInsertRequest/ids": ids +"/mapsengine:v1/RasterCollectionsRastersBatchInsertRequest/ids/id": id +"/mapsengine:v1/RasterCollectionsRastersListResponse/nextPageToken": next_page_token +"/mapsengine:v1/RasterCollectionsRastersListResponse/rasters": rasters +"/mapsengine:v1/RasterCollectionsRastersListResponse/rasters/raster": raster +"/mapsengine:v1/RastersListResponse/nextPageToken": next_page_token +"/mapsengine:v1/RastersListResponse/rasters": rasters +"/mapsengine:v1/RastersListResponse/rasters/raster": raster +"/mapsengine:v1/ScaledShape": scaled_shape +"/mapsengine:v1/ScaledShape/border": border +"/mapsengine:v1/ScaledShape/fill": fill +"/mapsengine:v1/ScaledShape/shape": shape +"/mapsengine:v1/ScalingFunction": scaling_function +"/mapsengine:v1/ScalingFunction/column": column +"/mapsengine:v1/ScalingFunction/scalingType": scaling_type +"/mapsengine:v1/ScalingFunction/sizeRange": size_range +"/mapsengine:v1/ScalingFunction/valueRange": value_range +"/mapsengine:v1/Schema": schema +"/mapsengine:v1/Schema/columns": columns +"/mapsengine:v1/Schema/columns/column": column +"/mapsengine:v1/Schema/primaryGeometry": primary_geometry +"/mapsengine:v1/Schema/primaryKey": primary_key +"/mapsengine:v1/SizeRange": size_range +"/mapsengine:v1/SizeRange/max": max +"/mapsengine:v1/SizeRange/min": min +"/mapsengine:v1/Table": table +"/mapsengine:v1/Table/bbox": bbox +"/mapsengine:v1/Table/bbox/bbox": bbox +"/mapsengine:v1/Table/creationTime": creation_time +"/mapsengine:v1/Table/creatorEmail": creator_email +"/mapsengine:v1/Table/description": description +"/mapsengine:v1/Table/draftAccessList": draft_access_list +"/mapsengine:v1/Table/etag": etag +"/mapsengine:v1/Table/files": files +"/mapsengine:v1/Table/files/file": file +"/mapsengine:v1/Table/id": id +"/mapsengine:v1/Table/lastModifiedTime": last_modified_time +"/mapsengine:v1/Table/lastModifierEmail": last_modifier_email +"/mapsengine:v1/Table/name": name +"/mapsengine:v1/Table/processingStatus": processing_status +"/mapsengine:v1/Table/projectId": project_id +"/mapsengine:v1/Table/publishedAccessList": published_access_list +"/mapsengine:v1/Table/schema": schema +"/mapsengine:v1/Table/sourceEncoding": source_encoding +"/mapsengine:v1/Table/tags": tags +"/mapsengine:v1/Table/writersCanEditPermissions": writers_can_edit_permissions +"/mapsengine:v1/TableColumn": table_column +"/mapsengine:v1/TableColumn/name": name +"/mapsengine:v1/TableColumn/type": type +"/mapsengine:v1/TablesListResponse/nextPageToken": next_page_token +"/mapsengine:v1/TablesListResponse/tables": tables +"/mapsengine:v1/TablesListResponse/tables/table": table +"/mapsengine:v1/Tags": tags +"/mapsengine:v1/Tags/tag": tag +"/mapsengine:v1/ValueRange": value_range +"/mapsengine:v1/ValueRange/max": max +"/mapsengine:v1/ValueRange/min": min +"/mapsengine:v1/VectorStyle": vector_style +"/mapsengine:v1/VectorStyle/displayRules": display_rules +"/mapsengine:v1/VectorStyle/displayRules/display_rule": display_rule +"/mapsengine:v1/VectorStyle/featureInfo": feature_info +"/mapsengine:v1/VectorStyle/type": type +"/mapsengine:v1/ZoomLevels": zoom_levels +"/mapsengine:v1/ZoomLevels/max": max +"/mapsengine:v1/ZoomLevels/min": min +"/mirror:v1/fields": fields +"/mirror:v1/key": key +"/mirror:v1/quotaUser": quota_user +"/mirror:v1/userIp": user_ip +"/mirror:v1/mirror.accounts.insert": insert_account +"/mirror:v1/mirror.accounts.insert/accountName": account_name +"/mirror:v1/mirror.accounts.insert/accountType": account_type +"/mirror:v1/mirror.accounts.insert/userToken": user_token +"/mirror:v1/mirror.contacts.delete": delete_contact +"/mirror:v1/mirror.contacts.delete/id": id +"/mirror:v1/mirror.contacts.get": get_contact +"/mirror:v1/mirror.contacts.get/id": id +"/mirror:v1/mirror.contacts.insert": insert_contact +"/mirror:v1/mirror.contacts.list": list_contacts +"/mirror:v1/mirror.contacts.patch": patch_contact +"/mirror:v1/mirror.contacts.patch/id": id +"/mirror:v1/mirror.contacts.update": update_contact +"/mirror:v1/mirror.contacts.update/id": id +"/mirror:v1/mirror.locations.get": get_location +"/mirror:v1/mirror.locations.get/id": id +"/mirror:v1/mirror.locations.list": list_locations +"/mirror:v1/mirror.settings.get": get_setting +"/mirror:v1/mirror.settings.get/id": id +"/mirror:v1/mirror.subscriptions.delete": delete_subscription +"/mirror:v1/mirror.subscriptions.delete/id": id +"/mirror:v1/mirror.subscriptions.insert": insert_subscription +"/mirror:v1/mirror.subscriptions.list": list_subscriptions +"/mirror:v1/mirror.subscriptions.update": update_subscription +"/mirror:v1/mirror.subscriptions.update/id": id +"/mirror:v1/mirror.timeline.delete": delete_timeline +"/mirror:v1/mirror.timeline.delete/id": id +"/mirror:v1/mirror.timeline.get": get_timeline +"/mirror:v1/mirror.timeline.get/id": id +"/mirror:v1/mirror.timeline.insert": insert_timeline +"/mirror:v1/mirror.timeline.list": list_timelines +"/mirror:v1/mirror.timeline.list/bundleId": bundle_id +"/mirror:v1/mirror.timeline.list/includeDeleted": include_deleted +"/mirror:v1/mirror.timeline.list/maxResults": max_results +"/mirror:v1/mirror.timeline.list/orderBy": order_by +"/mirror:v1/mirror.timeline.list/pageToken": page_token +"/mirror:v1/mirror.timeline.list/pinnedOnly": pinned_only +"/mirror:v1/mirror.timeline.list/sourceItemId": source_item_id +"/mirror:v1/mirror.timeline.patch": patch_timeline +"/mirror:v1/mirror.timeline.patch/id": id +"/mirror:v1/mirror.timeline.update": update_timeline +"/mirror:v1/mirror.timeline.update/id": id +"/mirror:v1/mirror.timeline.attachments.delete": delete_timeline_attachment +"/mirror:v1/mirror.timeline.attachments.delete/attachmentId": attachment_id +"/mirror:v1/mirror.timeline.attachments.delete/itemId": item_id +"/mirror:v1/mirror.timeline.attachments.get": get_timeline_attachment +"/mirror:v1/mirror.timeline.attachments.get/attachmentId": attachment_id +"/mirror:v1/mirror.timeline.attachments.get/itemId": item_id +"/mirror:v1/mirror.timeline.attachments.insert": insert_timeline_attachment +"/mirror:v1/mirror.timeline.attachments.insert/itemId": item_id +"/mirror:v1/mirror.timeline.attachments.list": list_timeline_attachments +"/mirror:v1/mirror.timeline.attachments.list/itemId": item_id +"/mirror:v1/Account": account +"/mirror:v1/Account/authTokens": auth_tokens +"/mirror:v1/Account/authTokens/auth_token": auth_token +"/mirror:v1/Account/features": features +"/mirror:v1/Account/features/feature": feature +"/mirror:v1/Account/password": password +"/mirror:v1/Account/userData": user_data +"/mirror:v1/Account/userData/user_datum": user_datum +"/mirror:v1/Attachment": attachment +"/mirror:v1/Attachment/contentType": content_type +"/mirror:v1/Attachment/contentUrl": content_url +"/mirror:v1/Attachment/id": id +"/mirror:v1/Attachment/isProcessingContent": is_processing_content +"/mirror:v1/AttachmentsListResponse/items": items +"/mirror:v1/AttachmentsListResponse/items/item": item +"/mirror:v1/AttachmentsListResponse/kind": kind +"/mirror:v1/AuthToken": auth_token +"/mirror:v1/AuthToken/authToken": auth_token +"/mirror:v1/AuthToken/type": type +"/mirror:v1/Command": command +"/mirror:v1/Command/type": type +"/mirror:v1/Contact": contact +"/mirror:v1/Contact/acceptCommands": accept_commands +"/mirror:v1/Contact/acceptCommands/accept_command": accept_command +"/mirror:v1/Contact/acceptTypes": accept_types +"/mirror:v1/Contact/acceptTypes/accept_type": accept_type +"/mirror:v1/Contact/displayName": display_name +"/mirror:v1/Contact/id": id +"/mirror:v1/Contact/imageUrls": image_urls +"/mirror:v1/Contact/imageUrls/image_url": image_url +"/mirror:v1/Contact/kind": kind +"/mirror:v1/Contact/phoneNumber": phone_number +"/mirror:v1/Contact/priority": priority +"/mirror:v1/Contact/sharingFeatures": sharing_features +"/mirror:v1/Contact/sharingFeatures/sharing_feature": sharing_feature +"/mirror:v1/Contact/source": source +"/mirror:v1/Contact/speakableName": speakable_name +"/mirror:v1/Contact/type": type +"/mirror:v1/ContactsListResponse/items": items +"/mirror:v1/ContactsListResponse/items/item": item +"/mirror:v1/ContactsListResponse/kind": kind +"/mirror:v1/Location": location +"/mirror:v1/Location/accuracy": accuracy +"/mirror:v1/Location/address": address +"/mirror:v1/Location/displayName": display_name +"/mirror:v1/Location/id": id +"/mirror:v1/Location/kind": kind +"/mirror:v1/Location/latitude": latitude +"/mirror:v1/Location/longitude": longitude +"/mirror:v1/Location/timestamp": timestamp +"/mirror:v1/LocationsListResponse/items": items +"/mirror:v1/LocationsListResponse/items/item": item +"/mirror:v1/LocationsListResponse/kind": kind +"/mirror:v1/MenuItem": menu_item +"/mirror:v1/MenuItem/action": action +"/mirror:v1/MenuItem/contextual_command": contextual_command +"/mirror:v1/MenuItem/id": id +"/mirror:v1/MenuItem/payload": payload +"/mirror:v1/MenuItem/removeWhenSelected": remove_when_selected +"/mirror:v1/MenuItem/values": values +"/mirror:v1/MenuItem/values/value": value +"/mirror:v1/MenuValue": menu_value +"/mirror:v1/MenuValue/displayName": display_name +"/mirror:v1/MenuValue/iconUrl": icon_url +"/mirror:v1/MenuValue/state": state +"/mirror:v1/Notification": notification +"/mirror:v1/Notification/collection": collection +"/mirror:v1/Notification/itemId": item_id +"/mirror:v1/Notification/operation": operation +"/mirror:v1/Notification/userActions": user_actions +"/mirror:v1/Notification/userActions/user_action": user_action +"/mirror:v1/Notification/userToken": user_token +"/mirror:v1/Notification/verifyToken": verify_token +"/mirror:v1/NotificationConfig": notification_config +"/mirror:v1/NotificationConfig/deliveryTime": delivery_time +"/mirror:v1/NotificationConfig/level": level +"/mirror:v1/Setting": setting +"/mirror:v1/Setting/id": id +"/mirror:v1/Setting/kind": kind +"/mirror:v1/Setting/value": value +"/mirror:v1/Subscription": subscription +"/mirror:v1/Subscription/callbackUrl": callback_url +"/mirror:v1/Subscription/collection": collection +"/mirror:v1/Subscription/id": id +"/mirror:v1/Subscription/kind": kind +"/mirror:v1/Subscription/notification": notification +"/mirror:v1/Subscription/operation": operation +"/mirror:v1/Subscription/operation/operation": operation +"/mirror:v1/Subscription/updated": updated +"/mirror:v1/Subscription/userToken": user_token +"/mirror:v1/Subscription/verifyToken": verify_token +"/mirror:v1/SubscriptionsListResponse/items": items +"/mirror:v1/SubscriptionsListResponse/items/item": item +"/mirror:v1/SubscriptionsListResponse/kind": kind +"/mirror:v1/TimelineItem": timeline_item +"/mirror:v1/TimelineItem/attachments": attachments +"/mirror:v1/TimelineItem/attachments/attachment": attachment +"/mirror:v1/TimelineItem/bundleId": bundle_id +"/mirror:v1/TimelineItem/canonicalUrl": canonical_url +"/mirror:v1/TimelineItem/created": created +"/mirror:v1/TimelineItem/creator": creator +"/mirror:v1/TimelineItem/displayTime": display_time +"/mirror:v1/TimelineItem/etag": etag +"/mirror:v1/TimelineItem/html": html +"/mirror:v1/TimelineItem/id": id +"/mirror:v1/TimelineItem/inReplyTo": in_reply_to +"/mirror:v1/TimelineItem/isBundleCover": is_bundle_cover +"/mirror:v1/TimelineItem/isDeleted": is_deleted +"/mirror:v1/TimelineItem/isPinned": is_pinned +"/mirror:v1/TimelineItem/kind": kind +"/mirror:v1/TimelineItem/location": location +"/mirror:v1/TimelineItem/menuItems": menu_items +"/mirror:v1/TimelineItem/menuItems/menu_item": menu_item +"/mirror:v1/TimelineItem/notification": notification +"/mirror:v1/TimelineItem/pinScore": pin_score +"/mirror:v1/TimelineItem/recipients": recipients +"/mirror:v1/TimelineItem/recipients/recipient": recipient +"/mirror:v1/TimelineItem/selfLink": self_link +"/mirror:v1/TimelineItem/sourceItemId": source_item_id +"/mirror:v1/TimelineItem/speakableText": speakable_text +"/mirror:v1/TimelineItem/speakableType": speakable_type +"/mirror:v1/TimelineItem/text": text +"/mirror:v1/TimelineItem/title": title +"/mirror:v1/TimelineItem/updated": updated +"/mirror:v1/TimelineListResponse/items": items +"/mirror:v1/TimelineListResponse/items/item": item +"/mirror:v1/TimelineListResponse/kind": kind +"/mirror:v1/TimelineListResponse/nextPageToken": next_page_token +"/mirror:v1/UserAction": user_action +"/mirror:v1/UserAction/payload": payload +"/mirror:v1/UserAction/type": type +"/mirror:v1/UserData": user_data +"/mirror:v1/UserData/key": key +"/mirror:v1/UserData/value": value +"/oauth2:v2/fields": fields +"/oauth2:v2/key": key +"/oauth2:v2/quotaUser": quota_user +"/oauth2:v2/userIp": user_ip +"/oauth2:v2/oauth2.getCertForOpenIdConnect": get_cert_for_open_id_connect +"/oauth2:v2/oauth2.tokeninfo": tokeninfo +"/oauth2:v2/oauth2.tokeninfo/access_token": access_token +"/oauth2:v2/oauth2.tokeninfo/id_token": id_token +"/oauth2:v2/oauth2.tokeninfo/token_handle": token_handle +"/oauth2:v2/oauth2.userinfo.get": get_userinfo +"/oauth2:v2/Jwk": jwk +"/oauth2:v2/Jwk/keys": keys +"/oauth2:v2/Jwk/keys/key": key +"/oauth2:v2/Jwk/keys/key/alg": alg +"/oauth2:v2/Jwk/keys/key/e": e +"/oauth2:v2/Jwk/keys/key/kid": kid +"/oauth2:v2/Jwk/keys/key/kty": kty +"/oauth2:v2/Jwk/keys/key/n": n +"/oauth2:v2/Jwk/keys/key/use": use +"/oauth2:v2/Tokeninfo": tokeninfo +"/oauth2:v2/Tokeninfo/access_type": access_type +"/oauth2:v2/Tokeninfo/audience": audience +"/oauth2:v2/Tokeninfo/email": email +"/oauth2:v2/Tokeninfo/expires_in": expires_in +"/oauth2:v2/Tokeninfo/issued_to": issued_to +"/oauth2:v2/Tokeninfo/scope": scope +"/oauth2:v2/Tokeninfo/token_handle": token_handle +"/oauth2:v2/Tokeninfo/user_id": user_id +"/oauth2:v2/Tokeninfo/verified_email": verified_email +"/oauth2:v2/Userinfoplus": userinfoplus +"/oauth2:v2/Userinfoplus/email": email +"/oauth2:v2/Userinfoplus/family_name": family_name +"/oauth2:v2/Userinfoplus/gender": gender +"/oauth2:v2/Userinfoplus/given_name": given_name +"/oauth2:v2/Userinfoplus/hd": hd +"/oauth2:v2/Userinfoplus/id": id +"/oauth2:v2/Userinfoplus/link": link +"/oauth2:v2/Userinfoplus/locale": locale +"/oauth2:v2/Userinfoplus/name": name +"/oauth2:v2/Userinfoplus/picture": picture +"/oauth2:v2/Userinfoplus/verified_email": verified_email +"/pagespeedonline:v2/fields": fields +"/pagespeedonline:v2/key": key +"/pagespeedonline:v2/quotaUser": quota_user +"/pagespeedonline:v2/userIp": user_ip +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/filter_third_party_resources": filter_third_party_resources +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/locale": locale +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/rule": rule +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/screenshot": screenshot +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/strategy": strategy +"/pagespeedonline:v2/pagespeedonline.pagespeedapi.runpagespeed/url": url +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args": args +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg": arg +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/key": key +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects": rects +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects/rect": rect +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects/rect/height": height +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects/rect/left": left +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects/rect/top": top +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/rects/rect/width": width +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects": secondary_rects +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects/secondary_rect": secondary_rect +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects/secondary_rect/height": height +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects/secondary_rect/left": left +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects/secondary_rect/top": top +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/secondary_rects/secondary_rect/width": width +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/type": type +"/pagespeedonline:v2/PagespeedApiFormatStringV2/args/arg/value": value +"/pagespeedonline:v2/PagespeedApiFormatStringV2/format": format +"/pagespeedonline:v2/PagespeedApiImageV2/data": data +"/pagespeedonline:v2/PagespeedApiImageV2/height": height +"/pagespeedonline:v2/PagespeedApiImageV2/key": key +"/pagespeedonline:v2/PagespeedApiImageV2/mime_type": mime_type +"/pagespeedonline:v2/PagespeedApiImageV2/page_rect": page_rect +"/pagespeedonline:v2/PagespeedApiImageV2/page_rect/height": height +"/pagespeedonline:v2/PagespeedApiImageV2/page_rect/left": left +"/pagespeedonline:v2/PagespeedApiImageV2/page_rect/top": top +"/pagespeedonline:v2/PagespeedApiImageV2/page_rect/width": width +"/pagespeedonline:v2/PagespeedApiImageV2/width": width +"/pagespeedonline:v2/Result": result +"/pagespeedonline:v2/Result/formattedResults": formatted_results +"/pagespeedonline:v2/Result/formattedResults/locale": locale +"/pagespeedonline:v2/Result/formattedResults/ruleResults": rule_results +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result": rule_result +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/groups": groups +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/groups/group": group +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/localizedRuleName": localized_rule_name +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/ruleImpact": rule_impact +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/summary": summary +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks": url_blocks +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block": url_block +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/header": header +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/urls": urls +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/urls/url": url +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/urls/url/details": details +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/urls/url/details/detail": detail +"/pagespeedonline:v2/Result/formattedResults/ruleResults/rule_result/urlBlocks/url_block/urls/url/result": result +"/pagespeedonline:v2/Result/id": id +"/pagespeedonline:v2/Result/invalidRules": invalid_rules +"/pagespeedonline:v2/Result/invalidRules/invalid_rule": invalid_rule +"/pagespeedonline:v2/Result/kind": kind +"/pagespeedonline:v2/Result/pageStats": page_stats +"/pagespeedonline:v2/Result/pageStats/cssResponseBytes": css_response_bytes +"/pagespeedonline:v2/Result/pageStats/flashResponseBytes": flash_response_bytes +"/pagespeedonline:v2/Result/pageStats/htmlResponseBytes": html_response_bytes +"/pagespeedonline:v2/Result/pageStats/imageResponseBytes": image_response_bytes +"/pagespeedonline:v2/Result/pageStats/javascriptResponseBytes": javascript_response_bytes +"/pagespeedonline:v2/Result/pageStats/numberCssResources": number_css_resources +"/pagespeedonline:v2/Result/pageStats/numberHosts": number_hosts +"/pagespeedonline:v2/Result/pageStats/numberJsResources": number_js_resources +"/pagespeedonline:v2/Result/pageStats/numberResources": number_resources +"/pagespeedonline:v2/Result/pageStats/numberStaticResources": number_static_resources +"/pagespeedonline:v2/Result/pageStats/otherResponseBytes": other_response_bytes +"/pagespeedonline:v2/Result/pageStats/textResponseBytes": text_response_bytes +"/pagespeedonline:v2/Result/pageStats/totalRequestBytes": total_request_bytes +"/pagespeedonline:v2/Result/responseCode": response_code +"/pagespeedonline:v2/Result/ruleGroups": rule_groups +"/pagespeedonline:v2/Result/ruleGroups/rule_group": rule_group +"/pagespeedonline:v2/Result/ruleGroups/rule_group/score": score +"/pagespeedonline:v2/Result/screenshot": screenshot +"/pagespeedonline:v2/Result/title": title +"/pagespeedonline:v2/Result/version": version +"/pagespeedonline:v2/Result/version/major": major +"/pagespeedonline:v2/Result/version/minor": minor +"/plus:v1/fields": fields +"/plus:v1/key": key +"/plus:v1/quotaUser": quota_user +"/plus:v1/userIp": user_ip +"/plus:v1/plus.activities.get": get_activity +"/plus:v1/plus.activities.get/activityId": activity_id +"/plus:v1/plus.activities.list": list_activities +"/plus:v1/plus.activities.list/collection": collection +"/plus:v1/plus.activities.list/maxResults": max_results +"/plus:v1/plus.activities.list/pageToken": page_token +"/plus:v1/plus.activities.list/userId": user_id +"/plus:v1/plus.activities.search": search_activities +"/plus:v1/plus.activities.search/language": language +"/plus:v1/plus.activities.search/maxResults": max_results +"/plus:v1/plus.activities.search/orderBy": order_by +"/plus:v1/plus.activities.search/pageToken": page_token +"/plus:v1/plus.activities.search/query": query +"/plus:v1/plus.comments.get": get_comment +"/plus:v1/plus.comments.get/commentId": comment_id +"/plus:v1/plus.comments.list": list_comments +"/plus:v1/plus.comments.list/activityId": activity_id +"/plus:v1/plus.comments.list/maxResults": max_results +"/plus:v1/plus.comments.list/pageToken": page_token +"/plus:v1/plus.comments.list/sortOrder": sort_order +"/plus:v1/plus.moments.insert": insert_moment +"/plus:v1/plus.moments.insert/collection": collection +"/plus:v1/plus.moments.insert/debug": debug +"/plus:v1/plus.moments.insert/userId": user_id +"/plus:v1/plus.moments.list": list_moments +"/plus:v1/plus.moments.list/collection": collection +"/plus:v1/plus.moments.list/maxResults": max_results +"/plus:v1/plus.moments.list/pageToken": page_token +"/plus:v1/plus.moments.list/targetUrl": target_url +"/plus:v1/plus.moments.list/type": type +"/plus:v1/plus.moments.list/userId": user_id +"/plus:v1/plus.moments.remove": remove_moment +"/plus:v1/plus.moments.remove/id": id +"/plus:v1/plus.people.get": get_person +"/plus:v1/plus.people.get/userId": user_id +"/plus:v1/plus.people.list": list_people +"/plus:v1/plus.people.list/collection": collection +"/plus:v1/plus.people.list/maxResults": max_results +"/plus:v1/plus.people.list/orderBy": order_by +"/plus:v1/plus.people.list/pageToken": page_token +"/plus:v1/plus.people.list/userId": user_id +"/plus:v1/plus.people.listByActivity/activityId": activity_id +"/plus:v1/plus.people.listByActivity/collection": collection +"/plus:v1/plus.people.listByActivity/maxResults": max_results +"/plus:v1/plus.people.listByActivity/pageToken": page_token +"/plus:v1/plus.people.search": search_people +"/plus:v1/plus.people.search/language": language +"/plus:v1/plus.people.search/maxResults": max_results +"/plus:v1/plus.people.search/pageToken": page_token +"/plus:v1/plus.people.search/query": query +"/plus:v1/Acl": acl +"/plus:v1/Acl/description": description +"/plus:v1/Acl/items": items +"/plus:v1/Acl/items/item": item +"/plus:v1/Acl/kind": kind +"/plus:v1/Activity": activity +"/plus:v1/Activity/access": access +"/plus:v1/Activity/actor": actor +"/plus:v1/Activity/actor/displayName": display_name +"/plus:v1/Activity/actor/id": id +"/plus:v1/Activity/actor/image": image +"/plus:v1/Activity/actor/image/url": url +"/plus:v1/Activity/actor/name": name +"/plus:v1/Activity/actor/name/familyName": family_name +"/plus:v1/Activity/actor/name/givenName": given_name +"/plus:v1/Activity/actor/url": url +"/plus:v1/Activity/address": address +"/plus:v1/Activity/annotation": annotation +"/plus:v1/Activity/crosspostSource": crosspost_source +"/plus:v1/Activity/etag": etag +"/plus:v1/Activity/geocode": geocode +"/plus:v1/Activity/id": id +"/plus:v1/Activity/kind": kind +"/plus:v1/Activity/location": location +"/plus:v1/Activity/object": object +"/plus:v1/Activity/object/actor": actor +"/plus:v1/Activity/object/actor/displayName": display_name +"/plus:v1/Activity/object/actor/id": id +"/plus:v1/Activity/object/actor/image": image +"/plus:v1/Activity/object/actor/image/url": url +"/plus:v1/Activity/object/actor/url": url +"/plus:v1/Activity/object/attachments": attachments +"/plus:v1/Activity/object/attachments/attachment": attachment +"/plus:v1/Activity/object/attachments/attachment/content": content +"/plus:v1/Activity/object/attachments/attachment/displayName": display_name +"/plus:v1/Activity/object/attachments/attachment/embed": embed +"/plus:v1/Activity/object/attachments/attachment/embed/type": type +"/plus:v1/Activity/object/attachments/attachment/embed/url": url +"/plus:v1/Activity/object/attachments/attachment/fullImage": full_image +"/plus:v1/Activity/object/attachments/attachment/fullImage/height": height +"/plus:v1/Activity/object/attachments/attachment/fullImage/type": type +"/plus:v1/Activity/object/attachments/attachment/fullImage/url": url +"/plus:v1/Activity/object/attachments/attachment/fullImage/width": width +"/plus:v1/Activity/object/attachments/attachment/id": id +"/plus:v1/Activity/object/attachments/attachment/image": image +"/plus:v1/Activity/object/attachments/attachment/image/height": height +"/plus:v1/Activity/object/attachments/attachment/image/type": type +"/plus:v1/Activity/object/attachments/attachment/image/url": url +"/plus:v1/Activity/object/attachments/attachment/image/width": width +"/plus:v1/Activity/object/attachments/attachment/objectType": object_type +"/plus:v1/Activity/object/attachments/attachment/thumbnails": thumbnails +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail": thumbnail +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/description": description +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image": image +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/height": height +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/type": type +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/url": url +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/width": width +"/plus:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/url": url +"/plus:v1/Activity/object/attachments/attachment/url": url +"/plus:v1/Activity/object/content": content +"/plus:v1/Activity/object/id": id +"/plus:v1/Activity/object/objectType": object_type +"/plus:v1/Activity/object/originalContent": original_content +"/plus:v1/Activity/object/plusoners": plusoners +"/plus:v1/Activity/object/plusoners/selfLink": self_link +"/plus:v1/Activity/object/plusoners/totalItems": total_items +"/plus:v1/Activity/object/replies": replies +"/plus:v1/Activity/object/replies/selfLink": self_link +"/plus:v1/Activity/object/replies/totalItems": total_items +"/plus:v1/Activity/object/resharers": resharers +"/plus:v1/Activity/object/resharers/selfLink": self_link +"/plus:v1/Activity/object/resharers/totalItems": total_items +"/plus:v1/Activity/object/url": url +"/plus:v1/Activity/placeId": place_id +"/plus:v1/Activity/placeName": place_name +"/plus:v1/Activity/provider": provider +"/plus:v1/Activity/provider/title": title +"/plus:v1/Activity/published": published +"/plus:v1/Activity/radius": radius +"/plus:v1/Activity/title": title +"/plus:v1/Activity/updated": updated +"/plus:v1/Activity/url": url +"/plus:v1/Activity/verb": verb +"/plus:v1/ActivityFeed": activity_feed +"/plus:v1/ActivityFeed/etag": etag +"/plus:v1/ActivityFeed/id": id +"/plus:v1/ActivityFeed/items": items +"/plus:v1/ActivityFeed/items/item": item +"/plus:v1/ActivityFeed/kind": kind +"/plus:v1/ActivityFeed/nextLink": next_link +"/plus:v1/ActivityFeed/nextPageToken": next_page_token +"/plus:v1/ActivityFeed/selfLink": self_link +"/plus:v1/ActivityFeed/title": title +"/plus:v1/ActivityFeed/updated": updated +"/plus:v1/Comment": comment +"/plus:v1/Comment/actor": actor +"/plus:v1/Comment/actor/displayName": display_name +"/plus:v1/Comment/actor/id": id +"/plus:v1/Comment/actor/image": image +"/plus:v1/Comment/actor/image/url": url +"/plus:v1/Comment/actor/url": url +"/plus:v1/Comment/etag": etag +"/plus:v1/Comment/id": id +"/plus:v1/Comment/inReplyTo": in_reply_to +"/plus:v1/Comment/inReplyTo/in_reply_to": in_reply_to +"/plus:v1/Comment/inReplyTo/in_reply_to/id": id +"/plus:v1/Comment/inReplyTo/in_reply_to/url": url +"/plus:v1/Comment/kind": kind +"/plus:v1/Comment/object": object +"/plus:v1/Comment/object/content": content +"/plus:v1/Comment/object/objectType": object_type +"/plus:v1/Comment/object/originalContent": original_content +"/plus:v1/Comment/plusoners": plusoners +"/plus:v1/Comment/plusoners/totalItems": total_items +"/plus:v1/Comment/published": published +"/plus:v1/Comment/selfLink": self_link +"/plus:v1/Comment/updated": updated +"/plus:v1/Comment/verb": verb +"/plus:v1/CommentFeed": comment_feed +"/plus:v1/CommentFeed/etag": etag +"/plus:v1/CommentFeed/id": id +"/plus:v1/CommentFeed/items": items +"/plus:v1/CommentFeed/items/item": item +"/plus:v1/CommentFeed/kind": kind +"/plus:v1/CommentFeed/nextLink": next_link +"/plus:v1/CommentFeed/nextPageToken": next_page_token +"/plus:v1/CommentFeed/title": title +"/plus:v1/CommentFeed/updated": updated +"/plus:v1/ItemScope": item_scope +"/plus:v1/ItemScope/about": about +"/plus:v1/ItemScope/additionalName": additional_name +"/plus:v1/ItemScope/additionalName/additional_name": additional_name +"/plus:v1/ItemScope/address": address +"/plus:v1/ItemScope/addressCountry": address_country +"/plus:v1/ItemScope/addressLocality": address_locality +"/plus:v1/ItemScope/addressRegion": address_region +"/plus:v1/ItemScope/associated_media": associated_media +"/plus:v1/ItemScope/associated_media/associated_medium": associated_medium +"/plus:v1/ItemScope/attendeeCount": attendee_count +"/plus:v1/ItemScope/attendees": attendees +"/plus:v1/ItemScope/attendees/attendee": attendee +"/plus:v1/ItemScope/audio": audio +"/plus:v1/ItemScope/author": author +"/plus:v1/ItemScope/author/author": author +"/plus:v1/ItemScope/bestRating": best_rating +"/plus:v1/ItemScope/birthDate": birth_date +"/plus:v1/ItemScope/byArtist": by_artist +"/plus:v1/ItemScope/caption": caption +"/plus:v1/ItemScope/contentSize": content_size +"/plus:v1/ItemScope/contentUrl": content_url +"/plus:v1/ItemScope/contributor": contributor +"/plus:v1/ItemScope/contributor/contributor": contributor +"/plus:v1/ItemScope/dateCreated": date_created +"/plus:v1/ItemScope/dateModified": date_modified +"/plus:v1/ItemScope/datePublished": date_published +"/plus:v1/ItemScope/description": description +"/plus:v1/ItemScope/duration": duration +"/plus:v1/ItemScope/embedUrl": embed_url +"/plus:v1/ItemScope/endDate": end_date +"/plus:v1/ItemScope/familyName": family_name +"/plus:v1/ItemScope/gender": gender +"/plus:v1/ItemScope/geo": geo +"/plus:v1/ItemScope/givenName": given_name +"/plus:v1/ItemScope/height": height +"/plus:v1/ItemScope/id": id +"/plus:v1/ItemScope/image": image +"/plus:v1/ItemScope/inAlbum": in_album +"/plus:v1/ItemScope/kind": kind +"/plus:v1/ItemScope/latitude": latitude +"/plus:v1/ItemScope/location": location +"/plus:v1/ItemScope/longitude": longitude +"/plus:v1/ItemScope/name": name +"/plus:v1/ItemScope/partOfTVSeries": part_of_tv_series +"/plus:v1/ItemScope/performers": performers +"/plus:v1/ItemScope/performers/performer": performer +"/plus:v1/ItemScope/playerType": player_type +"/plus:v1/ItemScope/postOfficeBoxNumber": post_office_box_number +"/plus:v1/ItemScope/postalCode": postal_code +"/plus:v1/ItemScope/ratingValue": rating_value +"/plus:v1/ItemScope/reviewRating": review_rating +"/plus:v1/ItemScope/startDate": start_date +"/plus:v1/ItemScope/streetAddress": street_address +"/plus:v1/ItemScope/text": text +"/plus:v1/ItemScope/thumbnail": thumbnail +"/plus:v1/ItemScope/thumbnailUrl": thumbnail_url +"/plus:v1/ItemScope/tickerSymbol": ticker_symbol +"/plus:v1/ItemScope/type": type +"/plus:v1/ItemScope/url": url +"/plus:v1/ItemScope/width": width +"/plus:v1/ItemScope/worstRating": worst_rating +"/plus:v1/Moment": moment +"/plus:v1/Moment/id": id +"/plus:v1/Moment/kind": kind +"/plus:v1/Moment/object": object +"/plus:v1/Moment/result": result +"/plus:v1/Moment/startDate": start_date +"/plus:v1/Moment/target": target +"/plus:v1/Moment/type": type +"/plus:v1/MomentsFeed": moments_feed +"/plus:v1/MomentsFeed/etag": etag +"/plus:v1/MomentsFeed/items": items +"/plus:v1/MomentsFeed/items/item": item +"/plus:v1/MomentsFeed/kind": kind +"/plus:v1/MomentsFeed/nextLink": next_link +"/plus:v1/MomentsFeed/nextPageToken": next_page_token +"/plus:v1/MomentsFeed/selfLink": self_link +"/plus:v1/MomentsFeed/title": title +"/plus:v1/MomentsFeed/updated": updated +"/plus:v1/PeopleFeed": people_feed +"/plus:v1/PeopleFeed/etag": etag +"/plus:v1/PeopleFeed/items": items +"/plus:v1/PeopleFeed/items/item": item +"/plus:v1/PeopleFeed/kind": kind +"/plus:v1/PeopleFeed/nextPageToken": next_page_token +"/plus:v1/PeopleFeed/selfLink": self_link +"/plus:v1/PeopleFeed/title": title +"/plus:v1/PeopleFeed/totalItems": total_items +"/plus:v1/Person": person +"/plus:v1/Person/aboutMe": about_me +"/plus:v1/Person/ageRange": age_range +"/plus:v1/Person/ageRange/max": max +"/plus:v1/Person/ageRange/min": min +"/plus:v1/Person/birthday": birthday +"/plus:v1/Person/braggingRights": bragging_rights +"/plus:v1/Person/circledByCount": circled_by_count +"/plus:v1/Person/cover": cover +"/plus:v1/Person/cover/coverInfo": cover_info +"/plus:v1/Person/cover/coverInfo/leftImageOffset": left_image_offset +"/plus:v1/Person/cover/coverInfo/topImageOffset": top_image_offset +"/plus:v1/Person/cover/coverPhoto": cover_photo +"/plus:v1/Person/cover/coverPhoto/height": height +"/plus:v1/Person/cover/coverPhoto/url": url +"/plus:v1/Person/cover/coverPhoto/width": width +"/plus:v1/Person/cover/layout": layout +"/plus:v1/Person/currentLocation": current_location +"/plus:v1/Person/displayName": display_name +"/plus:v1/Person/domain": domain +"/plus:v1/Person/emails": emails +"/plus:v1/Person/emails/email": email +"/plus:v1/Person/emails/email/type": type +"/plus:v1/Person/emails/email/value": value +"/plus:v1/Person/etag": etag +"/plus:v1/Person/gender": gender +"/plus:v1/Person/id": id +"/plus:v1/Person/image": image +"/plus:v1/Person/image/isDefault": is_default +"/plus:v1/Person/image/url": url +"/plus:v1/Person/isPlusUser": is_plus_user +"/plus:v1/Person/kind": kind +"/plus:v1/Person/language": language +"/plus:v1/Person/name": name +"/plus:v1/Person/name/familyName": family_name +"/plus:v1/Person/name/formatted": formatted +"/plus:v1/Person/name/givenName": given_name +"/plus:v1/Person/name/honorificPrefix": honorific_prefix +"/plus:v1/Person/name/honorificSuffix": honorific_suffix +"/plus:v1/Person/name/middleName": middle_name +"/plus:v1/Person/nickname": nickname +"/plus:v1/Person/objectType": object_type +"/plus:v1/Person/occupation": occupation +"/plus:v1/Person/organizations": organizations +"/plus:v1/Person/organizations/organization": organization +"/plus:v1/Person/organizations/organization/department": department +"/plus:v1/Person/organizations/organization/description": description +"/plus:v1/Person/organizations/organization/endDate": end_date +"/plus:v1/Person/organizations/organization/location": location +"/plus:v1/Person/organizations/organization/name": name +"/plus:v1/Person/organizations/organization/primary": primary +"/plus:v1/Person/organizations/organization/startDate": start_date +"/plus:v1/Person/organizations/organization/title": title +"/plus:v1/Person/organizations/organization/type": type +"/plus:v1/Person/placesLived": places_lived +"/plus:v1/Person/placesLived/places_lived": places_lived +"/plus:v1/Person/placesLived/places_lived/primary": primary +"/plus:v1/Person/placesLived/places_lived/value": value +"/plus:v1/Person/plusOneCount": plus_one_count +"/plus:v1/Person/relationshipStatus": relationship_status +"/plus:v1/Person/skills": skills +"/plus:v1/Person/tagline": tagline +"/plus:v1/Person/url": url +"/plus:v1/Person/urls": urls +"/plus:v1/Person/urls/url": url +"/plus:v1/Person/urls/url/label": label +"/plus:v1/Person/urls/url/type": type +"/plus:v1/Person/urls/url/value": value +"/plus:v1/Person/verified": verified +"/plus:v1/Place": place +"/plus:v1/Place/address": address +"/plus:v1/Place/address/formatted": formatted +"/plus:v1/Place/displayName": display_name +"/plus:v1/Place/id": id +"/plus:v1/Place/kind": kind +"/plus:v1/Place/position": position +"/plus:v1/Place/position/latitude": latitude +"/plus:v1/Place/position/longitude": longitude +"/plus:v1/PlusAclentryResource": plus_aclentry_resource +"/plus:v1/PlusAclentryResource/displayName": display_name +"/plus:v1/PlusAclentryResource/id": id +"/plus:v1/PlusAclentryResource/type": type +"/plusDomains:v1/fields": fields +"/plusDomains:v1/key": key +"/plusDomains:v1/quotaUser": quota_user +"/plusDomains:v1/userIp": user_ip +"/plusDomains:v1/plusDomains.activities.get": get_activity +"/plusDomains:v1/plusDomains.activities.get/activityId": activity_id +"/plusDomains:v1/plusDomains.activities.insert": insert_activity +"/plusDomains:v1/plusDomains.activities.insert/preview": preview +"/plusDomains:v1/plusDomains.activities.insert/userId": user_id +"/plusDomains:v1/plusDomains.activities.list": list_activities +"/plusDomains:v1/plusDomains.activities.list/collection": collection +"/plusDomains:v1/plusDomains.activities.list/maxResults": max_results +"/plusDomains:v1/plusDomains.activities.list/pageToken": page_token +"/plusDomains:v1/plusDomains.activities.list/userId": user_id +"/plusDomains:v1/plusDomains.audiences.list": list_audiences +"/plusDomains:v1/plusDomains.audiences.list/maxResults": max_results +"/plusDomains:v1/plusDomains.audiences.list/pageToken": page_token +"/plusDomains:v1/plusDomains.audiences.list/userId": user_id +"/plusDomains:v1/plusDomains.circles.addPeople/circleId": circle_id +"/plusDomains:v1/plusDomains.circles.addPeople/email": email +"/plusDomains:v1/plusDomains.circles.addPeople/userId": user_id +"/plusDomains:v1/plusDomains.circles.get": get_circle +"/plusDomains:v1/plusDomains.circles.get/circleId": circle_id +"/plusDomains:v1/plusDomains.circles.insert": insert_circle +"/plusDomains:v1/plusDomains.circles.insert/userId": user_id +"/plusDomains:v1/plusDomains.circles.list": list_circles +"/plusDomains:v1/plusDomains.circles.list/maxResults": max_results +"/plusDomains:v1/plusDomains.circles.list/pageToken": page_token +"/plusDomains:v1/plusDomains.circles.list/userId": user_id +"/plusDomains:v1/plusDomains.circles.patch": patch_circle +"/plusDomains:v1/plusDomains.circles.patch/circleId": circle_id +"/plusDomains:v1/plusDomains.circles.remove": remove_circle +"/plusDomains:v1/plusDomains.circles.remove/circleId": circle_id +"/plusDomains:v1/plusDomains.circles.removePeople/circleId": circle_id +"/plusDomains:v1/plusDomains.circles.removePeople/email": email +"/plusDomains:v1/plusDomains.circles.removePeople/userId": user_id +"/plusDomains:v1/plusDomains.circles.update": update_circle +"/plusDomains:v1/plusDomains.circles.update/circleId": circle_id +"/plusDomains:v1/plusDomains.comments.get": get_comment +"/plusDomains:v1/plusDomains.comments.get/commentId": comment_id +"/plusDomains:v1/plusDomains.comments.insert": insert_comment +"/plusDomains:v1/plusDomains.comments.insert/activityId": activity_id +"/plusDomains:v1/plusDomains.comments.list": list_comments +"/plusDomains:v1/plusDomains.comments.list/activityId": activity_id +"/plusDomains:v1/plusDomains.comments.list/maxResults": max_results +"/plusDomains:v1/plusDomains.comments.list/pageToken": page_token +"/plusDomains:v1/plusDomains.comments.list/sortOrder": sort_order +"/plusDomains:v1/plusDomains.media.insert": insert_medium +"/plusDomains:v1/plusDomains.media.insert/collection": collection +"/plusDomains:v1/plusDomains.media.insert/userId": user_id +"/plusDomains:v1/plusDomains.people.get": get_person +"/plusDomains:v1/plusDomains.people.get/userId": user_id +"/plusDomains:v1/plusDomains.people.list": list_people +"/plusDomains:v1/plusDomains.people.list/collection": collection +"/plusDomains:v1/plusDomains.people.list/maxResults": max_results +"/plusDomains:v1/plusDomains.people.list/orderBy": order_by +"/plusDomains:v1/plusDomains.people.list/pageToken": page_token +"/plusDomains:v1/plusDomains.people.list/userId": user_id +"/plusDomains:v1/plusDomains.people.listByActivity/activityId": activity_id +"/plusDomains:v1/plusDomains.people.listByActivity/collection": collection +"/plusDomains:v1/plusDomains.people.listByActivity/maxResults": max_results +"/plusDomains:v1/plusDomains.people.listByActivity/pageToken": page_token +"/plusDomains:v1/plusDomains.people.listByCircle/circleId": circle_id +"/plusDomains:v1/plusDomains.people.listByCircle/maxResults": max_results +"/plusDomains:v1/plusDomains.people.listByCircle/pageToken": page_token +"/plusDomains:v1/Acl": acl +"/plusDomains:v1/Acl/description": description +"/plusDomains:v1/Acl/domainRestricted": domain_restricted +"/plusDomains:v1/Acl/items": items +"/plusDomains:v1/Acl/items/item": item +"/plusDomains:v1/Acl/kind": kind +"/plusDomains:v1/Activity": activity +"/plusDomains:v1/Activity/access": access +"/plusDomains:v1/Activity/actor": actor +"/plusDomains:v1/Activity/actor/displayName": display_name +"/plusDomains:v1/Activity/actor/id": id +"/plusDomains:v1/Activity/actor/image": image +"/plusDomains:v1/Activity/actor/image/url": url +"/plusDomains:v1/Activity/actor/name": name +"/plusDomains:v1/Activity/actor/name/familyName": family_name +"/plusDomains:v1/Activity/actor/name/givenName": given_name +"/plusDomains:v1/Activity/actor/url": url +"/plusDomains:v1/Activity/address": address +"/plusDomains:v1/Activity/annotation": annotation +"/plusDomains:v1/Activity/crosspostSource": crosspost_source +"/plusDomains:v1/Activity/etag": etag +"/plusDomains:v1/Activity/geocode": geocode +"/plusDomains:v1/Activity/id": id +"/plusDomains:v1/Activity/kind": kind +"/plusDomains:v1/Activity/location": location +"/plusDomains:v1/Activity/object": object +"/plusDomains:v1/Activity/object/actor": actor +"/plusDomains:v1/Activity/object/actor/displayName": display_name +"/plusDomains:v1/Activity/object/actor/id": id +"/plusDomains:v1/Activity/object/actor/image": image +"/plusDomains:v1/Activity/object/actor/image/url": url +"/plusDomains:v1/Activity/object/actor/url": url +"/plusDomains:v1/Activity/object/attachments": attachments +"/plusDomains:v1/Activity/object/attachments/attachment": attachment +"/plusDomains:v1/Activity/object/attachments/attachment/content": content +"/plusDomains:v1/Activity/object/attachments/attachment/displayName": display_name +"/plusDomains:v1/Activity/object/attachments/attachment/embed": embed +"/plusDomains:v1/Activity/object/attachments/attachment/embed/type": type +"/plusDomains:v1/Activity/object/attachments/attachment/embed/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/fullImage": full_image +"/plusDomains:v1/Activity/object/attachments/attachment/fullImage/height": height +"/plusDomains:v1/Activity/object/attachments/attachment/fullImage/type": type +"/plusDomains:v1/Activity/object/attachments/attachment/fullImage/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/fullImage/width": width +"/plusDomains:v1/Activity/object/attachments/attachment/id": id +"/plusDomains:v1/Activity/object/attachments/attachment/image": image +"/plusDomains:v1/Activity/object/attachments/attachment/image/height": height +"/plusDomains:v1/Activity/object/attachments/attachment/image/type": type +"/plusDomains:v1/Activity/object/attachments/attachment/image/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/image/width": width +"/plusDomains:v1/Activity/object/attachments/attachment/objectType": object_type +"/plusDomains:v1/Activity/object/attachments/attachment/previewThumbnails": preview_thumbnails +"/plusDomains:v1/Activity/object/attachments/attachment/previewThumbnails/preview_thumbnail": preview_thumbnail +"/plusDomains:v1/Activity/object/attachments/attachment/previewThumbnails/preview_thumbnail/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails": thumbnails +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail": thumbnail +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/description": description +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image": image +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/height": height +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/type": type +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/image/width": width +"/plusDomains:v1/Activity/object/attachments/attachment/thumbnails/thumbnail/url": url +"/plusDomains:v1/Activity/object/attachments/attachment/url": url +"/plusDomains:v1/Activity/object/content": content +"/plusDomains:v1/Activity/object/id": id +"/plusDomains:v1/Activity/object/objectType": object_type +"/plusDomains:v1/Activity/object/originalContent": original_content +"/plusDomains:v1/Activity/object/plusoners": plusoners +"/plusDomains:v1/Activity/object/plusoners/selfLink": self_link +"/plusDomains:v1/Activity/object/plusoners/totalItems": total_items +"/plusDomains:v1/Activity/object/replies": replies +"/plusDomains:v1/Activity/object/replies/selfLink": self_link +"/plusDomains:v1/Activity/object/replies/totalItems": total_items +"/plusDomains:v1/Activity/object/resharers": resharers +"/plusDomains:v1/Activity/object/resharers/selfLink": self_link +"/plusDomains:v1/Activity/object/resharers/totalItems": total_items +"/plusDomains:v1/Activity/object/statusForViewer": status_for_viewer +"/plusDomains:v1/Activity/object/statusForViewer/canComment": can_comment +"/plusDomains:v1/Activity/object/statusForViewer/canPlusone": can_plusone +"/plusDomains:v1/Activity/object/statusForViewer/canUpdate": can_update +"/plusDomains:v1/Activity/object/statusForViewer/isPlusOned": is_plus_oned +"/plusDomains:v1/Activity/object/statusForViewer/resharingDisabled": resharing_disabled +"/plusDomains:v1/Activity/object/url": url +"/plusDomains:v1/Activity/placeId": place_id +"/plusDomains:v1/Activity/placeName": place_name +"/plusDomains:v1/Activity/provider": provider +"/plusDomains:v1/Activity/provider/title": title +"/plusDomains:v1/Activity/published": published +"/plusDomains:v1/Activity/radius": radius +"/plusDomains:v1/Activity/title": title +"/plusDomains:v1/Activity/updated": updated +"/plusDomains:v1/Activity/url": url +"/plusDomains:v1/Activity/verb": verb +"/plusDomains:v1/ActivityFeed": activity_feed +"/plusDomains:v1/ActivityFeed/etag": etag +"/plusDomains:v1/ActivityFeed/id": id +"/plusDomains:v1/ActivityFeed/items": items +"/plusDomains:v1/ActivityFeed/items/item": item +"/plusDomains:v1/ActivityFeed/kind": kind +"/plusDomains:v1/ActivityFeed/nextLink": next_link +"/plusDomains:v1/ActivityFeed/nextPageToken": next_page_token +"/plusDomains:v1/ActivityFeed/selfLink": self_link +"/plusDomains:v1/ActivityFeed/title": title +"/plusDomains:v1/ActivityFeed/updated": updated +"/plusDomains:v1/Audience": audience +"/plusDomains:v1/Audience/etag": etag +"/plusDomains:v1/Audience/item": item +"/plusDomains:v1/Audience/kind": kind +"/plusDomains:v1/Audience/memberCount": member_count +"/plusDomains:v1/Audience/visibility": visibility +"/plusDomains:v1/AudiencesFeed": audiences_feed +"/plusDomains:v1/AudiencesFeed/etag": etag +"/plusDomains:v1/AudiencesFeed/items": items +"/plusDomains:v1/AudiencesFeed/items/item": item +"/plusDomains:v1/AudiencesFeed/kind": kind +"/plusDomains:v1/AudiencesFeed/nextPageToken": next_page_token +"/plusDomains:v1/AudiencesFeed/totalItems": total_items +"/plusDomains:v1/Circle": circle +"/plusDomains:v1/Circle/description": description +"/plusDomains:v1/Circle/displayName": display_name +"/plusDomains:v1/Circle/etag": etag +"/plusDomains:v1/Circle/id": id +"/plusDomains:v1/Circle/kind": kind +"/plusDomains:v1/Circle/people": people +"/plusDomains:v1/Circle/people/totalItems": total_items +"/plusDomains:v1/Circle/selfLink": self_link +"/plusDomains:v1/CircleFeed": circle_feed +"/plusDomains:v1/CircleFeed/etag": etag +"/plusDomains:v1/CircleFeed/items": items +"/plusDomains:v1/CircleFeed/items/item": item +"/plusDomains:v1/CircleFeed/kind": kind +"/plusDomains:v1/CircleFeed/nextLink": next_link +"/plusDomains:v1/CircleFeed/nextPageToken": next_page_token +"/plusDomains:v1/CircleFeed/selfLink": self_link +"/plusDomains:v1/CircleFeed/title": title +"/plusDomains:v1/CircleFeed/totalItems": total_items +"/plusDomains:v1/Comment": comment +"/plusDomains:v1/Comment/actor": actor +"/plusDomains:v1/Comment/actor/displayName": display_name +"/plusDomains:v1/Comment/actor/id": id +"/plusDomains:v1/Comment/actor/image": image +"/plusDomains:v1/Comment/actor/image/url": url +"/plusDomains:v1/Comment/actor/url": url +"/plusDomains:v1/Comment/etag": etag +"/plusDomains:v1/Comment/id": id +"/plusDomains:v1/Comment/inReplyTo": in_reply_to +"/plusDomains:v1/Comment/inReplyTo/in_reply_to": in_reply_to +"/plusDomains:v1/Comment/inReplyTo/in_reply_to/id": id +"/plusDomains:v1/Comment/inReplyTo/in_reply_to/url": url +"/plusDomains:v1/Comment/kind": kind +"/plusDomains:v1/Comment/object": object +"/plusDomains:v1/Comment/object/content": content +"/plusDomains:v1/Comment/object/objectType": object_type +"/plusDomains:v1/Comment/object/originalContent": original_content +"/plusDomains:v1/Comment/plusoners": plusoners +"/plusDomains:v1/Comment/plusoners/totalItems": total_items +"/plusDomains:v1/Comment/published": published +"/plusDomains:v1/Comment/selfLink": self_link +"/plusDomains:v1/Comment/updated": updated +"/plusDomains:v1/Comment/verb": verb +"/plusDomains:v1/CommentFeed": comment_feed +"/plusDomains:v1/CommentFeed/etag": etag +"/plusDomains:v1/CommentFeed/id": id +"/plusDomains:v1/CommentFeed/items": items +"/plusDomains:v1/CommentFeed/items/item": item +"/plusDomains:v1/CommentFeed/kind": kind +"/plusDomains:v1/CommentFeed/nextLink": next_link +"/plusDomains:v1/CommentFeed/nextPageToken": next_page_token +"/plusDomains:v1/CommentFeed/title": title +"/plusDomains:v1/CommentFeed/updated": updated +"/plusDomains:v1/Media": media +"/plusDomains:v1/Media/author": author +"/plusDomains:v1/Media/author/displayName": display_name +"/plusDomains:v1/Media/author/id": id +"/plusDomains:v1/Media/author/image": image +"/plusDomains:v1/Media/author/image/url": url +"/plusDomains:v1/Media/author/url": url +"/plusDomains:v1/Media/displayName": display_name +"/plusDomains:v1/Media/etag": etag +"/plusDomains:v1/Media/exif": exif +"/plusDomains:v1/Media/exif/time": time +"/plusDomains:v1/Media/height": height +"/plusDomains:v1/Media/id": id +"/plusDomains:v1/Media/kind": kind +"/plusDomains:v1/Media/mediaCreatedTime": media_created_time +"/plusDomains:v1/Media/mediaUrl": media_url +"/plusDomains:v1/Media/published": published +"/plusDomains:v1/Media/sizeBytes": size_bytes +"/plusDomains:v1/Media/streams": streams +"/plusDomains:v1/Media/streams/stream": stream +"/plusDomains:v1/Media/summary": summary +"/plusDomains:v1/Media/updated": updated +"/plusDomains:v1/Media/url": url +"/plusDomains:v1/Media/videoDuration": video_duration +"/plusDomains:v1/Media/videoStatus": video_status +"/plusDomains:v1/Media/width": width +"/plusDomains:v1/PeopleFeed": people_feed +"/plusDomains:v1/PeopleFeed/etag": etag +"/plusDomains:v1/PeopleFeed/items": items +"/plusDomains:v1/PeopleFeed/items/item": item +"/plusDomains:v1/PeopleFeed/kind": kind +"/plusDomains:v1/PeopleFeed/nextPageToken": next_page_token +"/plusDomains:v1/PeopleFeed/selfLink": self_link +"/plusDomains:v1/PeopleFeed/title": title +"/plusDomains:v1/PeopleFeed/totalItems": total_items +"/plusDomains:v1/Person": person +"/plusDomains:v1/Person/aboutMe": about_me +"/plusDomains:v1/Person/birthday": birthday +"/plusDomains:v1/Person/braggingRights": bragging_rights +"/plusDomains:v1/Person/circledByCount": circled_by_count +"/plusDomains:v1/Person/cover": cover +"/plusDomains:v1/Person/cover/coverInfo": cover_info +"/plusDomains:v1/Person/cover/coverInfo/leftImageOffset": left_image_offset +"/plusDomains:v1/Person/cover/coverInfo/topImageOffset": top_image_offset +"/plusDomains:v1/Person/cover/coverPhoto": cover_photo +"/plusDomains:v1/Person/cover/coverPhoto/height": height +"/plusDomains:v1/Person/cover/coverPhoto/url": url +"/plusDomains:v1/Person/cover/coverPhoto/width": width +"/plusDomains:v1/Person/cover/layout": layout +"/plusDomains:v1/Person/currentLocation": current_location +"/plusDomains:v1/Person/displayName": display_name +"/plusDomains:v1/Person/domain": domain +"/plusDomains:v1/Person/emails": emails +"/plusDomains:v1/Person/emails/email": email +"/plusDomains:v1/Person/emails/email/type": type +"/plusDomains:v1/Person/emails/email/value": value +"/plusDomains:v1/Person/etag": etag +"/plusDomains:v1/Person/gender": gender +"/plusDomains:v1/Person/id": id +"/plusDomains:v1/Person/image": image +"/plusDomains:v1/Person/image/isDefault": is_default +"/plusDomains:v1/Person/image/url": url +"/plusDomains:v1/Person/isPlusUser": is_plus_user +"/plusDomains:v1/Person/kind": kind +"/plusDomains:v1/Person/name": name +"/plusDomains:v1/Person/name/familyName": family_name +"/plusDomains:v1/Person/name/formatted": formatted +"/plusDomains:v1/Person/name/givenName": given_name +"/plusDomains:v1/Person/name/honorificPrefix": honorific_prefix +"/plusDomains:v1/Person/name/honorificSuffix": honorific_suffix +"/plusDomains:v1/Person/name/middleName": middle_name +"/plusDomains:v1/Person/nickname": nickname +"/plusDomains:v1/Person/objectType": object_type +"/plusDomains:v1/Person/occupation": occupation +"/plusDomains:v1/Person/organizations": organizations +"/plusDomains:v1/Person/organizations/organization": organization +"/plusDomains:v1/Person/organizations/organization/department": department +"/plusDomains:v1/Person/organizations/organization/description": description +"/plusDomains:v1/Person/organizations/organization/endDate": end_date +"/plusDomains:v1/Person/organizations/organization/location": location +"/plusDomains:v1/Person/organizations/organization/name": name +"/plusDomains:v1/Person/organizations/organization/primary": primary +"/plusDomains:v1/Person/organizations/organization/startDate": start_date +"/plusDomains:v1/Person/organizations/organization/title": title +"/plusDomains:v1/Person/organizations/organization/type": type +"/plusDomains:v1/Person/placesLived": places_lived +"/plusDomains:v1/Person/placesLived/places_lived": places_lived +"/plusDomains:v1/Person/placesLived/places_lived/primary": primary +"/plusDomains:v1/Person/placesLived/places_lived/value": value +"/plusDomains:v1/Person/plusOneCount": plus_one_count +"/plusDomains:v1/Person/relationshipStatus": relationship_status +"/plusDomains:v1/Person/skills": skills +"/plusDomains:v1/Person/tagline": tagline +"/plusDomains:v1/Person/url": url +"/plusDomains:v1/Person/urls": urls +"/plusDomains:v1/Person/urls/url": url +"/plusDomains:v1/Person/urls/url/label": label +"/plusDomains:v1/Person/urls/url/type": type +"/plusDomains:v1/Person/urls/url/value": value +"/plusDomains:v1/Person/verified": verified +"/plusDomains:v1/Place": place +"/plusDomains:v1/Place/address": address +"/plusDomains:v1/Place/address/formatted": formatted +"/plusDomains:v1/Place/displayName": display_name +"/plusDomains:v1/Place/id": id +"/plusDomains:v1/Place/kind": kind +"/plusDomains:v1/Place/position": position +"/plusDomains:v1/Place/position/latitude": latitude +"/plusDomains:v1/Place/position/longitude": longitude +"/plusDomains:v1/PlusDomainsAclentryResource": plus_domains_aclentry_resource +"/plusDomains:v1/PlusDomainsAclentryResource/displayName": display_name +"/plusDomains:v1/PlusDomainsAclentryResource/id": id +"/plusDomains:v1/PlusDomainsAclentryResource/type": type +"/plusDomains:v1/Videostream": videostream +"/plusDomains:v1/Videostream/height": height +"/plusDomains:v1/Videostream/type": type +"/plusDomains:v1/Videostream/url": url +"/plusDomains:v1/Videostream/width": width +"/prediction:v1.6/fields": fields +"/prediction:v1.6/key": key +"/prediction:v1.6/quotaUser": quota_user +"/prediction:v1.6/userIp": user_ip +"/prediction:v1.6/prediction.hostedmodels.predict/hostedModelName": hosted_model_name +"/prediction:v1.6/prediction.hostedmodels.predict/project": project +"/prediction:v1.6/prediction.trainedmodels.analyze/id": id +"/prediction:v1.6/prediction.trainedmodels.analyze/project": project +"/prediction:v1.6/prediction.trainedmodels.delete/id": id +"/prediction:v1.6/prediction.trainedmodels.delete/project": project +"/prediction:v1.6/prediction.trainedmodels.get/id": id +"/prediction:v1.6/prediction.trainedmodels.get/project": project +"/prediction:v1.6/prediction.trainedmodels.insert/project": project +"/prediction:v1.6/prediction.trainedmodels.list/maxResults": max_results +"/prediction:v1.6/prediction.trainedmodels.list/pageToken": page_token +"/prediction:v1.6/prediction.trainedmodels.list/project": project +"/prediction:v1.6/prediction.trainedmodels.predict/id": id +"/prediction:v1.6/prediction.trainedmodels.predict/project": project +"/prediction:v1.6/prediction.trainedmodels.update/id": id +"/prediction:v1.6/prediction.trainedmodels.update/project": project +"/prediction:v1.6/Analyze": analyze +"/prediction:v1.6/Analyze/dataDescription": data_description +"/prediction:v1.6/Analyze/dataDescription/features": features +"/prediction:v1.6/Analyze/dataDescription/features/feature": feature +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical": categorical +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical/count": count +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical/values": values +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical/values/value": value +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical/values/value/count": count +"/prediction:v1.6/Analyze/dataDescription/features/feature/categorical/values/value/value": value +"/prediction:v1.6/Analyze/dataDescription/features/feature/index": index +"/prediction:v1.6/Analyze/dataDescription/features/feature/numeric": numeric +"/prediction:v1.6/Analyze/dataDescription/features/feature/numeric/count": count +"/prediction:v1.6/Analyze/dataDescription/features/feature/numeric/mean": mean +"/prediction:v1.6/Analyze/dataDescription/features/feature/numeric/variance": variance +"/prediction:v1.6/Analyze/dataDescription/features/feature/text": text +"/prediction:v1.6/Analyze/dataDescription/features/feature/text/count": count +"/prediction:v1.6/Analyze/dataDescription/outputFeature": output_feature +"/prediction:v1.6/Analyze/dataDescription/outputFeature/numeric": numeric +"/prediction:v1.6/Analyze/dataDescription/outputFeature/numeric/count": count +"/prediction:v1.6/Analyze/dataDescription/outputFeature/numeric/mean": mean +"/prediction:v1.6/Analyze/dataDescription/outputFeature/numeric/variance": variance +"/prediction:v1.6/Analyze/dataDescription/outputFeature/text": text +"/prediction:v1.6/Analyze/dataDescription/outputFeature/text/text": text +"/prediction:v1.6/Analyze/dataDescription/outputFeature/text/text/count": count +"/prediction:v1.6/Analyze/dataDescription/outputFeature/text/text/value": value +"/prediction:v1.6/Analyze/errors": errors +"/prediction:v1.6/Analyze/errors/error": error +"/prediction:v1.6/Analyze/errors/error/error": error +"/prediction:v1.6/Analyze/id": id +"/prediction:v1.6/Analyze/kind": kind +"/prediction:v1.6/Analyze/modelDescription": model_description +"/prediction:v1.6/Analyze/modelDescription/confusionMatrix": confusion_matrix +"/prediction:v1.6/Analyze/modelDescription/confusionMatrix/confusion_matrix": confusion_matrix +"/prediction:v1.6/Analyze/modelDescription/confusionMatrix/confusion_matrix/confusion_matrix": confusion_matrix +"/prediction:v1.6/Analyze/modelDescription/confusionMatrixRowTotals": confusion_matrix_row_totals +"/prediction:v1.6/Analyze/modelDescription/confusionMatrixRowTotals/confusion_matrix_row_total": confusion_matrix_row_total +"/prediction:v1.6/Analyze/modelDescription/modelinfo": modelinfo +"/prediction:v1.6/Analyze/selfLink": self_link +"/prediction:v1.6/Input": input +"/prediction:v1.6/Input/input": input +"/prediction:v1.6/Input/input/csvInstance": csv_instance +"/prediction:v1.6/Input/input/csvInstance/csv_instance": csv_instance +"/prediction:v1.6/Insert": insert +"/prediction:v1.6/Insert/id": id +"/prediction:v1.6/Insert/modelType": model_type +"/prediction:v1.6/Insert/sourceModel": source_model +"/prediction:v1.6/Insert/storageDataLocation": storage_data_location +"/prediction:v1.6/Insert/storagePMMLLocation": storage_pmml_location +"/prediction:v1.6/Insert/storagePMMLModelLocation": storage_pmml_model_location +"/prediction:v1.6/Insert/trainingInstances": training_instances +"/prediction:v1.6/Insert/trainingInstances/training_instance": training_instance +"/prediction:v1.6/Insert/trainingInstances/training_instance/csvInstance": csv_instance +"/prediction:v1.6/Insert/trainingInstances/training_instance/csvInstance/csv_instance": csv_instance +"/prediction:v1.6/Insert/trainingInstances/training_instance/output": output +"/prediction:v1.6/Insert/utility": utility +"/prediction:v1.6/Insert/utility/utility": utility +"/prediction:v1.6/Insert/utility/utility/utility": utility +"/prediction:v1.6/Insert2": insert2 +"/prediction:v1.6/Insert2/created": created +"/prediction:v1.6/Insert2/id": id +"/prediction:v1.6/Insert2/kind": kind +"/prediction:v1.6/Insert2/modelInfo": model_info +"/prediction:v1.6/Insert2/modelInfo/classWeightedAccuracy": class_weighted_accuracy +"/prediction:v1.6/Insert2/modelInfo/classificationAccuracy": classification_accuracy +"/prediction:v1.6/Insert2/modelInfo/meanSquaredError": mean_squared_error +"/prediction:v1.6/Insert2/modelInfo/modelType": model_type +"/prediction:v1.6/Insert2/modelInfo/numberInstances": number_instances +"/prediction:v1.6/Insert2/modelInfo/numberLabels": number_labels +"/prediction:v1.6/Insert2/modelType": model_type +"/prediction:v1.6/Insert2/selfLink": self_link +"/prediction:v1.6/Insert2/storageDataLocation": storage_data_location +"/prediction:v1.6/Insert2/storagePMMLLocation": storage_pmml_location +"/prediction:v1.6/Insert2/storagePMMLModelLocation": storage_pmml_model_location +"/prediction:v1.6/Insert2/trainingComplete": training_complete +"/prediction:v1.6/Insert2/trainingStatus": training_status +"/prediction:v1.6/List": list +"/prediction:v1.6/List/items": items +"/prediction:v1.6/List/items/item": item +"/prediction:v1.6/List/kind": kind +"/prediction:v1.6/List/nextPageToken": next_page_token +"/prediction:v1.6/List/selfLink": self_link +"/prediction:v1.6/Output": output +"/prediction:v1.6/Output/id": id +"/prediction:v1.6/Output/kind": kind +"/prediction:v1.6/Output/outputLabel": output_label +"/prediction:v1.6/Output/outputMulti": output_multi +"/prediction:v1.6/Output/outputMulti/output_multi": output_multi +"/prediction:v1.6/Output/outputMulti/output_multi/label": label +"/prediction:v1.6/Output/outputMulti/output_multi/score": score +"/prediction:v1.6/Output/outputValue": output_value +"/prediction:v1.6/Output/selfLink": self_link +"/prediction:v1.6/Update": update +"/prediction:v1.6/Update/csvInstance": csv_instance +"/prediction:v1.6/Update/csvInstance/csv_instance": csv_instance +"/prediction:v1.6/Update/output": output +"/qpxExpress:v1/fields": fields +"/qpxExpress:v1/key": key +"/qpxExpress:v1/quotaUser": quota_user +"/qpxExpress:v1/userIp": user_ip +"/qpxExpress:v1/qpxExpress.trips.search": search_trips +"/qpxExpress:v1/AircraftData": aircraft_data +"/qpxExpress:v1/AircraftData/code": code +"/qpxExpress:v1/AircraftData/kind": kind +"/qpxExpress:v1/AircraftData/name": name +"/qpxExpress:v1/AirportData": airport_data +"/qpxExpress:v1/AirportData/city": city +"/qpxExpress:v1/AirportData/code": code +"/qpxExpress:v1/AirportData/kind": kind +"/qpxExpress:v1/AirportData/name": name +"/qpxExpress:v1/BagDescriptor": bag_descriptor +"/qpxExpress:v1/BagDescriptor/commercialName": commercial_name +"/qpxExpress:v1/BagDescriptor/count": count +"/qpxExpress:v1/BagDescriptor/description": description +"/qpxExpress:v1/BagDescriptor/description/description": description +"/qpxExpress:v1/BagDescriptor/kind": kind +"/qpxExpress:v1/BagDescriptor/subcode": subcode +"/qpxExpress:v1/CarrierData": carrier_data +"/qpxExpress:v1/CarrierData/code": code +"/qpxExpress:v1/CarrierData/kind": kind +"/qpxExpress:v1/CarrierData/name": name +"/qpxExpress:v1/CityData": city_data +"/qpxExpress:v1/CityData/code": code +"/qpxExpress:v1/CityData/country": country +"/qpxExpress:v1/CityData/kind": kind +"/qpxExpress:v1/CityData/name": name +"/qpxExpress:v1/Data": data +"/qpxExpress:v1/Data/aircraft": aircraft +"/qpxExpress:v1/Data/aircraft/aircraft": aircraft +"/qpxExpress:v1/Data/airport": airport +"/qpxExpress:v1/Data/airport/airport": airport +"/qpxExpress:v1/Data/carrier": carrier +"/qpxExpress:v1/Data/carrier/carrier": carrier +"/qpxExpress:v1/Data/city": city +"/qpxExpress:v1/Data/city/city": city +"/qpxExpress:v1/Data/kind": kind +"/qpxExpress:v1/Data/tax": tax +"/qpxExpress:v1/Data/tax/tax": tax +"/qpxExpress:v1/FareInfo": fare_info +"/qpxExpress:v1/FareInfo/basisCode": basis_code +"/qpxExpress:v1/FareInfo/carrier": carrier +"/qpxExpress:v1/FareInfo/destination": destination +"/qpxExpress:v1/FareInfo/id": id +"/qpxExpress:v1/FareInfo/kind": kind +"/qpxExpress:v1/FareInfo/origin": origin +"/qpxExpress:v1/FareInfo/private": private +"/qpxExpress:v1/FlightInfo": flight_info +"/qpxExpress:v1/FlightInfo/carrier": carrier +"/qpxExpress:v1/FlightInfo/number": number +"/qpxExpress:v1/FreeBaggageAllowance": free_baggage_allowance +"/qpxExpress:v1/FreeBaggageAllowance/bagDescriptor": bag_descriptor +"/qpxExpress:v1/FreeBaggageAllowance/bagDescriptor/bag_descriptor": bag_descriptor +"/qpxExpress:v1/FreeBaggageAllowance/kilos": kilos +"/qpxExpress:v1/FreeBaggageAllowance/kilosPerPiece": kilos_per_piece +"/qpxExpress:v1/FreeBaggageAllowance/kind": kind +"/qpxExpress:v1/FreeBaggageAllowance/pieces": pieces +"/qpxExpress:v1/FreeBaggageAllowance/pounds": pounds +"/qpxExpress:v1/LegInfo": leg_info +"/qpxExpress:v1/LegInfo/aircraft": aircraft +"/qpxExpress:v1/LegInfo/arrivalTime": arrival_time +"/qpxExpress:v1/LegInfo/changePlane": change_plane +"/qpxExpress:v1/LegInfo/connectionDuration": connection_duration +"/qpxExpress:v1/LegInfo/departureTime": departure_time +"/qpxExpress:v1/LegInfo/destination": destination +"/qpxExpress:v1/LegInfo/destinationTerminal": destination_terminal +"/qpxExpress:v1/LegInfo/duration": duration +"/qpxExpress:v1/LegInfo/id": id +"/qpxExpress:v1/LegInfo/kind": kind +"/qpxExpress:v1/LegInfo/meal": meal +"/qpxExpress:v1/LegInfo/mileage": mileage +"/qpxExpress:v1/LegInfo/onTimePerformance": on_time_performance +"/qpxExpress:v1/LegInfo/operatingDisclosure": operating_disclosure +"/qpxExpress:v1/LegInfo/origin": origin +"/qpxExpress:v1/LegInfo/originTerminal": origin_terminal +"/qpxExpress:v1/LegInfo/secure": secure +"/qpxExpress:v1/PassengerCounts": passenger_counts +"/qpxExpress:v1/PassengerCounts/adultCount": adult_count +"/qpxExpress:v1/PassengerCounts/childCount": child_count +"/qpxExpress:v1/PassengerCounts/infantInLapCount": infant_in_lap_count +"/qpxExpress:v1/PassengerCounts/infantInSeatCount": infant_in_seat_count +"/qpxExpress:v1/PassengerCounts/kind": kind +"/qpxExpress:v1/PassengerCounts/seniorCount": senior_count +"/qpxExpress:v1/PricingInfo": pricing_info +"/qpxExpress:v1/PricingInfo/baseFareTotal": base_fare_total +"/qpxExpress:v1/PricingInfo/fare": fare +"/qpxExpress:v1/PricingInfo/fare/fare": fare +"/qpxExpress:v1/PricingInfo/fareCalculation": fare_calculation +"/qpxExpress:v1/PricingInfo/kind": kind +"/qpxExpress:v1/PricingInfo/latestTicketingTime": latest_ticketing_time +"/qpxExpress:v1/PricingInfo/passengers": passengers +"/qpxExpress:v1/PricingInfo/ptc": ptc +"/qpxExpress:v1/PricingInfo/refundable": refundable +"/qpxExpress:v1/PricingInfo/saleFareTotal": sale_fare_total +"/qpxExpress:v1/PricingInfo/saleTaxTotal": sale_tax_total +"/qpxExpress:v1/PricingInfo/saleTotal": sale_total +"/qpxExpress:v1/PricingInfo/segmentPricing": segment_pricing +"/qpxExpress:v1/PricingInfo/segmentPricing/segment_pricing": segment_pricing +"/qpxExpress:v1/PricingInfo/tax": tax +"/qpxExpress:v1/PricingInfo/tax/tax": tax +"/qpxExpress:v1/SegmentInfo": segment_info +"/qpxExpress:v1/SegmentInfo/bookingCode": booking_code +"/qpxExpress:v1/SegmentInfo/bookingCodeCount": booking_code_count +"/qpxExpress:v1/SegmentInfo/cabin": cabin +"/qpxExpress:v1/SegmentInfo/connectionDuration": connection_duration +"/qpxExpress:v1/SegmentInfo/duration": duration +"/qpxExpress:v1/SegmentInfo/flight": flight +"/qpxExpress:v1/SegmentInfo/id": id +"/qpxExpress:v1/SegmentInfo/kind": kind +"/qpxExpress:v1/SegmentInfo/leg": leg +"/qpxExpress:v1/SegmentInfo/leg/leg": leg +"/qpxExpress:v1/SegmentInfo/marriedSegmentGroup": married_segment_group +"/qpxExpress:v1/SegmentInfo/subjectToGovernmentApproval": subject_to_government_approval +"/qpxExpress:v1/SegmentPricing": segment_pricing +"/qpxExpress:v1/SegmentPricing/fareId": fare_id +"/qpxExpress:v1/SegmentPricing/freeBaggageOption": free_baggage_option +"/qpxExpress:v1/SegmentPricing/freeBaggageOption/free_baggage_option": free_baggage_option +"/qpxExpress:v1/SegmentPricing/kind": kind +"/qpxExpress:v1/SegmentPricing/segmentId": segment_id +"/qpxExpress:v1/SliceInfo": slice_info +"/qpxExpress:v1/SliceInfo/duration": duration +"/qpxExpress:v1/SliceInfo/kind": kind +"/qpxExpress:v1/SliceInfo/segment": segment +"/qpxExpress:v1/SliceInfo/segment/segment": segment +"/qpxExpress:v1/SliceInput": slice_input +"/qpxExpress:v1/SliceInput/alliance": alliance +"/qpxExpress:v1/SliceInput/date": date +"/qpxExpress:v1/SliceInput/destination": destination +"/qpxExpress:v1/SliceInput/kind": kind +"/qpxExpress:v1/SliceInput/maxConnectionDuration": max_connection_duration +"/qpxExpress:v1/SliceInput/maxStops": max_stops +"/qpxExpress:v1/SliceInput/origin": origin +"/qpxExpress:v1/SliceInput/permittedCarrier": permitted_carrier +"/qpxExpress:v1/SliceInput/permittedCarrier/permitted_carrier": permitted_carrier +"/qpxExpress:v1/SliceInput/permittedDepartureTime": permitted_departure_time +"/qpxExpress:v1/SliceInput/preferredCabin": preferred_cabin +"/qpxExpress:v1/SliceInput/prohibitedCarrier": prohibited_carrier +"/qpxExpress:v1/SliceInput/prohibitedCarrier/prohibited_carrier": prohibited_carrier +"/qpxExpress:v1/TaxData": tax_data +"/qpxExpress:v1/TaxData/id": id +"/qpxExpress:v1/TaxData/kind": kind +"/qpxExpress:v1/TaxData/name": name +"/qpxExpress:v1/TaxInfo": tax_info +"/qpxExpress:v1/TaxInfo/chargeType": charge_type +"/qpxExpress:v1/TaxInfo/code": code +"/qpxExpress:v1/TaxInfo/country": country +"/qpxExpress:v1/TaxInfo/id": id +"/qpxExpress:v1/TaxInfo/kind": kind +"/qpxExpress:v1/TaxInfo/salePrice": sale_price +"/qpxExpress:v1/TimeOfDayRange": time_of_day_range +"/qpxExpress:v1/TimeOfDayRange/earliestTime": earliest_time +"/qpxExpress:v1/TimeOfDayRange/kind": kind +"/qpxExpress:v1/TimeOfDayRange/latestTime": latest_time +"/qpxExpress:v1/TripOption": trip_option +"/qpxExpress:v1/TripOption/id": id +"/qpxExpress:v1/TripOption/kind": kind +"/qpxExpress:v1/TripOption/pricing": pricing +"/qpxExpress:v1/TripOption/pricing/pricing": pricing +"/qpxExpress:v1/TripOption/saleTotal": sale_total +"/qpxExpress:v1/TripOption/slice": slice +"/qpxExpress:v1/TripOption/slice/slice": slice +"/qpxExpress:v1/TripOptionsRequest": trip_options_request +"/qpxExpress:v1/TripOptionsRequest/maxPrice": max_price +"/qpxExpress:v1/TripOptionsRequest/passengers": passengers +"/qpxExpress:v1/TripOptionsRequest/refundable": refundable +"/qpxExpress:v1/TripOptionsRequest/saleCountry": sale_country +"/qpxExpress:v1/TripOptionsRequest/slice": slice +"/qpxExpress:v1/TripOptionsRequest/slice/slice": slice +"/qpxExpress:v1/TripOptionsRequest/solutions": solutions +"/qpxExpress:v1/TripOptionsResponse": trip_options_response +"/qpxExpress:v1/TripOptionsResponse/data": data +"/qpxExpress:v1/TripOptionsResponse/kind": kind +"/qpxExpress:v1/TripOptionsResponse/requestId": request_id +"/qpxExpress:v1/TripOptionsResponse/tripOption": trip_option +"/qpxExpress:v1/TripOptionsResponse/tripOption/trip_option": trip_option +"/qpxExpress:v1/TripsSearchRequest/request": request +"/qpxExpress:v1/TripsSearchResponse/kind": kind +"/qpxExpress:v1/TripsSearchResponse/trips": trips +"/replicapool:v1beta2/fields": fields +"/replicapool:v1beta2/key": key +"/replicapool:v1beta2/quotaUser": quota_user +"/replicapool:v1beta2/userIp": user_ip +"/replicapool:v1beta2/replicapool.instanceGroupManagers.abandonInstances/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.abandonInstances/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.abandonInstances/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.delete": delete_instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.delete/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.delete/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.delete/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.deleteInstances/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.deleteInstances/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.deleteInstances/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.get": get_instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.get/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.get/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.get/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.insert": insert_instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.insert/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.insert/size": size +"/replicapool:v1beta2/replicapool.instanceGroupManagers.insert/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list": list_instance_group_managers +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list/filter": filter +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list/maxResults": max_results +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list/pageToken": page_token +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.list/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.recreateInstances/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.recreateInstances/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.recreateInstances/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize/size": size +"/replicapool:v1beta2/replicapool.instanceGroupManagers.resize/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setInstanceTemplate/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setInstanceTemplate/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setInstanceTemplate/zone": zone +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setTargetPools/instanceGroupManager": instance_group_manager +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setTargetPools/project": project +"/replicapool:v1beta2/replicapool.instanceGroupManagers.setTargetPools/zone": zone +"/replicapool:v1beta2/replicapool.zoneOperations.get": get_zone_operation +"/replicapool:v1beta2/replicapool.zoneOperations.get/operation": operation +"/replicapool:v1beta2/replicapool.zoneOperations.get/project": project +"/replicapool:v1beta2/replicapool.zoneOperations.get/zone": zone +"/replicapool:v1beta2/replicapool.zoneOperations.list": list_zone_operations +"/replicapool:v1beta2/replicapool.zoneOperations.list/filter": filter +"/replicapool:v1beta2/replicapool.zoneOperations.list/maxResults": max_results +"/replicapool:v1beta2/replicapool.zoneOperations.list/pageToken": page_token +"/replicapool:v1beta2/replicapool.zoneOperations.list/project": project +"/replicapool:v1beta2/replicapool.zoneOperations.list/zone": zone +"/replicapool:v1beta2/InstanceGroupManager": instance_group_manager +"/replicapool:v1beta2/InstanceGroupManager/autoHealingPolicies": auto_healing_policies +"/replicapool:v1beta2/InstanceGroupManager/autoHealingPolicies/auto_healing_policy": auto_healing_policy +"/replicapool:v1beta2/InstanceGroupManager/baseInstanceName": base_instance_name +"/replicapool:v1beta2/InstanceGroupManager/creationTimestamp": creation_timestamp +"/replicapool:v1beta2/InstanceGroupManager/currentSize": current_size +"/replicapool:v1beta2/InstanceGroupManager/description": description +"/replicapool:v1beta2/InstanceGroupManager/fingerprint": fingerprint +"/replicapool:v1beta2/InstanceGroupManager/group": group +"/replicapool:v1beta2/InstanceGroupManager/id": id +"/replicapool:v1beta2/InstanceGroupManager/instanceTemplate": instance_template +"/replicapool:v1beta2/InstanceGroupManager/kind": kind +"/replicapool:v1beta2/InstanceGroupManager/name": name +"/replicapool:v1beta2/InstanceGroupManager/selfLink": self_link +"/replicapool:v1beta2/InstanceGroupManager/targetPools": target_pools +"/replicapool:v1beta2/InstanceGroupManager/targetPools/target_pool": target_pool +"/replicapool:v1beta2/InstanceGroupManager/targetSize": target_size +"/replicapool:v1beta2/InstanceGroupManagerList": instance_group_manager_list +"/replicapool:v1beta2/InstanceGroupManagerList/id": id +"/replicapool:v1beta2/InstanceGroupManagerList/items": items +"/replicapool:v1beta2/InstanceGroupManagerList/items/item": item +"/replicapool:v1beta2/InstanceGroupManagerList/kind": kind +"/replicapool:v1beta2/InstanceGroupManagerList/nextPageToken": next_page_token +"/replicapool:v1beta2/InstanceGroupManagerList/selfLink": self_link +"/replicapool:v1beta2/InstanceGroupManagersAbandonInstancesRequest/instances": instances +"/replicapool:v1beta2/InstanceGroupManagersAbandonInstancesRequest/instances/instance": instance +"/replicapool:v1beta2/InstanceGroupManagersDeleteInstancesRequest/instances": instances +"/replicapool:v1beta2/InstanceGroupManagersDeleteInstancesRequest/instances/instance": instance +"/replicapool:v1beta2/InstanceGroupManagersRecreateInstancesRequest/instances": instances +"/replicapool:v1beta2/InstanceGroupManagersRecreateInstancesRequest/instances/instance": instance +"/replicapool:v1beta2/InstanceGroupManagersSetInstanceTemplateRequest/instanceTemplate": instance_template +"/replicapool:v1beta2/InstanceGroupManagersSetTargetPoolsRequest/fingerprint": fingerprint +"/replicapool:v1beta2/InstanceGroupManagersSetTargetPoolsRequest/targetPools": target_pools +"/replicapool:v1beta2/InstanceGroupManagersSetTargetPoolsRequest/targetPools/target_pool": target_pool +"/replicapool:v1beta2/Operation": operation +"/replicapool:v1beta2/Operation/clientOperationId": client_operation_id +"/replicapool:v1beta2/Operation/creationTimestamp": creation_timestamp +"/replicapool:v1beta2/Operation/endTime": end_time +"/replicapool:v1beta2/Operation/error": error +"/replicapool:v1beta2/Operation/error/errors": errors +"/replicapool:v1beta2/Operation/error/errors/error": error +"/replicapool:v1beta2/Operation/error/errors/error/code": code +"/replicapool:v1beta2/Operation/error/errors/error/location": location +"/replicapool:v1beta2/Operation/error/errors/error/message": message +"/replicapool:v1beta2/Operation/httpErrorMessage": http_error_message +"/replicapool:v1beta2/Operation/httpErrorStatusCode": http_error_status_code +"/replicapool:v1beta2/Operation/id": id +"/replicapool:v1beta2/Operation/insertTime": insert_time +"/replicapool:v1beta2/Operation/kind": kind +"/replicapool:v1beta2/Operation/name": name +"/replicapool:v1beta2/Operation/operationType": operation_type +"/replicapool:v1beta2/Operation/progress": progress +"/replicapool:v1beta2/Operation/region": region +"/replicapool:v1beta2/Operation/selfLink": self_link +"/replicapool:v1beta2/Operation/startTime": start_time +"/replicapool:v1beta2/Operation/status": status +"/replicapool:v1beta2/Operation/statusMessage": status_message +"/replicapool:v1beta2/Operation/targetId": target_id +"/replicapool:v1beta2/Operation/targetLink": target_link +"/replicapool:v1beta2/Operation/user": user +"/replicapool:v1beta2/Operation/warnings": warnings +"/replicapool:v1beta2/Operation/warnings/warning": warning +"/replicapool:v1beta2/Operation/warnings/warning/code": code +"/replicapool:v1beta2/Operation/warnings/warning/data": data +"/replicapool:v1beta2/Operation/warnings/warning/data/datum": datum +"/replicapool:v1beta2/Operation/warnings/warning/data/datum/key": key +"/replicapool:v1beta2/Operation/warnings/warning/data/datum/value": value +"/replicapool:v1beta2/Operation/warnings/warning/message": message +"/replicapool:v1beta2/Operation/zone": zone +"/replicapool:v1beta2/OperationList": operation_list +"/replicapool:v1beta2/OperationList/id": id +"/replicapool:v1beta2/OperationList/items": items +"/replicapool:v1beta2/OperationList/items/item": item +"/replicapool:v1beta2/OperationList/kind": kind +"/replicapool:v1beta2/OperationList/nextPageToken": next_page_token +"/replicapool:v1beta2/OperationList/selfLink": self_link +"/replicapool:v1beta2/ReplicaPoolAutoHealingPolicy": replica_pool_auto_healing_policy +"/replicapool:v1beta2/ReplicaPoolAutoHealingPolicy/healthCheck": health_check +"/replicapoolupdater:v1beta1/fields": fields +"/replicapoolupdater:v1beta1/key": key +"/replicapoolupdater:v1beta1/quotaUser": quota_user +"/replicapoolupdater:v1beta1/userIp": user_ip +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.cancel": cancel_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.cancel/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.cancel/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.cancel/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.get": get_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.get/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.get/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.get/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.insert": insert_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.insert/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.insert/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list": list_rolling_updates +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/filter": filter +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/instanceGroupManager": instance_group_manager +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/maxResults": max_results +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/pageToken": page_token +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.list/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/filter": filter +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/maxResults": max_results +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/pageToken": page_token +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.listInstanceUpdates/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.pause": pause_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.pause/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.pause/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.pause/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.resume": resume_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.resume/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.resume/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.resume/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.rollback": rollback_rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.rollback/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.rollback/rollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/replicapoolupdater.rollingUpdates.rollback/zone": zone +"/replicapoolupdater:v1beta1/replicapoolupdater.zoneOperations.get": get_zone_operation +"/replicapoolupdater:v1beta1/replicapoolupdater.zoneOperations.get/operation": operation +"/replicapoolupdater:v1beta1/replicapoolupdater.zoneOperations.get/project": project +"/replicapoolupdater:v1beta1/replicapoolupdater.zoneOperations.get/zone": zone +"/replicapoolupdater:v1beta1/InstanceUpdate": instance_update +"/replicapoolupdater:v1beta1/InstanceUpdate/error": error +"/replicapoolupdater:v1beta1/InstanceUpdate/error/errors": errors +"/replicapoolupdater:v1beta1/InstanceUpdate/error/errors/error": error +"/replicapoolupdater:v1beta1/InstanceUpdate/error/errors/error/code": code +"/replicapoolupdater:v1beta1/InstanceUpdate/error/errors/error/location": location +"/replicapoolupdater:v1beta1/InstanceUpdate/error/errors/error/message": message +"/replicapoolupdater:v1beta1/InstanceUpdate/instance": instance +"/replicapoolupdater:v1beta1/InstanceUpdate/status": status +"/replicapoolupdater:v1beta1/InstanceUpdateList": instance_update_list +"/replicapoolupdater:v1beta1/InstanceUpdateList/items": items +"/replicapoolupdater:v1beta1/InstanceUpdateList/items/item": item +"/replicapoolupdater:v1beta1/InstanceUpdateList/kind": kind +"/replicapoolupdater:v1beta1/InstanceUpdateList/nextPageToken": next_page_token +"/replicapoolupdater:v1beta1/InstanceUpdateList/selfLink": self_link +"/replicapoolupdater:v1beta1/Operation": operation +"/replicapoolupdater:v1beta1/Operation/clientOperationId": client_operation_id +"/replicapoolupdater:v1beta1/Operation/creationTimestamp": creation_timestamp +"/replicapoolupdater:v1beta1/Operation/endTime": end_time +"/replicapoolupdater:v1beta1/Operation/error": error +"/replicapoolupdater:v1beta1/Operation/error/errors": errors +"/replicapoolupdater:v1beta1/Operation/error/errors/error": error +"/replicapoolupdater:v1beta1/Operation/error/errors/error/code": code +"/replicapoolupdater:v1beta1/Operation/error/errors/error/location": location +"/replicapoolupdater:v1beta1/Operation/error/errors/error/message": message +"/replicapoolupdater:v1beta1/Operation/httpErrorMessage": http_error_message +"/replicapoolupdater:v1beta1/Operation/httpErrorStatusCode": http_error_status_code +"/replicapoolupdater:v1beta1/Operation/id": id +"/replicapoolupdater:v1beta1/Operation/insertTime": insert_time +"/replicapoolupdater:v1beta1/Operation/kind": kind +"/replicapoolupdater:v1beta1/Operation/name": name +"/replicapoolupdater:v1beta1/Operation/operationType": operation_type +"/replicapoolupdater:v1beta1/Operation/progress": progress +"/replicapoolupdater:v1beta1/Operation/region": region +"/replicapoolupdater:v1beta1/Operation/selfLink": self_link +"/replicapoolupdater:v1beta1/Operation/startTime": start_time +"/replicapoolupdater:v1beta1/Operation/status": status +"/replicapoolupdater:v1beta1/Operation/statusMessage": status_message +"/replicapoolupdater:v1beta1/Operation/targetId": target_id +"/replicapoolupdater:v1beta1/Operation/targetLink": target_link +"/replicapoolupdater:v1beta1/Operation/user": user +"/replicapoolupdater:v1beta1/Operation/warnings": warnings +"/replicapoolupdater:v1beta1/Operation/warnings/warning": warning +"/replicapoolupdater:v1beta1/Operation/warnings/warning/code": code +"/replicapoolupdater:v1beta1/Operation/warnings/warning/data": data +"/replicapoolupdater:v1beta1/Operation/warnings/warning/data/datum": datum +"/replicapoolupdater:v1beta1/Operation/warnings/warning/data/datum/key": key +"/replicapoolupdater:v1beta1/Operation/warnings/warning/data/datum/value": value +"/replicapoolupdater:v1beta1/Operation/warnings/warning/message": message +"/replicapoolupdater:v1beta1/Operation/zone": zone +"/replicapoolupdater:v1beta1/RollingUpdate": rolling_update +"/replicapoolupdater:v1beta1/RollingUpdate/actionType": action_type +"/replicapoolupdater:v1beta1/RollingUpdate/creationTimestamp": creation_timestamp +"/replicapoolupdater:v1beta1/RollingUpdate/description": description +"/replicapoolupdater:v1beta1/RollingUpdate/error": error +"/replicapoolupdater:v1beta1/RollingUpdate/error/errors": errors +"/replicapoolupdater:v1beta1/RollingUpdate/error/errors/error": error +"/replicapoolupdater:v1beta1/RollingUpdate/error/errors/error/code": code +"/replicapoolupdater:v1beta1/RollingUpdate/error/errors/error/location": location +"/replicapoolupdater:v1beta1/RollingUpdate/error/errors/error/message": message +"/replicapoolupdater:v1beta1/RollingUpdate/id": id +"/replicapoolupdater:v1beta1/RollingUpdate/instanceGroup": instance_group +"/replicapoolupdater:v1beta1/RollingUpdate/instanceGroupManager": instance_group_manager +"/replicapoolupdater:v1beta1/RollingUpdate/instanceTemplate": instance_template +"/replicapoolupdater:v1beta1/RollingUpdate/kind": kind +"/replicapoolupdater:v1beta1/RollingUpdate/policy": policy +"/replicapoolupdater:v1beta1/RollingUpdate/policy/autoPauseAfterInstances": auto_pause_after_instances +"/replicapoolupdater:v1beta1/RollingUpdate/policy/instanceStartupTimeoutSec": instance_startup_timeout_sec +"/replicapoolupdater:v1beta1/RollingUpdate/policy/maxNumConcurrentInstances": max_num_concurrent_instances +"/replicapoolupdater:v1beta1/RollingUpdate/policy/maxNumFailedInstances": max_num_failed_instances +"/replicapoolupdater:v1beta1/RollingUpdate/policy/minInstanceUpdateTimeSec": min_instance_update_time_sec +"/replicapoolupdater:v1beta1/RollingUpdate/progress": progress +"/replicapoolupdater:v1beta1/RollingUpdate/selfLink": self_link +"/replicapoolupdater:v1beta1/RollingUpdate/status": status +"/replicapoolupdater:v1beta1/RollingUpdate/statusMessage": status_message +"/replicapoolupdater:v1beta1/RollingUpdate/user": user +"/replicapoolupdater:v1beta1/RollingUpdateList": rolling_update_list +"/replicapoolupdater:v1beta1/RollingUpdateList/items": items +"/replicapoolupdater:v1beta1/RollingUpdateList/items/item": item +"/replicapoolupdater:v1beta1/RollingUpdateList/kind": kind +"/replicapoolupdater:v1beta1/RollingUpdateList/nextPageToken": next_page_token +"/replicapoolupdater:v1beta1/RollingUpdateList/selfLink": self_link +"/reseller:v1/fields": fields +"/reseller:v1/key": key +"/reseller:v1/quotaUser": quota_user +"/reseller:v1/userIp": user_ip +"/reseller:v1/reseller.customers.get": get_customer +"/reseller:v1/reseller.customers.get/customerId": customer_id +"/reseller:v1/reseller.customers.insert": insert_customer +"/reseller:v1/reseller.customers.insert/customerAuthToken": customer_auth_token +"/reseller:v1/reseller.customers.patch": patch_customer +"/reseller:v1/reseller.customers.patch/customerId": customer_id +"/reseller:v1/reseller.customers.update": update_customer +"/reseller:v1/reseller.customers.update/customerId": customer_id +"/reseller:v1/reseller.subscriptions.activate": activate_subscription +"/reseller:v1/reseller.subscriptions.activate/customerId": customer_id +"/reseller:v1/reseller.subscriptions.activate/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.changePlan": change_plan +"/reseller:v1/reseller.subscriptions.changePlan/customerId": customer_id +"/reseller:v1/reseller.subscriptions.changePlan/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.changeRenewalSettings/customerId": customer_id +"/reseller:v1/reseller.subscriptions.changeRenewalSettings/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.changeSeats/customerId": customer_id +"/reseller:v1/reseller.subscriptions.changeSeats/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.delete": delete_subscription +"/reseller:v1/reseller.subscriptions.delete/customerId": customer_id +"/reseller:v1/reseller.subscriptions.delete/deletionType": deletion_type +"/reseller:v1/reseller.subscriptions.delete/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.get": get_subscription +"/reseller:v1/reseller.subscriptions.get/customerId": customer_id +"/reseller:v1/reseller.subscriptions.get/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.insert": insert_subscription +"/reseller:v1/reseller.subscriptions.insert/customerAuthToken": customer_auth_token +"/reseller:v1/reseller.subscriptions.insert/customerId": customer_id +"/reseller:v1/reseller.subscriptions.list": list_subscriptions +"/reseller:v1/reseller.subscriptions.list/customerAuthToken": customer_auth_token +"/reseller:v1/reseller.subscriptions.list/customerId": customer_id +"/reseller:v1/reseller.subscriptions.list/customerNamePrefix": customer_name_prefix +"/reseller:v1/reseller.subscriptions.list/maxResults": max_results +"/reseller:v1/reseller.subscriptions.list/pageToken": page_token +"/reseller:v1/reseller.subscriptions.startPaidService": start_paid_service_subscription +"/reseller:v1/reseller.subscriptions.startPaidService/customerId": customer_id +"/reseller:v1/reseller.subscriptions.startPaidService/subscriptionId": subscription_id +"/reseller:v1/reseller.subscriptions.suspend": suspend_subscription +"/reseller:v1/reseller.subscriptions.suspend/customerId": customer_id +"/reseller:v1/reseller.subscriptions.suspend/subscriptionId": subscription_id +"/reseller:v1/Address": address +"/reseller:v1/Address/addressLine1": address_line1 +"/reseller:v1/Address/addressLine2": address_line2 +"/reseller:v1/Address/addressLine3": address_line3 +"/reseller:v1/Address/contactName": contact_name +"/reseller:v1/Address/countryCode": country_code +"/reseller:v1/Address/kind": kind +"/reseller:v1/Address/locality": locality +"/reseller:v1/Address/organizationName": organization_name +"/reseller:v1/Address/postalCode": postal_code +"/reseller:v1/Address/region": region +"/reseller:v1/ChangePlanRequest/kind": kind +"/reseller:v1/ChangePlanRequest/planName": plan_name +"/reseller:v1/ChangePlanRequest/purchaseOrderId": purchase_order_id +"/reseller:v1/ChangePlanRequest/seats": seats +"/reseller:v1/Customer": customer +"/reseller:v1/Customer/alternateEmail": alternate_email +"/reseller:v1/Customer/customerDomain": customer_domain +"/reseller:v1/Customer/customerId": customer_id +"/reseller:v1/Customer/kind": kind +"/reseller:v1/Customer/phoneNumber": phone_number +"/reseller:v1/Customer/postalAddress": postal_address +"/reseller:v1/Customer/resourceUiUrl": resource_ui_url +"/reseller:v1/RenewalSettings": renewal_settings +"/reseller:v1/RenewalSettings/kind": kind +"/reseller:v1/RenewalSettings/renewalType": renewal_type +"/reseller:v1/Seats": seats +"/reseller:v1/Seats/kind": kind +"/reseller:v1/Seats/licensedNumberOfSeats": licensed_number_of_seats +"/reseller:v1/Seats/maximumNumberOfSeats": maximum_number_of_seats +"/reseller:v1/Seats/numberOfSeats": number_of_seats +"/reseller:v1/Subscription": subscription +"/reseller:v1/Subscription/billingMethod": billing_method +"/reseller:v1/Subscription/creationTime": creation_time +"/reseller:v1/Subscription/customerId": customer_id +"/reseller:v1/Subscription/kind": kind +"/reseller:v1/Subscription/plan": plan +"/reseller:v1/Subscription/plan/commitmentInterval": commitment_interval +"/reseller:v1/Subscription/plan/commitmentInterval/endTime": end_time +"/reseller:v1/Subscription/plan/commitmentInterval/startTime": start_time +"/reseller:v1/Subscription/plan/isCommitmentPlan": is_commitment_plan +"/reseller:v1/Subscription/plan/planName": plan_name +"/reseller:v1/Subscription/purchaseOrderId": purchase_order_id +"/reseller:v1/Subscription/renewalSettings": renewal_settings +"/reseller:v1/Subscription/resourceUiUrl": resource_ui_url +"/reseller:v1/Subscription/seats": seats +"/reseller:v1/Subscription/skuId": sku_id +"/reseller:v1/Subscription/status": status +"/reseller:v1/Subscription/subscriptionId": subscription_id +"/reseller:v1/Subscription/suspensionReasons": suspension_reasons +"/reseller:v1/Subscription/suspensionReasons/suspension_reason": suspension_reason +"/reseller:v1/Subscription/transferInfo": transfer_info +"/reseller:v1/Subscription/transferInfo/minimumTransferableSeats": minimum_transferable_seats +"/reseller:v1/Subscription/transferInfo/transferabilityExpirationTime": transferability_expiration_time +"/reseller:v1/Subscription/trialSettings": trial_settings +"/reseller:v1/Subscription/trialSettings/isInTrial": is_in_trial +"/reseller:v1/Subscription/trialSettings/trialEndTime": trial_end_time +"/reseller:v1/Subscriptions": subscriptions +"/reseller:v1/Subscriptions/kind": kind +"/reseller:v1/Subscriptions/nextPageToken": next_page_token +"/reseller:v1/Subscriptions/subscriptions": subscriptions +"/reseller:v1/Subscriptions/subscriptions/subscription": subscription +"/resourceviews:v1beta2/fields": fields +"/resourceviews:v1beta2/key": key +"/resourceviews:v1beta2/quotaUser": quota_user +"/resourceviews:v1beta2/userIp": user_ip +"/resourceviews:v1beta2/resourceviews.zoneOperations.get": get_zone_operation +"/resourceviews:v1beta2/resourceviews.zoneOperations.get/operation": operation +"/resourceviews:v1beta2/resourceviews.zoneOperations.get/project": project +"/resourceviews:v1beta2/resourceviews.zoneOperations.get/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneOperations.list": list_zone_operations +"/resourceviews:v1beta2/resourceviews.zoneOperations.list/filter": filter +"/resourceviews:v1beta2/resourceviews.zoneOperations.list/maxResults": max_results +"/resourceviews:v1beta2/resourceviews.zoneOperations.list/pageToken": page_token +"/resourceviews:v1beta2/resourceviews.zoneOperations.list/project": project +"/resourceviews:v1beta2/resourceviews.zoneOperations.list/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.addResources": add_resources_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.addResources/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.addResources/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.addResources/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.delete": delete_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.delete/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.delete/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.delete/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.get": get_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.get/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.get/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.get/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.getService": get_service_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.getService/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.getService/resourceName": resource_name +"/resourceviews:v1beta2/resourceviews.zoneViews.getService/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.getService/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.insert": insert_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.insert/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.insert/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.list": list_zone_views +"/resourceviews:v1beta2/resourceviews.zoneViews.list/maxResults": max_results +"/resourceviews:v1beta2/resourceviews.zoneViews.list/pageToken": page_token +"/resourceviews:v1beta2/resourceviews.zoneViews.list/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.list/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources": list_resources_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/format": format +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/listState": list_state +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/maxResults": max_results +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/pageToken": page_token +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/serviceName": service_name +"/resourceviews:v1beta2/resourceviews.zoneViews.listResources/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.removeResources": remove_resources_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.removeResources/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.removeResources/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.removeResources/zone": zone +"/resourceviews:v1beta2/resourceviews.zoneViews.setService": set_service_zone_view +"/resourceviews:v1beta2/resourceviews.zoneViews.setService/project": project +"/resourceviews:v1beta2/resourceviews.zoneViews.setService/resourceView": resource_view +"/resourceviews:v1beta2/resourceviews.zoneViews.setService/zone": zone +"/resourceviews:v1beta2/Label": label +"/resourceviews:v1beta2/Label/key": key +"/resourceviews:v1beta2/Label/value": value +"/resourceviews:v1beta2/ListResourceResponseItem": list_resource_response_item +"/resourceviews:v1beta2/ListResourceResponseItem/endpoints": endpoints +"/resourceviews:v1beta2/ListResourceResponseItem/endpoints/endpoint": endpoint +"/resourceviews:v1beta2/ListResourceResponseItem/endpoints/endpoint/endpoint": endpoint +"/resourceviews:v1beta2/ListResourceResponseItem/resource": resource +"/resourceviews:v1beta2/Operation": operation +"/resourceviews:v1beta2/Operation/clientOperationId": client_operation_id +"/resourceviews:v1beta2/Operation/creationTimestamp": creation_timestamp +"/resourceviews:v1beta2/Operation/endTime": end_time +"/resourceviews:v1beta2/Operation/error": error +"/resourceviews:v1beta2/Operation/error/errors": errors +"/resourceviews:v1beta2/Operation/error/errors/error": error +"/resourceviews:v1beta2/Operation/error/errors/error/code": code +"/resourceviews:v1beta2/Operation/error/errors/error/location": location +"/resourceviews:v1beta2/Operation/error/errors/error/message": message +"/resourceviews:v1beta2/Operation/httpErrorMessage": http_error_message +"/resourceviews:v1beta2/Operation/httpErrorStatusCode": http_error_status_code +"/resourceviews:v1beta2/Operation/id": id +"/resourceviews:v1beta2/Operation/insertTime": insert_time +"/resourceviews:v1beta2/Operation/kind": kind +"/resourceviews:v1beta2/Operation/name": name +"/resourceviews:v1beta2/Operation/operationType": operation_type +"/resourceviews:v1beta2/Operation/progress": progress +"/resourceviews:v1beta2/Operation/region": region +"/resourceviews:v1beta2/Operation/selfLink": self_link +"/resourceviews:v1beta2/Operation/startTime": start_time +"/resourceviews:v1beta2/Operation/status": status +"/resourceviews:v1beta2/Operation/statusMessage": status_message +"/resourceviews:v1beta2/Operation/targetId": target_id +"/resourceviews:v1beta2/Operation/targetLink": target_link +"/resourceviews:v1beta2/Operation/user": user +"/resourceviews:v1beta2/Operation/warnings": warnings +"/resourceviews:v1beta2/Operation/warnings/warning": warning +"/resourceviews:v1beta2/Operation/warnings/warning/code": code +"/resourceviews:v1beta2/Operation/warnings/warning/data": data +"/resourceviews:v1beta2/Operation/warnings/warning/data/datum": datum +"/resourceviews:v1beta2/Operation/warnings/warning/data/datum/key": key +"/resourceviews:v1beta2/Operation/warnings/warning/data/datum/value": value +"/resourceviews:v1beta2/Operation/warnings/warning/message": message +"/resourceviews:v1beta2/Operation/zone": zone +"/resourceviews:v1beta2/OperationList": operation_list +"/resourceviews:v1beta2/OperationList/id": id +"/resourceviews:v1beta2/OperationList/items": items +"/resourceviews:v1beta2/OperationList/items/item": item +"/resourceviews:v1beta2/OperationList/kind": kind +"/resourceviews:v1beta2/OperationList/nextPageToken": next_page_token +"/resourceviews:v1beta2/OperationList/selfLink": self_link +"/resourceviews:v1beta2/ResourceView": resource_view +"/resourceviews:v1beta2/ResourceView/creationTimestamp": creation_timestamp +"/resourceviews:v1beta2/ResourceView/description": description +"/resourceviews:v1beta2/ResourceView/endpoints": endpoints +"/resourceviews:v1beta2/ResourceView/endpoints/endpoint": endpoint +"/resourceviews:v1beta2/ResourceView/fingerprint": fingerprint +"/resourceviews:v1beta2/ResourceView/id": id +"/resourceviews:v1beta2/ResourceView/kind": kind +"/resourceviews:v1beta2/ResourceView/labels": labels +"/resourceviews:v1beta2/ResourceView/labels/label": label +"/resourceviews:v1beta2/ResourceView/name": name +"/resourceviews:v1beta2/ResourceView/network": network +"/resourceviews:v1beta2/ResourceView/resources": resources +"/resourceviews:v1beta2/ResourceView/resources/resource": resource +"/resourceviews:v1beta2/ResourceView/selfLink": self_link +"/resourceviews:v1beta2/ResourceView/size": size +"/resourceviews:v1beta2/ServiceEndpoint": service_endpoint +"/resourceviews:v1beta2/ServiceEndpoint/name": name +"/resourceviews:v1beta2/ServiceEndpoint/port": port +"/resourceviews:v1beta2/ZoneViewsAddResourcesRequest/resources": resources +"/resourceviews:v1beta2/ZoneViewsAddResourcesRequest/resources/resource": resource +"/resourceviews:v1beta2/ZoneViewsGetServiceResponse/endpoints": endpoints +"/resourceviews:v1beta2/ZoneViewsGetServiceResponse/endpoints/endpoint": endpoint +"/resourceviews:v1beta2/ZoneViewsGetServiceResponse/fingerprint": fingerprint +"/resourceviews:v1beta2/ZoneViewsList": zone_views_list +"/resourceviews:v1beta2/ZoneViewsList/items": items +"/resourceviews:v1beta2/ZoneViewsList/items/item": item +"/resourceviews:v1beta2/ZoneViewsList/kind": kind +"/resourceviews:v1beta2/ZoneViewsList/nextPageToken": next_page_token +"/resourceviews:v1beta2/ZoneViewsList/selfLink": self_link +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse/items": items +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse/items/item": item +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse/network": network +"/resourceviews:v1beta2/ZoneViewsListResourcesResponse/nextPageToken": next_page_token +"/resourceviews:v1beta2/ZoneViewsRemoveResourcesRequest/resources": resources +"/resourceviews:v1beta2/ZoneViewsRemoveResourcesRequest/resources/resource": resource +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest/endpoints": endpoints +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest/endpoints/endpoint": endpoint +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest/fingerprint": fingerprint +"/resourceviews:v1beta2/ZoneViewsSetServiceRequest/resourceName": resource_name +"/siteVerification:v1/fields": fields +"/siteVerification:v1/key": key +"/siteVerification:v1/quotaUser": quota_user +"/siteVerification:v1/userIp": user_ip +"/siteVerification:v1/siteVerification.webResource.delete": delete_web_resource +"/siteVerification:v1/siteVerification.webResource.delete/id": id +"/siteVerification:v1/siteVerification.webResource.get": get_web_resource +"/siteVerification:v1/siteVerification.webResource.get/id": id +"/siteVerification:v1/siteVerification.webResource.getToken": get_token_web_resource +"/siteVerification:v1/siteVerification.webResource.insert": insert_web_resource +"/siteVerification:v1/siteVerification.webResource.insert/verificationMethod": verification_method +"/siteVerification:v1/siteVerification.webResource.list": list_web_resources +"/siteVerification:v1/siteVerification.webResource.patch": patch_web_resource +"/siteVerification:v1/siteVerification.webResource.patch/id": id +"/siteVerification:v1/siteVerification.webResource.update": update_web_resource +"/siteVerification:v1/siteVerification.webResource.update/id": id +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest/site": site +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest/site/identifier": identifier +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest/site/type": type +"/siteVerification:v1/SiteVerificationWebResourceGettokenRequest/verificationMethod": verification_method +"/siteVerification:v1/SiteVerificationWebResourceGettokenResponse/token": token +"/siteVerification:v1/SiteVerificationWebResourceListResponse/items": items +"/siteVerification:v1/SiteVerificationWebResourceListResponse/items/item": item +"/siteVerification:v1/SiteVerificationWebResourceResource": site_verification_web_resource_resource +"/siteVerification:v1/SiteVerificationWebResourceResource/id": id +"/siteVerification:v1/SiteVerificationWebResourceResource/owners": owners +"/siteVerification:v1/SiteVerificationWebResourceResource/owners/owner": owner +"/siteVerification:v1/SiteVerificationWebResourceResource/site": site +"/siteVerification:v1/SiteVerificationWebResourceResource/site/identifier": identifier +"/siteVerification:v1/SiteVerificationWebResourceResource/site/type": type +"/sqladmin:v1beta4/fields": fields +"/sqladmin:v1beta4/key": key +"/sqladmin:v1beta4/quotaUser": quota_user +"/sqladmin:v1beta4/userIp": user_ip +"/sqladmin:v1beta4/sql.backupRuns.get": get_backup_run +"/sqladmin:v1beta4/sql.backupRuns.get/id": id +"/sqladmin:v1beta4/sql.backupRuns.get/instance": instance +"/sqladmin:v1beta4/sql.backupRuns.get/project": project +"/sqladmin:v1beta4/sql.backupRuns.list": list_backup_runs +"/sqladmin:v1beta4/sql.backupRuns.list/instance": instance +"/sqladmin:v1beta4/sql.backupRuns.list/maxResults": max_results +"/sqladmin:v1beta4/sql.backupRuns.list/pageToken": page_token +"/sqladmin:v1beta4/sql.backupRuns.list/project": project +"/sqladmin:v1beta4/sql.databases.delete": delete_database +"/sqladmin:v1beta4/sql.databases.delete/database": database +"/sqladmin:v1beta4/sql.databases.delete/instance": instance +"/sqladmin:v1beta4/sql.databases.delete/project": project +"/sqladmin:v1beta4/sql.databases.get": get_database +"/sqladmin:v1beta4/sql.databases.get/database": database +"/sqladmin:v1beta4/sql.databases.get/instance": instance +"/sqladmin:v1beta4/sql.databases.get/project": project +"/sqladmin:v1beta4/sql.databases.insert": insert_database +"/sqladmin:v1beta4/sql.databases.insert/instance": instance +"/sqladmin:v1beta4/sql.databases.insert/project": project +"/sqladmin:v1beta4/sql.databases.list": list_databases +"/sqladmin:v1beta4/sql.databases.list/instance": instance +"/sqladmin:v1beta4/sql.databases.list/project": project +"/sqladmin:v1beta4/sql.databases.patch": patch_database +"/sqladmin:v1beta4/sql.databases.patch/database": database +"/sqladmin:v1beta4/sql.databases.patch/instance": instance +"/sqladmin:v1beta4/sql.databases.patch/project": project +"/sqladmin:v1beta4/sql.databases.update": update_database +"/sqladmin:v1beta4/sql.databases.update/database": database +"/sqladmin:v1beta4/sql.databases.update/instance": instance +"/sqladmin:v1beta4/sql.databases.update/project": project +"/sqladmin:v1beta4/sql.flags.list": list_flags +"/sqladmin:v1beta4/sql.instances.clone": clone_instance +"/sqladmin:v1beta4/sql.instances.clone/instance": instance +"/sqladmin:v1beta4/sql.instances.clone/project": project +"/sqladmin:v1beta4/sql.instances.delete": delete_instance +"/sqladmin:v1beta4/sql.instances.delete/instance": instance +"/sqladmin:v1beta4/sql.instances.delete/project": project +"/sqladmin:v1beta4/sql.instances.export": export_instance +"/sqladmin:v1beta4/sql.instances.export/instance": instance +"/sqladmin:v1beta4/sql.instances.export/project": project +"/sqladmin:v1beta4/sql.instances.get": get_instance +"/sqladmin:v1beta4/sql.instances.get/instance": instance +"/sqladmin:v1beta4/sql.instances.get/project": project +"/sqladmin:v1beta4/sql.instances.import": import_instance +"/sqladmin:v1beta4/sql.instances.import/instance": instance +"/sqladmin:v1beta4/sql.instances.import/project": project +"/sqladmin:v1beta4/sql.instances.insert": insert_instance +"/sqladmin:v1beta4/sql.instances.insert/project": project +"/sqladmin:v1beta4/sql.instances.list": list_instances +"/sqladmin:v1beta4/sql.instances.list/maxResults": max_results +"/sqladmin:v1beta4/sql.instances.list/pageToken": page_token +"/sqladmin:v1beta4/sql.instances.list/project": project +"/sqladmin:v1beta4/sql.instances.patch": patch_instance +"/sqladmin:v1beta4/sql.instances.patch/instance": instance +"/sqladmin:v1beta4/sql.instances.patch/project": project +"/sqladmin:v1beta4/sql.instances.promoteReplica": promote_replica_instance +"/sqladmin:v1beta4/sql.instances.promoteReplica/instance": instance +"/sqladmin:v1beta4/sql.instances.promoteReplica/project": project +"/sqladmin:v1beta4/sql.instances.resetSslConfig": reset_ssl_config_instance +"/sqladmin:v1beta4/sql.instances.resetSslConfig/instance": instance +"/sqladmin:v1beta4/sql.instances.resetSslConfig/project": project +"/sqladmin:v1beta4/sql.instances.restart": restart_instance +"/sqladmin:v1beta4/sql.instances.restart/instance": instance +"/sqladmin:v1beta4/sql.instances.restart/project": project +"/sqladmin:v1beta4/sql.instances.restoreBackup": restore_backup_instance +"/sqladmin:v1beta4/sql.instances.restoreBackup/instance": instance +"/sqladmin:v1beta4/sql.instances.restoreBackup/project": project +"/sqladmin:v1beta4/sql.instances.startReplica": start_replica_instance +"/sqladmin:v1beta4/sql.instances.startReplica/instance": instance +"/sqladmin:v1beta4/sql.instances.startReplica/project": project +"/sqladmin:v1beta4/sql.instances.stopReplica": stop_replica_instance +"/sqladmin:v1beta4/sql.instances.stopReplica/instance": instance +"/sqladmin:v1beta4/sql.instances.stopReplica/project": project +"/sqladmin:v1beta4/sql.instances.update": update_instance +"/sqladmin:v1beta4/sql.instances.update/instance": instance +"/sqladmin:v1beta4/sql.instances.update/project": project +"/sqladmin:v1beta4/sql.operations.get": get_operation +"/sqladmin:v1beta4/sql.operations.get/operation": operation +"/sqladmin:v1beta4/sql.operations.get/project": project +"/sqladmin:v1beta4/sql.operations.list": list_operations +"/sqladmin:v1beta4/sql.operations.list/instance": instance +"/sqladmin:v1beta4/sql.operations.list/maxResults": max_results +"/sqladmin:v1beta4/sql.operations.list/pageToken": page_token +"/sqladmin:v1beta4/sql.operations.list/project": project +"/sqladmin:v1beta4/sql.sslCerts.delete": delete_ssl_cert +"/sqladmin:v1beta4/sql.sslCerts.delete/instance": instance +"/sqladmin:v1beta4/sql.sslCerts.delete/project": project +"/sqladmin:v1beta4/sql.sslCerts.delete/sha1Fingerprint": sha1_fingerprint +"/sqladmin:v1beta4/sql.sslCerts.get": get_ssl_cert +"/sqladmin:v1beta4/sql.sslCerts.get/instance": instance +"/sqladmin:v1beta4/sql.sslCerts.get/project": project +"/sqladmin:v1beta4/sql.sslCerts.get/sha1Fingerprint": sha1_fingerprint +"/sqladmin:v1beta4/sql.sslCerts.insert": insert_ssl_cert +"/sqladmin:v1beta4/sql.sslCerts.insert/instance": instance +"/sqladmin:v1beta4/sql.sslCerts.insert/project": project +"/sqladmin:v1beta4/sql.sslCerts.list": list_ssl_certs +"/sqladmin:v1beta4/sql.sslCerts.list/instance": instance +"/sqladmin:v1beta4/sql.sslCerts.list/project": project +"/sqladmin:v1beta4/sql.tiers.list": list_tiers +"/sqladmin:v1beta4/sql.tiers.list/project": project +"/sqladmin:v1beta4/sql.users.delete": delete_user +"/sqladmin:v1beta4/sql.users.delete/host": host +"/sqladmin:v1beta4/sql.users.delete/instance": instance +"/sqladmin:v1beta4/sql.users.delete/name": name +"/sqladmin:v1beta4/sql.users.delete/project": project +"/sqladmin:v1beta4/sql.users.insert": insert_user +"/sqladmin:v1beta4/sql.users.insert/instance": instance +"/sqladmin:v1beta4/sql.users.insert/project": project +"/sqladmin:v1beta4/sql.users.list": list_users +"/sqladmin:v1beta4/sql.users.list/instance": instance +"/sqladmin:v1beta4/sql.users.list/project": project +"/sqladmin:v1beta4/sql.users.update": update_user +"/sqladmin:v1beta4/sql.users.update/host": host +"/sqladmin:v1beta4/sql.users.update/instance": instance +"/sqladmin:v1beta4/sql.users.update/name": name +"/sqladmin:v1beta4/sql.users.update/project": project +"/sqladmin:v1beta4/AclEntry": acl_entry +"/sqladmin:v1beta4/AclEntry/expirationTime": expiration_time +"/sqladmin:v1beta4/AclEntry/kind": kind +"/sqladmin:v1beta4/AclEntry/name": name +"/sqladmin:v1beta4/AclEntry/value": value +"/sqladmin:v1beta4/BackupConfiguration": backup_configuration +"/sqladmin:v1beta4/BackupConfiguration/binaryLogEnabled": binary_log_enabled +"/sqladmin:v1beta4/BackupConfiguration/enabled": enabled +"/sqladmin:v1beta4/BackupConfiguration/kind": kind +"/sqladmin:v1beta4/BackupConfiguration/startTime": start_time +"/sqladmin:v1beta4/BackupRun": backup_run +"/sqladmin:v1beta4/BackupRun/endTime": end_time +"/sqladmin:v1beta4/BackupRun/enqueuedTime": enqueued_time +"/sqladmin:v1beta4/BackupRun/error": error +"/sqladmin:v1beta4/BackupRun/id": id +"/sqladmin:v1beta4/BackupRun/instance": instance +"/sqladmin:v1beta4/BackupRun/kind": kind +"/sqladmin:v1beta4/BackupRun/selfLink": self_link +"/sqladmin:v1beta4/BackupRun/startTime": start_time +"/sqladmin:v1beta4/BackupRun/status": status +"/sqladmin:v1beta4/BackupRun/windowStartTime": window_start_time +"/sqladmin:v1beta4/BackupRunsListResponse/items": items +"/sqladmin:v1beta4/BackupRunsListResponse/items/item": item +"/sqladmin:v1beta4/BackupRunsListResponse/kind": kind +"/sqladmin:v1beta4/BackupRunsListResponse/nextPageToken": next_page_token +"/sqladmin:v1beta4/BinLogCoordinates": bin_log_coordinates +"/sqladmin:v1beta4/BinLogCoordinates/binLogFileName": bin_log_file_name +"/sqladmin:v1beta4/BinLogCoordinates/binLogPosition": bin_log_position +"/sqladmin:v1beta4/BinLogCoordinates/kind": kind +"/sqladmin:v1beta4/CloneContext": clone_context +"/sqladmin:v1beta4/CloneContext/binLogCoordinates": bin_log_coordinates +"/sqladmin:v1beta4/CloneContext/destinationInstanceName": destination_instance_name +"/sqladmin:v1beta4/CloneContext/kind": kind +"/sqladmin:v1beta4/Database": database +"/sqladmin:v1beta4/Database/charset": charset +"/sqladmin:v1beta4/Database/collation": collation +"/sqladmin:v1beta4/Database/etag": etag +"/sqladmin:v1beta4/Database/instance": instance +"/sqladmin:v1beta4/Database/kind": kind +"/sqladmin:v1beta4/Database/name": name +"/sqladmin:v1beta4/Database/project": project +"/sqladmin:v1beta4/Database/selfLink": self_link +"/sqladmin:v1beta4/DatabaseFlags": database_flags +"/sqladmin:v1beta4/DatabaseFlags/name": name +"/sqladmin:v1beta4/DatabaseFlags/value": value +"/sqladmin:v1beta4/DatabaseInstance": database_instance +"/sqladmin:v1beta4/DatabaseInstance/currentDiskSize": current_disk_size +"/sqladmin:v1beta4/DatabaseInstance/databaseVersion": database_version +"/sqladmin:v1beta4/DatabaseInstance/etag": etag +"/sqladmin:v1beta4/DatabaseInstance/instanceType": instance_type +"/sqladmin:v1beta4/DatabaseInstance/ipAddresses": ip_addresses +"/sqladmin:v1beta4/DatabaseInstance/ipAddresses/ip_address": ip_address +"/sqladmin:v1beta4/DatabaseInstance/ipv6Address": ipv6_address +"/sqladmin:v1beta4/DatabaseInstance/kind": kind +"/sqladmin:v1beta4/DatabaseInstance/masterInstanceName": master_instance_name +"/sqladmin:v1beta4/DatabaseInstance/maxDiskSize": max_disk_size +"/sqladmin:v1beta4/DatabaseInstance/name": name +"/sqladmin:v1beta4/DatabaseInstance/onPremisesConfiguration": on_premises_configuration +"/sqladmin:v1beta4/DatabaseInstance/project": project +"/sqladmin:v1beta4/DatabaseInstance/region": region +"/sqladmin:v1beta4/DatabaseInstance/replicaConfiguration": replica_configuration +"/sqladmin:v1beta4/DatabaseInstance/replicaNames": replica_names +"/sqladmin:v1beta4/DatabaseInstance/replicaNames/replica_name": replica_name +"/sqladmin:v1beta4/DatabaseInstance/selfLink": self_link +"/sqladmin:v1beta4/DatabaseInstance/serverCaCert": server_ca_cert +"/sqladmin:v1beta4/DatabaseInstance/serviceAccountEmailAddress": service_account_email_address +"/sqladmin:v1beta4/DatabaseInstance/settings": settings +"/sqladmin:v1beta4/DatabaseInstance/state": state +"/sqladmin:v1beta4/DatabasesListResponse/items": items +"/sqladmin:v1beta4/DatabasesListResponse/items/item": item +"/sqladmin:v1beta4/DatabasesListResponse/kind": kind +"/sqladmin:v1beta4/ExportContext": export_context +"/sqladmin:v1beta4/ExportContext/csvExportOptions": csv_export_options +"/sqladmin:v1beta4/ExportContext/csvExportOptions/selectQuery": select_query +"/sqladmin:v1beta4/ExportContext/databases": databases +"/sqladmin:v1beta4/ExportContext/databases/database": database +"/sqladmin:v1beta4/ExportContext/fileType": file_type +"/sqladmin:v1beta4/ExportContext/kind": kind +"/sqladmin:v1beta4/ExportContext/sqlExportOptions": sql_export_options +"/sqladmin:v1beta4/ExportContext/sqlExportOptions/tables": tables +"/sqladmin:v1beta4/ExportContext/sqlExportOptions/tables/table": table +"/sqladmin:v1beta4/ExportContext/uri": uri +"/sqladmin:v1beta4/Flag": flag +"/sqladmin:v1beta4/Flag/allowedStringValues": allowed_string_values +"/sqladmin:v1beta4/Flag/allowedStringValues/allowed_string_value": allowed_string_value +"/sqladmin:v1beta4/Flag/appliesTo": applies_to +"/sqladmin:v1beta4/Flag/appliesTo/applies_to": applies_to +"/sqladmin:v1beta4/Flag/kind": kind +"/sqladmin:v1beta4/Flag/maxValue": max_value +"/sqladmin:v1beta4/Flag/minValue": min_value +"/sqladmin:v1beta4/Flag/name": name +"/sqladmin:v1beta4/Flag/type": type +"/sqladmin:v1beta4/FlagsListResponse/items": items +"/sqladmin:v1beta4/FlagsListResponse/items/item": item +"/sqladmin:v1beta4/FlagsListResponse/kind": kind +"/sqladmin:v1beta4/ImportContext": import_context +"/sqladmin:v1beta4/ImportContext/csvImportOptions": csv_import_options +"/sqladmin:v1beta4/ImportContext/csvImportOptions/columns": columns +"/sqladmin:v1beta4/ImportContext/csvImportOptions/columns/column": column +"/sqladmin:v1beta4/ImportContext/csvImportOptions/table": table +"/sqladmin:v1beta4/ImportContext/database": database +"/sqladmin:v1beta4/ImportContext/fileType": file_type +"/sqladmin:v1beta4/ImportContext/kind": kind +"/sqladmin:v1beta4/ImportContext/uri": uri +"/sqladmin:v1beta4/InstancesCloneRequest/cloneContext": clone_context +"/sqladmin:v1beta4/InstancesExportRequest/exportContext": export_context +"/sqladmin:v1beta4/InstancesImportRequest/importContext": import_context +"/sqladmin:v1beta4/InstancesListResponse/items": items +"/sqladmin:v1beta4/InstancesListResponse/items/item": item +"/sqladmin:v1beta4/InstancesListResponse/kind": kind +"/sqladmin:v1beta4/InstancesListResponse/nextPageToken": next_page_token +"/sqladmin:v1beta4/InstancesRestoreBackupRequest/restoreBackupContext": restore_backup_context +"/sqladmin:v1beta4/IpConfiguration": ip_configuration +"/sqladmin:v1beta4/IpConfiguration/authorizedNetworks": authorized_networks +"/sqladmin:v1beta4/IpConfiguration/authorizedNetworks/authorized_network": authorized_network +"/sqladmin:v1beta4/IpConfiguration/ipv4Enabled": ipv4_enabled +"/sqladmin:v1beta4/IpConfiguration/requireSsl": require_ssl +"/sqladmin:v1beta4/IpMapping": ip_mapping +"/sqladmin:v1beta4/IpMapping/ipAddress": ip_address +"/sqladmin:v1beta4/IpMapping/timeToRetire": time_to_retire +"/sqladmin:v1beta4/LocationPreference": location_preference +"/sqladmin:v1beta4/LocationPreference/followGaeApplication": follow_gae_application +"/sqladmin:v1beta4/LocationPreference/kind": kind +"/sqladmin:v1beta4/LocationPreference/zone": zone +"/sqladmin:v1beta4/MySqlReplicaConfiguration": my_sql_replica_configuration +"/sqladmin:v1beta4/MySqlReplicaConfiguration/caCertificate": ca_certificate +"/sqladmin:v1beta4/MySqlReplicaConfiguration/clientCertificate": client_certificate +"/sqladmin:v1beta4/MySqlReplicaConfiguration/clientKey": client_key +"/sqladmin:v1beta4/MySqlReplicaConfiguration/connectRetryInterval": connect_retry_interval +"/sqladmin:v1beta4/MySqlReplicaConfiguration/dumpFilePath": dump_file_path +"/sqladmin:v1beta4/MySqlReplicaConfiguration/kind": kind +"/sqladmin:v1beta4/MySqlReplicaConfiguration/masterHeartbeatPeriod": master_heartbeat_period +"/sqladmin:v1beta4/MySqlReplicaConfiguration/password": password +"/sqladmin:v1beta4/MySqlReplicaConfiguration/sslCipher": ssl_cipher +"/sqladmin:v1beta4/MySqlReplicaConfiguration/username": username +"/sqladmin:v1beta4/MySqlReplicaConfiguration/verifyServerCertificate": verify_server_certificate +"/sqladmin:v1beta4/OnPremisesConfiguration": on_premises_configuration +"/sqladmin:v1beta4/OnPremisesConfiguration/hostPort": host_port +"/sqladmin:v1beta4/OnPremisesConfiguration/kind": kind +"/sqladmin:v1beta4/Operation": operation +"/sqladmin:v1beta4/Operation/endTime": end_time +"/sqladmin:v1beta4/Operation/error": error +"/sqladmin:v1beta4/Operation/exportContext": export_context +"/sqladmin:v1beta4/Operation/importContext": import_context +"/sqladmin:v1beta4/Operation/insertTime": insert_time +"/sqladmin:v1beta4/Operation/kind": kind +"/sqladmin:v1beta4/Operation/name": name +"/sqladmin:v1beta4/Operation/operationType": operation_type +"/sqladmin:v1beta4/Operation/selfLink": self_link +"/sqladmin:v1beta4/Operation/startTime": start_time +"/sqladmin:v1beta4/Operation/status": status +"/sqladmin:v1beta4/Operation/targetId": target_id +"/sqladmin:v1beta4/Operation/targetLink": target_link +"/sqladmin:v1beta4/Operation/targetProject": target_project +"/sqladmin:v1beta4/Operation/user": user +"/sqladmin:v1beta4/OperationError": operation_error +"/sqladmin:v1beta4/OperationError/code": code +"/sqladmin:v1beta4/OperationError/kind": kind +"/sqladmin:v1beta4/OperationError/message": message +"/sqladmin:v1beta4/OperationErrors": operation_errors +"/sqladmin:v1beta4/OperationErrors/errors": errors +"/sqladmin:v1beta4/OperationErrors/errors/error": error +"/sqladmin:v1beta4/OperationErrors/kind": kind +"/sqladmin:v1beta4/OperationsListResponse/items": items +"/sqladmin:v1beta4/OperationsListResponse/items/item": item +"/sqladmin:v1beta4/OperationsListResponse/kind": kind +"/sqladmin:v1beta4/OperationsListResponse/nextPageToken": next_page_token +"/sqladmin:v1beta4/ReplicaConfiguration": replica_configuration +"/sqladmin:v1beta4/ReplicaConfiguration/kind": kind +"/sqladmin:v1beta4/ReplicaConfiguration/mysqlReplicaConfiguration": mysql_replica_configuration +"/sqladmin:v1beta4/RestoreBackupContext": restore_backup_context +"/sqladmin:v1beta4/RestoreBackupContext/backupRunId": backup_run_id +"/sqladmin:v1beta4/RestoreBackupContext/instanceId": instance_id +"/sqladmin:v1beta4/RestoreBackupContext/kind": kind +"/sqladmin:v1beta4/Settings": settings +"/sqladmin:v1beta4/Settings/activationPolicy": activation_policy +"/sqladmin:v1beta4/Settings/authorizedGaeApplications": authorized_gae_applications +"/sqladmin:v1beta4/Settings/authorizedGaeApplications/authorized_gae_application": authorized_gae_application +"/sqladmin:v1beta4/Settings/backupConfiguration": backup_configuration +"/sqladmin:v1beta4/Settings/crashSafeReplicationEnabled": crash_safe_replication_enabled +"/sqladmin:v1beta4/Settings/databaseFlags": database_flags +"/sqladmin:v1beta4/Settings/databaseFlags/database_flag": database_flag +"/sqladmin:v1beta4/Settings/databaseReplicationEnabled": database_replication_enabled +"/sqladmin:v1beta4/Settings/ipConfiguration": ip_configuration +"/sqladmin:v1beta4/Settings/kind": kind +"/sqladmin:v1beta4/Settings/locationPreference": location_preference +"/sqladmin:v1beta4/Settings/pricingPlan": pricing_plan +"/sqladmin:v1beta4/Settings/replicationType": replication_type +"/sqladmin:v1beta4/Settings/settingsVersion": settings_version +"/sqladmin:v1beta4/Settings/tier": tier +"/sqladmin:v1beta4/SslCert": ssl_cert +"/sqladmin:v1beta4/SslCert/cert": cert +"/sqladmin:v1beta4/SslCert/certSerialNumber": cert_serial_number +"/sqladmin:v1beta4/SslCert/commonName": common_name +"/sqladmin:v1beta4/SslCert/createTime": create_time +"/sqladmin:v1beta4/SslCert/expirationTime": expiration_time +"/sqladmin:v1beta4/SslCert/instance": instance +"/sqladmin:v1beta4/SslCert/kind": kind +"/sqladmin:v1beta4/SslCert/selfLink": self_link +"/sqladmin:v1beta4/SslCert/sha1Fingerprint": sha1_fingerprint +"/sqladmin:v1beta4/SslCertDetail": ssl_cert_detail +"/sqladmin:v1beta4/SslCertDetail/certInfo": cert_info +"/sqladmin:v1beta4/SslCertDetail/certPrivateKey": cert_private_key +"/sqladmin:v1beta4/SslCertsInsertRequest/commonName": common_name +"/sqladmin:v1beta4/SslCertsInsertResponse/clientCert": client_cert +"/sqladmin:v1beta4/SslCertsInsertResponse/kind": kind +"/sqladmin:v1beta4/SslCertsInsertResponse/serverCaCert": server_ca_cert +"/sqladmin:v1beta4/SslCertsListResponse/items": items +"/sqladmin:v1beta4/SslCertsListResponse/items/item": item +"/sqladmin:v1beta4/SslCertsListResponse/kind": kind +"/sqladmin:v1beta4/Tier": tier +"/sqladmin:v1beta4/Tier/DiskQuota": disk_quota +"/sqladmin:v1beta4/Tier/RAM": ram +"/sqladmin:v1beta4/Tier/kind": kind +"/sqladmin:v1beta4/Tier/region": region +"/sqladmin:v1beta4/Tier/region/region": region +"/sqladmin:v1beta4/Tier/tier": tier +"/sqladmin:v1beta4/TiersListResponse/items": items +"/sqladmin:v1beta4/TiersListResponse/items/item": item +"/sqladmin:v1beta4/TiersListResponse/kind": kind +"/sqladmin:v1beta4/User": user +"/sqladmin:v1beta4/User/etag": etag +"/sqladmin:v1beta4/User/host": host +"/sqladmin:v1beta4/User/instance": instance +"/sqladmin:v1beta4/User/kind": kind +"/sqladmin:v1beta4/User/name": name +"/sqladmin:v1beta4/User/password": password +"/sqladmin:v1beta4/User/project": project +"/sqladmin:v1beta4/UsersListResponse/items": items +"/sqladmin:v1beta4/UsersListResponse/items/item": item +"/sqladmin:v1beta4/UsersListResponse/kind": kind +"/sqladmin:v1beta4/UsersListResponse/nextPageToken": next_page_token +"/storage:v1/fields": fields +"/storage:v1/key": key +"/storage:v1/quotaUser": quota_user +"/storage:v1/userIp": user_ip +"/storage:v1/storage.bucketAccessControls.delete": delete_bucket_access_control +"/storage:v1/storage.bucketAccessControls.delete/bucket": bucket +"/storage:v1/storage.bucketAccessControls.delete/entity": entity +"/storage:v1/storage.bucketAccessControls.get": get_bucket_access_control +"/storage:v1/storage.bucketAccessControls.get/bucket": bucket +"/storage:v1/storage.bucketAccessControls.get/entity": entity +"/storage:v1/storage.bucketAccessControls.insert": insert_bucket_access_control +"/storage:v1/storage.bucketAccessControls.insert/bucket": bucket +"/storage:v1/storage.bucketAccessControls.list": list_bucket_access_controls +"/storage:v1/storage.bucketAccessControls.list/bucket": bucket +"/storage:v1/storage.bucketAccessControls.patch": patch_bucket_access_control +"/storage:v1/storage.bucketAccessControls.patch/bucket": bucket +"/storage:v1/storage.bucketAccessControls.patch/entity": entity +"/storage:v1/storage.bucketAccessControls.update": update_bucket_access_control +"/storage:v1/storage.bucketAccessControls.update/bucket": bucket +"/storage:v1/storage.bucketAccessControls.update/entity": entity +"/storage:v1/storage.buckets.delete": delete_bucket +"/storage:v1/storage.buckets.delete/bucket": bucket +"/storage:v1/storage.buckets.delete/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.buckets.delete/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.buckets.get": get_bucket +"/storage:v1/storage.buckets.get/bucket": bucket +"/storage:v1/storage.buckets.get/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.buckets.get/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.buckets.get/projection": projection +"/storage:v1/storage.buckets.insert": insert_bucket +"/storage:v1/storage.buckets.insert/predefinedAcl": predefined_acl +"/storage:v1/storage.buckets.insert/predefinedDefaultObjectAcl": predefined_default_object_acl +"/storage:v1/storage.buckets.insert/project": project +"/storage:v1/storage.buckets.insert/projection": projection +"/storage:v1/storage.buckets.list": list_buckets +"/storage:v1/storage.buckets.list/maxResults": max_results +"/storage:v1/storage.buckets.list/pageToken": page_token +"/storage:v1/storage.buckets.list/prefix": prefix +"/storage:v1/storage.buckets.list/project": project +"/storage:v1/storage.buckets.list/projection": projection +"/storage:v1/storage.buckets.patch": patch_bucket +"/storage:v1/storage.buckets.patch/bucket": bucket +"/storage:v1/storage.buckets.patch/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.buckets.patch/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.buckets.patch/predefinedAcl": predefined_acl +"/storage:v1/storage.buckets.patch/predefinedDefaultObjectAcl": predefined_default_object_acl +"/storage:v1/storage.buckets.patch/projection": projection +"/storage:v1/storage.buckets.update": update_bucket +"/storage:v1/storage.buckets.update/bucket": bucket +"/storage:v1/storage.buckets.update/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.buckets.update/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.buckets.update/predefinedAcl": predefined_acl +"/storage:v1/storage.buckets.update/predefinedDefaultObjectAcl": predefined_default_object_acl +"/storage:v1/storage.buckets.update/projection": projection +"/storage:v1/storage.channels.stop": stop_channel +"/storage:v1/storage.defaultObjectAccessControls.delete": delete_default_object_access_control +"/storage:v1/storage.defaultObjectAccessControls.delete/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.delete/entity": entity +"/storage:v1/storage.defaultObjectAccessControls.get": get_default_object_access_control +"/storage:v1/storage.defaultObjectAccessControls.get/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.get/entity": entity +"/storage:v1/storage.defaultObjectAccessControls.insert": insert_default_object_access_control +"/storage:v1/storage.defaultObjectAccessControls.insert/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.list": list_default_object_access_controls +"/storage:v1/storage.defaultObjectAccessControls.list/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.list/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.defaultObjectAccessControls.list/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.defaultObjectAccessControls.patch": patch_default_object_access_control +"/storage:v1/storage.defaultObjectAccessControls.patch/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.patch/entity": entity +"/storage:v1/storage.defaultObjectAccessControls.update": update_default_object_access_control +"/storage:v1/storage.defaultObjectAccessControls.update/bucket": bucket +"/storage:v1/storage.defaultObjectAccessControls.update/entity": entity +"/storage:v1/storage.objectAccessControls.delete": delete_object_access_control +"/storage:v1/storage.objectAccessControls.delete/bucket": bucket +"/storage:v1/storage.objectAccessControls.delete/entity": entity +"/storage:v1/storage.objectAccessControls.delete/generation": generation +"/storage:v1/storage.objectAccessControls.delete/object": object +"/storage:v1/storage.objectAccessControls.get": get_object_access_control +"/storage:v1/storage.objectAccessControls.get/bucket": bucket +"/storage:v1/storage.objectAccessControls.get/entity": entity +"/storage:v1/storage.objectAccessControls.get/generation": generation +"/storage:v1/storage.objectAccessControls.get/object": object +"/storage:v1/storage.objectAccessControls.insert": insert_object_access_control +"/storage:v1/storage.objectAccessControls.insert/bucket": bucket +"/storage:v1/storage.objectAccessControls.insert/generation": generation +"/storage:v1/storage.objectAccessControls.insert/object": object +"/storage:v1/storage.objectAccessControls.list": list_object_access_controls +"/storage:v1/storage.objectAccessControls.list/bucket": bucket +"/storage:v1/storage.objectAccessControls.list/generation": generation +"/storage:v1/storage.objectAccessControls.list/object": object +"/storage:v1/storage.objectAccessControls.patch": patch_object_access_control +"/storage:v1/storage.objectAccessControls.patch/bucket": bucket +"/storage:v1/storage.objectAccessControls.patch/entity": entity +"/storage:v1/storage.objectAccessControls.patch/generation": generation +"/storage:v1/storage.objectAccessControls.patch/object": object +"/storage:v1/storage.objectAccessControls.update": update_object_access_control +"/storage:v1/storage.objectAccessControls.update/bucket": bucket +"/storage:v1/storage.objectAccessControls.update/entity": entity +"/storage:v1/storage.objectAccessControls.update/generation": generation +"/storage:v1/storage.objectAccessControls.update/object": object +"/storage:v1/storage.objects.compose": compose +"/storage:v1/storage.objects.compose/destinationBucket": destination_bucket +"/storage:v1/storage.objects.compose/destinationObject": destination_object +"/storage:v1/storage.objects.compose/destinationPredefinedAcl": destination_predefined_acl +"/storage:v1/storage.objects.compose/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.compose/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.copy": copy_object +"/storage:v1/storage.objects.copy/destinationBucket": destination_bucket +"/storage:v1/storage.objects.copy/destinationObject": destination_object +"/storage:v1/storage.objects.copy/destinationPredefinedAcl": destination_predefined_acl +"/storage:v1/storage.objects.copy/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.copy/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.copy/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.copy/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.copy/ifSourceGenerationMatch": if_source_generation_match +"/storage:v1/storage.objects.copy/ifSourceGenerationNotMatch": if_source_generation_not_match +"/storage:v1/storage.objects.copy/ifSourceMetagenerationMatch": if_source_metageneration_match +"/storage:v1/storage.objects.copy/ifSourceMetagenerationNotMatch": if_source_metageneration_not_match +"/storage:v1/storage.objects.copy/projection": projection +"/storage:v1/storage.objects.copy/sourceBucket": source_bucket +"/storage:v1/storage.objects.copy/sourceGeneration": source_generation +"/storage:v1/storage.objects.copy/sourceObject": source_object +"/storage:v1/storage.objects.delete": delete_object +"/storage:v1/storage.objects.delete/bucket": bucket +"/storage:v1/storage.objects.delete/generation": generation +"/storage:v1/storage.objects.delete/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.delete/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.delete/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.delete/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.delete/object": object +"/storage:v1/storage.objects.get": get_object +"/storage:v1/storage.objects.get/bucket": bucket +"/storage:v1/storage.objects.get/generation": generation +"/storage:v1/storage.objects.get/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.get/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.get/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.get/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.get/object": object +"/storage:v1/storage.objects.get/projection": projection +"/storage:v1/storage.objects.insert": insert_object +"/storage:v1/storage.objects.insert/bucket": bucket +"/storage:v1/storage.objects.insert/contentEncoding": content_encoding +"/storage:v1/storage.objects.insert/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.insert/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.insert/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.insert/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.insert/name": name +"/storage:v1/storage.objects.insert/predefinedAcl": predefined_acl +"/storage:v1/storage.objects.insert/projection": projection +"/storage:v1/storage.objects.list": list_objects +"/storage:v1/storage.objects.list/bucket": bucket +"/storage:v1/storage.objects.list/delimiter": delimiter +"/storage:v1/storage.objects.list/maxResults": max_results +"/storage:v1/storage.objects.list/pageToken": page_token +"/storage:v1/storage.objects.list/prefix": prefix +"/storage:v1/storage.objects.list/projection": projection +"/storage:v1/storage.objects.list/versions": versions +"/storage:v1/storage.objects.patch": patch_object +"/storage:v1/storage.objects.patch/bucket": bucket +"/storage:v1/storage.objects.patch/generation": generation +"/storage:v1/storage.objects.patch/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.patch/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.patch/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.patch/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.patch/object": object +"/storage:v1/storage.objects.patch/predefinedAcl": predefined_acl +"/storage:v1/storage.objects.patch/projection": projection +"/storage:v1/storage.objects.rewrite": rewrite_object +"/storage:v1/storage.objects.rewrite/destinationBucket": destination_bucket +"/storage:v1/storage.objects.rewrite/destinationObject": destination_object +"/storage:v1/storage.objects.rewrite/destinationPredefinedAcl": destination_predefined_acl +"/storage:v1/storage.objects.rewrite/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.rewrite/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.rewrite/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.rewrite/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.rewrite/ifSourceGenerationMatch": if_source_generation_match +"/storage:v1/storage.objects.rewrite/ifSourceGenerationNotMatch": if_source_generation_not_match +"/storage:v1/storage.objects.rewrite/ifSourceMetagenerationMatch": if_source_metageneration_match +"/storage:v1/storage.objects.rewrite/ifSourceMetagenerationNotMatch": if_source_metageneration_not_match +"/storage:v1/storage.objects.rewrite/maxBytesRewrittenPerCall": max_bytes_rewritten_per_call +"/storage:v1/storage.objects.rewrite/projection": projection +"/storage:v1/storage.objects.rewrite/rewriteToken": rewrite_token +"/storage:v1/storage.objects.rewrite/sourceBucket": source_bucket +"/storage:v1/storage.objects.rewrite/sourceGeneration": source_generation +"/storage:v1/storage.objects.rewrite/sourceObject": source_object +"/storage:v1/storage.objects.update": update_object +"/storage:v1/storage.objects.update/bucket": bucket +"/storage:v1/storage.objects.update/generation": generation +"/storage:v1/storage.objects.update/ifGenerationMatch": if_generation_match +"/storage:v1/storage.objects.update/ifGenerationNotMatch": if_generation_not_match +"/storage:v1/storage.objects.update/ifMetagenerationMatch": if_metageneration_match +"/storage:v1/storage.objects.update/ifMetagenerationNotMatch": if_metageneration_not_match +"/storage:v1/storage.objects.update/object": object +"/storage:v1/storage.objects.update/predefinedAcl": predefined_acl +"/storage:v1/storage.objects.update/projection": projection +"/storage:v1/storage.objects.watchAll": watch_all_object +"/storage:v1/storage.objects.watchAll/bucket": bucket +"/storage:v1/storage.objects.watchAll/delimiter": delimiter +"/storage:v1/storage.objects.watchAll/maxResults": max_results +"/storage:v1/storage.objects.watchAll/pageToken": page_token +"/storage:v1/storage.objects.watchAll/prefix": prefix +"/storage:v1/storage.objects.watchAll/projection": projection +"/storage:v1/storage.objects.watchAll/versions": versions +"/storage:v1/Bucket": bucket +"/storage:v1/Bucket/acl": acl +"/storage:v1/Bucket/acl/acl": acl +"/storage:v1/Bucket/cors/cors_configuration": cors_configuration +"/storage:v1/Bucket/cors/cors_configuration/maxAgeSeconds": max_age_seconds +"/storage:v1/Bucket/cors/cors_configuration/method/http_method": http_method +"/storage:v1/Bucket/cors/cors_configuration/origin": origin +"/storage:v1/Bucket/cors/cors_configuration/origin/origin": origin +"/storage:v1/Bucket/cors/cors_configuration/responseHeader": response_header +"/storage:v1/Bucket/cors/cors_configuration/responseHeader/response_header": response_header +"/storage:v1/Bucket/defaultObjectAcl": default_object_acl +"/storage:v1/Bucket/defaultObjectAcl/default_object_acl": default_object_acl +"/storage:v1/Bucket/etag": etag +"/storage:v1/Bucket/id": id +"/storage:v1/Bucket/kind": kind +"/storage:v1/Bucket/lifecycle": lifecycle +"/storage:v1/Bucket/lifecycle/rule": rule +"/storage:v1/Bucket/lifecycle/rule/rule": rule +"/storage:v1/Bucket/lifecycle/rule/rule/action": action +"/storage:v1/Bucket/lifecycle/rule/rule/action/type": type +"/storage:v1/Bucket/lifecycle/rule/rule/condition": condition +"/storage:v1/Bucket/lifecycle/rule/rule/condition/age": age +"/storage:v1/Bucket/lifecycle/rule/rule/condition/createdBefore": created_before +"/storage:v1/Bucket/lifecycle/rule/rule/condition/isLive": is_live +"/storage:v1/Bucket/lifecycle/rule/rule/condition/numNewerVersions": num_newer_versions +"/storage:v1/Bucket/location": location +"/storage:v1/Bucket/logging": logging +"/storage:v1/Bucket/logging/logBucket": log_bucket +"/storage:v1/Bucket/logging/logObjectPrefix": log_object_prefix +"/storage:v1/Bucket/metageneration": metageneration +"/storage:v1/Bucket/name": name +"/storage:v1/Bucket/owner": owner +"/storage:v1/Bucket/owner/entity": entity +"/storage:v1/Bucket/owner/entityId": entity_id +"/storage:v1/Bucket/projectNumber": project_number +"/storage:v1/Bucket/selfLink": self_link +"/storage:v1/Bucket/storageClass": storage_class +"/storage:v1/Bucket/timeCreated": time_created +"/storage:v1/Bucket/versioning": versioning +"/storage:v1/Bucket/versioning/enabled": enabled +"/storage:v1/Bucket/website": website +"/storage:v1/Bucket/website/mainPageSuffix": main_page_suffix +"/storage:v1/Bucket/website/notFoundPage": not_found_page +"/storage:v1/BucketAccessControl": bucket_access_control +"/storage:v1/BucketAccessControl/bucket": bucket +"/storage:v1/BucketAccessControl/domain": domain +"/storage:v1/BucketAccessControl/email": email +"/storage:v1/BucketAccessControl/entity": entity +"/storage:v1/BucketAccessControl/entityId": entity_id +"/storage:v1/BucketAccessControl/etag": etag +"/storage:v1/BucketAccessControl/id": id +"/storage:v1/BucketAccessControl/kind": kind +"/storage:v1/BucketAccessControl/projectTeam": project_team +"/storage:v1/BucketAccessControl/projectTeam/projectNumber": project_number +"/storage:v1/BucketAccessControl/projectTeam/team": team +"/storage:v1/BucketAccessControl/role": role +"/storage:v1/BucketAccessControl/selfLink": self_link +"/storage:v1/BucketAccessControls": bucket_access_controls +"/storage:v1/BucketAccessControls/items": items +"/storage:v1/BucketAccessControls/items/item": item +"/storage:v1/BucketAccessControls/kind": kind +"/storage:v1/Buckets": buckets +"/storage:v1/Buckets/items": items +"/storage:v1/Buckets/items/item": item +"/storage:v1/Buckets/kind": kind +"/storage:v1/Buckets/nextPageToken": next_page_token +"/storage:v1/Channel": channel +"/storage:v1/Channel/address": address +"/storage:v1/Channel/expiration": expiration +"/storage:v1/Channel/id": id +"/storage:v1/Channel/kind": kind +"/storage:v1/Channel/params": params +"/storage:v1/Channel/params/param": param +"/storage:v1/Channel/payload": payload +"/storage:v1/Channel/resourceId": resource_id +"/storage:v1/Channel/resourceUri": resource_uri +"/storage:v1/Channel/token": token +"/storage:v1/Channel/type": type +"/storage:v1/ComposeRequest": compose_request +"/storage:v1/ComposeRequest/destination": destination +"/storage:v1/ComposeRequest/kind": kind +"/storage:v1/ComposeRequest/sourceObjects": source_objects +"/storage:v1/ComposeRequest/sourceObjects/source_object": source_object +"/storage:v1/ComposeRequest/sourceObjects/source_object/generation": generation +"/storage:v1/ComposeRequest/sourceObjects/source_object/name": name +"/storage:v1/ComposeRequest/sourceObjects/source_object/objectPreconditions": object_preconditions +"/storage:v1/ComposeRequest/sourceObjects/source_object/objectPreconditions/ifGenerationMatch": if_generation_match +"/storage:v1/Object": object +"/storage:v1/Object/acl": acl +"/storage:v1/Object/acl/acl": acl +"/storage:v1/Object/bucket": bucket +"/storage:v1/Object/cacheControl": cache_control +"/storage:v1/Object/componentCount": component_count +"/storage:v1/Object/contentDisposition": content_disposition +"/storage:v1/Object/contentEncoding": content_encoding +"/storage:v1/Object/contentLanguage": content_language +"/storage:v1/Object/contentType": content_type +"/storage:v1/Object/crc32c": crc32c +"/storage:v1/Object/etag": etag +"/storage:v1/Object/generation": generation +"/storage:v1/Object/id": id +"/storage:v1/Object/kind": kind +"/storage:v1/Object/md5Hash": md5_hash +"/storage:v1/Object/mediaLink": media_link +"/storage:v1/Object/metadata": metadata +"/storage:v1/Object/metadata/metadatum": metadatum +"/storage:v1/Object/metageneration": metageneration +"/storage:v1/Object/name": name +"/storage:v1/Object/owner": owner +"/storage:v1/Object/owner/entity": entity +"/storage:v1/Object/owner/entityId": entity_id +"/storage:v1/Object/selfLink": self_link +"/storage:v1/Object/size": size +"/storage:v1/Object/storageClass": storage_class +"/storage:v1/Object/timeDeleted": time_deleted +"/storage:v1/Object/updated": updated +"/storage:v1/ObjectAccessControl": object_access_control +"/storage:v1/ObjectAccessControl/bucket": bucket +"/storage:v1/ObjectAccessControl/domain": domain +"/storage:v1/ObjectAccessControl/email": email +"/storage:v1/ObjectAccessControl/entity": entity +"/storage:v1/ObjectAccessControl/entityId": entity_id +"/storage:v1/ObjectAccessControl/etag": etag +"/storage:v1/ObjectAccessControl/generation": generation +"/storage:v1/ObjectAccessControl/id": id +"/storage:v1/ObjectAccessControl/kind": kind +"/storage:v1/ObjectAccessControl/object": object +"/storage:v1/ObjectAccessControl/projectTeam": project_team +"/storage:v1/ObjectAccessControl/projectTeam/projectNumber": project_number +"/storage:v1/ObjectAccessControl/projectTeam/team": team +"/storage:v1/ObjectAccessControl/role": role +"/storage:v1/ObjectAccessControl/selfLink": self_link +"/storage:v1/ObjectAccessControls": object_access_controls +"/storage:v1/ObjectAccessControls/items": items +"/storage:v1/ObjectAccessControls/items/item": item +"/storage:v1/ObjectAccessControls/kind": kind +"/storage:v1/Objects": objects +"/storage:v1/Objects/items": items +"/storage:v1/Objects/items/item": item +"/storage:v1/Objects/kind": kind +"/storage:v1/Objects/nextPageToken": next_page_token +"/storage:v1/Objects/prefixes": prefixes +"/storage:v1/Objects/prefixes/prefix": prefix +"/storage:v1/RewriteResponse": rewrite_response +"/storage:v1/RewriteResponse/done": done +"/storage:v1/RewriteResponse/kind": kind +"/storage:v1/RewriteResponse/objectSize": object_size +"/storage:v1/RewriteResponse/resource": resource +"/storage:v1/RewriteResponse/rewriteToken": rewrite_token +"/storage:v1/RewriteResponse/totalBytesRewritten": total_bytes_rewritten +"/tagmanager:v1/fields": fields +"/tagmanager:v1/key": key +"/tagmanager:v1/quotaUser": quota_user +"/tagmanager:v1/userIp": user_ip +"/tagmanager:v1/tagmanager.accounts.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.macros.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.delete/macroId": macro_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.get/macroId": macro_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.macros.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.macros.update/macroId": macro_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.delete/ruleId": rule_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.get/ruleId": rule_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.rules.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.rules.update/ruleId": rule_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.delete/tagId": tag_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.get/tagId": tag_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.tags.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.tags.update/tagId": tag_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.delete/triggerId": trigger_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.get/triggerId": trigger_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.triggers.update/triggerId": trigger_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.delete/variableId": variable_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.get/variableId": variable_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.variables.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.variables.update/variableId": variable_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.create/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.delete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.delete/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.get/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.get/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.list/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.list/headers": headers +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.publish/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.containers.versions.restore/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.restore/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.restore/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.undelete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.undelete/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.undelete/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.update/containerId": container_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.update/containerVersionId": container_version_id +"/tagmanager:v1/tagmanager.accounts.containers.versions.update/fingerprint": fingerprint +"/tagmanager:v1/tagmanager.accounts.permissions.create/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.permissions.delete/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.permissions.delete/permissionId": permission_id +"/tagmanager:v1/tagmanager.accounts.permissions.get/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.permissions.get/permissionId": permission_id +"/tagmanager:v1/tagmanager.accounts.permissions.list/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.permissions.update/accountId": account_id +"/tagmanager:v1/tagmanager.accounts.permissions.update/permissionId": permission_id +"/tagmanager:v1/Account": account +"/tagmanager:v1/Account/accountId": account_id +"/tagmanager:v1/Account/fingerprint": fingerprint +"/tagmanager:v1/Account/name": name +"/tagmanager:v1/Account/shareData": share_data +"/tagmanager:v1/AccountAccess": account_access +"/tagmanager:v1/AccountAccess/permission": permission +"/tagmanager:v1/AccountAccess/permission/permission": permission +"/tagmanager:v1/Condition": condition +"/tagmanager:v1/Condition/parameter": parameter +"/tagmanager:v1/Condition/parameter/parameter": parameter +"/tagmanager:v1/Condition/type": type +"/tagmanager:v1/Container": container +"/tagmanager:v1/Container/accountId": account_id +"/tagmanager:v1/Container/containerId": container_id +"/tagmanager:v1/Container/domainName": domain_name +"/tagmanager:v1/Container/domainName/domain_name": domain_name +"/tagmanager:v1/Container/enabledBuiltInVariable": enabled_built_in_variable +"/tagmanager:v1/Container/enabledBuiltInVariable/enabled_built_in_variable": enabled_built_in_variable +"/tagmanager:v1/Container/fingerprint": fingerprint +"/tagmanager:v1/Container/name": name +"/tagmanager:v1/Container/notes": notes +"/tagmanager:v1/Container/publicId": public_id +"/tagmanager:v1/Container/timeZoneCountryId": time_zone_country_id +"/tagmanager:v1/Container/timeZoneId": time_zone_id +"/tagmanager:v1/Container/usageContext": usage_context +"/tagmanager:v1/Container/usageContext/usage_context": usage_context +"/tagmanager:v1/ContainerAccess": container_access +"/tagmanager:v1/ContainerAccess/containerId": container_id +"/tagmanager:v1/ContainerAccess/permission": permission +"/tagmanager:v1/ContainerAccess/permission/permission": permission +"/tagmanager:v1/ContainerVersion": container_version +"/tagmanager:v1/ContainerVersion/accountId": account_id +"/tagmanager:v1/ContainerVersion/container": container +"/tagmanager:v1/ContainerVersion/containerId": container_id +"/tagmanager:v1/ContainerVersion/containerVersionId": container_version_id +"/tagmanager:v1/ContainerVersion/deleted": deleted +"/tagmanager:v1/ContainerVersion/fingerprint": fingerprint +"/tagmanager:v1/ContainerVersion/macro": macro +"/tagmanager:v1/ContainerVersion/macro/macro": macro +"/tagmanager:v1/ContainerVersion/name": name +"/tagmanager:v1/ContainerVersion/notes": notes +"/tagmanager:v1/ContainerVersion/rule": rule +"/tagmanager:v1/ContainerVersion/rule/rule": rule +"/tagmanager:v1/ContainerVersion/tag": tag +"/tagmanager:v1/ContainerVersion/tag/tag": tag +"/tagmanager:v1/ContainerVersion/trigger": trigger +"/tagmanager:v1/ContainerVersion/trigger/trigger": trigger +"/tagmanager:v1/ContainerVersion/variable": variable +"/tagmanager:v1/ContainerVersion/variable/variable": variable +"/tagmanager:v1/ContainerVersionHeader": container_version_header +"/tagmanager:v1/ContainerVersionHeader/accountId": account_id +"/tagmanager:v1/ContainerVersionHeader/containerId": container_id +"/tagmanager:v1/ContainerVersionHeader/containerVersionId": container_version_id +"/tagmanager:v1/ContainerVersionHeader/deleted": deleted +"/tagmanager:v1/ContainerVersionHeader/name": name +"/tagmanager:v1/ContainerVersionHeader/numMacros": num_macros +"/tagmanager:v1/ContainerVersionHeader/numRules": num_rules +"/tagmanager:v1/ContainerVersionHeader/numTags": num_tags +"/tagmanager:v1/ContainerVersionHeader/numTriggers": num_triggers +"/tagmanager:v1/ContainerVersionHeader/numVariables": num_variables +"/tagmanager:v1/CreateContainerVersionRequestVersionOptions": create_container_version_request_version_options +"/tagmanager:v1/CreateContainerVersionRequestVersionOptions/name": name +"/tagmanager:v1/CreateContainerVersionRequestVersionOptions/notes": notes +"/tagmanager:v1/CreateContainerVersionRequestVersionOptions/quickPreview": quick_preview +"/tagmanager:v1/CreateContainerVersionResponse": create_container_version_response +"/tagmanager:v1/CreateContainerVersionResponse/compilerError": compiler_error +"/tagmanager:v1/CreateContainerVersionResponse/containerVersion": container_version +"/tagmanager:v1/ListAccountUsersResponse": list_account_users_response +"/tagmanager:v1/ListAccountUsersResponse/userAccess": user_access +"/tagmanager:v1/ListAccountUsersResponse/userAccess/user_access": user_access +"/tagmanager:v1/ListAccountsResponse": list_accounts_response +"/tagmanager:v1/ListAccountsResponse/accounts": accounts +"/tagmanager:v1/ListAccountsResponse/accounts/account": account +"/tagmanager:v1/ListContainerVersionsResponse": list_container_versions_response +"/tagmanager:v1/ListContainerVersionsResponse/containerVersion": container_version +"/tagmanager:v1/ListContainerVersionsResponse/containerVersion/container_version": container_version +"/tagmanager:v1/ListContainerVersionsResponse/containerVersionHeader": container_version_header +"/tagmanager:v1/ListContainerVersionsResponse/containerVersionHeader/container_version_header": container_version_header +"/tagmanager:v1/ListContainersResponse": list_containers_response +"/tagmanager:v1/ListContainersResponse/containers": containers +"/tagmanager:v1/ListContainersResponse/containers/container": container +"/tagmanager:v1/ListMacrosResponse": list_macros_response +"/tagmanager:v1/ListMacrosResponse/macros": macros +"/tagmanager:v1/ListMacrosResponse/macros/macro": macro +"/tagmanager:v1/ListRulesResponse": list_rules_response +"/tagmanager:v1/ListRulesResponse/rules": rules +"/tagmanager:v1/ListRulesResponse/rules/rule": rule +"/tagmanager:v1/ListTagsResponse": list_tags_response +"/tagmanager:v1/ListTagsResponse/tags": tags +"/tagmanager:v1/ListTagsResponse/tags/tag": tag +"/tagmanager:v1/ListTriggersResponse": list_triggers_response +"/tagmanager:v1/ListTriggersResponse/triggers": triggers +"/tagmanager:v1/ListTriggersResponse/triggers/trigger": trigger +"/tagmanager:v1/ListVariablesResponse": list_variables_response +"/tagmanager:v1/ListVariablesResponse/variables": variables +"/tagmanager:v1/ListVariablesResponse/variables/variable": variable +"/tagmanager:v1/Macro": macro +"/tagmanager:v1/Macro/accountId": account_id +"/tagmanager:v1/Macro/containerId": container_id +"/tagmanager:v1/Macro/disablingRuleId": disabling_rule_id +"/tagmanager:v1/Macro/disablingRuleId/disabling_rule_id": disabling_rule_id +"/tagmanager:v1/Macro/enablingRuleId": enabling_rule_id +"/tagmanager:v1/Macro/enablingRuleId/enabling_rule_id": enabling_rule_id +"/tagmanager:v1/Macro/fingerprint": fingerprint +"/tagmanager:v1/Macro/macroId": macro_id +"/tagmanager:v1/Macro/name": name +"/tagmanager:v1/Macro/notes": notes +"/tagmanager:v1/Macro/parameter": parameter +"/tagmanager:v1/Macro/parameter/parameter": parameter +"/tagmanager:v1/Macro/scheduleEndMs": schedule_end_ms +"/tagmanager:v1/Macro/scheduleStartMs": schedule_start_ms +"/tagmanager:v1/Macro/type": type +"/tagmanager:v1/Parameter": parameter +"/tagmanager:v1/Parameter/key": key +"/tagmanager:v1/Parameter/list": list +"/tagmanager:v1/Parameter/list/list": list +"/tagmanager:v1/Parameter/map": map +"/tagmanager:v1/Parameter/map/map": map +"/tagmanager:v1/Parameter/type": type +"/tagmanager:v1/Parameter/value": value +"/tagmanager:v1/PublishContainerVersionResponse": publish_container_version_response +"/tagmanager:v1/PublishContainerVersionResponse/compilerError": compiler_error +"/tagmanager:v1/PublishContainerVersionResponse/containerVersion": container_version +"/tagmanager:v1/Rule": rule +"/tagmanager:v1/Rule/accountId": account_id +"/tagmanager:v1/Rule/condition": condition +"/tagmanager:v1/Rule/condition/condition": condition +"/tagmanager:v1/Rule/containerId": container_id +"/tagmanager:v1/Rule/fingerprint": fingerprint +"/tagmanager:v1/Rule/name": name +"/tagmanager:v1/Rule/notes": notes +"/tagmanager:v1/Rule/ruleId": rule_id +"/tagmanager:v1/Tag": tag +"/tagmanager:v1/Tag/accountId": account_id +"/tagmanager:v1/Tag/blockingRuleId": blocking_rule_id +"/tagmanager:v1/Tag/blockingRuleId/blocking_rule_id": blocking_rule_id +"/tagmanager:v1/Tag/blockingTriggerId": blocking_trigger_id +"/tagmanager:v1/Tag/blockingTriggerId/blocking_trigger_id": blocking_trigger_id +"/tagmanager:v1/Tag/containerId": container_id +"/tagmanager:v1/Tag/fingerprint": fingerprint +"/tagmanager:v1/Tag/firingRuleId": firing_rule_id +"/tagmanager:v1/Tag/firingRuleId/firing_rule_id": firing_rule_id +"/tagmanager:v1/Tag/firingTriggerId": firing_trigger_id +"/tagmanager:v1/Tag/firingTriggerId/firing_trigger_id": firing_trigger_id +"/tagmanager:v1/Tag/liveOnly": live_only +"/tagmanager:v1/Tag/name": name +"/tagmanager:v1/Tag/notes": notes +"/tagmanager:v1/Tag/parameter": parameter +"/tagmanager:v1/Tag/parameter/parameter": parameter +"/tagmanager:v1/Tag/priority": priority +"/tagmanager:v1/Tag/scheduleEndMs": schedule_end_ms +"/tagmanager:v1/Tag/scheduleStartMs": schedule_start_ms +"/tagmanager:v1/Tag/tagId": tag_id +"/tagmanager:v1/Tag/type": type +"/tagmanager:v1/Trigger": trigger +"/tagmanager:v1/Trigger/accountId": account_id +"/tagmanager:v1/Trigger/autoEventFilter": auto_event_filter +"/tagmanager:v1/Trigger/autoEventFilter/auto_event_filter": auto_event_filter +"/tagmanager:v1/Trigger/checkValidation": check_validation +"/tagmanager:v1/Trigger/containerId": container_id +"/tagmanager:v1/Trigger/customEventFilter": custom_event_filter +"/tagmanager:v1/Trigger/customEventFilter/custom_event_filter": custom_event_filter +"/tagmanager:v1/Trigger/enableAllVideos": enable_all_videos +"/tagmanager:v1/Trigger/eventName": event_name +"/tagmanager:v1/Trigger/filter": filter +"/tagmanager:v1/Trigger/filter/filter": filter +"/tagmanager:v1/Trigger/fingerprint": fingerprint +"/tagmanager:v1/Trigger/interval": interval +"/tagmanager:v1/Trigger/limit": limit +"/tagmanager:v1/Trigger/name": name +"/tagmanager:v1/Trigger/triggerId": trigger_id +"/tagmanager:v1/Trigger/type": type +"/tagmanager:v1/Trigger/uniqueTriggerId": unique_trigger_id +"/tagmanager:v1/Trigger/videoPercentageList": video_percentage_list +"/tagmanager:v1/Trigger/waitForTags": wait_for_tags +"/tagmanager:v1/Trigger/waitForTagsTimeout": wait_for_tags_timeout +"/tagmanager:v1/UserAccess": user_access +"/tagmanager:v1/UserAccess/accountAccess": account_access +"/tagmanager:v1/UserAccess/accountId": account_id +"/tagmanager:v1/UserAccess/containerAccess": container_access +"/tagmanager:v1/UserAccess/containerAccess/container_access": container_access +"/tagmanager:v1/UserAccess/emailAddress": email_address +"/tagmanager:v1/UserAccess/permissionId": permission_id +"/tagmanager:v1/Variable": variable +"/tagmanager:v1/Variable/accountId": account_id +"/tagmanager:v1/Variable/containerId": container_id +"/tagmanager:v1/Variable/disablingTriggerId": disabling_trigger_id +"/tagmanager:v1/Variable/disablingTriggerId/disabling_trigger_id": disabling_trigger_id +"/tagmanager:v1/Variable/enablingTriggerId": enabling_trigger_id +"/tagmanager:v1/Variable/enablingTriggerId/enabling_trigger_id": enabling_trigger_id +"/tagmanager:v1/Variable/fingerprint": fingerprint +"/tagmanager:v1/Variable/name": name +"/tagmanager:v1/Variable/notes": notes +"/tagmanager:v1/Variable/parameter": parameter +"/tagmanager:v1/Variable/parameter/parameter": parameter +"/tagmanager:v1/Variable/scheduleEndMs": schedule_end_ms +"/tagmanager:v1/Variable/scheduleStartMs": schedule_start_ms +"/tagmanager:v1/Variable/type": type +"/tagmanager:v1/Variable/variableId": variable_id +"/taskqueue:v1beta2/fields": fields +"/taskqueue:v1beta2/key": key +"/taskqueue:v1beta2/quotaUser": quota_user +"/taskqueue:v1beta2/userIp": user_ip +"/taskqueue:v1beta2/taskqueue.taskqueues.get": get_taskqueue +"/taskqueue:v1beta2/taskqueue.taskqueues.get/getStats": get_stats +"/taskqueue:v1beta2/taskqueue.taskqueues.get/project": project +"/taskqueue:v1beta2/taskqueue.taskqueues.get/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.delete": delete_task +"/taskqueue:v1beta2/taskqueue.tasks.delete/project": project +"/taskqueue:v1beta2/taskqueue.tasks.delete/task": task +"/taskqueue:v1beta2/taskqueue.tasks.delete/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.get": get_task +"/taskqueue:v1beta2/taskqueue.tasks.get/project": project +"/taskqueue:v1beta2/taskqueue.tasks.get/task": task +"/taskqueue:v1beta2/taskqueue.tasks.get/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.insert": insert_task +"/taskqueue:v1beta2/taskqueue.tasks.insert/project": project +"/taskqueue:v1beta2/taskqueue.tasks.insert/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.lease": lease_task +"/taskqueue:v1beta2/taskqueue.tasks.lease/groupByTag": group_by_tag +"/taskqueue:v1beta2/taskqueue.tasks.lease/leaseSecs": lease_secs +"/taskqueue:v1beta2/taskqueue.tasks.lease/numTasks": num_tasks +"/taskqueue:v1beta2/taskqueue.tasks.lease/project": project +"/taskqueue:v1beta2/taskqueue.tasks.lease/tag": tag +"/taskqueue:v1beta2/taskqueue.tasks.lease/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.list": list_tasks +"/taskqueue:v1beta2/taskqueue.tasks.list/project": project +"/taskqueue:v1beta2/taskqueue.tasks.list/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.patch": patch_task +"/taskqueue:v1beta2/taskqueue.tasks.patch/newLeaseSeconds": new_lease_seconds +"/taskqueue:v1beta2/taskqueue.tasks.patch/project": project +"/taskqueue:v1beta2/taskqueue.tasks.patch/task": task +"/taskqueue:v1beta2/taskqueue.tasks.patch/taskqueue": taskqueue +"/taskqueue:v1beta2/taskqueue.tasks.update": update_task +"/taskqueue:v1beta2/taskqueue.tasks.update/newLeaseSeconds": new_lease_seconds +"/taskqueue:v1beta2/taskqueue.tasks.update/project": project +"/taskqueue:v1beta2/taskqueue.tasks.update/task": task +"/taskqueue:v1beta2/taskqueue.tasks.update/taskqueue": taskqueue +"/taskqueue:v1beta2/Task": task +"/taskqueue:v1beta2/Task/enqueueTimestamp": enqueue_timestamp +"/taskqueue:v1beta2/Task/id": id +"/taskqueue:v1beta2/Task/kind": kind +"/taskqueue:v1beta2/Task/leaseTimestamp": lease_timestamp +"/taskqueue:v1beta2/Task/payloadBase64": payload_base64 +"/taskqueue:v1beta2/Task/queueName": queue_name +"/taskqueue:v1beta2/Task/retry_count": retry_count +"/taskqueue:v1beta2/Task/tag": tag +"/taskqueue:v1beta2/TaskQueue": task_queue +"/taskqueue:v1beta2/TaskQueue/acl": acl +"/taskqueue:v1beta2/TaskQueue/acl/adminEmails": admin_emails +"/taskqueue:v1beta2/TaskQueue/acl/adminEmails/admin_email": admin_email +"/taskqueue:v1beta2/TaskQueue/acl/consumerEmails": consumer_emails +"/taskqueue:v1beta2/TaskQueue/acl/consumerEmails/consumer_email": consumer_email +"/taskqueue:v1beta2/TaskQueue/acl/producerEmails": producer_emails +"/taskqueue:v1beta2/TaskQueue/acl/producerEmails/producer_email": producer_email +"/taskqueue:v1beta2/TaskQueue/id": id +"/taskqueue:v1beta2/TaskQueue/kind": kind +"/taskqueue:v1beta2/TaskQueue/maxLeases": max_leases +"/taskqueue:v1beta2/TaskQueue/stats": stats +"/taskqueue:v1beta2/TaskQueue/stats/leasedLastHour": leased_last_hour +"/taskqueue:v1beta2/TaskQueue/stats/leasedLastMinute": leased_last_minute +"/taskqueue:v1beta2/TaskQueue/stats/oldestTask": oldest_task +"/taskqueue:v1beta2/TaskQueue/stats/totalTasks": total_tasks +"/taskqueue:v1beta2/Tasks": tasks +"/taskqueue:v1beta2/Tasks/items": items +"/taskqueue:v1beta2/Tasks/items/item": item +"/taskqueue:v1beta2/Tasks/kind": kind +"/taskqueue:v1beta2/Tasks2": tasks2 +"/taskqueue:v1beta2/Tasks2/items": items +"/taskqueue:v1beta2/Tasks2/items/item": item +"/taskqueue:v1beta2/Tasks2/kind": kind +"/tasks:v1/fields": fields +"/tasks:v1/key": key +"/tasks:v1/quotaUser": quota_user +"/tasks:v1/userIp": user_ip +"/tasks:v1/tasks.tasklists.delete": delete_tasklist +"/tasks:v1/tasks.tasklists.delete/tasklist": tasklist +"/tasks:v1/tasks.tasklists.get": get_tasklist +"/tasks:v1/tasks.tasklists.get/tasklist": tasklist +"/tasks:v1/tasks.tasklists.insert": insert_tasklist +"/tasks:v1/tasks.tasklists.list": list_tasklists +"/tasks:v1/tasks.tasklists.list/maxResults": max_results +"/tasks:v1/tasks.tasklists.list/pageToken": page_token +"/tasks:v1/tasks.tasklists.patch": patch_tasklist +"/tasks:v1/tasks.tasklists.patch/tasklist": tasklist +"/tasks:v1/tasks.tasklists.update": update_tasklist +"/tasks:v1/tasks.tasklists.update/tasklist": tasklist +"/tasks:v1/tasks.tasks.clear": clear_task +"/tasks:v1/tasks.tasks.clear/tasklist": tasklist +"/tasks:v1/tasks.tasks.delete": delete_task +"/tasks:v1/tasks.tasks.delete/task": task +"/tasks:v1/tasks.tasks.delete/tasklist": tasklist +"/tasks:v1/tasks.tasks.get": get_task +"/tasks:v1/tasks.tasks.get/task": task +"/tasks:v1/tasks.tasks.get/tasklist": tasklist +"/tasks:v1/tasks.tasks.insert": insert_task +"/tasks:v1/tasks.tasks.insert/parent": parent +"/tasks:v1/tasks.tasks.insert/previous": previous +"/tasks:v1/tasks.tasks.insert/tasklist": tasklist +"/tasks:v1/tasks.tasks.list": list_tasks +"/tasks:v1/tasks.tasks.list/completedMax": completed_max +"/tasks:v1/tasks.tasks.list/completedMin": completed_min +"/tasks:v1/tasks.tasks.list/dueMax": due_max +"/tasks:v1/tasks.tasks.list/dueMin": due_min +"/tasks:v1/tasks.tasks.list/maxResults": max_results +"/tasks:v1/tasks.tasks.list/pageToken": page_token +"/tasks:v1/tasks.tasks.list/showCompleted": show_completed +"/tasks:v1/tasks.tasks.list/showDeleted": show_deleted +"/tasks:v1/tasks.tasks.list/showHidden": show_hidden +"/tasks:v1/tasks.tasks.list/tasklist": tasklist +"/tasks:v1/tasks.tasks.list/updatedMin": updated_min +"/tasks:v1/tasks.tasks.move": move_task +"/tasks:v1/tasks.tasks.move/parent": parent +"/tasks:v1/tasks.tasks.move/previous": previous +"/tasks:v1/tasks.tasks.move/task": task +"/tasks:v1/tasks.tasks.move/tasklist": tasklist +"/tasks:v1/tasks.tasks.patch": patch_task +"/tasks:v1/tasks.tasks.patch/task": task +"/tasks:v1/tasks.tasks.patch/tasklist": tasklist +"/tasks:v1/tasks.tasks.update": update_task +"/tasks:v1/tasks.tasks.update/task": task +"/tasks:v1/tasks.tasks.update/tasklist": tasklist +"/tasks:v1/Task": task +"/tasks:v1/Task/completed": completed +"/tasks:v1/Task/deleted": deleted +"/tasks:v1/Task/due": due +"/tasks:v1/Task/etag": etag +"/tasks:v1/Task/hidden": hidden +"/tasks:v1/Task/id": id +"/tasks:v1/Task/kind": kind +"/tasks:v1/Task/links": links +"/tasks:v1/Task/links/link": link +"/tasks:v1/Task/links/link/description": description +"/tasks:v1/Task/links/link/link": link +"/tasks:v1/Task/links/link/type": type +"/tasks:v1/Task/notes": notes +"/tasks:v1/Task/parent": parent +"/tasks:v1/Task/position": position +"/tasks:v1/Task/selfLink": self_link +"/tasks:v1/Task/status": status +"/tasks:v1/Task/title": title +"/tasks:v1/Task/updated": updated +"/tasks:v1/TaskList": task_list +"/tasks:v1/TaskList/etag": etag +"/tasks:v1/TaskList/id": id +"/tasks:v1/TaskList/kind": kind +"/tasks:v1/TaskList/selfLink": self_link +"/tasks:v1/TaskList/title": title +"/tasks:v1/TaskList/updated": updated +"/tasks:v1/TaskLists": task_lists +"/tasks:v1/TaskLists/etag": etag +"/tasks:v1/TaskLists/items": items +"/tasks:v1/TaskLists/items/item": item +"/tasks:v1/TaskLists/kind": kind +"/tasks:v1/TaskLists/nextPageToken": next_page_token +"/tasks:v1/Tasks": tasks +"/tasks:v1/Tasks/etag": etag +"/tasks:v1/Tasks/items": items +"/tasks:v1/Tasks/items/item": item +"/tasks:v1/Tasks/kind": kind +"/tasks:v1/Tasks/nextPageToken": next_page_token +"/translate:v2/fields": fields +"/translate:v2/key": key +"/translate:v2/quotaUser": quota_user +"/translate:v2/userIp": user_ip +"/translate:v2/language.detections.list": list_detections +"/translate:v2/language.detections.list/q": q +"/translate:v2/language.languages.list": list_languages +"/translate:v2/language.languages.list/target": target +"/translate:v2/language.translations.list": list_translations +"/translate:v2/language.translations.list/cid": cid +"/translate:v2/language.translations.list/format": format +"/translate:v2/language.translations.list/q": q +"/translate:v2/language.translations.list/source": source +"/translate:v2/language.translations.list/target": target +"/translate:v2/DetectionsListResponse/detections": detections +"/translate:v2/DetectionsListResponse/detections/detection": detection +"/translate:v2/DetectionsResource": detections_resource +"/translate:v2/DetectionsResource/detections_resource": detections_resource +"/translate:v2/DetectionsResource/detections_resource/confidence": confidence +"/translate:v2/DetectionsResource/detections_resource/isReliable": is_reliable +"/translate:v2/DetectionsResource/detections_resource/language": language +"/translate:v2/LanguagesListResponse/languages": languages +"/translate:v2/LanguagesListResponse/languages/language": language +"/translate:v2/LanguagesResource": languages_resource +"/translate:v2/LanguagesResource/language": language +"/translate:v2/LanguagesResource/name": name +"/translate:v2/TranslationsListResponse/translations": translations +"/translate:v2/TranslationsListResponse/translations/translation": translation +"/translate:v2/TranslationsResource": translations_resource +"/translate:v2/TranslationsResource/detectedSourceLanguage": detected_source_language +"/translate:v2/TranslationsResource/translatedText": translated_text +"/urlshortener:v1/fields": fields +"/urlshortener:v1/key": key +"/urlshortener:v1/quotaUser": quota_user +"/urlshortener:v1/userIp": user_ip +"/urlshortener:v1/urlshortener.url.get": get_url +"/urlshortener:v1/urlshortener.url.get/projection": projection +"/urlshortener:v1/urlshortener.url.get/shortUrl": short_url +"/urlshortener:v1/urlshortener.url.insert": insert_url +"/urlshortener:v1/urlshortener.url.list": list_urls +"/urlshortener:v1/urlshortener.url.list/projection": projection +"/urlshortener:v1/urlshortener.url.list/start-token": start_token +"/urlshortener:v1/AnalyticsSnapshot": analytics_snapshot +"/urlshortener:v1/AnalyticsSnapshot/browsers": browsers +"/urlshortener:v1/AnalyticsSnapshot/browsers/browser": browser +"/urlshortener:v1/AnalyticsSnapshot/countries": countries +"/urlshortener:v1/AnalyticsSnapshot/countries/country": country +"/urlshortener:v1/AnalyticsSnapshot/longUrlClicks": long_url_clicks +"/urlshortener:v1/AnalyticsSnapshot/platforms": platforms +"/urlshortener:v1/AnalyticsSnapshot/platforms/platform": platform +"/urlshortener:v1/AnalyticsSnapshot/referrers": referrers +"/urlshortener:v1/AnalyticsSnapshot/referrers/referrer": referrer +"/urlshortener:v1/AnalyticsSnapshot/shortUrlClicks": short_url_clicks +"/urlshortener:v1/AnalyticsSummary": analytics_summary +"/urlshortener:v1/AnalyticsSummary/allTime": all_time +"/urlshortener:v1/AnalyticsSummary/day": day +"/urlshortener:v1/AnalyticsSummary/month": month +"/urlshortener:v1/AnalyticsSummary/twoHours": two_hours +"/urlshortener:v1/AnalyticsSummary/week": week +"/urlshortener:v1/StringCount": string_count +"/urlshortener:v1/StringCount/count": count +"/urlshortener:v1/StringCount/id": id +"/urlshortener:v1/Url": url +"/urlshortener:v1/Url/analytics": analytics +"/urlshortener:v1/Url/created": created +"/urlshortener:v1/Url/id": id +"/urlshortener:v1/Url/kind": kind +"/urlshortener:v1/Url/longUrl": long_url +"/urlshortener:v1/Url/status": status +"/urlshortener:v1/UrlHistory": url_history +"/urlshortener:v1/UrlHistory/items": items +"/urlshortener:v1/UrlHistory/items/item": item +"/urlshortener:v1/UrlHistory/itemsPerPage": items_per_page +"/urlshortener:v1/UrlHistory/kind": kind +"/urlshortener:v1/UrlHistory/nextPageToken": next_page_token +"/urlshortener:v1/UrlHistory/totalItems": total_items +"/webmasters:v3/fields": fields +"/webmasters:v3/key": key +"/webmasters:v3/quotaUser": quota_user +"/webmasters:v3/userIp": user_ip +"/webmasters:v3/webmasters.sitemaps.delete": delete_sitemap +"/webmasters:v3/webmasters.sitemaps.delete/feedpath": feedpath +"/webmasters:v3/webmasters.sitemaps.delete/siteUrl": site_url +"/webmasters:v3/webmasters.sitemaps.get": get_sitemap +"/webmasters:v3/webmasters.sitemaps.get/feedpath": feedpath +"/webmasters:v3/webmasters.sitemaps.get/siteUrl": site_url +"/webmasters:v3/webmasters.sitemaps.list": list_sitemaps +"/webmasters:v3/webmasters.sitemaps.list/siteUrl": site_url +"/webmasters:v3/webmasters.sitemaps.list/sitemapIndex": sitemap_index +"/webmasters:v3/webmasters.sitemaps.submit": submit_sitemap +"/webmasters:v3/webmasters.sitemaps.submit/feedpath": feedpath +"/webmasters:v3/webmasters.sitemaps.submit/siteUrl": site_url +"/webmasters:v3/webmasters.sites.add": add_site +"/webmasters:v3/webmasters.sites.add/siteUrl": site_url +"/webmasters:v3/webmasters.sites.delete": delete_site +"/webmasters:v3/webmasters.sites.delete/siteUrl": site_url +"/webmasters:v3/webmasters.sites.get": get_site +"/webmasters:v3/webmasters.sites.get/siteUrl": site_url +"/webmasters:v3/webmasters.sites.list": list_sites +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query/category": category +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query/latestCountsOnly": latest_counts_only +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query/platform": platform +"/webmasters:v3/webmasters.urlcrawlerrorscounts.query/siteUrl": site_url +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get/category": category +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get/platform": platform +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get/siteUrl": site_url +"/webmasters:v3/webmasters.urlcrawlerrorssamples.get/url": url +"/webmasters:v3/webmasters.urlcrawlerrorssamples.list/category": category +"/webmasters:v3/webmasters.urlcrawlerrorssamples.list/platform": platform +"/webmasters:v3/webmasters.urlcrawlerrorssamples.list/siteUrl": site_url +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed/category": category +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed/platform": platform +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed/siteUrl": site_url +"/webmasters:v3/webmasters.urlcrawlerrorssamples.markAsFixed/url": url +"/webmasters:v3/SitemapsListResponse/sitemap": sitemap +"/webmasters:v3/SitemapsListResponse/sitemap/sitemap": sitemap +"/webmasters:v3/SitesListResponse/siteEntry": site_entry +"/webmasters:v3/SitesListResponse/siteEntry/site_entry": site_entry +"/webmasters:v3/UrlCrawlErrorCount": url_crawl_error_count +"/webmasters:v3/UrlCrawlErrorCount/count": count +"/webmasters:v3/UrlCrawlErrorCount/timestamp": timestamp +"/webmasters:v3/UrlCrawlErrorCountsPerType": url_crawl_error_counts_per_type +"/webmasters:v3/UrlCrawlErrorCountsPerType/category": category +"/webmasters:v3/UrlCrawlErrorCountsPerType/entries": entries +"/webmasters:v3/UrlCrawlErrorCountsPerType/entries/entry": entry +"/webmasters:v3/UrlCrawlErrorCountsPerType/platform": platform +"/webmasters:v3/UrlCrawlErrorsCountsQueryResponse/countPerTypes": count_per_types +"/webmasters:v3/UrlCrawlErrorsCountsQueryResponse/countPerTypes/count_per_type": count_per_type +"/webmasters:v3/UrlCrawlErrorsSample": url_crawl_errors_sample +"/webmasters:v3/UrlCrawlErrorsSample/first_detected": first_detected +"/webmasters:v3/UrlCrawlErrorsSample/last_crawled": last_crawled +"/webmasters:v3/UrlCrawlErrorsSample/pageUrl": page_url +"/webmasters:v3/UrlCrawlErrorsSample/responseCode": response_code +"/webmasters:v3/UrlCrawlErrorsSample/urlDetails": url_details +"/webmasters:v3/UrlCrawlErrorsSamplesListResponse/urlCrawlErrorSample": url_crawl_error_sample +"/webmasters:v3/UrlCrawlErrorsSamplesListResponse/urlCrawlErrorSample/url_crawl_error_sample": url_crawl_error_sample +"/webmasters:v3/UrlSampleDetails": url_sample_details +"/webmasters:v3/UrlSampleDetails/containingSitemaps": containing_sitemaps +"/webmasters:v3/UrlSampleDetails/containingSitemaps/containing_sitemap": containing_sitemap +"/webmasters:v3/UrlSampleDetails/linkedFromUrls": linked_from_urls +"/webmasters:v3/UrlSampleDetails/linkedFromUrls/linked_from_url": linked_from_url +"/webmasters:v3/WmxSite": wmx_site +"/webmasters:v3/WmxSite/permissionLevel": permission_level +"/webmasters:v3/WmxSite/siteUrl": site_url +"/webmasters:v3/WmxSitemap": wmx_sitemap +"/webmasters:v3/WmxSitemap/contents": contents +"/webmasters:v3/WmxSitemap/contents/content": content +"/webmasters:v3/WmxSitemap/errors": errors +"/webmasters:v3/WmxSitemap/isPending": is_pending +"/webmasters:v3/WmxSitemap/isSitemapsIndex": is_sitemaps_index +"/webmasters:v3/WmxSitemap/lastDownloaded": last_downloaded +"/webmasters:v3/WmxSitemap/lastSubmitted": last_submitted +"/webmasters:v3/WmxSitemap/path": path +"/webmasters:v3/WmxSitemap/type": type +"/webmasters:v3/WmxSitemap/warnings": warnings +"/webmasters:v3/WmxSitemapContent": wmx_sitemap_content +"/webmasters:v3/WmxSitemapContent/indexed": indexed +"/webmasters:v3/WmxSitemapContent/submitted": submitted +"/webmasters:v3/WmxSitemapContent/type": type +"/youtube:v3/fields": fields +"/youtube:v3/key": key +"/youtube:v3/quotaUser": quota_user +"/youtube:v3/userIp": user_ip +"/youtube:v3/youtube.activities.insert": insert_activity +"/youtube:v3/youtube.activities.insert/part": part +"/youtube:v3/youtube.activities.list": list_activities +"/youtube:v3/youtube.activities.list/channelId": channel_id +"/youtube:v3/youtube.activities.list/home": home +"/youtube:v3/youtube.activities.list/maxResults": max_results +"/youtube:v3/youtube.activities.list/mine": mine +"/youtube:v3/youtube.activities.list/pageToken": page_token +"/youtube:v3/youtube.activities.list/part": part +"/youtube:v3/youtube.activities.list/publishedAfter": published_after +"/youtube:v3/youtube.activities.list/publishedBefore": published_before +"/youtube:v3/youtube.activities.list/regionCode": region_code +"/youtube:v3/youtube.captions.delete": delete_caption +"/youtube:v3/youtube.captions.delete/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.captions.delete/id": id +"/youtube:v3/youtube.captions.delete/onBehalfOf": on_behalf_of +"/youtube:v3/youtube.captions.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.captions.download": download_caption +"/youtube:v3/youtube.captions.download/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.captions.download/id": id +"/youtube:v3/youtube.captions.download/onBehalfOf": on_behalf_of +"/youtube:v3/youtube.captions.download/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.captions.download/tfmt": tfmt +"/youtube:v3/youtube.captions.download/tlang": tlang +"/youtube:v3/youtube.captions.insert": insert_caption +"/youtube:v3/youtube.captions.insert/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.captions.insert/onBehalfOf": on_behalf_of +"/youtube:v3/youtube.captions.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.captions.insert/part": part +"/youtube:v3/youtube.captions.insert/sync": sync +"/youtube:v3/youtube.captions.list": list_captions +"/youtube:v3/youtube.captions.list/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.captions.list/id": id +"/youtube:v3/youtube.captions.list/onBehalfOf": on_behalf_of +"/youtube:v3/youtube.captions.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.captions.list/part": part +"/youtube:v3/youtube.captions.list/videoId": video_id +"/youtube:v3/youtube.captions.update": update_caption +"/youtube:v3/youtube.captions.update/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.captions.update/onBehalfOf": on_behalf_of +"/youtube:v3/youtube.captions.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.captions.update/part": part +"/youtube:v3/youtube.captions.update/sync": sync +"/youtube:v3/youtube.channelBanners.insert": insert_channel_banner +"/youtube:v3/youtube.channelBanners.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channelSections.delete": delete_channel_section +"/youtube:v3/youtube.channelSections.delete/id": id +"/youtube:v3/youtube.channelSections.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channelSections.insert": insert_channel_section +"/youtube:v3/youtube.channelSections.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channelSections.insert/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.channelSections.insert/part": part +"/youtube:v3/youtube.channelSections.list": list_channel_sections +"/youtube:v3/youtube.channelSections.list/channelId": channel_id +"/youtube:v3/youtube.channelSections.list/hl": hl +"/youtube:v3/youtube.channelSections.list/id": id +"/youtube:v3/youtube.channelSections.list/mine": mine +"/youtube:v3/youtube.channelSections.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channelSections.list/part": part +"/youtube:v3/youtube.channelSections.update": update_channel_section +"/youtube:v3/youtube.channelSections.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channelSections.update/part": part +"/youtube:v3/youtube.channels.list": list_channels +"/youtube:v3/youtube.channels.list/categoryId": category_id +"/youtube:v3/youtube.channels.list/forUsername": for_username +"/youtube:v3/youtube.channels.list/hl": hl +"/youtube:v3/youtube.channels.list/id": id +"/youtube:v3/youtube.channels.list/managedByMe": managed_by_me +"/youtube:v3/youtube.channels.list/maxResults": max_results +"/youtube:v3/youtube.channels.list/mine": mine +"/youtube:v3/youtube.channels.list/mySubscribers": my_subscribers +"/youtube:v3/youtube.channels.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channels.list/pageToken": page_token +"/youtube:v3/youtube.channels.list/part": part +"/youtube:v3/youtube.channels.update": update_channel +"/youtube:v3/youtube.channels.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.channels.update/part": part +"/youtube:v3/youtube.commentThreads.insert": insert_comment_thread +"/youtube:v3/youtube.commentThreads.insert/part": part +"/youtube:v3/youtube.commentThreads.insert/shareOnGooglePlus": share_on_google_plus +"/youtube:v3/youtube.commentThreads.list": list_comment_threads +"/youtube:v3/youtube.commentThreads.list/allThreadsRelatedToChannelId": all_threads_related_to_channel_id +"/youtube:v3/youtube.commentThreads.list/channelId": channel_id +"/youtube:v3/youtube.commentThreads.list/id": id +"/youtube:v3/youtube.commentThreads.list/maxResults": max_results +"/youtube:v3/youtube.commentThreads.list/moderationStatus": moderation_status +"/youtube:v3/youtube.commentThreads.list/order": order +"/youtube:v3/youtube.commentThreads.list/pageToken": page_token +"/youtube:v3/youtube.commentThreads.list/part": part +"/youtube:v3/youtube.commentThreads.list/searchTerms": search_terms +"/youtube:v3/youtube.commentThreads.list/textFormat": text_format +"/youtube:v3/youtube.commentThreads.list/videoId": video_id +"/youtube:v3/youtube.commentThreads.update": update_comment_thread +"/youtube:v3/youtube.commentThreads.update/part": part +"/youtube:v3/youtube.comments.delete": delete_comment +"/youtube:v3/youtube.comments.delete/id": id +"/youtube:v3/youtube.comments.insert": insert_comment +"/youtube:v3/youtube.comments.insert/part": part +"/youtube:v3/youtube.comments.list": list_comments +"/youtube:v3/youtube.comments.list/id": id +"/youtube:v3/youtube.comments.list/maxResults": max_results +"/youtube:v3/youtube.comments.list/pageToken": page_token +"/youtube:v3/youtube.comments.list/parentId": parent_id +"/youtube:v3/youtube.comments.list/part": part +"/youtube:v3/youtube.comments.list/textFormat": text_format +"/youtube:v3/youtube.comments.markAsSpam": mark_as_spam_comment +"/youtube:v3/youtube.comments.markAsSpam/id": id +"/youtube:v3/youtube.comments.setModerationStatus/banAuthor": ban_author +"/youtube:v3/youtube.comments.setModerationStatus/id": id +"/youtube:v3/youtube.comments.setModerationStatus/moderationStatus": moderation_status +"/youtube:v3/youtube.comments.update": update_comment +"/youtube:v3/youtube.comments.update/part": part +"/youtube:v3/youtube.guideCategories.list": list_guide_categories +"/youtube:v3/youtube.guideCategories.list/hl": hl +"/youtube:v3/youtube.guideCategories.list/id": id +"/youtube:v3/youtube.guideCategories.list/part": part +"/youtube:v3/youtube.guideCategories.list/regionCode": region_code +"/youtube:v3/youtube.i18nLanguages.list": list_i18n_languages +"/youtube:v3/youtube.i18nLanguages.list/hl": hl +"/youtube:v3/youtube.i18nLanguages.list/part": part +"/youtube:v3/youtube.i18nRegions.list": list_i18n_regions +"/youtube:v3/youtube.i18nRegions.list/hl": hl +"/youtube:v3/youtube.i18nRegions.list/part": part +"/youtube:v3/youtube.liveBroadcasts.bind": bind_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.bind/id": id +"/youtube:v3/youtube.liveBroadcasts.bind/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.bind/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.bind/part": part +"/youtube:v3/youtube.liveBroadcasts.bind/streamId": stream_id +"/youtube:v3/youtube.liveBroadcasts.control": control_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.control/displaySlate": display_slate +"/youtube:v3/youtube.liveBroadcasts.control/id": id +"/youtube:v3/youtube.liveBroadcasts.control/offsetTimeMs": offset_time_ms +"/youtube:v3/youtube.liveBroadcasts.control/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.control/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.control/part": part +"/youtube:v3/youtube.liveBroadcasts.control/walltime": walltime +"/youtube:v3/youtube.liveBroadcasts.delete": delete_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.delete/id": id +"/youtube:v3/youtube.liveBroadcasts.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.delete/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.insert": insert_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.insert/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.insert/part": part +"/youtube:v3/youtube.liveBroadcasts.list": list_live_broadcasts +"/youtube:v3/youtube.liveBroadcasts.list/broadcastStatus": broadcast_status +"/youtube:v3/youtube.liveBroadcasts.list/id": id +"/youtube:v3/youtube.liveBroadcasts.list/maxResults": max_results +"/youtube:v3/youtube.liveBroadcasts.list/mine": mine +"/youtube:v3/youtube.liveBroadcasts.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.list/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.list/pageToken": page_token +"/youtube:v3/youtube.liveBroadcasts.list/part": part +"/youtube:v3/youtube.liveBroadcasts.transition": transition_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.transition/broadcastStatus": broadcast_status +"/youtube:v3/youtube.liveBroadcasts.transition/id": id +"/youtube:v3/youtube.liveBroadcasts.transition/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.transition/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.transition/part": part +"/youtube:v3/youtube.liveBroadcasts.update": update_live_broadcast +"/youtube:v3/youtube.liveBroadcasts.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveBroadcasts.update/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveBroadcasts.update/part": part +"/youtube:v3/youtube.liveStreams.delete": delete_live_stream +"/youtube:v3/youtube.liveStreams.delete/id": id +"/youtube:v3/youtube.liveStreams.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveStreams.delete/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveStreams.insert": insert_live_stream +"/youtube:v3/youtube.liveStreams.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveStreams.insert/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveStreams.insert/part": part +"/youtube:v3/youtube.liveStreams.list": list_live_streams +"/youtube:v3/youtube.liveStreams.list/id": id +"/youtube:v3/youtube.liveStreams.list/maxResults": max_results +"/youtube:v3/youtube.liveStreams.list/mine": mine +"/youtube:v3/youtube.liveStreams.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveStreams.list/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveStreams.list/pageToken": page_token +"/youtube:v3/youtube.liveStreams.list/part": part +"/youtube:v3/youtube.liveStreams.update": update_live_stream +"/youtube:v3/youtube.liveStreams.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.liveStreams.update/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.liveStreams.update/part": part +"/youtube:v3/youtube.playlistItems.delete": delete_playlist_item +"/youtube:v3/youtube.playlistItems.delete/id": id +"/youtube:v3/youtube.playlistItems.insert": insert_playlist_item +"/youtube:v3/youtube.playlistItems.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlistItems.insert/part": part +"/youtube:v3/youtube.playlistItems.list": list_playlist_items +"/youtube:v3/youtube.playlistItems.list/id": id +"/youtube:v3/youtube.playlistItems.list/maxResults": max_results +"/youtube:v3/youtube.playlistItems.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlistItems.list/pageToken": page_token +"/youtube:v3/youtube.playlistItems.list/part": part +"/youtube:v3/youtube.playlistItems.list/playlistId": playlist_id +"/youtube:v3/youtube.playlistItems.list/videoId": video_id +"/youtube:v3/youtube.playlistItems.update": update_playlist_item +"/youtube:v3/youtube.playlistItems.update/part": part +"/youtube:v3/youtube.playlists.delete": delete_playlist +"/youtube:v3/youtube.playlists.delete/id": id +"/youtube:v3/youtube.playlists.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlists.insert": insert_playlist +"/youtube:v3/youtube.playlists.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlists.insert/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.playlists.insert/part": part +"/youtube:v3/youtube.playlists.list": list_playlists +"/youtube:v3/youtube.playlists.list/channelId": channel_id +"/youtube:v3/youtube.playlists.list/hl": hl +"/youtube:v3/youtube.playlists.list/id": id +"/youtube:v3/youtube.playlists.list/maxResults": max_results +"/youtube:v3/youtube.playlists.list/mine": mine +"/youtube:v3/youtube.playlists.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlists.list/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.playlists.list/pageToken": page_token +"/youtube:v3/youtube.playlists.list/part": part +"/youtube:v3/youtube.playlists.update": update_playlist +"/youtube:v3/youtube.playlists.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.playlists.update/part": part +"/youtube:v3/youtube.search.list": list_searches +"/youtube:v3/youtube.search.list/channelId": channel_id +"/youtube:v3/youtube.search.list/channelType": channel_type +"/youtube:v3/youtube.search.list/eventType": event_type +"/youtube:v3/youtube.search.list/forContentOwner": for_content_owner +"/youtube:v3/youtube.search.list/forDeveloper": for_developer +"/youtube:v3/youtube.search.list/forMine": for_mine +"/youtube:v3/youtube.search.list/location": location +"/youtube:v3/youtube.search.list/locationRadius": location_radius +"/youtube:v3/youtube.search.list/maxResults": max_results +"/youtube:v3/youtube.search.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.search.list/order": order +"/youtube:v3/youtube.search.list/pageToken": page_token +"/youtube:v3/youtube.search.list/part": part +"/youtube:v3/youtube.search.list/publishedAfter": published_after +"/youtube:v3/youtube.search.list/publishedBefore": published_before +"/youtube:v3/youtube.search.list/q": q +"/youtube:v3/youtube.search.list/regionCode": region_code +"/youtube:v3/youtube.search.list/relatedToVideoId": related_to_video_id +"/youtube:v3/youtube.search.list/relevanceLanguage": relevance_language +"/youtube:v3/youtube.search.list/safeSearch": safe_search +"/youtube:v3/youtube.search.list/topicId": topic_id +"/youtube:v3/youtube.search.list/type": type +"/youtube:v3/youtube.search.list/videoCaption": video_caption +"/youtube:v3/youtube.search.list/videoCategoryId": video_category_id +"/youtube:v3/youtube.search.list/videoDefinition": video_definition +"/youtube:v3/youtube.search.list/videoDimension": video_dimension +"/youtube:v3/youtube.search.list/videoDuration": video_duration +"/youtube:v3/youtube.search.list/videoEmbeddable": video_embeddable +"/youtube:v3/youtube.search.list/videoLicense": video_license +"/youtube:v3/youtube.search.list/videoSyndicated": video_syndicated +"/youtube:v3/youtube.search.list/videoType": video_type +"/youtube:v3/youtube.subscriptions.delete": delete_subscription +"/youtube:v3/youtube.subscriptions.delete/id": id +"/youtube:v3/youtube.subscriptions.insert": insert_subscription +"/youtube:v3/youtube.subscriptions.insert/part": part +"/youtube:v3/youtube.subscriptions.list": list_subscriptions +"/youtube:v3/youtube.subscriptions.list/channelId": channel_id +"/youtube:v3/youtube.subscriptions.list/forChannelId": for_channel_id +"/youtube:v3/youtube.subscriptions.list/id": id +"/youtube:v3/youtube.subscriptions.list/maxResults": max_results +"/youtube:v3/youtube.subscriptions.list/mine": mine +"/youtube:v3/youtube.subscriptions.list/mySubscribers": my_subscribers +"/youtube:v3/youtube.subscriptions.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.subscriptions.list/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.subscriptions.list/order": order +"/youtube:v3/youtube.subscriptions.list/pageToken": page_token +"/youtube:v3/youtube.subscriptions.list/part": part +"/youtube:v3/youtube.thumbnails.set": set_thumbnail +"/youtube:v3/youtube.thumbnails.set/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.thumbnails.set/videoId": video_id +"/youtube:v3/youtube.videoAbuseReportReasons.list": list_video_abuse_report_reasons +"/youtube:v3/youtube.videoAbuseReportReasons.list/hl": hl +"/youtube:v3/youtube.videoAbuseReportReasons.list/part": part +"/youtube:v3/youtube.videoCategories.list": list_video_categories +"/youtube:v3/youtube.videoCategories.list/hl": hl +"/youtube:v3/youtube.videoCategories.list/id": id +"/youtube:v3/youtube.videoCategories.list/part": part +"/youtube:v3/youtube.videoCategories.list/regionCode": region_code +"/youtube:v3/youtube.videos.delete": delete_video +"/youtube:v3/youtube.videos.delete/id": id +"/youtube:v3/youtube.videos.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.getRating": get_rating_video +"/youtube:v3/youtube.videos.getRating/id": id +"/youtube:v3/youtube.videos.getRating/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.insert": insert_video +"/youtube:v3/youtube.videos.insert/autoLevels": auto_levels +"/youtube:v3/youtube.videos.insert/notifySubscribers": notify_subscribers +"/youtube:v3/youtube.videos.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.insert/onBehalfOfContentOwnerChannel": on_behalf_of_content_owner_channel +"/youtube:v3/youtube.videos.insert/part": part +"/youtube:v3/youtube.videos.insert/stabilize": stabilize +"/youtube:v3/youtube.videos.list": list_videos +"/youtube:v3/youtube.videos.list/chart": chart +"/youtube:v3/youtube.videos.list/debugProjectIdOverride": debug_project_id_override +"/youtube:v3/youtube.videos.list/hl": hl +"/youtube:v3/youtube.videos.list/id": id +"/youtube:v3/youtube.videos.list/locale": locale +"/youtube:v3/youtube.videos.list/maxResults": max_results +"/youtube:v3/youtube.videos.list/myRating": my_rating +"/youtube:v3/youtube.videos.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.list/pageToken": page_token +"/youtube:v3/youtube.videos.list/part": part +"/youtube:v3/youtube.videos.list/regionCode": region_code +"/youtube:v3/youtube.videos.list/videoCategoryId": video_category_id +"/youtube:v3/youtube.videos.rate": rate_video +"/youtube:v3/youtube.videos.rate/id": id +"/youtube:v3/youtube.videos.rate/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.rate/rating": rating +"/youtube:v3/youtube.videos.reportAbuse": report_abuse_video +"/youtube:v3/youtube.videos.reportAbuse/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.update": update_video +"/youtube:v3/youtube.videos.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.videos.update/part": part +"/youtube:v3/youtube.watermarks.set": set_watermark +"/youtube:v3/youtube.watermarks.set/channelId": channel_id +"/youtube:v3/youtube.watermarks.set/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/youtube.watermarks.unset": unset_watermark +"/youtube:v3/youtube.watermarks.unset/channelId": channel_id +"/youtube:v3/youtube.watermarks.unset/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtube:v3/AccessPolicy": access_policy +"/youtube:v3/AccessPolicy/allowed": allowed +"/youtube:v3/AccessPolicy/exception": exception +"/youtube:v3/AccessPolicy/exception/exception": exception +"/youtube:v3/Activity": activity +"/youtube:v3/Activity/contentDetails": content_details +"/youtube:v3/Activity/etag": etag +"/youtube:v3/Activity/id": id +"/youtube:v3/Activity/kind": kind +"/youtube:v3/Activity/snippet": snippet +"/youtube:v3/ActivityContentDetails": activity_content_details +"/youtube:v3/ActivityContentDetails/bulletin": bulletin +"/youtube:v3/ActivityContentDetails/channelItem": channel_item +"/youtube:v3/ActivityContentDetails/comment": comment +"/youtube:v3/ActivityContentDetails/favorite": favorite +"/youtube:v3/ActivityContentDetails/like": like +"/youtube:v3/ActivityContentDetails/playlistItem": playlist_item +"/youtube:v3/ActivityContentDetails/promotedItem": promoted_item +"/youtube:v3/ActivityContentDetails/recommendation": recommendation +"/youtube:v3/ActivityContentDetails/social": social +"/youtube:v3/ActivityContentDetails/subscription": subscription +"/youtube:v3/ActivityContentDetails/upload": upload +"/youtube:v3/ActivityContentDetailsBulletin": activity_content_details_bulletin +"/youtube:v3/ActivityContentDetailsBulletin/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsChannelItem": activity_content_details_channel_item +"/youtube:v3/ActivityContentDetailsChannelItem/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsComment": activity_content_details_comment +"/youtube:v3/ActivityContentDetailsComment/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsFavorite": activity_content_details_favorite +"/youtube:v3/ActivityContentDetailsFavorite/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsLike": activity_content_details_like +"/youtube:v3/ActivityContentDetailsLike/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsPlaylistItem": activity_content_details_playlist_item +"/youtube:v3/ActivityContentDetailsPlaylistItem/playlistId": playlist_id +"/youtube:v3/ActivityContentDetailsPlaylistItem/playlistItemId": playlist_item_id +"/youtube:v3/ActivityContentDetailsPlaylistItem/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsPromotedItem": activity_content_details_promoted_item +"/youtube:v3/ActivityContentDetailsPromotedItem/adTag": ad_tag +"/youtube:v3/ActivityContentDetailsPromotedItem/clickTrackingUrl": click_tracking_url +"/youtube:v3/ActivityContentDetailsPromotedItem/creativeViewUrl": creative_view_url +"/youtube:v3/ActivityContentDetailsPromotedItem/ctaType": cta_type +"/youtube:v3/ActivityContentDetailsPromotedItem/customCtaButtonText": custom_cta_button_text +"/youtube:v3/ActivityContentDetailsPromotedItem/descriptionText": description_text +"/youtube:v3/ActivityContentDetailsPromotedItem/destinationUrl": destination_url +"/youtube:v3/ActivityContentDetailsPromotedItem/forecastingUrl": forecasting_url +"/youtube:v3/ActivityContentDetailsPromotedItem/forecastingUrl/forecasting_url": forecasting_url +"/youtube:v3/ActivityContentDetailsPromotedItem/impressionUrl": impression_url +"/youtube:v3/ActivityContentDetailsPromotedItem/impressionUrl/impression_url": impression_url +"/youtube:v3/ActivityContentDetailsPromotedItem/videoId": video_id +"/youtube:v3/ActivityContentDetailsRecommendation": activity_content_details_recommendation +"/youtube:v3/ActivityContentDetailsRecommendation/reason": reason +"/youtube:v3/ActivityContentDetailsRecommendation/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsRecommendation/seedResourceId": seed_resource_id +"/youtube:v3/ActivityContentDetailsSocial": activity_content_details_social +"/youtube:v3/ActivityContentDetailsSocial/author": author +"/youtube:v3/ActivityContentDetailsSocial/imageUrl": image_url +"/youtube:v3/ActivityContentDetailsSocial/referenceUrl": reference_url +"/youtube:v3/ActivityContentDetailsSocial/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsSocial/type": type +"/youtube:v3/ActivityContentDetailsSubscription": activity_content_details_subscription +"/youtube:v3/ActivityContentDetailsSubscription/resourceId": resource_id +"/youtube:v3/ActivityContentDetailsUpload": activity_content_details_upload +"/youtube:v3/ActivityContentDetailsUpload/videoId": video_id +"/youtube:v3/ActivityListResponse/etag": etag +"/youtube:v3/ActivityListResponse/eventId": event_id +"/youtube:v3/ActivityListResponse/items": items +"/youtube:v3/ActivityListResponse/items/item": item +"/youtube:v3/ActivityListResponse/kind": kind +"/youtube:v3/ActivityListResponse/nextPageToken": next_page_token +"/youtube:v3/ActivityListResponse/pageInfo": page_info +"/youtube:v3/ActivityListResponse/prevPageToken": prev_page_token +"/youtube:v3/ActivityListResponse/tokenPagination": token_pagination +"/youtube:v3/ActivityListResponse/visitorId": visitor_id +"/youtube:v3/ActivitySnippet": activity_snippet +"/youtube:v3/ActivitySnippet/channelId": channel_id +"/youtube:v3/ActivitySnippet/channelTitle": channel_title +"/youtube:v3/ActivitySnippet/description": description +"/youtube:v3/ActivitySnippet/groupId": group_id +"/youtube:v3/ActivitySnippet/publishedAt": published_at +"/youtube:v3/ActivitySnippet/thumbnails": thumbnails +"/youtube:v3/ActivitySnippet/title": title +"/youtube:v3/ActivitySnippet/type": type +"/youtube:v3/Caption": caption +"/youtube:v3/Caption/etag": etag +"/youtube:v3/Caption/id": id +"/youtube:v3/Caption/kind": kind +"/youtube:v3/Caption/snippet": snippet +"/youtube:v3/CaptionListResponse/etag": etag +"/youtube:v3/CaptionListResponse/eventId": event_id +"/youtube:v3/CaptionListResponse/items": items +"/youtube:v3/CaptionListResponse/items/item": item +"/youtube:v3/CaptionListResponse/kind": kind +"/youtube:v3/CaptionListResponse/visitorId": visitor_id +"/youtube:v3/CaptionSnippet": caption_snippet +"/youtube:v3/CaptionSnippet/audioTrackType": audio_track_type +"/youtube:v3/CaptionSnippet/failureReason": failure_reason +"/youtube:v3/CaptionSnippet/isAutoSynced": is_auto_synced +"/youtube:v3/CaptionSnippet/isCC": is_cc +"/youtube:v3/CaptionSnippet/isDraft": is_draft +"/youtube:v3/CaptionSnippet/isEasyReader": is_easy_reader +"/youtube:v3/CaptionSnippet/isLarge": is_large +"/youtube:v3/CaptionSnippet/language": language +"/youtube:v3/CaptionSnippet/lastUpdated": last_updated +"/youtube:v3/CaptionSnippet/name": name +"/youtube:v3/CaptionSnippet/status": status +"/youtube:v3/CaptionSnippet/trackKind": track_kind +"/youtube:v3/CaptionSnippet/videoId": video_id +"/youtube:v3/CdnSettings": cdn_settings +"/youtube:v3/CdnSettings/format": format +"/youtube:v3/CdnSettings/ingestionInfo": ingestion_info +"/youtube:v3/CdnSettings/ingestionType": ingestion_type +"/youtube:v3/Channel": channel +"/youtube:v3/Channel/auditDetails": audit_details +"/youtube:v3/Channel/brandingSettings": branding_settings +"/youtube:v3/Channel/contentDetails": content_details +"/youtube:v3/Channel/contentOwnerDetails": content_owner_details +"/youtube:v3/Channel/conversionPings": conversion_pings +"/youtube:v3/Channel/etag": etag +"/youtube:v3/Channel/id": id +"/youtube:v3/Channel/invideoPromotion": invideo_promotion +"/youtube:v3/Channel/kind": kind +"/youtube:v3/Channel/localizations": localizations +"/youtube:v3/Channel/localizations/localization": localization +"/youtube:v3/Channel/snippet": snippet +"/youtube:v3/Channel/statistics": statistics +"/youtube:v3/Channel/status": status +"/youtube:v3/Channel/topicDetails": topic_details +"/youtube:v3/ChannelAuditDetails": channel_audit_details +"/youtube:v3/ChannelAuditDetails/communityGuidelinesGoodStanding": community_guidelines_good_standing +"/youtube:v3/ChannelAuditDetails/contentIdClaimsGoodStanding": content_id_claims_good_standing +"/youtube:v3/ChannelAuditDetails/copyrightStrikesGoodStanding": copyright_strikes_good_standing +"/youtube:v3/ChannelAuditDetails/overallGoodStanding": overall_good_standing +"/youtube:v3/ChannelBannerResource": channel_banner_resource +"/youtube:v3/ChannelBannerResource/etag": etag +"/youtube:v3/ChannelBannerResource/kind": kind +"/youtube:v3/ChannelBannerResource/url": url +"/youtube:v3/ChannelBrandingSettings": channel_branding_settings +"/youtube:v3/ChannelBrandingSettings/channel": channel +"/youtube:v3/ChannelBrandingSettings/hints": hints +"/youtube:v3/ChannelBrandingSettings/hints/hint": hint +"/youtube:v3/ChannelBrandingSettings/image": image +"/youtube:v3/ChannelBrandingSettings/watch": watch +"/youtube:v3/ChannelContentDetails": channel_content_details +"/youtube:v3/ChannelContentDetails/googlePlusUserId": google_plus_user_id +"/youtube:v3/ChannelContentDetails/relatedPlaylists": related_playlists +"/youtube:v3/ChannelContentDetails/relatedPlaylists/favorites": favorites +"/youtube:v3/ChannelContentDetails/relatedPlaylists/likes": likes +"/youtube:v3/ChannelContentDetails/relatedPlaylists/uploads": uploads +"/youtube:v3/ChannelContentDetails/relatedPlaylists/watchHistory": watch_history +"/youtube:v3/ChannelContentDetails/relatedPlaylists/watchLater": watch_later +"/youtube:v3/ChannelContentOwnerDetails": channel_content_owner_details +"/youtube:v3/ChannelContentOwnerDetails/contentOwner": content_owner +"/youtube:v3/ChannelContentOwnerDetails/timeLinked": time_linked +"/youtube:v3/ChannelConversionPing": channel_conversion_ping +"/youtube:v3/ChannelConversionPing/context": context +"/youtube:v3/ChannelConversionPing/conversionUrl": conversion_url +"/youtube:v3/ChannelConversionPings": channel_conversion_pings +"/youtube:v3/ChannelConversionPings/pings": pings +"/youtube:v3/ChannelConversionPings/pings/ping": ping +"/youtube:v3/ChannelId": channel_id +"/youtube:v3/ChannelId/value": value +"/youtube:v3/ChannelListResponse/etag": etag +"/youtube:v3/ChannelListResponse/eventId": event_id +"/youtube:v3/ChannelListResponse/items": items +"/youtube:v3/ChannelListResponse/items/item": item +"/youtube:v3/ChannelListResponse/kind": kind +"/youtube:v3/ChannelListResponse/nextPageToken": next_page_token +"/youtube:v3/ChannelListResponse/pageInfo": page_info +"/youtube:v3/ChannelListResponse/prevPageToken": prev_page_token +"/youtube:v3/ChannelListResponse/tokenPagination": token_pagination +"/youtube:v3/ChannelListResponse/visitorId": visitor_id +"/youtube:v3/ChannelLocalization": channel_localization +"/youtube:v3/ChannelLocalization/description": description +"/youtube:v3/ChannelLocalization/title": title +"/youtube:v3/ChannelSection": channel_section +"/youtube:v3/ChannelSection/contentDetails": content_details +"/youtube:v3/ChannelSection/etag": etag +"/youtube:v3/ChannelSection/id": id +"/youtube:v3/ChannelSection/kind": kind +"/youtube:v3/ChannelSection/localizations": localizations +"/youtube:v3/ChannelSection/localizations/localization": localization +"/youtube:v3/ChannelSection/snippet": snippet +"/youtube:v3/ChannelSection/targeting": targeting +"/youtube:v3/ChannelSectionContentDetails": channel_section_content_details +"/youtube:v3/ChannelSectionContentDetails/channels": channels +"/youtube:v3/ChannelSectionContentDetails/channels/channel": channel +"/youtube:v3/ChannelSectionContentDetails/playlists": playlists +"/youtube:v3/ChannelSectionContentDetails/playlists/playlist": playlist +"/youtube:v3/ChannelSectionListResponse/etag": etag +"/youtube:v3/ChannelSectionListResponse/eventId": event_id +"/youtube:v3/ChannelSectionListResponse/items": items +"/youtube:v3/ChannelSectionListResponse/items/item": item +"/youtube:v3/ChannelSectionListResponse/kind": kind +"/youtube:v3/ChannelSectionListResponse/visitorId": visitor_id +"/youtube:v3/ChannelSectionLocalization": channel_section_localization +"/youtube:v3/ChannelSectionLocalization/title": title +"/youtube:v3/ChannelSectionSnippet": channel_section_snippet +"/youtube:v3/ChannelSectionSnippet/channelId": channel_id +"/youtube:v3/ChannelSectionSnippet/defaultLanguage": default_language +"/youtube:v3/ChannelSectionSnippet/localized": localized +"/youtube:v3/ChannelSectionSnippet/position": position +"/youtube:v3/ChannelSectionSnippet/style": style +"/youtube:v3/ChannelSectionSnippet/title": title +"/youtube:v3/ChannelSectionSnippet/type": type +"/youtube:v3/ChannelSectionTargeting": channel_section_targeting +"/youtube:v3/ChannelSectionTargeting/countries": countries +"/youtube:v3/ChannelSectionTargeting/countries/country": country +"/youtube:v3/ChannelSectionTargeting/languages": languages +"/youtube:v3/ChannelSectionTargeting/languages/language": language +"/youtube:v3/ChannelSectionTargeting/regions": regions +"/youtube:v3/ChannelSectionTargeting/regions/region": region +"/youtube:v3/ChannelSettings": channel_settings +"/youtube:v3/ChannelSettings/country": country +"/youtube:v3/ChannelSettings/defaultLanguage": default_language +"/youtube:v3/ChannelSettings/defaultTab": default_tab +"/youtube:v3/ChannelSettings/description": description +"/youtube:v3/ChannelSettings/featuredChannelsTitle": featured_channels_title +"/youtube:v3/ChannelSettings/featuredChannelsUrls": featured_channels_urls +"/youtube:v3/ChannelSettings/featuredChannelsUrls/featured_channels_url": featured_channels_url +"/youtube:v3/ChannelSettings/keywords": keywords +"/youtube:v3/ChannelSettings/moderateComments": moderate_comments +"/youtube:v3/ChannelSettings/profileColor": profile_color +"/youtube:v3/ChannelSettings/showBrowseView": show_browse_view +"/youtube:v3/ChannelSettings/showRelatedChannels": show_related_channels +"/youtube:v3/ChannelSettings/title": title +"/youtube:v3/ChannelSettings/trackingAnalyticsAccountId": tracking_analytics_account_id +"/youtube:v3/ChannelSettings/unsubscribedTrailer": unsubscribed_trailer +"/youtube:v3/ChannelSnippet": channel_snippet +"/youtube:v3/ChannelSnippet/country": country +"/youtube:v3/ChannelSnippet/defaultLanguage": default_language +"/youtube:v3/ChannelSnippet/description": description +"/youtube:v3/ChannelSnippet/localized": localized +"/youtube:v3/ChannelSnippet/publishedAt": published_at +"/youtube:v3/ChannelSnippet/thumbnails": thumbnails +"/youtube:v3/ChannelSnippet/title": title +"/youtube:v3/ChannelStatistics": channel_statistics +"/youtube:v3/ChannelStatistics/commentCount": comment_count +"/youtube:v3/ChannelStatistics/hiddenSubscriberCount": hidden_subscriber_count +"/youtube:v3/ChannelStatistics/subscriberCount": subscriber_count +"/youtube:v3/ChannelStatistics/videoCount": video_count +"/youtube:v3/ChannelStatistics/viewCount": view_count +"/youtube:v3/ChannelStatus": channel_status +"/youtube:v3/ChannelStatus/isLinked": is_linked +"/youtube:v3/ChannelStatus/longUploadsStatus": long_uploads_status +"/youtube:v3/ChannelStatus/privacyStatus": privacy_status +"/youtube:v3/ChannelTopicDetails": channel_topic_details +"/youtube:v3/ChannelTopicDetails/topicIds": topic_ids +"/youtube:v3/ChannelTopicDetails/topicIds/topic_id": topic_id +"/youtube:v3/Comment": comment +"/youtube:v3/Comment/etag": etag +"/youtube:v3/Comment/id": id +"/youtube:v3/Comment/kind": kind +"/youtube:v3/Comment/snippet": snippet +"/youtube:v3/CommentListResponse/etag": etag +"/youtube:v3/CommentListResponse/eventId": event_id +"/youtube:v3/CommentListResponse/items": items +"/youtube:v3/CommentListResponse/items/item": item +"/youtube:v3/CommentListResponse/kind": kind +"/youtube:v3/CommentListResponse/nextPageToken": next_page_token +"/youtube:v3/CommentListResponse/pageInfo": page_info +"/youtube:v3/CommentListResponse/tokenPagination": token_pagination +"/youtube:v3/CommentListResponse/visitorId": visitor_id +"/youtube:v3/CommentSnippet": comment_snippet +"/youtube:v3/CommentSnippet/authorChannelId": author_channel_id +"/youtube:v3/CommentSnippet/authorChannelUrl": author_channel_url +"/youtube:v3/CommentSnippet/authorDisplayName": author_display_name +"/youtube:v3/CommentSnippet/authorGoogleplusProfileUrl": author_googleplus_profile_url +"/youtube:v3/CommentSnippet/authorProfileImageUrl": author_profile_image_url +"/youtube:v3/CommentSnippet/canRate": can_rate +"/youtube:v3/CommentSnippet/channelId": channel_id +"/youtube:v3/CommentSnippet/likeCount": like_count +"/youtube:v3/CommentSnippet/moderationStatus": moderation_status +"/youtube:v3/CommentSnippet/parentId": parent_id +"/youtube:v3/CommentSnippet/publishedAt": published_at +"/youtube:v3/CommentSnippet/textDisplay": text_display +"/youtube:v3/CommentSnippet/textOriginal": text_original +"/youtube:v3/CommentSnippet/updatedAt": updated_at +"/youtube:v3/CommentSnippet/videoId": video_id +"/youtube:v3/CommentSnippet/viewerRating": viewer_rating +"/youtube:v3/CommentThread": comment_thread +"/youtube:v3/CommentThread/etag": etag +"/youtube:v3/CommentThread/id": id +"/youtube:v3/CommentThread/kind": kind +"/youtube:v3/CommentThread/replies": replies +"/youtube:v3/CommentThread/snippet": snippet +"/youtube:v3/CommentThreadListResponse/etag": etag +"/youtube:v3/CommentThreadListResponse/eventId": event_id +"/youtube:v3/CommentThreadListResponse/items": items +"/youtube:v3/CommentThreadListResponse/items/item": item +"/youtube:v3/CommentThreadListResponse/kind": kind +"/youtube:v3/CommentThreadListResponse/nextPageToken": next_page_token +"/youtube:v3/CommentThreadListResponse/pageInfo": page_info +"/youtube:v3/CommentThreadListResponse/tokenPagination": token_pagination +"/youtube:v3/CommentThreadListResponse/visitorId": visitor_id +"/youtube:v3/CommentThreadReplies": comment_thread_replies +"/youtube:v3/CommentThreadReplies/comments": comments +"/youtube:v3/CommentThreadReplies/comments/comment": comment +"/youtube:v3/CommentThreadSnippet": comment_thread_snippet +"/youtube:v3/CommentThreadSnippet/canReply": can_reply +"/youtube:v3/CommentThreadSnippet/channelId": channel_id +"/youtube:v3/CommentThreadSnippet/isPublic": is_public +"/youtube:v3/CommentThreadSnippet/topLevelComment": top_level_comment +"/youtube:v3/CommentThreadSnippet/totalReplyCount": total_reply_count +"/youtube:v3/CommentThreadSnippet/videoId": video_id +"/youtube:v3/ContentRating": content_rating +"/youtube:v3/ContentRating/acbRating": acb_rating +"/youtube:v3/ContentRating/agcomRating": agcom_rating +"/youtube:v3/ContentRating/anatelRating": anatel_rating +"/youtube:v3/ContentRating/bbfcRating": bbfc_rating +"/youtube:v3/ContentRating/bfvcRating": bfvc_rating +"/youtube:v3/ContentRating/bmukkRating": bmukk_rating +"/youtube:v3/ContentRating/catvRating": catv_rating +"/youtube:v3/ContentRating/catvfrRating": catvfr_rating +"/youtube:v3/ContentRating/cbfcRating": cbfc_rating +"/youtube:v3/ContentRating/cccRating": ccc_rating +"/youtube:v3/ContentRating/cceRating": cce_rating +"/youtube:v3/ContentRating/chfilmRating": chfilm_rating +"/youtube:v3/ContentRating/chvrsRating": chvrs_rating +"/youtube:v3/ContentRating/cicfRating": cicf_rating +"/youtube:v3/ContentRating/cnaRating": cna_rating +"/youtube:v3/ContentRating/csaRating": csa_rating +"/youtube:v3/ContentRating/cscfRating": cscf_rating +"/youtube:v3/ContentRating/czfilmRating": czfilm_rating +"/youtube:v3/ContentRating/djctqRating": djctq_rating +"/youtube:v3/ContentRating/djctqRatingReasons": djctq_rating_reasons +"/youtube:v3/ContentRating/djctqRatingReasons/djctq_rating_reason": djctq_rating_reason +"/youtube:v3/ContentRating/eefilmRating": eefilm_rating +"/youtube:v3/ContentRating/egfilmRating": egfilm_rating +"/youtube:v3/ContentRating/eirinRating": eirin_rating +"/youtube:v3/ContentRating/fcbmRating": fcbm_rating +"/youtube:v3/ContentRating/fcoRating": fco_rating +"/youtube:v3/ContentRating/fmocRating": fmoc_rating +"/youtube:v3/ContentRating/fpbRating": fpb_rating +"/youtube:v3/ContentRating/fskRating": fsk_rating +"/youtube:v3/ContentRating/grfilmRating": grfilm_rating +"/youtube:v3/ContentRating/icaaRating": icaa_rating +"/youtube:v3/ContentRating/ifcoRating": ifco_rating +"/youtube:v3/ContentRating/ilfilmRating": ilfilm_rating +"/youtube:v3/ContentRating/incaaRating": incaa_rating +"/youtube:v3/ContentRating/kfcbRating": kfcb_rating +"/youtube:v3/ContentRating/kijkwijzerRating": kijkwijzer_rating +"/youtube:v3/ContentRating/kmrbRating": kmrb_rating +"/youtube:v3/ContentRating/lsfRating": lsf_rating +"/youtube:v3/ContentRating/mccaaRating": mccaa_rating +"/youtube:v3/ContentRating/mccypRating": mccyp_rating +"/youtube:v3/ContentRating/mdaRating": mda_rating +"/youtube:v3/ContentRating/medietilsynetRating": medietilsynet_rating +"/youtube:v3/ContentRating/mekuRating": meku_rating +"/youtube:v3/ContentRating/mibacRating": mibac_rating +"/youtube:v3/ContentRating/mocRating": moc_rating +"/youtube:v3/ContentRating/moctwRating": moctw_rating +"/youtube:v3/ContentRating/mpaaRating": mpaa_rating +"/youtube:v3/ContentRating/mtrcbRating": mtrcb_rating +"/youtube:v3/ContentRating/nbcRating": nbc_rating +"/youtube:v3/ContentRating/nbcplRating": nbcpl_rating +"/youtube:v3/ContentRating/nfrcRating": nfrc_rating +"/youtube:v3/ContentRating/nfvcbRating": nfvcb_rating +"/youtube:v3/ContentRating/nkclvRating": nkclv_rating +"/youtube:v3/ContentRating/oflcRating": oflc_rating +"/youtube:v3/ContentRating/pefilmRating": pefilm_rating +"/youtube:v3/ContentRating/rcnofRating": rcnof_rating +"/youtube:v3/ContentRating/resorteviolenciaRating": resorteviolencia_rating +"/youtube:v3/ContentRating/rtcRating": rtc_rating +"/youtube:v3/ContentRating/rteRating": rte_rating +"/youtube:v3/ContentRating/russiaRating": russia_rating +"/youtube:v3/ContentRating/skfilmRating": skfilm_rating +"/youtube:v3/ContentRating/smaisRating": smais_rating +"/youtube:v3/ContentRating/smsaRating": smsa_rating +"/youtube:v3/ContentRating/tvpgRating": tvpg_rating +"/youtube:v3/ContentRating/ytRating": yt_rating +"/youtube:v3/GeoPoint": geo_point +"/youtube:v3/GeoPoint/altitude": altitude +"/youtube:v3/GeoPoint/latitude": latitude +"/youtube:v3/GeoPoint/longitude": longitude +"/youtube:v3/GuideCategory": guide_category +"/youtube:v3/GuideCategory/etag": etag +"/youtube:v3/GuideCategory/id": id +"/youtube:v3/GuideCategory/kind": kind +"/youtube:v3/GuideCategory/snippet": snippet +"/youtube:v3/GuideCategoryListResponse/etag": etag +"/youtube:v3/GuideCategoryListResponse/eventId": event_id +"/youtube:v3/GuideCategoryListResponse/items": items +"/youtube:v3/GuideCategoryListResponse/items/item": item +"/youtube:v3/GuideCategoryListResponse/kind": kind +"/youtube:v3/GuideCategoryListResponse/nextPageToken": next_page_token +"/youtube:v3/GuideCategoryListResponse/pageInfo": page_info +"/youtube:v3/GuideCategoryListResponse/prevPageToken": prev_page_token +"/youtube:v3/GuideCategoryListResponse/tokenPagination": token_pagination +"/youtube:v3/GuideCategoryListResponse/visitorId": visitor_id +"/youtube:v3/GuideCategorySnippet": guide_category_snippet +"/youtube:v3/GuideCategorySnippet/channelId": channel_id +"/youtube:v3/GuideCategorySnippet/title": title +"/youtube:v3/I18nLanguage": i18n_language +"/youtube:v3/I18nLanguage/etag": etag +"/youtube:v3/I18nLanguage/id": id +"/youtube:v3/I18nLanguage/kind": kind +"/youtube:v3/I18nLanguage/snippet": snippet +"/youtube:v3/I18nLanguageListResponse/etag": etag +"/youtube:v3/I18nLanguageListResponse/eventId": event_id +"/youtube:v3/I18nLanguageListResponse/items": items +"/youtube:v3/I18nLanguageListResponse/items/item": item +"/youtube:v3/I18nLanguageListResponse/kind": kind +"/youtube:v3/I18nLanguageListResponse/visitorId": visitor_id +"/youtube:v3/I18nLanguageSnippet": i18n_language_snippet +"/youtube:v3/I18nLanguageSnippet/hl": hl +"/youtube:v3/I18nLanguageSnippet/name": name +"/youtube:v3/I18nRegion": i18n_region +"/youtube:v3/I18nRegion/etag": etag +"/youtube:v3/I18nRegion/id": id +"/youtube:v3/I18nRegion/kind": kind +"/youtube:v3/I18nRegion/snippet": snippet +"/youtube:v3/I18nRegionListResponse/etag": etag +"/youtube:v3/I18nRegionListResponse/eventId": event_id +"/youtube:v3/I18nRegionListResponse/items": items +"/youtube:v3/I18nRegionListResponse/items/item": item +"/youtube:v3/I18nRegionListResponse/kind": kind +"/youtube:v3/I18nRegionListResponse/visitorId": visitor_id +"/youtube:v3/I18nRegionSnippet": i18n_region_snippet +"/youtube:v3/I18nRegionSnippet/gl": gl +"/youtube:v3/I18nRegionSnippet/name": name +"/youtube:v3/ImageSettings": image_settings +"/youtube:v3/ImageSettings/backgroundImageUrl": background_image_url +"/youtube:v3/ImageSettings/bannerExternalUrl": banner_external_url +"/youtube:v3/ImageSettings/bannerImageUrl": banner_image_url +"/youtube:v3/ImageSettings/bannerMobileExtraHdImageUrl": banner_mobile_extra_hd_image_url +"/youtube:v3/ImageSettings/bannerMobileHdImageUrl": banner_mobile_hd_image_url +"/youtube:v3/ImageSettings/bannerMobileImageUrl": banner_mobile_image_url +"/youtube:v3/ImageSettings/bannerMobileLowImageUrl": banner_mobile_low_image_url +"/youtube:v3/ImageSettings/bannerMobileMediumHdImageUrl": banner_mobile_medium_hd_image_url +"/youtube:v3/ImageSettings/bannerTabletExtraHdImageUrl": banner_tablet_extra_hd_image_url +"/youtube:v3/ImageSettings/bannerTabletHdImageUrl": banner_tablet_hd_image_url +"/youtube:v3/ImageSettings/bannerTabletImageUrl": banner_tablet_image_url +"/youtube:v3/ImageSettings/bannerTabletLowImageUrl": banner_tablet_low_image_url +"/youtube:v3/ImageSettings/bannerTvHighImageUrl": banner_tv_high_image_url +"/youtube:v3/ImageSettings/bannerTvImageUrl": banner_tv_image_url +"/youtube:v3/ImageSettings/bannerTvLowImageUrl": banner_tv_low_image_url +"/youtube:v3/ImageSettings/bannerTvMediumImageUrl": banner_tv_medium_image_url +"/youtube:v3/ImageSettings/largeBrandedBannerImageImapScript": large_branded_banner_image_imap_script +"/youtube:v3/ImageSettings/largeBrandedBannerImageUrl": large_branded_banner_image_url +"/youtube:v3/ImageSettings/smallBrandedBannerImageImapScript": small_branded_banner_image_imap_script +"/youtube:v3/ImageSettings/smallBrandedBannerImageUrl": small_branded_banner_image_url +"/youtube:v3/ImageSettings/trackingImageUrl": tracking_image_url +"/youtube:v3/ImageSettings/watchIconImageUrl": watch_icon_image_url +"/youtube:v3/IngestionInfo": ingestion_info +"/youtube:v3/IngestionInfo/backupIngestionAddress": backup_ingestion_address +"/youtube:v3/IngestionInfo/ingestionAddress": ingestion_address +"/youtube:v3/IngestionInfo/streamName": stream_name +"/youtube:v3/InvideoBranding": invideo_branding +"/youtube:v3/InvideoBranding/imageBytes": image_bytes +"/youtube:v3/InvideoBranding/imageUrl": image_url +"/youtube:v3/InvideoBranding/position": position +"/youtube:v3/InvideoBranding/targetChannelId": target_channel_id +"/youtube:v3/InvideoBranding/timing": timing +"/youtube:v3/InvideoPosition": invideo_position +"/youtube:v3/InvideoPosition/cornerPosition": corner_position +"/youtube:v3/InvideoPosition/type": type +"/youtube:v3/InvideoPromotion": invideo_promotion +"/youtube:v3/InvideoPromotion/defaultTiming": default_timing +"/youtube:v3/InvideoPromotion/items": items +"/youtube:v3/InvideoPromotion/items/item": item +"/youtube:v3/InvideoPromotion/position": position +"/youtube:v3/InvideoPromotion/useSmartTiming": use_smart_timing +"/youtube:v3/InvideoTiming": invideo_timing +"/youtube:v3/InvideoTiming/durationMs": duration_ms +"/youtube:v3/InvideoTiming/offsetMs": offset_ms +"/youtube:v3/InvideoTiming/type": type +"/youtube:v3/LanguageTag": language_tag +"/youtube:v3/LanguageTag/value": value +"/youtube:v3/LiveBroadcast": live_broadcast +"/youtube:v3/LiveBroadcast/contentDetails": content_details +"/youtube:v3/LiveBroadcast/etag": etag +"/youtube:v3/LiveBroadcast/id": id +"/youtube:v3/LiveBroadcast/kind": kind +"/youtube:v3/LiveBroadcast/snippet": snippet +"/youtube:v3/LiveBroadcast/statistics": statistics +"/youtube:v3/LiveBroadcast/status": status +"/youtube:v3/LiveBroadcast/topicDetails": topic_details +"/youtube:v3/LiveBroadcastContentDetails": live_broadcast_content_details +"/youtube:v3/LiveBroadcastContentDetails/boundStreamId": bound_stream_id +"/youtube:v3/LiveBroadcastContentDetails/enableClosedCaptions": enable_closed_captions +"/youtube:v3/LiveBroadcastContentDetails/enableContentEncryption": enable_content_encryption +"/youtube:v3/LiveBroadcastContentDetails/enableDvr": enable_dvr +"/youtube:v3/LiveBroadcastContentDetails/enableEmbed": enable_embed +"/youtube:v3/LiveBroadcastContentDetails/enableLowLatency": enable_low_latency +"/youtube:v3/LiveBroadcastContentDetails/monitorStream": monitor_stream +"/youtube:v3/LiveBroadcastContentDetails/recordFromStart": record_from_start +"/youtube:v3/LiveBroadcastContentDetails/startWithSlate": start_with_slate +"/youtube:v3/LiveBroadcastListResponse/etag": etag +"/youtube:v3/LiveBroadcastListResponse/eventId": event_id +"/youtube:v3/LiveBroadcastListResponse/items": items +"/youtube:v3/LiveBroadcastListResponse/items/item": item +"/youtube:v3/LiveBroadcastListResponse/kind": kind +"/youtube:v3/LiveBroadcastListResponse/nextPageToken": next_page_token +"/youtube:v3/LiveBroadcastListResponse/pageInfo": page_info +"/youtube:v3/LiveBroadcastListResponse/prevPageToken": prev_page_token +"/youtube:v3/LiveBroadcastListResponse/tokenPagination": token_pagination +"/youtube:v3/LiveBroadcastListResponse/visitorId": visitor_id +"/youtube:v3/LiveBroadcastSnippet": live_broadcast_snippet +"/youtube:v3/LiveBroadcastSnippet/actualEndTime": actual_end_time +"/youtube:v3/LiveBroadcastSnippet/actualStartTime": actual_start_time +"/youtube:v3/LiveBroadcastSnippet/channelId": channel_id +"/youtube:v3/LiveBroadcastSnippet/description": description +"/youtube:v3/LiveBroadcastSnippet/isDefaultBroadcast": is_default_broadcast +"/youtube:v3/LiveBroadcastSnippet/publishedAt": published_at +"/youtube:v3/LiveBroadcastSnippet/scheduledEndTime": scheduled_end_time +"/youtube:v3/LiveBroadcastSnippet/scheduledStartTime": scheduled_start_time +"/youtube:v3/LiveBroadcastSnippet/thumbnails": thumbnails +"/youtube:v3/LiveBroadcastSnippet/title": title +"/youtube:v3/LiveBroadcastStatistics": live_broadcast_statistics +"/youtube:v3/LiveBroadcastStatistics/concurrentViewers": concurrent_viewers +"/youtube:v3/LiveBroadcastStatistics/totalChatCount": total_chat_count +"/youtube:v3/LiveBroadcastStatus": live_broadcast_status +"/youtube:v3/LiveBroadcastStatus/lifeCycleStatus": life_cycle_status +"/youtube:v3/LiveBroadcastStatus/liveBroadcastPriority": live_broadcast_priority +"/youtube:v3/LiveBroadcastStatus/privacyStatus": privacy_status +"/youtube:v3/LiveBroadcastStatus/recordingStatus": recording_status +"/youtube:v3/LiveBroadcastTopic": live_broadcast_topic +"/youtube:v3/LiveBroadcastTopic/snippet": snippet +"/youtube:v3/LiveBroadcastTopic/type": type +"/youtube:v3/LiveBroadcastTopic/unmatched": unmatched +"/youtube:v3/LiveBroadcastTopicDetails": live_broadcast_topic_details +"/youtube:v3/LiveBroadcastTopicDetails/topics": topics +"/youtube:v3/LiveBroadcastTopicDetails/topics/topic": topic +"/youtube:v3/LiveBroadcastTopicSnippet": live_broadcast_topic_snippet +"/youtube:v3/LiveBroadcastTopicSnippet/name": name +"/youtube:v3/LiveBroadcastTopicSnippet/releaseDate": release_date +"/youtube:v3/LiveStream": live_stream +"/youtube:v3/LiveStream/cdn": cdn +"/youtube:v3/LiveStream/contentDetails": content_details +"/youtube:v3/LiveStream/etag": etag +"/youtube:v3/LiveStream/id": id +"/youtube:v3/LiveStream/kind": kind +"/youtube:v3/LiveStream/snippet": snippet +"/youtube:v3/LiveStream/status": status +"/youtube:v3/LiveStreamConfigurationIssue": live_stream_configuration_issue +"/youtube:v3/LiveStreamConfigurationIssue/description": description +"/youtube:v3/LiveStreamConfigurationIssue/reason": reason +"/youtube:v3/LiveStreamConfigurationIssue/severity": severity +"/youtube:v3/LiveStreamConfigurationIssue/type": type +"/youtube:v3/LiveStreamContentDetails": live_stream_content_details +"/youtube:v3/LiveStreamContentDetails/closedCaptionsIngestionUrl": closed_captions_ingestion_url +"/youtube:v3/LiveStreamContentDetails/isReusable": is_reusable +"/youtube:v3/LiveStreamHealthStatus": live_stream_health_status +"/youtube:v3/LiveStreamHealthStatus/configurationIssues": configuration_issues +"/youtube:v3/LiveStreamHealthStatus/configurationIssues/configuration_issue": configuration_issue +"/youtube:v3/LiveStreamHealthStatus/lastUpdateTimeS": last_update_time_s +"/youtube:v3/LiveStreamHealthStatus/status": status +"/youtube:v3/LiveStreamListResponse/etag": etag +"/youtube:v3/LiveStreamListResponse/eventId": event_id +"/youtube:v3/LiveStreamListResponse/items": items +"/youtube:v3/LiveStreamListResponse/items/item": item +"/youtube:v3/LiveStreamListResponse/kind": kind +"/youtube:v3/LiveStreamListResponse/nextPageToken": next_page_token +"/youtube:v3/LiveStreamListResponse/pageInfo": page_info +"/youtube:v3/LiveStreamListResponse/prevPageToken": prev_page_token +"/youtube:v3/LiveStreamListResponse/tokenPagination": token_pagination +"/youtube:v3/LiveStreamListResponse/visitorId": visitor_id +"/youtube:v3/LiveStreamSnippet": live_stream_snippet +"/youtube:v3/LiveStreamSnippet/channelId": channel_id +"/youtube:v3/LiveStreamSnippet/description": description +"/youtube:v3/LiveStreamSnippet/isDefaultStream": is_default_stream +"/youtube:v3/LiveStreamSnippet/publishedAt": published_at +"/youtube:v3/LiveStreamSnippet/title": title +"/youtube:v3/LiveStreamStatus": live_stream_status +"/youtube:v3/LiveStreamStatus/healthStatus": health_status +"/youtube:v3/LiveStreamStatus/streamStatus": stream_status +"/youtube:v3/LocalizedProperty": localized_property +"/youtube:v3/LocalizedProperty/default": default +"/youtube:v3/LocalizedProperty/defaultLanguage": default_language +"/youtube:v3/LocalizedProperty/localized": localized +"/youtube:v3/LocalizedProperty/localized/localized": localized +"/youtube:v3/LocalizedString": localized_string +"/youtube:v3/LocalizedString/language": language +"/youtube:v3/LocalizedString/value": value +"/youtube:v3/MonitorStreamInfo": monitor_stream_info +"/youtube:v3/MonitorStreamInfo/broadcastStreamDelayMs": broadcast_stream_delay_ms +"/youtube:v3/MonitorStreamInfo/embedHtml": embed_html +"/youtube:v3/MonitorStreamInfo/enableMonitorStream": enable_monitor_stream +"/youtube:v3/PageInfo": page_info +"/youtube:v3/PageInfo/resultsPerPage": results_per_page +"/youtube:v3/PageInfo/totalResults": total_results +"/youtube:v3/Playlist": playlist +"/youtube:v3/Playlist/contentDetails": content_details +"/youtube:v3/Playlist/etag": etag +"/youtube:v3/Playlist/id": id +"/youtube:v3/Playlist/kind": kind +"/youtube:v3/Playlist/localizations": localizations +"/youtube:v3/Playlist/localizations/localization": localization +"/youtube:v3/Playlist/player": player +"/youtube:v3/Playlist/snippet": snippet +"/youtube:v3/Playlist/status": status +"/youtube:v3/PlaylistContentDetails": playlist_content_details +"/youtube:v3/PlaylistContentDetails/itemCount": item_count +"/youtube:v3/PlaylistItem": playlist_item +"/youtube:v3/PlaylistItem/contentDetails": content_details +"/youtube:v3/PlaylistItem/etag": etag +"/youtube:v3/PlaylistItem/id": id +"/youtube:v3/PlaylistItem/kind": kind +"/youtube:v3/PlaylistItem/snippet": snippet +"/youtube:v3/PlaylistItem/status": status +"/youtube:v3/PlaylistItemContentDetails": playlist_item_content_details +"/youtube:v3/PlaylistItemContentDetails/endAt": end_at +"/youtube:v3/PlaylistItemContentDetails/note": note +"/youtube:v3/PlaylistItemContentDetails/startAt": start_at +"/youtube:v3/PlaylistItemContentDetails/videoId": video_id +"/youtube:v3/PlaylistItemListResponse/etag": etag +"/youtube:v3/PlaylistItemListResponse/eventId": event_id +"/youtube:v3/PlaylistItemListResponse/items": items +"/youtube:v3/PlaylistItemListResponse/items/item": item +"/youtube:v3/PlaylistItemListResponse/kind": kind +"/youtube:v3/PlaylistItemListResponse/nextPageToken": next_page_token +"/youtube:v3/PlaylistItemListResponse/pageInfo": page_info +"/youtube:v3/PlaylistItemListResponse/prevPageToken": prev_page_token +"/youtube:v3/PlaylistItemListResponse/tokenPagination": token_pagination +"/youtube:v3/PlaylistItemListResponse/visitorId": visitor_id +"/youtube:v3/PlaylistItemSnippet": playlist_item_snippet +"/youtube:v3/PlaylistItemSnippet/channelId": channel_id +"/youtube:v3/PlaylistItemSnippet/channelTitle": channel_title +"/youtube:v3/PlaylistItemSnippet/description": description +"/youtube:v3/PlaylistItemSnippet/playlistId": playlist_id +"/youtube:v3/PlaylistItemSnippet/position": position +"/youtube:v3/PlaylistItemSnippet/publishedAt": published_at +"/youtube:v3/PlaylistItemSnippet/resourceId": resource_id +"/youtube:v3/PlaylistItemSnippet/thumbnails": thumbnails +"/youtube:v3/PlaylistItemSnippet/title": title +"/youtube:v3/PlaylistItemStatus": playlist_item_status +"/youtube:v3/PlaylistItemStatus/privacyStatus": privacy_status +"/youtube:v3/PlaylistListResponse/etag": etag +"/youtube:v3/PlaylistListResponse/eventId": event_id +"/youtube:v3/PlaylistListResponse/items": items +"/youtube:v3/PlaylistListResponse/items/item": item +"/youtube:v3/PlaylistListResponse/kind": kind +"/youtube:v3/PlaylistListResponse/nextPageToken": next_page_token +"/youtube:v3/PlaylistListResponse/pageInfo": page_info +"/youtube:v3/PlaylistListResponse/prevPageToken": prev_page_token +"/youtube:v3/PlaylistListResponse/tokenPagination": token_pagination +"/youtube:v3/PlaylistListResponse/visitorId": visitor_id +"/youtube:v3/PlaylistLocalization": playlist_localization +"/youtube:v3/PlaylistLocalization/description": description +"/youtube:v3/PlaylistLocalization/title": title +"/youtube:v3/PlaylistPlayer": playlist_player +"/youtube:v3/PlaylistPlayer/embedHtml": embed_html +"/youtube:v3/PlaylistSnippet": playlist_snippet +"/youtube:v3/PlaylistSnippet/channelId": channel_id +"/youtube:v3/PlaylistSnippet/channelTitle": channel_title +"/youtube:v3/PlaylistSnippet/defaultLanguage": default_language +"/youtube:v3/PlaylistSnippet/description": description +"/youtube:v3/PlaylistSnippet/localized": localized +"/youtube:v3/PlaylistSnippet/publishedAt": published_at +"/youtube:v3/PlaylistSnippet/tags": tags +"/youtube:v3/PlaylistSnippet/tags/tag": tag +"/youtube:v3/PlaylistSnippet/thumbnails": thumbnails +"/youtube:v3/PlaylistSnippet/title": title +"/youtube:v3/PlaylistStatus": playlist_status +"/youtube:v3/PlaylistStatus/privacyStatus": privacy_status +"/youtube:v3/PromotedItem": promoted_item +"/youtube:v3/PromotedItem/customMessage": custom_message +"/youtube:v3/PromotedItem/id": id +"/youtube:v3/PromotedItem/promotedByContentOwner": promoted_by_content_owner +"/youtube:v3/PromotedItem/timing": timing +"/youtube:v3/PromotedItemId": promoted_item_id +"/youtube:v3/PromotedItemId/recentlyUploadedBy": recently_uploaded_by +"/youtube:v3/PromotedItemId/type": type +"/youtube:v3/PromotedItemId/videoId": video_id +"/youtube:v3/PromotedItemId/websiteUrl": website_url +"/youtube:v3/PropertyValue": property_value +"/youtube:v3/PropertyValue/property": property +"/youtube:v3/PropertyValue/value": value +"/youtube:v3/ResourceId": resource_id +"/youtube:v3/ResourceId/channelId": channel_id +"/youtube:v3/ResourceId/kind": kind +"/youtube:v3/ResourceId/playlistId": playlist_id +"/youtube:v3/ResourceId/videoId": video_id +"/youtube:v3/SearchListResponse/etag": etag +"/youtube:v3/SearchListResponse/eventId": event_id +"/youtube:v3/SearchListResponse/items": items +"/youtube:v3/SearchListResponse/items/item": item +"/youtube:v3/SearchListResponse/kind": kind +"/youtube:v3/SearchListResponse/nextPageToken": next_page_token +"/youtube:v3/SearchListResponse/pageInfo": page_info +"/youtube:v3/SearchListResponse/prevPageToken": prev_page_token +"/youtube:v3/SearchListResponse/tokenPagination": token_pagination +"/youtube:v3/SearchListResponse/visitorId": visitor_id +"/youtube:v3/SearchResult": search_result +"/youtube:v3/SearchResult/etag": etag +"/youtube:v3/SearchResult/id": id +"/youtube:v3/SearchResult/kind": kind +"/youtube:v3/SearchResult/snippet": snippet +"/youtube:v3/SearchResultSnippet": search_result_snippet +"/youtube:v3/SearchResultSnippet/channelId": channel_id +"/youtube:v3/SearchResultSnippet/channelTitle": channel_title +"/youtube:v3/SearchResultSnippet/description": description +"/youtube:v3/SearchResultSnippet/liveBroadcastContent": live_broadcast_content +"/youtube:v3/SearchResultSnippet/publishedAt": published_at +"/youtube:v3/SearchResultSnippet/thumbnails": thumbnails +"/youtube:v3/SearchResultSnippet/title": title +"/youtube:v3/Subscription": subscription +"/youtube:v3/Subscription/contentDetails": content_details +"/youtube:v3/Subscription/etag": etag +"/youtube:v3/Subscription/id": id +"/youtube:v3/Subscription/kind": kind +"/youtube:v3/Subscription/snippet": snippet +"/youtube:v3/Subscription/subscriberSnippet": subscriber_snippet +"/youtube:v3/SubscriptionContentDetails": subscription_content_details +"/youtube:v3/SubscriptionContentDetails/activityType": activity_type +"/youtube:v3/SubscriptionContentDetails/newItemCount": new_item_count +"/youtube:v3/SubscriptionContentDetails/totalItemCount": total_item_count +"/youtube:v3/SubscriptionListResponse/etag": etag +"/youtube:v3/SubscriptionListResponse/eventId": event_id +"/youtube:v3/SubscriptionListResponse/items": items +"/youtube:v3/SubscriptionListResponse/items/item": item +"/youtube:v3/SubscriptionListResponse/kind": kind +"/youtube:v3/SubscriptionListResponse/nextPageToken": next_page_token +"/youtube:v3/SubscriptionListResponse/pageInfo": page_info +"/youtube:v3/SubscriptionListResponse/prevPageToken": prev_page_token +"/youtube:v3/SubscriptionListResponse/tokenPagination": token_pagination +"/youtube:v3/SubscriptionListResponse/visitorId": visitor_id +"/youtube:v3/SubscriptionSnippet": subscription_snippet +"/youtube:v3/SubscriptionSnippet/channelId": channel_id +"/youtube:v3/SubscriptionSnippet/channelTitle": channel_title +"/youtube:v3/SubscriptionSnippet/description": description +"/youtube:v3/SubscriptionSnippet/publishedAt": published_at +"/youtube:v3/SubscriptionSnippet/resourceId": resource_id +"/youtube:v3/SubscriptionSnippet/thumbnails": thumbnails +"/youtube:v3/SubscriptionSnippet/title": title +"/youtube:v3/SubscriptionSubscriberSnippet": subscription_subscriber_snippet +"/youtube:v3/SubscriptionSubscriberSnippet/channelId": channel_id +"/youtube:v3/SubscriptionSubscriberSnippet/description": description +"/youtube:v3/SubscriptionSubscriberSnippet/thumbnails": thumbnails +"/youtube:v3/SubscriptionSubscriberSnippet/title": title +"/youtube:v3/Thumbnail": thumbnail +"/youtube:v3/Thumbnail/height": height +"/youtube:v3/Thumbnail/url": url +"/youtube:v3/Thumbnail/width": width +"/youtube:v3/ThumbnailDetails": thumbnail_details +"/youtube:v3/ThumbnailDetails/default": default +"/youtube:v3/ThumbnailDetails/high": high +"/youtube:v3/ThumbnailDetails/maxres": maxres +"/youtube:v3/ThumbnailDetails/medium": medium +"/youtube:v3/ThumbnailDetails/standard": standard +"/youtube:v3/ThumbnailSetResponse/etag": etag +"/youtube:v3/ThumbnailSetResponse/eventId": event_id +"/youtube:v3/ThumbnailSetResponse/items": items +"/youtube:v3/ThumbnailSetResponse/items/item": item +"/youtube:v3/ThumbnailSetResponse/kind": kind +"/youtube:v3/ThumbnailSetResponse/visitorId": visitor_id +"/youtube:v3/TokenPagination": token_pagination +"/youtube:v3/Video": video +"/youtube:v3/Video/ageGating": age_gating +"/youtube:v3/Video/contentDetails": content_details +"/youtube:v3/Video/conversionPings": conversion_pings +"/youtube:v3/Video/etag": etag +"/youtube:v3/Video/fileDetails": file_details +"/youtube:v3/Video/id": id +"/youtube:v3/Video/kind": kind +"/youtube:v3/Video/liveStreamingDetails": live_streaming_details +"/youtube:v3/Video/localizations": localizations +"/youtube:v3/Video/localizations/localization": localization +"/youtube:v3/Video/monetizationDetails": monetization_details +"/youtube:v3/Video/player": player +"/youtube:v3/Video/processingDetails": processing_details +"/youtube:v3/Video/projectDetails": project_details +"/youtube:v3/Video/recordingDetails": recording_details +"/youtube:v3/Video/snippet": snippet +"/youtube:v3/Video/statistics": statistics +"/youtube:v3/Video/status": status +"/youtube:v3/Video/suggestions": suggestions +"/youtube:v3/Video/topicDetails": topic_details +"/youtube:v3/VideoAbuseReport": video_abuse_report +"/youtube:v3/VideoAbuseReport/comments": comments +"/youtube:v3/VideoAbuseReport/language": language +"/youtube:v3/VideoAbuseReport/reasonId": reason_id +"/youtube:v3/VideoAbuseReport/secondaryReasonId": secondary_reason_id +"/youtube:v3/VideoAbuseReport/videoId": video_id +"/youtube:v3/VideoAbuseReportReason": video_abuse_report_reason +"/youtube:v3/VideoAbuseReportReason/etag": etag +"/youtube:v3/VideoAbuseReportReason/id": id +"/youtube:v3/VideoAbuseReportReason/kind": kind +"/youtube:v3/VideoAbuseReportReason/snippet": snippet +"/youtube:v3/VideoAbuseReportReasonListResponse/etag": etag +"/youtube:v3/VideoAbuseReportReasonListResponse/eventId": event_id +"/youtube:v3/VideoAbuseReportReasonListResponse/items": items +"/youtube:v3/VideoAbuseReportReasonListResponse/items/item": item +"/youtube:v3/VideoAbuseReportReasonListResponse/kind": kind +"/youtube:v3/VideoAbuseReportReasonListResponse/visitorId": visitor_id +"/youtube:v3/VideoAbuseReportReasonSnippet": video_abuse_report_reason_snippet +"/youtube:v3/VideoAbuseReportReasonSnippet/label": label +"/youtube:v3/VideoAbuseReportReasonSnippet/secondaryReasons": secondary_reasons +"/youtube:v3/VideoAbuseReportReasonSnippet/secondaryReasons/secondary_reason": secondary_reason +"/youtube:v3/VideoAbuseReportSecondaryReason": video_abuse_report_secondary_reason +"/youtube:v3/VideoAbuseReportSecondaryReason/id": id +"/youtube:v3/VideoAbuseReportSecondaryReason/label": label +"/youtube:v3/VideoAgeGating": video_age_gating +"/youtube:v3/VideoAgeGating/alcoholContent": alcohol_content +"/youtube:v3/VideoAgeGating/restricted": restricted +"/youtube:v3/VideoAgeGating/videoGameRating": video_game_rating +"/youtube:v3/VideoCategory": video_category +"/youtube:v3/VideoCategory/etag": etag +"/youtube:v3/VideoCategory/id": id +"/youtube:v3/VideoCategory/kind": kind +"/youtube:v3/VideoCategory/snippet": snippet +"/youtube:v3/VideoCategoryListResponse/etag": etag +"/youtube:v3/VideoCategoryListResponse/eventId": event_id +"/youtube:v3/VideoCategoryListResponse/items": items +"/youtube:v3/VideoCategoryListResponse/items/item": item +"/youtube:v3/VideoCategoryListResponse/kind": kind +"/youtube:v3/VideoCategoryListResponse/nextPageToken": next_page_token +"/youtube:v3/VideoCategoryListResponse/pageInfo": page_info +"/youtube:v3/VideoCategoryListResponse/prevPageToken": prev_page_token +"/youtube:v3/VideoCategoryListResponse/tokenPagination": token_pagination +"/youtube:v3/VideoCategoryListResponse/visitorId": visitor_id +"/youtube:v3/VideoCategorySnippet": video_category_snippet +"/youtube:v3/VideoCategorySnippet/assignable": assignable +"/youtube:v3/VideoCategorySnippet/channelId": channel_id +"/youtube:v3/VideoCategorySnippet/title": title +"/youtube:v3/VideoContentDetails": video_content_details +"/youtube:v3/VideoContentDetails/caption": caption +"/youtube:v3/VideoContentDetails/contentRating": content_rating +"/youtube:v3/VideoContentDetails/countryRestriction": country_restriction +"/youtube:v3/VideoContentDetails/definition": definition +"/youtube:v3/VideoContentDetails/dimension": dimension +"/youtube:v3/VideoContentDetails/duration": duration +"/youtube:v3/VideoContentDetails/licensedContent": licensed_content +"/youtube:v3/VideoContentDetails/regionRestriction": region_restriction +"/youtube:v3/VideoContentDetailsRegionRestriction": video_content_details_region_restriction +"/youtube:v3/VideoContentDetailsRegionRestriction/allowed": allowed +"/youtube:v3/VideoContentDetailsRegionRestriction/allowed/allowed": allowed +"/youtube:v3/VideoContentDetailsRegionRestriction/blocked": blocked +"/youtube:v3/VideoContentDetailsRegionRestriction/blocked/blocked": blocked +"/youtube:v3/VideoConversionPing": video_conversion_ping +"/youtube:v3/VideoConversionPing/context": context +"/youtube:v3/VideoConversionPing/conversionUrl": conversion_url +"/youtube:v3/VideoConversionPings": video_conversion_pings +"/youtube:v3/VideoConversionPings/pings": pings +"/youtube:v3/VideoConversionPings/pings/ping": ping +"/youtube:v3/VideoFileDetails": video_file_details +"/youtube:v3/VideoFileDetails/audioStreams": audio_streams +"/youtube:v3/VideoFileDetails/audioStreams/audio_stream": audio_stream +"/youtube:v3/VideoFileDetails/bitrateBps": bitrate_bps +"/youtube:v3/VideoFileDetails/container": container +"/youtube:v3/VideoFileDetails/creationTime": creation_time +"/youtube:v3/VideoFileDetails/durationMs": duration_ms +"/youtube:v3/VideoFileDetails/fileName": file_name +"/youtube:v3/VideoFileDetails/fileSize": file_size +"/youtube:v3/VideoFileDetails/fileType": file_type +"/youtube:v3/VideoFileDetails/recordingLocation": recording_location +"/youtube:v3/VideoFileDetails/videoStreams": video_streams +"/youtube:v3/VideoFileDetails/videoStreams/video_stream": video_stream +"/youtube:v3/VideoFileDetailsAudioStream": video_file_details_audio_stream +"/youtube:v3/VideoFileDetailsAudioStream/bitrateBps": bitrate_bps +"/youtube:v3/VideoFileDetailsAudioStream/channelCount": channel_count +"/youtube:v3/VideoFileDetailsAudioStream/codec": codec +"/youtube:v3/VideoFileDetailsAudioStream/vendor": vendor +"/youtube:v3/VideoFileDetailsVideoStream": video_file_details_video_stream +"/youtube:v3/VideoFileDetailsVideoStream/aspectRatio": aspect_ratio +"/youtube:v3/VideoFileDetailsVideoStream/bitrateBps": bitrate_bps +"/youtube:v3/VideoFileDetailsVideoStream/codec": codec +"/youtube:v3/VideoFileDetailsVideoStream/frameRateFps": frame_rate_fps +"/youtube:v3/VideoFileDetailsVideoStream/heightPixels": height_pixels +"/youtube:v3/VideoFileDetailsVideoStream/rotation": rotation +"/youtube:v3/VideoFileDetailsVideoStream/vendor": vendor +"/youtube:v3/VideoFileDetailsVideoStream/widthPixels": width_pixels +"/youtube:v3/VideoGetRatingResponse/etag": etag +"/youtube:v3/VideoGetRatingResponse/eventId": event_id +"/youtube:v3/VideoGetRatingResponse/items": items +"/youtube:v3/VideoGetRatingResponse/items/item": item +"/youtube:v3/VideoGetRatingResponse/kind": kind +"/youtube:v3/VideoGetRatingResponse/visitorId": visitor_id +"/youtube:v3/VideoListResponse/etag": etag +"/youtube:v3/VideoListResponse/eventId": event_id +"/youtube:v3/VideoListResponse/items": items +"/youtube:v3/VideoListResponse/items/item": item +"/youtube:v3/VideoListResponse/kind": kind +"/youtube:v3/VideoListResponse/nextPageToken": next_page_token +"/youtube:v3/VideoListResponse/pageInfo": page_info +"/youtube:v3/VideoListResponse/prevPageToken": prev_page_token +"/youtube:v3/VideoListResponse/tokenPagination": token_pagination +"/youtube:v3/VideoListResponse/visitorId": visitor_id +"/youtube:v3/VideoLiveStreamingDetails": video_live_streaming_details +"/youtube:v3/VideoLiveStreamingDetails/actualEndTime": actual_end_time +"/youtube:v3/VideoLiveStreamingDetails/actualStartTime": actual_start_time +"/youtube:v3/VideoLiveStreamingDetails/concurrentViewers": concurrent_viewers +"/youtube:v3/VideoLiveStreamingDetails/scheduledEndTime": scheduled_end_time +"/youtube:v3/VideoLiveStreamingDetails/scheduledStartTime": scheduled_start_time +"/youtube:v3/VideoLocalization": video_localization +"/youtube:v3/VideoLocalization/description": description +"/youtube:v3/VideoLocalization/title": title +"/youtube:v3/VideoMonetizationDetails": video_monetization_details +"/youtube:v3/VideoMonetizationDetails/access": access +"/youtube:v3/VideoPlayer": video_player +"/youtube:v3/VideoPlayer/embedHtml": embed_html +"/youtube:v3/VideoProcessingDetails": video_processing_details +"/youtube:v3/VideoProcessingDetails/editorSuggestionsAvailability": editor_suggestions_availability +"/youtube:v3/VideoProcessingDetails/fileDetailsAvailability": file_details_availability +"/youtube:v3/VideoProcessingDetails/processingFailureReason": processing_failure_reason +"/youtube:v3/VideoProcessingDetails/processingIssuesAvailability": processing_issues_availability +"/youtube:v3/VideoProcessingDetails/processingProgress": processing_progress +"/youtube:v3/VideoProcessingDetails/processingStatus": processing_status +"/youtube:v3/VideoProcessingDetails/tagSuggestionsAvailability": tag_suggestions_availability +"/youtube:v3/VideoProcessingDetails/thumbnailsAvailability": thumbnails_availability +"/youtube:v3/VideoProcessingDetailsProcessingProgress": video_processing_details_processing_progress +"/youtube:v3/VideoProcessingDetailsProcessingProgress/partsProcessed": parts_processed +"/youtube:v3/VideoProcessingDetailsProcessingProgress/partsTotal": parts_total +"/youtube:v3/VideoProcessingDetailsProcessingProgress/timeLeftMs": time_left_ms +"/youtube:v3/VideoProjectDetails": video_project_details +"/youtube:v3/VideoProjectDetails/tags": tags +"/youtube:v3/VideoProjectDetails/tags/tag": tag +"/youtube:v3/VideoRating": video_rating +"/youtube:v3/VideoRating/rating": rating +"/youtube:v3/VideoRating/videoId": video_id +"/youtube:v3/VideoRecordingDetails": video_recording_details +"/youtube:v3/VideoRecordingDetails/location": location +"/youtube:v3/VideoRecordingDetails/locationDescription": location_description +"/youtube:v3/VideoRecordingDetails/recordingDate": recording_date +"/youtube:v3/VideoSnippet": video_snippet +"/youtube:v3/VideoSnippet/categoryId": category_id +"/youtube:v3/VideoSnippet/channelId": channel_id +"/youtube:v3/VideoSnippet/channelTitle": channel_title +"/youtube:v3/VideoSnippet/defaultAudioLanguage": default_audio_language +"/youtube:v3/VideoSnippet/defaultLanguage": default_language +"/youtube:v3/VideoSnippet/description": description +"/youtube:v3/VideoSnippet/liveBroadcastContent": live_broadcast_content +"/youtube:v3/VideoSnippet/localized": localized +"/youtube:v3/VideoSnippet/publishedAt": published_at +"/youtube:v3/VideoSnippet/tags": tags +"/youtube:v3/VideoSnippet/tags/tag": tag +"/youtube:v3/VideoSnippet/thumbnails": thumbnails +"/youtube:v3/VideoSnippet/title": title +"/youtube:v3/VideoStatistics": video_statistics +"/youtube:v3/VideoStatistics/commentCount": comment_count +"/youtube:v3/VideoStatistics/dislikeCount": dislike_count +"/youtube:v3/VideoStatistics/favoriteCount": favorite_count +"/youtube:v3/VideoStatistics/likeCount": like_count +"/youtube:v3/VideoStatistics/viewCount": view_count +"/youtube:v3/VideoStatus": video_status +"/youtube:v3/VideoStatus/embeddable": embeddable +"/youtube:v3/VideoStatus/failureReason": failure_reason +"/youtube:v3/VideoStatus/license": license +"/youtube:v3/VideoStatus/privacyStatus": privacy_status +"/youtube:v3/VideoStatus/publicStatsViewable": public_stats_viewable +"/youtube:v3/VideoStatus/publishAt": publish_at +"/youtube:v3/VideoStatus/rejectionReason": rejection_reason +"/youtube:v3/VideoStatus/uploadStatus": upload_status +"/youtube:v3/VideoSuggestions": video_suggestions +"/youtube:v3/VideoSuggestions/editorSuggestions": editor_suggestions +"/youtube:v3/VideoSuggestions/editorSuggestions/editor_suggestion": editor_suggestion +"/youtube:v3/VideoSuggestions/processingErrors": processing_errors +"/youtube:v3/VideoSuggestions/processingErrors/processing_error": processing_error +"/youtube:v3/VideoSuggestions/processingHints": processing_hints +"/youtube:v3/VideoSuggestions/processingHints/processing_hint": processing_hint +"/youtube:v3/VideoSuggestions/processingWarnings": processing_warnings +"/youtube:v3/VideoSuggestions/processingWarnings/processing_warning": processing_warning +"/youtube:v3/VideoSuggestions/tagSuggestions": tag_suggestions +"/youtube:v3/VideoSuggestions/tagSuggestions/tag_suggestion": tag_suggestion +"/youtube:v3/VideoSuggestionsTagSuggestion": video_suggestions_tag_suggestion +"/youtube:v3/VideoSuggestionsTagSuggestion/categoryRestricts": category_restricts +"/youtube:v3/VideoSuggestionsTagSuggestion/categoryRestricts/category_restrict": category_restrict +"/youtube:v3/VideoSuggestionsTagSuggestion/tag": tag +"/youtube:v3/VideoTopicDetails": video_topic_details +"/youtube:v3/VideoTopicDetails/relevantTopicIds": relevant_topic_ids +"/youtube:v3/VideoTopicDetails/relevantTopicIds/relevant_topic_id": relevant_topic_id +"/youtube:v3/VideoTopicDetails/topicIds": topic_ids +"/youtube:v3/VideoTopicDetails/topicIds/topic_id": topic_id +"/youtube:v3/WatchSettings": watch_settings +"/youtube:v3/WatchSettings/backgroundColor": background_color +"/youtube:v3/WatchSettings/featuredPlaylistId": featured_playlist_id +"/youtube:v3/WatchSettings/textColor": text_color +"/youtubeAnalytics:v1/fields": fields +"/youtubeAnalytics:v1/key": key +"/youtubeAnalytics:v1/quotaUser": quota_user +"/youtubeAnalytics:v1/userIp": user_ip +"/youtubeAnalytics:v1/youtubeAnalytics.batchReportDefinitions.list": list_batch_report_definitions +"/youtubeAnalytics:v1/youtubeAnalytics.batchReportDefinitions.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.batchReports.list": list_batch_reports +"/youtubeAnalytics:v1/youtubeAnalytics.batchReports.list/batchReportDefinitionId": batch_report_definition_id +"/youtubeAnalytics:v1/youtubeAnalytics.batchReports.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.delete": delete_group_item +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.delete/id": id +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.insert": insert_group_item +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.list": list_group_items +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.list/groupId": group_id +"/youtubeAnalytics:v1/youtubeAnalytics.groupItems.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groups.delete": delete_group +"/youtubeAnalytics:v1/youtubeAnalytics.groups.delete/id": id +"/youtubeAnalytics:v1/youtubeAnalytics.groups.delete/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groups.insert": insert_group +"/youtubeAnalytics:v1/youtubeAnalytics.groups.insert/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groups.list": list_groups +"/youtubeAnalytics:v1/youtubeAnalytics.groups.list/id": id +"/youtubeAnalytics:v1/youtubeAnalytics.groups.list/mine": mine +"/youtubeAnalytics:v1/youtubeAnalytics.groups.list/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.groups.update": update_group +"/youtubeAnalytics:v1/youtubeAnalytics.groups.update/onBehalfOfContentOwner": on_behalf_of_content_owner +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query": query_report +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/currency": currency +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/dimensions": dimensions +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/end-date": end_date +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/filters": filters +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/ids": ids +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/max-results": max_results +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/metrics": metrics +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/sort": sort +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/start-date": start_date +"/youtubeAnalytics:v1/youtubeAnalytics.reports.query/start-index": start_index +"/youtubeAnalytics:v1/BatchReport": batch_report +"/youtubeAnalytics:v1/BatchReport/id": id +"/youtubeAnalytics:v1/BatchReport/kind": kind +"/youtubeAnalytics:v1/BatchReport/outputs": outputs +"/youtubeAnalytics:v1/BatchReport/outputs/output": output +"/youtubeAnalytics:v1/BatchReport/outputs/output/downloadUrl": download_url +"/youtubeAnalytics:v1/BatchReport/outputs/output/format": format +"/youtubeAnalytics:v1/BatchReport/outputs/output/type": type +"/youtubeAnalytics:v1/BatchReport/reportId": report_id +"/youtubeAnalytics:v1/BatchReport/timeSpan": time_span +"/youtubeAnalytics:v1/BatchReport/timeSpan/endTime": end_time +"/youtubeAnalytics:v1/BatchReport/timeSpan/startTime": start_time +"/youtubeAnalytics:v1/BatchReport/timeUpdated": time_updated +"/youtubeAnalytics:v1/BatchReportDefinition": batch_report_definition +"/youtubeAnalytics:v1/BatchReportDefinition/id": id +"/youtubeAnalytics:v1/BatchReportDefinition/kind": kind +"/youtubeAnalytics:v1/BatchReportDefinition/name": name +"/youtubeAnalytics:v1/BatchReportDefinition/status": status +"/youtubeAnalytics:v1/BatchReportDefinition/type": type +"/youtubeAnalytics:v1/BatchReportDefinitionList": batch_report_definition_list +"/youtubeAnalytics:v1/BatchReportDefinitionList/items": items +"/youtubeAnalytics:v1/BatchReportDefinitionList/items/item": item +"/youtubeAnalytics:v1/BatchReportDefinitionList/kind": kind +"/youtubeAnalytics:v1/BatchReportList": batch_report_list +"/youtubeAnalytics:v1/BatchReportList/items": items +"/youtubeAnalytics:v1/BatchReportList/items/item": item +"/youtubeAnalytics:v1/BatchReportList/kind": kind +"/youtubeAnalytics:v1/Group": group +"/youtubeAnalytics:v1/Group/contentDetails": content_details +"/youtubeAnalytics:v1/Group/contentDetails/itemCount": item_count +"/youtubeAnalytics:v1/Group/contentDetails/itemType": item_type +"/youtubeAnalytics:v1/Group/etag": etag +"/youtubeAnalytics:v1/Group/id": id +"/youtubeAnalytics:v1/Group/kind": kind +"/youtubeAnalytics:v1/Group/snippet": snippet +"/youtubeAnalytics:v1/Group/snippet/publishedAt": published_at +"/youtubeAnalytics:v1/Group/snippet/title": title +"/youtubeAnalytics:v1/GroupItem": group_item +"/youtubeAnalytics:v1/GroupItem/etag": etag +"/youtubeAnalytics:v1/GroupItem/groupId": group_id +"/youtubeAnalytics:v1/GroupItem/id": id +"/youtubeAnalytics:v1/GroupItem/kind": kind +"/youtubeAnalytics:v1/GroupItem/resource": resource +"/youtubeAnalytics:v1/GroupItem/resource/id": id +"/youtubeAnalytics:v1/GroupItem/resource/kind": kind +"/youtubeAnalytics:v1/GroupItemListResponse/etag": etag +"/youtubeAnalytics:v1/GroupItemListResponse/items": items +"/youtubeAnalytics:v1/GroupItemListResponse/items/item": item +"/youtubeAnalytics:v1/GroupItemListResponse/kind": kind +"/youtubeAnalytics:v1/GroupListResponse/etag": etag +"/youtubeAnalytics:v1/GroupListResponse/items": items +"/youtubeAnalytics:v1/GroupListResponse/items/item": item +"/youtubeAnalytics:v1/GroupListResponse/kind": kind +"/youtubeAnalytics:v1/ResultTable": result_table +"/youtubeAnalytics:v1/ResultTable/columnHeaders": column_headers +"/youtubeAnalytics:v1/ResultTable/columnHeaders/column_header": column_header +"/youtubeAnalytics:v1/ResultTable/columnHeaders/column_header/columnType": column_type +"/youtubeAnalytics:v1/ResultTable/columnHeaders/column_header/dataType": data_type +"/youtubeAnalytics:v1/ResultTable/columnHeaders/column_header/name": name +"/youtubeAnalytics:v1/ResultTable/kind": kind +"/youtubeAnalytics:v1/ResultTable/rows": rows +"/youtubeAnalytics:v1/ResultTable/rows/row": row +"/youtubeAnalytics:v1/ResultTable/rows/row/row": row diff --git a/bin/generate-api b/bin/generate-api new file mode 100755 index 000000000..2c7b88f26 --- /dev/null +++ b/bin/generate-api @@ -0,0 +1,93 @@ +#!/usr/bin/env ruby + +# TODO - Repeated params + +require 'thor' +require 'open-uri' +require 'google/apis/discovery_v1' +require 'google/apis/generator' +require 'multi_json' +require 'logger' + +module Google + class ApiGenerator < Thor + include Thor::Actions + + Google::Apis::ClientOptions.default.application_name = "generate-api" + Google::Apis::ClientOptions.default.application_version = Google::Apis::VERSION + + Discovery = Google::Apis::DiscoveryV1 + + desc 'gen OUTDIR', 'Generate ruby API from an API description' + method_options url: :string, file: :string, id: :array, preferred_only: :boolean, verbose: :boolean, names: :string, names_out: :string + method_option :preferred_only, default: true + def gen(dir) + self.destination_root = dir + Google::Apis.logger.level = Logger::DEBUG if options[:verbose] + if options[:url] + generate_from_url(options[:url]) + elsif options[:file] + generate_from_file(options[:file]) + else + generate_from_discovery(preferred_only: options[:preferred_only], id: options[:id] ) + end + create_file(options[:names_out]) { |*| generator.dump_api_names } if options[:names_out] + end + + desc 'list', 'List public APIs' + method_options verbose: :boolean, preferred_only: :boolean + def list + Google::Apis.logger.level = Logger::DEBUG if options[:verbose] + discovery = Discovery::DiscoveryService.new + apis = discovery.list_apis + apis.items.each do |api| + say sprintf('%s - %s', api.id, api.description).strip unless options[:preferred_only] && !api.preferred? + end + end + + no_commands do + def generate_from_url(url) + json = discovery.http(:get, url) + generate_api(json) + end + + def generate_from_file(file) + File.open(file) do |f| + generate_api(f.read) + end + end + + def generate_from_discovery(preferred_only: false, id: nil) + say 'Fetching API list' + id = Array(id) + apis = discovery.list_apis + apis.items.each do |api| + if (id.empty? && preferred_only && api.preferred?) || id.include?(api.id) + say sprintf('Loading %s, version %s from %s', api.name, api.version, api.discovery_rest_url) + generate_from_url(api.discovery_rest_url) + else + say sprintf('Ignoring disoverable API %s', api.id) + end + end + end + + def generate_api(json) + files = generator.render(json) + files.each do |file, content| + create_file(file) { |*| content } + end + end + + def discovery + @discovery ||= Discovery::DiscoveryService.new + end + + def generator + @generator ||= Google::Apis::Generator.new(api_names: options[:names]) + end + end + end + +end + +Google::ApiGenerator.start(ARGV) diff --git a/lib/google/api_client/auth/compute_service_account.rb b/generated/google/apis/discovery_v1.rb similarity index 54% rename from lib/google/api_client/auth/compute_service_account.rb rename to generated/google/apis/discovery_v1.rb index 118f1e6eb..537452c4b 100644 --- a/lib/google/api_client/auth/compute_service_account.rb +++ b/generated/google/apis/discovery_v1.rb @@ -1,4 +1,4 @@ -# Copyright 2013 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,17 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -require 'faraday' -require 'signet/oauth_2/client' +require 'google/apis/discovery_v1/service.rb' +require 'google/apis/discovery_v1/classes.rb' +require 'google/apis/discovery_v1/representations.rb' module Google - class APIClient - class ComputeServiceAccount < Signet::OAuth2::Client - def fetch_access_token(options={}) - connection = options[:connection] || Faraday.default_connection - response = connection.get 'http://metadata/computeMetadata/v1beta1/instance/service-accounts/default/token' - Signet::OAuth2.parse_credentials(response.body, response.headers['content-type']) - end + module Apis + # APIs Discovery Service + # + # Lets you discover information about other Google APIs, such as what APIs are + # available, the resource and method details for each API. + # + # @see https://developers.google.com/discovery/ + module DiscoveryV1 + VERSION = 'V1' + REVISION = '' end end end diff --git a/generated/google/apis/discovery_v1/classes.rb b/generated/google/apis/discovery_v1/classes.rb new file mode 100644 index 000000000..ae7394005 --- /dev/null +++ b/generated/google/apis/discovery_v1/classes.rb @@ -0,0 +1,947 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module DiscoveryV1 + + # + class DirectoryList + include Google::Apis::Core::Hashable + + # Indicate the version of the Discovery API used to generate this doc. + # Corresponds to the JSON property `discoveryVersion` + # @return [String] + attr_accessor :discovery_version + + # The individual directory entries. One entry per api/version pair. + # Corresponds to the JSON property `items` + # @return [Array] + attr_accessor :items + + # The kind for this response. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @discovery_version = args[:discovery_version] unless args[:discovery_version].nil? + @items = args[:items] unless args[:items].nil? + @kind = args[:kind] unless args[:kind].nil? + end + + # + class Item + include Google::Apis::Core::Hashable + + # The description of this API. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # A link to the discovery document. + # Corresponds to the JSON property `discoveryLink` + # @return [String] + attr_accessor :discovery_link + + # The URL for the discovery REST document. + # Corresponds to the JSON property `discoveryRestUrl` + # @return [String] + attr_accessor :discovery_rest_url + + # A link to human readable documentation for the API. + # Corresponds to the JSON property `documentationLink` + # @return [String] + attr_accessor :documentation_link + + # Links to 16x16 and 32x32 icons representing the API. + # Corresponds to the JSON property `icons` + # @return [Google::Apis::DiscoveryV1::DirectoryList::Item::Icons] + attr_accessor :icons + + # The id of this API. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # The kind for this response. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # Labels for the status of this API, such as labs or deprecated. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # The name of the API. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # True if this version is the preferred version to use. + # Corresponds to the JSON property `preferred` + # @return [Boolean] + attr_accessor :preferred + alias_method :preferred?, :preferred + + # The title of this API. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + # The version of the API. + # Corresponds to the JSON property `version` + # @return [String] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] unless args[:description].nil? + @discovery_link = args[:discovery_link] unless args[:discovery_link].nil? + @discovery_rest_url = args[:discovery_rest_url] unless args[:discovery_rest_url].nil? + @documentation_link = args[:documentation_link] unless args[:documentation_link].nil? + @icons = args[:icons] unless args[:icons].nil? + @id = args[:id] unless args[:id].nil? + @kind = args[:kind] unless args[:kind].nil? + @labels = args[:labels] unless args[:labels].nil? + @name = args[:name] unless args[:name].nil? + @preferred = args[:preferred] unless args[:preferred].nil? + @title = args[:title] unless args[:title].nil? + @version = args[:version] unless args[:version].nil? + end + + # Links to 16x16 and 32x32 icons representing the API. + class Icons + include Google::Apis::Core::Hashable + + # The URL of the 16x16 icon. + # Corresponds to the JSON property `x16` + # @return [String] + attr_accessor :x16 + + # The URL of the 32x32 icon. + # Corresponds to the JSON property `x32` + # @return [String] + attr_accessor :x32 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @x16 = args[:x16] unless args[:x16].nil? + @x32 = args[:x32] unless args[:x32].nil? + end + end + end + end + + # + class JsonSchema + include Google::Apis::Core::Hashable + + # A reference to another schema. The value of this property is the "id" of + # another schema. + # Corresponds to the JSON property `$ref` + # @return [String] + attr_accessor :_ref + + # If this is a schema for an object, this property is the schema for any + # additional properties with dynamic keys on this object. + # Corresponds to the JSON property `additionalProperties` + # @return [Google::Apis::DiscoveryV1::JsonSchema] + attr_accessor :additional_properties + + # Additional information about this property. + # Corresponds to the JSON property `annotations` + # @return [Google::Apis::DiscoveryV1::JsonSchema::Annotations] + attr_accessor :annotations + + # The default value of this property (if one exists). + # Corresponds to the JSON property `default` + # @return [String] + attr_accessor :default + + # A description of this object. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Values this parameter may take (if it is an enum). + # Corresponds to the JSON property `enum` + # @return [Array] + attr_accessor :enum + + # The descriptions for the enums. Each position maps to the corresponding value + # in the "enum" array. + # Corresponds to the JSON property `enumDescriptions` + # @return [Array] + attr_accessor :enum_descriptions + + # An additional regular expression or key that helps constrain the value. For + # more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section- + # 5.23 + # Corresponds to the JSON property `format` + # @return [String] + attr_accessor :format + + # Unique identifier for this schema. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # If this is a schema for an array, this property is the schema for each element + # in the array. + # Corresponds to the JSON property `items` + # @return [Google::Apis::DiscoveryV1::JsonSchema] + attr_accessor :items + + # Whether this parameter goes in the query or the path for REST requests. + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # The maximum value of this parameter. + # Corresponds to the JSON property `maximum` + # @return [String] + attr_accessor :maximum + + # The minimum value of this parameter. + # Corresponds to the JSON property `minimum` + # @return [String] + attr_accessor :minimum + + # The regular expression this parameter must conform to. Uses Java 6 regex + # format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html + # Corresponds to the JSON property `pattern` + # @return [String] + attr_accessor :pattern + + # If this is a schema for an object, list the schema for each property of this + # object. + # Corresponds to the JSON property `properties` + # @return [Hash] + attr_accessor :properties + + # The value is read-only, generated by the service. The value cannot be modified + # by the client. If the value is included in a POST, PUT, or PATCH request, it + # is ignored by the service. + # Corresponds to the JSON property `readOnly` + # @return [Boolean] + attr_accessor :read_only + alias_method :read_only?, :read_only + + # Whether this parameter may appear multiple times. + # Corresponds to the JSON property `repeated` + # @return [Boolean] + attr_accessor :repeated + alias_method :repeated?, :repeated + + # Whether the parameter is required. + # Corresponds to the JSON property `required` + # @return [Boolean] + attr_accessor :required + alias_method :required?, :required + + # The value type for this schema. A list of values can be found here: http:// + # tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1 + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + + # In a variant data type, the value of one property is used to determine how to + # interpret the entire entity. Its value must exist in a map of descriminant + # values to schema names. + # Corresponds to the JSON property `variant` + # @return [Google::Apis::DiscoveryV1::JsonSchema::Variant] + attr_accessor :variant + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @_ref = args[:_ref] unless args[:_ref].nil? + @additional_properties = args[:additional_properties] unless args[:additional_properties].nil? + @annotations = args[:annotations] unless args[:annotations].nil? + @default = args[:default] unless args[:default].nil? + @description = args[:description] unless args[:description].nil? + @enum = args[:enum] unless args[:enum].nil? + @enum_descriptions = args[:enum_descriptions] unless args[:enum_descriptions].nil? + @format = args[:format] unless args[:format].nil? + @id = args[:id] unless args[:id].nil? + @items = args[:items] unless args[:items].nil? + @location = args[:location] unless args[:location].nil? + @maximum = args[:maximum] unless args[:maximum].nil? + @minimum = args[:minimum] unless args[:minimum].nil? + @pattern = args[:pattern] unless args[:pattern].nil? + @properties = args[:properties] unless args[:properties].nil? + @read_only = args[:read_only] unless args[:read_only].nil? + @repeated = args[:repeated] unless args[:repeated].nil? + @required = args[:required] unless args[:required].nil? + @type = args[:type] unless args[:type].nil? + @variant = args[:variant] unless args[:variant].nil? + end + + # Additional information about this property. + class Annotations + include Google::Apis::Core::Hashable + + # A list of methods for which this property is required on requests. + # Corresponds to the JSON property `required` + # @return [Array] + attr_accessor :required + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @required = args[:required] unless args[:required].nil? + end + end + + # In a variant data type, the value of one property is used to determine how to + # interpret the entire entity. Its value must exist in a map of descriminant + # values to schema names. + class Variant + include Google::Apis::Core::Hashable + + # The name of the type discriminant property. + # Corresponds to the JSON property `discriminant` + # @return [String] + attr_accessor :discriminant + + # The map of discriminant value to schema to use for parsing.. + # Corresponds to the JSON property `map` + # @return [Array] + attr_accessor :map + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @discriminant = args[:discriminant] unless args[:discriminant].nil? + @map = args[:map] unless args[:map].nil? + end + + # + class Map + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `$ref` + # @return [String] + attr_accessor :_ref + + # + # Corresponds to the JSON property `type_value` + # @return [String] + attr_accessor :type_value + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @_ref = args[:_ref] unless args[:_ref].nil? + @type_value = args[:type_value] unless args[:type_value].nil? + end + end + end + end + + # + class RestDescription + include Google::Apis::Core::Hashable + + # Authentication information. + # Corresponds to the JSON property `auth` + # @return [Google::Apis::DiscoveryV1::RestDescription::Auth] + attr_accessor :auth + + # [DEPRECATED] The base path for REST requests. + # Corresponds to the JSON property `basePath` + # @return [String] + attr_accessor :base_path + + # [DEPRECATED] The base URL for REST requests. + # Corresponds to the JSON property `baseUrl` + # @return [String] + attr_accessor :base_url + + # The path for REST batch requests. + # Corresponds to the JSON property `batchPath` + # @return [String] + attr_accessor :batch_path + + # Indicates how the API name should be capitalized and split into various parts. + # Useful for generating pretty class names. + # Corresponds to the JSON property `canonicalName` + # @return [String] + attr_accessor :canonical_name + + # The description of this API. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Indicate the version of the Discovery API used to generate this doc. + # Corresponds to the JSON property `discoveryVersion` + # @return [String] + attr_accessor :discovery_version + + # A link to human readable documentation for the API. + # Corresponds to the JSON property `documentationLink` + # @return [String] + attr_accessor :documentation_link + + # The ETag for this response. + # Corresponds to the JSON property `etag` + # @return [String] + attr_accessor :etag + + # A list of supported features for this API. + # Corresponds to the JSON property `features` + # @return [Array] + attr_accessor :features + + # Links to 16x16 and 32x32 icons representing the API. + # Corresponds to the JSON property `icons` + # @return [Google::Apis::DiscoveryV1::RestDescription::Icons] + attr_accessor :icons + + # The ID of this API. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # The kind for this response. + # Corresponds to the JSON property `kind` + # @return [String] + attr_accessor :kind + + # Labels for the status of this API, such as labs or deprecated. + # Corresponds to the JSON property `labels` + # @return [Array] + attr_accessor :labels + + # API-level methods for this API. + # Corresponds to the JSON property `methods` + # @return [Hash] + attr_accessor :api_methods + + # The name of this API. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # The domain of the owner of this API. Together with the ownerName and a + # packagePath values, this can be used to generate a library for this API which + # would have a unique fully qualified name. + # Corresponds to the JSON property `ownerDomain` + # @return [String] + attr_accessor :owner_domain + + # The name of the owner of this API. See ownerDomain. + # Corresponds to the JSON property `ownerName` + # @return [String] + attr_accessor :owner_name + + # The package of the owner of this API. See ownerDomain. + # Corresponds to the JSON property `packagePath` + # @return [String] + attr_accessor :package_path + + # Common parameters that apply across all apis. + # Corresponds to the JSON property `parameters` + # @return [Hash] + attr_accessor :parameters + + # The protocol described by this document. + # Corresponds to the JSON property `protocol` + # @return [String] + attr_accessor :protocol + + # The resources in this API. + # Corresponds to the JSON property `resources` + # @return [Hash] + attr_accessor :resources + + # The version of this API. + # Corresponds to the JSON property `revision` + # @return [String] + attr_accessor :revision + + # The root URL under which all API services live. + # Corresponds to the JSON property `rootUrl` + # @return [String] + attr_accessor :root_url + + # The schemas for this API. + # Corresponds to the JSON property `schemas` + # @return [Hash] + attr_accessor :schemas + + # The base path for all REST requests. + # Corresponds to the JSON property `servicePath` + # @return [String] + attr_accessor :service_path + + # The title of this API. + # Corresponds to the JSON property `title` + # @return [String] + attr_accessor :title + + # The version of this API. + # Corresponds to the JSON property `version` + # @return [String] + attr_accessor :version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @auth = args[:auth] unless args[:auth].nil? + @base_path = args[:base_path] unless args[:base_path].nil? + @base_url = args[:base_url] unless args[:base_url].nil? + @batch_path = args[:batch_path] unless args[:batch_path].nil? + @canonical_name = args[:canonical_name] unless args[:canonical_name].nil? + @description = args[:description] unless args[:description].nil? + @discovery_version = args[:discovery_version] unless args[:discovery_version].nil? + @documentation_link = args[:documentation_link] unless args[:documentation_link].nil? + @etag = args[:etag] unless args[:etag].nil? + @features = args[:features] unless args[:features].nil? + @icons = args[:icons] unless args[:icons].nil? + @id = args[:id] unless args[:id].nil? + @kind = args[:kind] unless args[:kind].nil? + @labels = args[:labels] unless args[:labels].nil? + @api_methods = args[:api_methods] unless args[:api_methods].nil? + @name = args[:name] unless args[:name].nil? + @owner_domain = args[:owner_domain] unless args[:owner_domain].nil? + @owner_name = args[:owner_name] unless args[:owner_name].nil? + @package_path = args[:package_path] unless args[:package_path].nil? + @parameters = args[:parameters] unless args[:parameters].nil? + @protocol = args[:protocol] unless args[:protocol].nil? + @resources = args[:resources] unless args[:resources].nil? + @revision = args[:revision] unless args[:revision].nil? + @root_url = args[:root_url] unless args[:root_url].nil? + @schemas = args[:schemas] unless args[:schemas].nil? + @service_path = args[:service_path] unless args[:service_path].nil? + @title = args[:title] unless args[:title].nil? + @version = args[:version] unless args[:version].nil? + end + + # Authentication information. + class Auth + include Google::Apis::Core::Hashable + + # OAuth 2.0 authentication information. + # Corresponds to the JSON property `oauth2` + # @return [Google::Apis::DiscoveryV1::RestDescription::Auth::Oauth2] + attr_accessor :oauth2 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @oauth2 = args[:oauth2] unless args[:oauth2].nil? + end + + # OAuth 2.0 authentication information. + class Oauth2 + include Google::Apis::Core::Hashable + + # Available OAuth 2.0 scopes. + # Corresponds to the JSON property `scopes` + # @return [Hash] + attr_accessor :scopes + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @scopes = args[:scopes] unless args[:scopes].nil? + end + + # The scope value. + class Scope + include Google::Apis::Core::Hashable + + # Description of scope. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] unless args[:description].nil? + end + end + end + end + + # Links to 16x16 and 32x32 icons representing the API. + class Icons + include Google::Apis::Core::Hashable + + # The URL of the 16x16 icon. + # Corresponds to the JSON property `x16` + # @return [String] + attr_accessor :x16 + + # The URL of the 32x32 icon. + # Corresponds to the JSON property `x32` + # @return [String] + attr_accessor :x32 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @x16 = args[:x16] unless args[:x16].nil? + @x32 = args[:x32] unless args[:x32].nil? + end + end + end + + # + class RestMethod + include Google::Apis::Core::Hashable + + # Description of this method. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Whether this method requires an ETag to be specified. The ETag is sent as an + # HTTP If-Match or If-None-Match header. + # Corresponds to the JSON property `etagRequired` + # @return [Boolean] + attr_accessor :etag_required + alias_method :etag_required?, :etag_required + + # HTTP method used by this method. + # Corresponds to the JSON property `httpMethod` + # @return [String] + attr_accessor :http_method + + # A unique ID for this method. This property can be used to match methods + # between different versions of Discovery. + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + # Media upload parameters. + # Corresponds to the JSON property `mediaUpload` + # @return [Google::Apis::DiscoveryV1::RestMethod::MediaUpload] + attr_accessor :media_upload + + # Ordered list of required parameters, serves as a hint to clients on how to + # structure their method signatures. The array is ordered such that the "most- + # significant" parameter appears first. + # Corresponds to the JSON property `parameterOrder` + # @return [Array] + attr_accessor :parameter_order + + # Details for all parameters in this method. + # Corresponds to the JSON property `parameters` + # @return [Hash] + attr_accessor :parameters + + # The URI path of this REST method. Should be used in conjunction with the + # basePath property at the api-level. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + # The schema for the request. + # Corresponds to the JSON property `request` + # @return [Google::Apis::DiscoveryV1::RestMethod::Request] + attr_accessor :request + + # The schema for the response. + # Corresponds to the JSON property `response` + # @return [Google::Apis::DiscoveryV1::RestMethod::Response] + attr_accessor :response + + # OAuth 2.0 scopes applicable to this method. + # Corresponds to the JSON property `scopes` + # @return [Array] + attr_accessor :scopes + + # Whether this method supports media downloads. + # Corresponds to the JSON property `supportsMediaDownload` + # @return [Boolean] + attr_accessor :supports_media_download + alias_method :supports_media_download?, :supports_media_download + + # Whether this method supports media uploads. + # Corresponds to the JSON property `supportsMediaUpload` + # @return [Boolean] + attr_accessor :supports_media_upload + alias_method :supports_media_upload?, :supports_media_upload + + # Whether this method supports subscriptions. + # Corresponds to the JSON property `supportsSubscription` + # @return [Boolean] + attr_accessor :supports_subscription + alias_method :supports_subscription?, :supports_subscription + + # Indicates that downloads from this method should use the download service URL ( + # i.e. "/download"). Only applies if the method supports media download. + # Corresponds to the JSON property `useMediaDownloadService` + # @return [Boolean] + attr_accessor :use_media_download_service + alias_method :use_media_download_service?, :use_media_download_service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @description = args[:description] unless args[:description].nil? + @etag_required = args[:etag_required] unless args[:etag_required].nil? + @http_method = args[:http_method] unless args[:http_method].nil? + @id = args[:id] unless args[:id].nil? + @media_upload = args[:media_upload] unless args[:media_upload].nil? + @parameter_order = args[:parameter_order] unless args[:parameter_order].nil? + @parameters = args[:parameters] unless args[:parameters].nil? + @path = args[:path] unless args[:path].nil? + @request = args[:request] unless args[:request].nil? + @response = args[:response] unless args[:response].nil? + @scopes = args[:scopes] unless args[:scopes].nil? + @supports_media_download = args[:supports_media_download] unless args[:supports_media_download].nil? + @supports_media_upload = args[:supports_media_upload] unless args[:supports_media_upload].nil? + @supports_subscription = args[:supports_subscription] unless args[:supports_subscription].nil? + @use_media_download_service = args[:use_media_download_service] unless args[:use_media_download_service].nil? + end + + # Media upload parameters. + class MediaUpload + include Google::Apis::Core::Hashable + + # MIME Media Ranges for acceptable media uploads to this method. + # Corresponds to the JSON property `accept` + # @return [Array] + attr_accessor :accept + + # Maximum size of a media upload, such as "1MB", "2GB" or "3TB". + # Corresponds to the JSON property `maxSize` + # @return [String] + attr_accessor :max_size + + # Supported upload protocols. + # Corresponds to the JSON property `protocols` + # @return [Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols] + attr_accessor :protocols + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @accept = args[:accept] unless args[:accept].nil? + @max_size = args[:max_size] unless args[:max_size].nil? + @protocols = args[:protocols] unless args[:protocols].nil? + end + + # Supported upload protocols. + class Protocols + include Google::Apis::Core::Hashable + + # Supports the Resumable Media Upload protocol. + # Corresponds to the JSON property `resumable` + # @return [Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Resumable] + attr_accessor :resumable + + # Supports uploading as a single HTTP request. + # Corresponds to the JSON property `simple` + # @return [Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Simple] + attr_accessor :simple + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @resumable = args[:resumable] unless args[:resumable].nil? + @simple = args[:simple] unless args[:simple].nil? + end + + # Supports the Resumable Media Upload protocol. + class Resumable + include Google::Apis::Core::Hashable + + # True if this endpoint supports uploading multipart media. + # Corresponds to the JSON property `multipart` + # @return [Boolean] + attr_accessor :multipart + alias_method :multipart?, :multipart + + # The URI path to be used for upload. Should be used in conjunction with the + # basePath property at the api-level. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @multipart = args[:multipart] unless args[:multipart].nil? + @path = args[:path] unless args[:path].nil? + end + end + + # Supports uploading as a single HTTP request. + class Simple + include Google::Apis::Core::Hashable + + # True if this endpoint supports upload multipart media. + # Corresponds to the JSON property `multipart` + # @return [Boolean] + attr_accessor :multipart + alias_method :multipart?, :multipart + + # The URI path to be used for upload. Should be used in conjunction with the + # basePath property at the api-level. + # Corresponds to the JSON property `path` + # @return [String] + attr_accessor :path + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @multipart = args[:multipart] unless args[:multipart].nil? + @path = args[:path] unless args[:path].nil? + end + end + end + end + + # The schema for the request. + class Request + include Google::Apis::Core::Hashable + + # Schema ID for the request schema. + # Corresponds to the JSON property `$ref` + # @return [String] + attr_accessor :_ref + + # parameter name. + # Corresponds to the JSON property `parameterName` + # @return [String] + attr_accessor :parameter_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @_ref = args[:_ref] unless args[:_ref].nil? + @parameter_name = args[:parameter_name] unless args[:parameter_name].nil? + end + end + + # The schema for the response. + class Response + include Google::Apis::Core::Hashable + + # Schema ID for the response schema. + # Corresponds to the JSON property `$ref` + # @return [String] + attr_accessor :_ref + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @_ref = args[:_ref] unless args[:_ref].nil? + end + end + end + + # + class RestResource + include Google::Apis::Core::Hashable + + # Methods on this resource. + # Corresponds to the JSON property `methods` + # @return [Hash] + attr_accessor :api_methods + + # Sub-resources on this resource. + # Corresponds to the JSON property `resources` + # @return [Hash] + attr_accessor :resources + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @api_methods = args[:api_methods] unless args[:api_methods].nil? + @resources = args[:resources] unless args[:resources].nil? + end + end + end + end +end diff --git a/generated/google/apis/discovery_v1/representations.rb b/generated/google/apis/discovery_v1/representations.rb new file mode 100644 index 000000000..37aac8538 --- /dev/null +++ b/generated/google/apis/discovery_v1/representations.rb @@ -0,0 +1,355 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module DiscoveryV1 + + class DirectoryList + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Item + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Icons + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + end + + class JsonSchema + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Annotations + class Representation < Google::Apis::Core::JsonRepresentation; end + end + + class Variant + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Map + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + end + + class RestDescription + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Auth + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Oauth2 + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Scope + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + end + + class Icons + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + + class RestMethod + class Representation < Google::Apis::Core::JsonRepresentation; end + + class MediaUpload + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Protocols + class Representation < Google::Apis::Core::JsonRepresentation; end + + class Resumable + class Representation < Google::Apis::Core::JsonRepresentation; end + end + + class Simple + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + end + + class Request + class Representation < Google::Apis::Core::JsonRepresentation; end + end + + class Response + class Representation < Google::Apis::Core::JsonRepresentation; end + end + end + + class RestResource + class Representation < Google::Apis::Core::JsonRepresentation; end + end + + # @private + class DirectoryList + class Representation < Google::Apis::Core::JsonRepresentation + property :discovery_version, as: 'discoveryVersion' + collection :items, as: 'items', class: Google::Apis::DiscoveryV1::DirectoryList::Item, decorator: Google::Apis::DiscoveryV1::DirectoryList::Item::Representation + + property :kind, as: 'kind' + end + + # @private + class Item + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :discovery_link, as: 'discoveryLink' + property :discovery_rest_url, as: 'discoveryRestUrl' + property :documentation_link, as: 'documentationLink' + property :icons, as: 'icons', class: Google::Apis::DiscoveryV1::DirectoryList::Item::Icons, decorator: Google::Apis::DiscoveryV1::DirectoryList::Item::Icons::Representation + + property :id, as: 'id' + property :kind, as: 'kind' + collection :labels, as: 'labels' + property :name, as: 'name' + property :preferred, as: 'preferred' + property :title, as: 'title' + property :version, as: 'version' + end + + # @private + class Icons + class Representation < Google::Apis::Core::JsonRepresentation + property :x16, as: 'x16' + property :x32, as: 'x32' + end + end + end + end + + # @private + class JsonSchema + class Representation < Google::Apis::Core::JsonRepresentation + property :_ref, as: '$ref' + property :additional_properties, as: 'additionalProperties', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :annotations, as: 'annotations', class: Google::Apis::DiscoveryV1::JsonSchema::Annotations, decorator: Google::Apis::DiscoveryV1::JsonSchema::Annotations::Representation + + property :default, as: 'default' + property :description, as: 'description' + collection :enum, as: 'enum' + collection :enum_descriptions, as: 'enumDescriptions' + property :format, as: 'format' + property :id, as: 'id' + property :items, as: 'items', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :location, as: 'location' + property :maximum, as: 'maximum' + property :minimum, as: 'minimum' + property :pattern, as: 'pattern' + hash :properties, as: 'properties', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :read_only, as: 'readOnly' + property :repeated, as: 'repeated' + property :required, as: 'required' + property :type, as: 'type' + property :variant, as: 'variant', class: Google::Apis::DiscoveryV1::JsonSchema::Variant, decorator: Google::Apis::DiscoveryV1::JsonSchema::Variant::Representation + + end + + # @private + class Annotations + class Representation < Google::Apis::Core::JsonRepresentation + collection :required, as: 'required' + end + end + + # @private + class Variant + class Representation < Google::Apis::Core::JsonRepresentation + property :discriminant, as: 'discriminant' + collection :map, as: 'map', class: Google::Apis::DiscoveryV1::JsonSchema::Variant::Map, decorator: Google::Apis::DiscoveryV1::JsonSchema::Variant::Map::Representation + + end + + # @private + class Map + class Representation < Google::Apis::Core::JsonRepresentation + property :_ref, as: '$ref' + property :type_value, as: 'type_value' + end + end + end + end + + # @private + class RestDescription + class Representation < Google::Apis::Core::JsonRepresentation + property :auth, as: 'auth', class: Google::Apis::DiscoveryV1::RestDescription::Auth, decorator: Google::Apis::DiscoveryV1::RestDescription::Auth::Representation + + property :base_path, as: 'basePath' + property :base_url, as: 'baseUrl' + property :batch_path, as: 'batchPath' + property :canonical_name, as: 'canonicalName' + property :description, as: 'description' + property :discovery_version, as: 'discoveryVersion' + property :documentation_link, as: 'documentationLink' + property :etag, as: 'etag' + collection :features, as: 'features' + property :icons, as: 'icons', class: Google::Apis::DiscoveryV1::RestDescription::Icons, decorator: Google::Apis::DiscoveryV1::RestDescription::Icons::Representation + + property :id, as: 'id' + property :kind, as: 'kind' + collection :labels, as: 'labels' + hash :api_methods, as: 'methods', class: Google::Apis::DiscoveryV1::RestMethod, decorator: Google::Apis::DiscoveryV1::RestMethod::Representation + + property :name, as: 'name' + property :owner_domain, as: 'ownerDomain' + property :owner_name, as: 'ownerName' + property :package_path, as: 'packagePath' + hash :parameters, as: 'parameters', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :protocol, as: 'protocol' + hash :resources, as: 'resources', class: Google::Apis::DiscoveryV1::RestResource, decorator: Google::Apis::DiscoveryV1::RestResource::Representation + + property :revision, as: 'revision' + property :root_url, as: 'rootUrl' + hash :schemas, as: 'schemas', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :service_path, as: 'servicePath' + property :title, as: 'title' + property :version, as: 'version' + end + + # @private + class Auth + class Representation < Google::Apis::Core::JsonRepresentation + property :oauth2, as: 'oauth2', class: Google::Apis::DiscoveryV1::RestDescription::Auth::Oauth2, decorator: Google::Apis::DiscoveryV1::RestDescription::Auth::Oauth2::Representation + + end + + # @private + class Oauth2 + class Representation < Google::Apis::Core::JsonRepresentation + hash :scopes, as: 'scopes', class: Google::Apis::DiscoveryV1::RestDescription::Auth::Oauth2::Scope, decorator: Google::Apis::DiscoveryV1::RestDescription::Auth::Oauth2::Scope::Representation + + end + + # @private + class Scope + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + end + end + end + end + + # @private + class Icons + class Representation < Google::Apis::Core::JsonRepresentation + property :x16, as: 'x16' + property :x32, as: 'x32' + end + end + end + + # @private + class RestMethod + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :etag_required, as: 'etagRequired' + property :http_method, as: 'httpMethod' + property :id, as: 'id' + property :media_upload, as: 'mediaUpload', class: Google::Apis::DiscoveryV1::RestMethod::MediaUpload, decorator: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Representation + + collection :parameter_order, as: 'parameterOrder' + hash :parameters, as: 'parameters', class: Google::Apis::DiscoveryV1::JsonSchema, decorator: Google::Apis::DiscoveryV1::JsonSchema::Representation + + property :path, as: 'path' + property :request, as: 'request', class: Google::Apis::DiscoveryV1::RestMethod::Request, decorator: Google::Apis::DiscoveryV1::RestMethod::Request::Representation + + property :response, as: 'response', class: Google::Apis::DiscoveryV1::RestMethod::Response, decorator: Google::Apis::DiscoveryV1::RestMethod::Response::Representation + + collection :scopes, as: 'scopes' + property :supports_media_download, as: 'supportsMediaDownload' + property :supports_media_upload, as: 'supportsMediaUpload' + property :supports_subscription, as: 'supportsSubscription' + property :use_media_download_service, as: 'useMediaDownloadService' + end + + # @private + class MediaUpload + class Representation < Google::Apis::Core::JsonRepresentation + collection :accept, as: 'accept' + property :max_size, as: 'maxSize' + property :protocols, as: 'protocols', class: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols, decorator: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Representation + + end + + # @private + class Protocols + class Representation < Google::Apis::Core::JsonRepresentation + property :resumable, as: 'resumable', class: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Resumable, decorator: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Resumable::Representation + + property :simple, as: 'simple', class: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Simple, decorator: Google::Apis::DiscoveryV1::RestMethod::MediaUpload::Protocols::Simple::Representation + + end + + # @private + class Resumable + class Representation < Google::Apis::Core::JsonRepresentation + property :multipart, as: 'multipart' + property :path, as: 'path' + end + end + + # @private + class Simple + class Representation < Google::Apis::Core::JsonRepresentation + property :multipart, as: 'multipart' + property :path, as: 'path' + end + end + end + end + + # @private + class Request + class Representation < Google::Apis::Core::JsonRepresentation + property :_ref, as: '$ref' + property :parameter_name, as: 'parameterName' + end + end + + # @private + class Response + class Representation < Google::Apis::Core::JsonRepresentation + property :_ref, as: '$ref' + end + end + end + + # @private + class RestResource + class Representation < Google::Apis::Core::JsonRepresentation + hash :api_methods, as: 'methods', class: Google::Apis::DiscoveryV1::RestMethod, decorator: Google::Apis::DiscoveryV1::RestMethod::Representation + + hash :resources, as: 'resources', class: Google::Apis::DiscoveryV1::RestResource, decorator: Google::Apis::DiscoveryV1::RestResource::Representation + + end + end + end + end +end diff --git a/generated/google/apis/discovery_v1/service.rb b/generated/google/apis/discovery_v1/service.rb new file mode 100644 index 000000000..05a688f23 --- /dev/null +++ b/generated/google/apis/discovery_v1/service.rb @@ -0,0 +1,144 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module DiscoveryV1 + # APIs Discovery Service + # + # Lets you discover information about other Google APIs, such as what APIs are + # available, the resource and method details for each API. + # + # @example + # require 'google/apis/discovery_v1' + # + # Discovery = Google::Apis::DiscoveryV1 # Alias the module + # service = Discovery::DiscoveryService.new + # + # @see https://developers.google.com/discovery/ + class DiscoveryService < Google::Apis::Core::BaseService + # @return [String] + # 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. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # Overrides userIp if both are provided. + attr_accessor :quota_user + + # @return [String] + # IP address of the site where the request originates. Use this if you want to + # enforce per-user limits. + attr_accessor :user_ip + + def initialize + super('https://www.googleapis.com/', 'discovery/v1/') + end + + # Retrieve the description of a particular version of an api. + # @param [String] api + # The name of the API. + # @param [String] version + # The version of the API. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # Overrides userIp if both are provided. + # @param [String] user_ip + # IP address of the site where the request originates. Use this if you want to + # enforce per-user limits. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DiscoveryV1::RestDescription] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DiscoveryV1::RestDescription] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_rest_api(api, version, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + path = 'apis/{api}/{version}/rest' + command = make_simple_command(:get, path, options) + command.response_representation = Google::Apis::DiscoveryV1::RestDescription::Representation + command.response_class = Google::Apis::DiscoveryV1::RestDescription + command.params['api'] = api unless api.nil? + command.params['version'] = version unless version.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + command.query['userIp'] = user_ip unless user_ip.nil? + execute_or_queue_command(command, &block) + end + + # Retrieve the list of APIs supported at this endpoint. + # @param [String] name + # Only include APIs with the given name. + # @param [Boolean] preferred + # Return only the preferred version of an API. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # Overrides userIp if both are provided. + # @param [String] user_ip + # IP address of the site where the request originates. Use this if you want to + # enforce per-user limits. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DiscoveryV1::DirectoryList] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DiscoveryV1::DirectoryList] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_apis(name: nil, preferred: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) + path = 'apis' + command = make_simple_command(:get, path, options) + command.response_representation = Google::Apis::DiscoveryV1::DirectoryList::Representation + command.response_class = Google::Apis::DiscoveryV1::DirectoryList + command.query['name'] = name unless name.nil? + command.query['preferred'] = preferred unless preferred.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + command.query['userIp'] = user_ip unless user_ip.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + command.query['userIp'] = user_ip unless user_ip.nil? + end + end + end + end +end diff --git a/google-api-client.gemspec b/google-api-client.gemspec index b69b571a2..97b2bfcef 100644 --- a/google-api-client.gemspec +++ b/google-api-client.gemspec @@ -1,43 +1,31 @@ -# -*- encoding: utf-8 -*- -require File.join(File.dirname(__FILE__), 'lib/google/api_client', 'version') +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'google/apis/version' -Gem::Specification.new do |s| - s.name = "google-api-client" - s.version = Google::APIClient::VERSION::STRING +Gem::Specification.new do |spec| + spec.name = 'google-api-client' + spec.version = Google::Apis::VERSION + spec.authors = ['Steven Bazyl', 'Tim Emiola', 'Sergio Gomes', 'Bob Aman'] + spec.email = ['sbazyl@google.com'] + spec.summary = %q{Client for accessing Google APIs} + spec.homepage = 'https://github.com/google/google-api-ruby-client' + spec.license = 'Apache 2.0' - s.required_rubygems_version = ">= 1.3.5" - s.require_paths = ["lib"] - s.authors = ["Bob Aman", "Steven Bazyl"] - s.license = "Apache-2.0" - s.description = "The Google API Ruby Client makes it trivial to discover and access supported APIs." - s.email = "sbazyl@google.com" - s.extra_rdoc_files = ["README.md"] - s.files = %w(google-api-client.gemspec Rakefile LICENSE CHANGELOG.md README.md Gemfile) - s.files += Dir.glob("lib/**/*.rb") - s.files += Dir.glob("lib/cacerts.pem") - s.files += Dir.glob("spec/**/*.{rb,opts}") - s.files += Dir.glob("vendor/**/*.rb") - s.files += Dir.glob("tasks/**/*") - s.files += Dir.glob("website/**/*") - s.homepage = "https://github.com/google/google-api-ruby-client/" - s.rdoc_options = ["--main", "README.md"] - s.summary = "The Google API Ruby Client makes it trivial to discover and access Google's REST APIs." + spec.files = `git ls-files -z`.split("\x0") + spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) + spec.require_paths = ['lib', 'generated'] - s.add_runtime_dependency 'addressable', '~> 2.3' - s.add_runtime_dependency 'signet', '~> 0.6' - s.add_runtime_dependency 'faraday', '~> 0.9' - s.add_runtime_dependency 'googleauth', '~> 0.3' - s.add_runtime_dependency 'multi_json', '~> 1.10' - s.add_runtime_dependency 'autoparse', '~> 0.3' - s.add_runtime_dependency 'extlib', '~> 0.9' - s.add_runtime_dependency 'launchy', '~> 2.4' - s.add_runtime_dependency 'retriable', '~> 1.4' - s.add_runtime_dependency 'activesupport', '>= 3.2' - - s.add_development_dependency 'rake', '~> 10.0' - s.add_development_dependency 'yard', '~> 0.8' - s.add_development_dependency 'rspec', '~> 3.1' - s.add_development_dependency 'kramdown', '~> 1.5' - s.add_development_dependency 'simplecov', '~> 0.9.2' - s.add_development_dependency 'coveralls', '~> 0.7.11' + spec.add_runtime_dependency 'representable', '~> 2.1' + spec.add_runtime_dependency 'multi_json', '~> 1.11' + spec.add_runtime_dependency 'retriable', '~> 2.0' + spec.add_runtime_dependency 'activesupport', '>= 3.2' + spec.add_runtime_dependency 'addressable', '~> 2.3' + spec.add_runtime_dependency 'mime-types', '>= 1.6' + spec.add_runtime_dependency 'hurley', '~> 0.1' + spec.add_runtime_dependency 'googleauth', '~> 0.2' + spec.add_runtime_dependency 'thor', '~> 0.19' + spec.add_runtime_dependency 'memoist', '~> 0.11' + spec.add_runtime_dependency 'virtus', '~> 1.0' end diff --git a/lib/compat/multi_json.rb b/lib/compat/multi_json.rb deleted file mode 100644 index 3974f084b..000000000 --- a/lib/compat/multi_json.rb +++ /dev/null @@ -1,19 +0,0 @@ -require 'multi_json' - -if !MultiJson.respond_to?(:load) || [ - Kernel, - defined?(ActiveSupport::Dependencies::Loadable) && ActiveSupport::Dependencies::Loadable -].compact.include?(MultiJson.method(:load).owner) - module MultiJson - class < - #
  • :two_legged_oauth_1
  • - #
  • :oauth_1
  • - #
  • :oauth_2
  • - #
  • :google_app_default
  • - # - # @option options [Boolean] :auto_refresh_token (true) - # The setting that controls whether or not the api client attempts to - # refresh authorization when a 401 is hit in #execute. If the token does - # not support it, this option is ignored. - # @option options [String] :application_name - # The name of the application using the client. - # @option options [String | Array | nil] :scope - # The scope(s) used when using google application default credentials - # @option options [String] :application_version - # The version number of the application using the client. - # @option options [String] :user_agent - # ("{app_name} google-api-ruby-client/{version} {os_name}/{os_version}") - # The user agent used by the client. Most developers will want to - # leave this value alone and use the `:application_name` option instead. - # @option options [String] :host ("www.googleapis.com") - # The API hostname used by the client. This rarely needs to be changed. - # @option options [String] :port (443) - # The port number used by the client. This rarely needs to be changed. - # @option options [String] :discovery_path ("/discovery/v1") - # The discovery base path. This rarely needs to be changed. - # @option options [String] :ca_file - # Optional set of root certificates to use when validating SSL connections. - # By default, a bundled set of trusted roots will be used. - # @options options[Hash] :force_encoding - # Experimental option. True if response body should be force encoded into the charset - # specified in the Content-Type header. Mostly intended for compressed content. - # @options options[Hash] :faraday_option - # Pass through of options to set on the Faraday connection - def initialize(options={}) - logger.debug { "#{self.class} - Initializing client with options #{options}" } - - # Normalize key to String to allow indifferent access. - options = options.inject({}) do |accu, (key, value)| - accu[key.to_sym] = value - accu - end - # Almost all API usage will have a host of 'www.googleapis.com'. - self.host = options[:host] || 'www.googleapis.com' - self.port = options[:port] || 443 - self.discovery_path = options[:discovery_path] || '/discovery/v1' - - # Most developers will want to leave this value alone and use the - # application_name option. - if options[:application_name] - app_name = options[:application_name] - app_version = options[:application_version] - application_string = "#{app_name}/#{app_version || '0.0.0'}" - else - logger.warn { "#{self.class} - Please provide :application_name and :application_version when initializing the client" } - end - - proxy = options[:proxy] || Object::ENV["http_proxy"] - - self.user_agent = options[:user_agent] || ( - "#{application_string} " + - "google-api-ruby-client/#{Google::APIClient::VERSION::STRING} #{ENV::OS_VERSION} (gzip)" - ).strip - # The writer method understands a few Symbols and will generate useful - # default authentication mechanisms. - self.authorization = - options.key?(:authorization) ? options[:authorization] : :oauth_2 - if !options['scope'].nil? and self.authorization.respond_to?(:scope=) - self.authorization.scope = options['scope'] - end - self.auto_refresh_token = options.fetch(:auto_refresh_token) { true } - self.key = options[:key] - self.user_ip = options[:user_ip] - self.retries = options.fetch(:retries) { 0 } - self.expired_auth_retry = options.fetch(:expired_auth_retry) { true } - @discovery_uris = {} - @discovery_documents = {} - @discovered_apis = {} - ca_file = options[:ca_file] || File.expand_path('../../cacerts.pem', __FILE__) - self.connection = Faraday.new do |faraday| - faraday.response :charset if options[:force_encoding] - faraday.response :gzip - faraday.options.params_encoder = Faraday::FlatParamsEncoder - faraday.ssl.ca_file = ca_file - faraday.ssl.verify = true - faraday.proxy proxy - faraday.adapter Faraday.default_adapter - if options[:faraday_option].is_a?(Hash) - options[:faraday_option].each_pair do |option, value| - faraday.options.send("#{option}=", value) - end - end - end - return self - end - - ## - # Returns the authorization mechanism used by the client. - # - # @return [#generate_authenticated_request] The authorization mechanism. - attr_reader :authorization - - ## - # Sets the authorization mechanism used by the client. - # - # @param [#generate_authenticated_request] new_authorization - # The new authorization mechanism. - def authorization=(new_authorization) - case new_authorization - when :oauth_1, :oauth - require 'signet/oauth_1/client' - # NOTE: Do not rely on this default value, as it may change - new_authorization = Signet::OAuth1::Client.new( - :temporary_credential_uri => - 'https://www.google.com/accounts/OAuthGetRequestToken', - :authorization_uri => - 'https://www.google.com/accounts/OAuthAuthorizeToken', - :token_credential_uri => - 'https://www.google.com/accounts/OAuthGetAccessToken', - :client_credential_key => 'anonymous', - :client_credential_secret => 'anonymous' - ) - when :two_legged_oauth_1, :two_legged_oauth - require 'signet/oauth_1/client' - # NOTE: Do not rely on this default value, as it may change - new_authorization = Signet::OAuth1::Client.new( - :client_credential_key => nil, - :client_credential_secret => nil, - :two_legged => true - ) - when :google_app_default - require 'googleauth' - new_authorization = Google::Auth.get_application_default - - when :oauth_2 - require 'signet/oauth_2/client' - # NOTE: Do not rely on this default value, as it may change - new_authorization = Signet::OAuth2::Client.new( - :authorization_uri => - 'https://accounts.google.com/o/oauth2/auth', - :token_credential_uri => - 'https://accounts.google.com/o/oauth2/token' - ) - when nil - # No authorization mechanism - else - if !new_authorization.respond_to?(:generate_authenticated_request) - raise TypeError, - 'Expected authorization mechanism to respond to ' + - '#generate_authenticated_request.' - end - end - @authorization = new_authorization - return @authorization - end - - ## - # Default Faraday/HTTP connection. - # - # @return [Faraday::Connection] - attr_accessor :connection - - ## - # The setting that controls whether or not the api client attempts to - # refresh authorization when a 401 is hit in #execute. - # - # @return [Boolean] - attr_accessor :auto_refresh_token - - ## - # The application's API key issued by the API console. - # - # @return [String] The API key. - attr_accessor :key - - ## - # The IP address of the user this request is being performed on behalf of. - # - # @return [String] The user's IP address. - attr_accessor :user_ip - - ## - # The user agent used by the client. - # - # @return [String] - # The user agent string used in the User-Agent header. - attr_accessor :user_agent - - ## - # The API hostname used by the client. - # - # @return [String] - # The API hostname. Should almost always be 'www.googleapis.com'. - attr_accessor :host - - ## - # The port number used by the client. - # - # @return [String] - # The port number. Should almost always be 443. - attr_accessor :port - - ## - # The base path used by the client for discovery. - # - # @return [String] - # The base path. Should almost always be '/discovery/v1'. - attr_accessor :discovery_path - - ## - # Number of times to retry on recoverable errors - # - # @return [FixNum] - # Number of retries - attr_accessor :retries - - ## - # Whether or not an expired auth token should be re-acquired - # (and the operation retried) regardless of retries setting - # @return [Boolean] - # Auto retry on auth expiry - attr_accessor :expired_auth_retry - - ## - # Returns the URI for the directory document. - # - # @return [Addressable::URI] The URI of the directory document. - def directory_uri - return resolve_uri(self.discovery_path + '/apis') - end - - ## - # Manually registers a URI as a discovery document for a specific version - # of an API. - # - # @param [String, Symbol] api The API name. - # @param [String] version The desired version of the API. - # @param [Addressable::URI] uri The URI of the discovery document. - # @return [Google::APIClient::API] The service object. - def register_discovery_uri(api, version, uri) - api = api.to_s - version = version || 'v1' - @discovery_uris["#{api}:#{version}"] = uri - discovered_api(api, version) - end - - ## - # Returns the URI for the discovery document. - # - # @param [String, Symbol] api The API name. - # @param [String] version The desired version of the API. - # @return [Addressable::URI] The URI of the discovery document. - def discovery_uri(api, version=nil) - api = api.to_s - version = version || 'v1' - return @discovery_uris["#{api}:#{version}"] ||= ( - resolve_uri( - self.discovery_path + '/apis/{api}/{version}/rest', - 'api' => api, - 'version' => version - ) - ) - end - - ## - # Manually registers a pre-loaded discovery document for a specific version - # of an API. - # - # @param [String, Symbol] api The API name. - # @param [String] version The desired version of the API. - # @param [String, StringIO] discovery_document - # The contents of the discovery document. - # @return [Google::APIClient::API] The service object. - def register_discovery_document(api, version, discovery_document) - api = api.to_s - version = version || 'v1' - if discovery_document.kind_of?(StringIO) - discovery_document.rewind - discovery_document = discovery_document.string - elsif discovery_document.respond_to?(:to_str) - discovery_document = discovery_document.to_str - else - raise TypeError, - "Expected String or StringIO, got #{discovery_document.class}." - end - @discovery_documents["#{api}:#{version}"] = - MultiJson.load(discovery_document) - discovered_api(api, version) - end - - ## - # Returns the parsed directory document. - # - # @return [Hash] The parsed JSON from the directory document. - def directory_document - return @directory_document ||= (begin - response = self.execute!( - :http_method => :get, - :uri => self.directory_uri, - :authenticated => false - ) - response.data - end) - end - - ## - # Returns the parsed discovery document. - # - # @param [String, Symbol] api The API name. - # @param [String] version The desired version of the API. - # @return [Hash] The parsed JSON from the discovery document. - def discovery_document(api, version=nil) - api = api.to_s - version = version || 'v1' - return @discovery_documents["#{api}:#{version}"] ||= (begin - response = self.execute!( - :http_method => :get, - :uri => self.discovery_uri(api, version), - :authenticated => false - ) - response.data - end) - end - - ## - # Returns all APIs published in the directory document. - # - # @return [Array] The list of available APIs. - def discovered_apis - @directory_apis ||= (begin - document_base = self.directory_uri - if self.directory_document && self.directory_document['items'] - self.directory_document['items'].map do |discovery_document| - Google::APIClient::API.new( - document_base, - discovery_document - ) - end - else - [] - end - end) - end - - ## - # Returns the service object for a given service name and service version. - # - # @param [String, Symbol] api The API name. - # @param [String] version The desired version of the API. - # - # @return [Google::APIClient::API] The service object. - def discovered_api(api, version=nil) - if !api.kind_of?(String) && !api.kind_of?(Symbol) - raise TypeError, - "Expected String or Symbol, got #{api.class}." - end - api = api.to_s - version = version || 'v1' - return @discovered_apis["#{api}:#{version}"] ||= begin - document_base = self.discovery_uri(api, version) - discovery_document = self.discovery_document(api, version) - if document_base && discovery_document - Google::APIClient::API.new( - document_base, - discovery_document - ) - else - nil - end - end - end - - ## - # Returns the method object for a given RPC name and service version. - # - # @param [String, Symbol] rpc_name The RPC name of the desired method. - # @param [String, Symbol] api The API the method is within. - # @param [String] version The desired version of the API. - # - # @return [Google::APIClient::Method] The method object. - def discovered_method(rpc_name, api, version=nil) - if !rpc_name.kind_of?(String) && !rpc_name.kind_of?(Symbol) - raise TypeError, - "Expected String or Symbol, got #{rpc_name.class}." - end - rpc_name = rpc_name.to_s - api = api.to_s - version = version || 'v1' - service = self.discovered_api(api, version) - if service.to_h[rpc_name] - return service.to_h[rpc_name] - else - return nil - end - end - - ## - # Returns the service object with the highest version number. - # - # @note Warning: This method should be used with great care. - # As APIs are updated, minor differences between versions may cause - # incompatibilities. Requesting a specific version will avoid this issue. - # - # @param [String, Symbol] api The name of the service. - # - # @return [Google::APIClient::API] The service object. - def preferred_version(api) - if !api.kind_of?(String) && !api.kind_of?(Symbol) - raise TypeError, - "Expected String or Symbol, got #{api.class}." - end - api = api.to_s - return self.discovered_apis.detect do |a| - a.name == api && a.preferred == true - end - end - - ## - # Verifies an ID token against a server certificate. Used to ensure that - # an ID token supplied by an untrusted client-side mechanism is valid. - # Raises an error if the token is invalid or missing. - # - # @deprecated Use the google-id-token gem for verifying JWTs - def verify_id_token! - require 'jwt' - require 'openssl' - @certificates ||= {} - if !self.authorization.respond_to?(:id_token) - raise ArgumentError, ( - "Current authorization mechanism does not support ID tokens: " + - "#{self.authorization.class.to_s}" - ) - elsif !self.authorization.id_token - raise ArgumentError, ( - "Could not verify ID token, ID token missing. " + - "Scopes were: #{self.authorization.scope.inspect}" - ) - else - check_cached_certs = lambda do - valid = false - for _key, cert in @certificates - begin - self.authorization.decoded_id_token(cert.public_key) - valid = true - rescue JWT::DecodeError, Signet::UnsafeOperationError - # Expected exception. Ignore, ID token has not been validated. - end - end - valid - end - if check_cached_certs.call() - return true - end - response = self.execute!( - :http_method => :get, - :uri => 'https://www.googleapis.com/oauth2/v1/certs', - :authenticated => false - ) - @certificates.merge!( - Hash[MultiJson.load(response.body).map do |key, cert| - [key, OpenSSL::X509::Certificate.new(cert)] - end] - ) - if check_cached_certs.call() - return true - else - raise InvalidIDTokenError, - "Could not verify ID token against any available certificate." - end - end - return nil - end - - ## - # Generates a request. - # - # @option options [Google::APIClient::Method] :api_method - # The method object or the RPC name of the method being executed. - # @option options [Hash, Array] :parameters - # The parameters to send to the method. - # @option options [Hash, Array] :headers The HTTP headers for the request. - # @option options [String] :body The body of the request. - # @option options [String] :version ("v1") - # The service version. Only used if `api_method` is a `String`. - # @option options [#generate_authenticated_request] :authorization - # The authorization mechanism for the response. Used only if - # `:authenticated` is `true`. - # @option options [TrueClass, FalseClass] :authenticated (true) - # `true` if the request must be signed or somehow - # authenticated, `false` otherwise. - # - # @return [Google::APIClient::Reference] The generated request. - # - # @example - # request = client.generate_request( - # :api_method => 'plus.activities.list', - # :parameters => - # {'collection' => 'public', 'userId' => 'me'} - # ) - def generate_request(options={}) - options = { - :api_client => self - }.merge(options) - return Google::APIClient::Request.new(options) - end - - ## - # Executes a request, wrapping it in a Result object. - # - # @param [Google::APIClient::Request, Hash, Array] params - # Either a Google::APIClient::Request, a Hash, or an Array. - # - # If a Google::APIClient::Request, no other parameters are expected. - # - # If a Hash, the below parameters are handled. If an Array, the - # parameters are assumed to be in the below order: - # - # - (Google::APIClient::Method) api_method: - # The method object or the RPC name of the method being executed. - # - (Hash, Array) parameters: - # The parameters to send to the method. - # - (String) body: The body of the request. - # - (Hash, Array) headers: The HTTP headers for the request. - # - (Hash) options: A set of options for the request, of which: - # - (#generate_authenticated_request) :authorization (default: true) - - # The authorization mechanism for the response. Used only if - # `:authenticated` is `true`. - # - (TrueClass, FalseClass) :authenticated (default: true) - - # `true` if the request must be signed or somehow - # authenticated, `false` otherwise. - # - (TrueClass, FalseClass) :gzip (default: true) - - # `true` if gzip enabled, `false` otherwise. - # - (FixNum) :retries - - # # of times to retry on recoverable errors - # - # @return [Google::APIClient::Result] The result from the API, nil if batch. - # - # @example - # result = client.execute(batch_request) - # - # @example - # plus = client.discovered_api('plus') - # result = client.execute( - # :api_method => plus.activities.list, - # :parameters => {'collection' => 'public', 'userId' => 'me'} - # ) - # - # @see Google::APIClient#generate_request - def execute!(*params) - if params.first.kind_of?(Google::APIClient::Request) - request = params.shift - options = params.shift || {} - else - # This block of code allows us to accept multiple parameter passing - # styles, and maintaining some backwards compatibility. - # - # Note: I'm extremely tempted to deprecate this style of execute call. - if params.last.respond_to?(:to_hash) && params.size == 1 - options = params.pop - else - options = {} - end - - options[:api_method] = params.shift if params.size > 0 - options[:parameters] = params.shift if params.size > 0 - options[:body] = params.shift if params.size > 0 - options[:headers] = params.shift if params.size > 0 - options.update(params.shift) if params.size > 0 - request = self.generate_request(options) - end - - request.headers['User-Agent'] ||= '' + self.user_agent unless self.user_agent.nil? - request.headers['Accept-Encoding'] ||= 'gzip' unless options[:gzip] == false - request.headers['Content-Type'] ||= '' - request.parameters['key'] ||= self.key unless self.key.nil? - request.parameters['userIp'] ||= self.user_ip unless self.user_ip.nil? - - connection = options[:connection] || self.connection - request.authorization = options[:authorization] || self.authorization unless options[:authenticated] == false - - tries = 1 + (options[:retries] || self.retries) - attempt = 0 - - Retriable.retriable :tries => tries, - :on => [TransmissionError], - :on_retry => client_error_handler, - :interval => lambda {|attempts| (2 ** attempts) + rand} do - attempt += 1 - - # This 2nd level retriable only catches auth errors, and supports 1 retry, which allows - # auth to be re-attempted without having to retry all sorts of other failures like - # NotFound, etc - Retriable.retriable :tries => ((expired_auth_retry || tries > 1) && attempt == 1) ? 2 : 1, - :on => [AuthorizationError], - :on_retry => authorization_error_handler(request.authorization) do - result = request.send(connection, true) - - case result.status - when 200...300 - result - when 301, 302, 303, 307 - request = generate_request(request.to_hash.merge({ - :uri => result.headers['location'], - :api_method => nil - })) - raise RedirectError.new(result.headers['location'], result) - when 401 - raise AuthorizationError.new(result.error_message || 'Invalid/Expired Authentication', result) - when 400, 402...500 - raise ClientError.new(result.error_message || "A client error has occurred", result) - when 500...600 - raise ServerError.new(result.error_message || "A server error has occurred", result) - else - raise TransmissionError.new(result.error_message || "A transmission error has occurred", result) - end - end - end - end - - ## - # Same as Google::APIClient#execute!, but does not raise an exception for - # normal API errros. - # - # @see Google::APIClient#execute - def execute(*params) - begin - return self.execute!(*params) - rescue TransmissionError => e - return e.result - end - end - - protected - - ## - # Resolves a URI template against the client's configured base. - # - # @api private - # @param [String, Addressable::URI, Addressable::Template] template - # The template to resolve. - # @param [Hash] mapping The mapping that corresponds to the template. - # @return [Addressable::URI] The expanded URI. - def resolve_uri(template, mapping={}) - @base_uri ||= Addressable::URI.new( - :scheme => 'https', - :host => self.host, - :port => self.port - ).normalize - template = if template.kind_of?(Addressable::Template) - template.pattern - elsif template.respond_to?(:to_str) - template.to_str - else - raise TypeError, - "Expected String, Addressable::URI, or Addressable::Template, " + - "got #{template.class}." - end - return Addressable::Template.new(@base_uri + template).expand(mapping) - end - - - ## - # Returns on proc for special processing of retries for authorization errors - # Only 401s should be retried and only if the credentials are refreshable - # - # @param [#fetch_access_token!] authorization - # OAuth 2 credentials - # @return [Proc] - def authorization_error_handler(authorization) - can_refresh = authorization.respond_to?(:refresh_token) && auto_refresh_token - Proc.new do |exception, tries| - next unless exception.kind_of?(AuthorizationError) - if can_refresh - begin - logger.debug("Attempting refresh of access token & retry of request") - authorization.fetch_access_token! - next - rescue Signet::AuthorizationError - end - end - raise exception - end - end - - ## - # Returns on proc for special processing of retries as not all client errors - # are recoverable. Only 401s should be retried (via authorization_error_handler) - # - # @return [Proc] - def client_error_handler - Proc.new do |exception, tries| - raise exception if exception.kind_of?(ClientError) - end - end - - end - -end diff --git a/lib/google/api_client/auth/file_storage.rb b/lib/google/api_client/auth/file_storage.rb deleted file mode 100644 index b3d017166..000000000 --- a/lib/google/api_client/auth/file_storage.rb +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'signet/oauth_2/client' -require_relative 'storage' -require_relative 'storages/file_store' - -module Google - class APIClient - - ## - # Represents cached OAuth 2 tokens stored on local disk in a - # JSON serialized file. Meant to resemble the serialized format - # http://google-api-python-client.googlecode.com/hg/docs/epy/oauth2client.file.Storage-class.html - # - # @deprecated - # Use {Google::APIClient::Storage} and {Google::APIClient::FileStore} instead - # - class FileStorage - - attr_accessor :storage - - def initialize(path) - store = Google::APIClient::FileStore.new(path) - @storage = Google::APIClient::Storage.new(store) - @storage.authorize - end - - def load_credentials - storage.authorize - end - - def authorization - storage.authorization - end - - ## - # Write the credentials to the specified file. - # - # @param [Signet::OAuth2::Client] authorization - # Optional authorization instance. If not provided, the authorization - # already associated with this instance will be written. - def write_credentials(auth=nil) - storage.write_credentials(auth) - end - end - end -end diff --git a/lib/google/api_client/auth/jwt_asserter.rb b/lib/google/api_client/auth/jwt_asserter.rb deleted file mode 100644 index 35ad6ec8e..000000000 --- a/lib/google/api_client/auth/jwt_asserter.rb +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'jwt' -require 'signet/oauth_2/client' -require 'delegate' - -module Google - class APIClient - ## - # Generates access tokens using the JWT assertion profile. Requires a - # service account & access to the private key. - # - # @example Using Signet - # - # key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret') - # client.authorization = Signet::OAuth2::Client.new( - # :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', - # :audience => 'https://accounts.google.com/o/oauth2/token', - # :scope => 'https://www.googleapis.com/auth/prediction', - # :issuer => '123456-abcdef@developer.gserviceaccount.com', - # :signing_key => key) - # client.authorization.fetch_access_token! - # client.execute(...) - # - # @deprecated - # Service accounts are now supported directly in Signet - # @see https://developers.google.com/accounts/docs/OAuth2ServiceAccount - class JWTAsserter - # @return [String] ID/email of the issuing party - attr_accessor :issuer - # @return [Fixnum] How long, in seconds, the assertion is valid for - attr_accessor :expiry - # @return [Fixnum] Seconds to expand the issued at/expiry window to account for clock skew - attr_accessor :skew - # @return [String] Scopes to authorize - attr_reader :scope - # @return [String,OpenSSL::PKey] key for signing assertions - attr_writer :key - # @return [String] Algorithm used for signing - attr_accessor :algorithm - - ## - # Initializes the asserter for a service account. - # - # @param [String] issuer - # Name/ID of the client issuing the assertion - # @param [String, Array] scope - # Scopes to authorize. May be a space delimited string or array of strings - # @param [String,OpenSSL::PKey] key - # Key for signing assertions - # @param [String] algorithm - # Algorithm to use, either 'RS256' for RSA with SHA-256 - # or 'HS256' for HMAC with SHA-256 - def initialize(issuer, scope, key, algorithm = "RS256") - self.issuer = issuer - self.scope = scope - self.expiry = 60 # 1 min default - self.skew = 60 - self.key = key - self.algorithm = algorithm - end - - ## - # Set the scopes to authorize - # - # @param [String, Array] new_scope - # Scopes to authorize. May be a space delimited string or array of strings - def scope=(new_scope) - case new_scope - when Array - @scope = new_scope.join(' ') - when String - @scope = new_scope - when nil - @scope = '' - else - raise TypeError, "Expected Array or String, got #{new_scope.class}" - end - end - - ## - # Request a new access token. - # - # @param [String] person - # Email address of a user, if requesting a token to act on their behalf - # @param [Hash] options - # Pass through to Signet::OAuth2::Client.fetch_access_token - # @return [Signet::OAuth2::Client] Access token - # - # @see Signet::OAuth2::Client.fetch_access_token! - def authorize(person = nil, options={}) - authorization = self.to_authorization(person) - authorization.fetch_access_token!(options) - return authorization - end - - ## - # Builds a Signet OAuth2 client - # - # @return [Signet::OAuth2::Client] Access token - def to_authorization(person = nil) - return Signet::OAuth2::Client.new( - :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', - :audience => 'https://accounts.google.com/o/oauth2/token', - :scope => self.scope, - :issuer => @issuer, - :signing_key => @key, - :signing_algorithm => @algorithm, - :person => person - ) - end - end - end -end diff --git a/lib/google/api_client/auth/key_utils.rb b/lib/google/api_client/auth/key_utils.rb deleted file mode 100644 index 6b6e0cfe5..000000000 --- a/lib/google/api_client/auth/key_utils.rb +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module Google - class APIClient - ## - # Helper for loading keys from the PKCS12 files downloaded when - # setting up service accounts at the APIs Console. - # - module KeyUtils - ## - # Loads a key from PKCS12 file, assuming a single private key - # is present. - # - # @param [String] keyfile - # Path of the PKCS12 file to load. If not a path to an actual file, - # assumes the string is the content of the file itself. - # @param [String] passphrase - # Passphrase for unlocking the private key - # - # @return [OpenSSL::PKey] The private key for signing assertions. - def self.load_from_pkcs12(keyfile, passphrase) - load_key(keyfile, passphrase) do |content, pass_phrase| - OpenSSL::PKCS12.new(content, pass_phrase).key - end - end - - - ## - # Loads a key from a PEM file. - # - # @param [String] keyfile - # Path of the PEM file to load. If not a path to an actual file, - # assumes the string is the content of the file itself. - # @param [String] passphrase - # Passphrase for unlocking the private key - # - # @return [OpenSSL::PKey] The private key for signing assertions. - # - def self.load_from_pem(keyfile, passphrase) - load_key(keyfile, passphrase) do | content, pass_phrase| - OpenSSL::PKey::RSA.new(content, pass_phrase) - end - end - - private - - ## - # Helper for loading keys from file or memory. Accepts a block - # to handle the specific file format. - # - # @param [String] keyfile - # Path of thefile to load. If not a path to an actual file, - # assumes the string is the content of the file itself. - # @param [String] passphrase - # Passphrase for unlocking the private key - # - # @yield [String, String] - # Key file & passphrase to extract key from - # @yieldparam [String] keyfile - # Contents of the file - # @yieldparam [String] passphrase - # Passphrase to unlock key - # @yieldreturn [OpenSSL::PKey] - # Private key - # - # @return [OpenSSL::PKey] The private key for signing assertions. - def self.load_key(keyfile, passphrase, &block) - begin - begin - content = File.open(keyfile, 'rb') { |io| io.read } - rescue - content = keyfile - end - block.call(content, passphrase) - rescue OpenSSL::OpenSSLError - raise ArgumentError.new("Invalid keyfile or passphrase") - end - end - end - end -end diff --git a/lib/google/api_client/auth/pkcs12.rb b/lib/google/api_client/auth/pkcs12.rb deleted file mode 100644 index 94c43185d..000000000 --- a/lib/google/api_client/auth/pkcs12.rb +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'google/api_client/auth/key_utils' -module Google - class APIClient - ## - # Helper for loading keys from the PKCS12 files downloaded when - # setting up service accounts at the APIs Console. - # - module PKCS12 - ## - # Loads a key from PKCS12 file, assuming a single private key - # is present. - # - # @param [String] keyfile - # Path of the PKCS12 file to load. If not a path to an actual file, - # assumes the string is the content of the file itself. - # @param [String] passphrase - # Passphrase for unlocking the private key - # - # @return [OpenSSL::PKey] The private key for signing assertions. - # @deprecated - # Use {Google::APIClient::KeyUtils} instead - def self.load_key(keyfile, passphrase) - KeyUtils.load_from_pkcs12(keyfile, passphrase) - end - end - end -end diff --git a/lib/google/api_client/batch.rb b/lib/google/api_client/batch.rb deleted file mode 100644 index 45a2e3104..000000000 --- a/lib/google/api_client/batch.rb +++ /dev/null @@ -1,326 +0,0 @@ -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'addressable/uri' -require 'google/api_client/reference' -require 'securerandom' - -module Google - class APIClient - - ## - # Helper class to contain a response to an individual batched call. - # - # @api private - class BatchedCallResponse - # @return [String] UUID of the call - attr_reader :call_id - # @return [Fixnum] HTTP status code - attr_accessor :status - # @return [Hash] HTTP response headers - attr_accessor :headers - # @return [String] HTTP response body - attr_accessor :body - - ## - # Initialize the call response - # - # @param [String] call_id - # UUID of the original call - # @param [Fixnum] status - # HTTP status - # @param [Hash] headers - # HTTP response headers - # @param [#read, #to_str] body - # Response body - def initialize(call_id, status = nil, headers = nil, body = nil) - @call_id, @status, @headers, @body = call_id, status, headers, body - end - end - - # Wraps multiple API calls into a single over-the-wire HTTP request. - # - # @example - # - # client = Google::APIClient.new - # urlshortener = client.discovered_api('urlshortener') - # batch = Google::APIClient::BatchRequest.new do |result| - # puts result.data - # end - # - # batch.add(:api_method => urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/foo' }) - # batch.add(:api_method => urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) - # - # client.execute(batch) - # - class BatchRequest < Request - BATCH_BOUNDARY = "-----------RubyApiBatchRequest".freeze - - # @api private - # @return [Array<(String,Google::APIClient::Request,Proc)] List of API calls in the batch - attr_reader :calls - - ## - # Creates a new batch request. - # - # @param [Hash] options - # Set of options for this request. - # @param [Proc] block - # Callback for every call's response. Won't be called if a call defined - # a callback of its own. - # - # @return [Google::APIClient::BatchRequest] - # The constructed object. - # - # @yield [Google::APIClient::Result] - # block to be called when result ready - def initialize(options = {}, &block) - @calls = [] - @global_callback = nil - @global_callback = block if block_given? - @last_auto_id = 0 - - @base_id = SecureRandom.uuid - - options[:uri] ||= 'https://www.googleapis.com/batch' - options[:http_method] ||= 'POST' - - super options - end - - ## - # Add a new call to the batch request. - # Each call must have its own call ID; if not provided, one will - # automatically be generated, avoiding collisions. If duplicate call IDs - # are provided, an error will be thrown. - # - # @param [Hash, Google::APIClient::Request] call - # the call to be added. - # @param [String] call_id - # the ID to be used for this call. Must be unique - # @param [Proc] block - # callback for this call's response. - # - # @return [Google::APIClient::BatchRequest] - # the BatchRequest, for chaining - # - # @yield [Google::APIClient::Result] - # block to be called when result ready - def add(call, call_id = nil, &block) - unless call.kind_of?(Google::APIClient::Reference) - call = Google::APIClient::Reference.new(call) - end - call_id ||= new_id - if @calls.assoc(call_id) - raise BatchError, - 'A call with this ID already exists: %s' % call_id - end - callback = block_given? ? block : @global_callback - @calls << [call_id, call, callback] - return self - end - - ## - # Processes the HTTP response to the batch request, issuing callbacks. - # - # @api private - # - # @param [Faraday::Response] response - # the HTTP response. - def process_http_response(response) - content_type = find_header('Content-Type', response.headers) - m = /.*boundary=(.+)/.match(content_type) - if m - boundary = m[1] - parts = response.body.split(/--#{Regexp.escape(boundary)}/) - parts = parts[1...-1] - parts.each do |part| - call_response = deserialize_call_response(part) - _, call, callback = @calls.assoc(call_response.call_id) - result = Google::APIClient::Result.new(call, call_response) - callback.call(result) if callback - end - end - Google::APIClient::Result.new(self, response) - end - - ## - # Return the request body for the BatchRequest's HTTP request. - # - # @api private - # - # @return [String] - # the request body. - def to_http_request - if @calls.nil? || @calls.empty? - raise BatchError, 'Cannot make an empty batch request' - end - parts = @calls.map {|(call_id, call, _callback)| serialize_call(call_id, call)} - build_multipart(parts, 'multipart/mixed', BATCH_BOUNDARY) - super - end - - - protected - - ## - # Helper method to find a header from its name, regardless of case. - # - # @api private - # - # @param [String] name - # the name of the header to find. - # @param [Hash] headers - # the hash of headers and their values. - # - # @return [String] - # the value of the desired header. - def find_header(name, headers) - _, header = headers.detect do |h, v| - h.downcase == name.downcase - end - return header - end - - ## - # Create a new call ID. Uses an auto-incrementing, conflict-avoiding ID. - # - # @api private - # - # @return [String] - # the new, unique ID. - def new_id - @last_auto_id += 1 - while @calls.assoc(@last_auto_id) - @last_auto_id += 1 - end - return @last_auto_id.to_s - end - - ## - # Convert a Content-ID header value to an id. Presumes the Content-ID - # header conforms to the format that id_to_header() returns. - # - # @api private - # - # @param [String] header - # Content-ID header value. - # - # @return [String] - # The extracted ID value. - def header_to_id(header) - if !header.start_with?('<') || !header.end_with?('>') || - !header.include?('+') - raise BatchError, 'Invalid value for Content-ID: "%s"' % header - end - - _base, call_id = header[1...-1].split('+') - return Addressable::URI.unencode(call_id) - end - - ## - # Auxiliary method to split the headers from the body in an HTTP response. - # - # @api private - # - # @param [String] response - # the response to parse. - # - # @return [Array, String] - # the headers and the body, separately. - def split_headers_and_body(response) - headers = {} - payload = response.lstrip - while payload - line, payload = payload.split("\n", 2) - line.sub!(/\s+\z/, '') - break if line.empty? - match = /\A([^:]+):\s*/.match(line) - if match - headers[match[1]] = match.post_match - else - raise BatchError, 'Invalid header line in response: %s' % line - end - end - return headers, payload - end - - ## - # Convert a single batched response into a BatchedCallResponse object. - # - # @api private - # - # @param [String] call_response - # the request to deserialize. - # - # @return [Google::APIClient::BatchedCallResponse] - # the parsed and converted response. - def deserialize_call_response(call_response) - outer_headers, outer_body = split_headers_and_body(call_response) - status_line, payload = outer_body.split("\n", 2) - _protocol, status, _reason = status_line.split(' ', 3) - - headers, body = split_headers_and_body(payload) - content_id = find_header('Content-ID', outer_headers) - call_id = header_to_id(content_id) - return BatchedCallResponse.new(call_id, status.to_i, headers, body) - end - - ## - # Serialize a single batched call for assembling the multipart message - # - # @api private - # - # @param [Google::APIClient::Request] call - # the call to serialize. - # - # @return [Faraday::UploadIO] - # the serialized request - def serialize_call(call_id, call) - method, uri, headers, body = call.to_http_request - request = "#{method.to_s.upcase} #{Addressable::URI.parse(uri).request_uri} HTTP/1.1" - headers.each do |header, value| - request << "\r\n%s: %s" % [header, value] - end - if body - # TODO - CompositeIO if body is a stream - request << "\r\n\r\n" - if body.respond_to?(:read) - request << body.read - else - request << body.to_s - end - end - Faraday::UploadIO.new(StringIO.new(request), 'application/http', 'ruby-api-request', 'Content-ID' => id_to_header(call_id)) - end - - ## - # Convert an id to a Content-ID header value. - # - # @api private - # - # @param [String] call_id - # identifier of individual call. - # - # @return [String] - # A Content-ID header with the call_id encoded into it. A UUID is - # prepended to the value because Content-ID headers are supposed to be - # universally unique. - def id_to_header(call_id) - return '<%s+%s>' % [@base_id, Addressable::URI.encode(call_id)] - end - - end - end -end \ No newline at end of file diff --git a/lib/google/api_client/charset.rb b/lib/google/api_client/charset.rb deleted file mode 100644 index 47b11ba84..000000000 --- a/lib/google/api_client/charset.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'faraday' -require 'zlib' - -module Google - class APIClient - class Charset < Faraday::Response::Middleware - include Google::APIClient::Logging - - def charset_for_content_type(type) - if type - m = type.match(/(?:charset|encoding)="?([a-z0-9-]+)"?/i) - if m - return Encoding.find(m[1]) - end - end - nil - end - - def adjust_encoding(env) - charset = charset_for_content_type(env[:response_headers]['content-type']) - if charset && env[:body].encoding != charset - env[:body].force_encoding(charset) - end - end - - def on_complete(env) - adjust_encoding(env) - end - end - end -end - -Faraday::Response.register_middleware :charset => Google::APIClient::Charset \ No newline at end of file diff --git a/lib/google/api_client/discovery/api.rb b/lib/google/api_client/discovery/api.rb deleted file mode 100644 index 3bbc90da3..000000000 --- a/lib/google/api_client/discovery/api.rb +++ /dev/null @@ -1,310 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'addressable/uri' -require 'multi_json' -require 'active_support/inflector' -require 'google/api_client/discovery/resource' -require 'google/api_client/discovery/method' -require 'google/api_client/discovery/media' - -module Google - class APIClient - ## - # A service that has been described by a discovery document. - class API - - ## - # Creates a description of a particular version of a service. - # - # @param [String] document_base - # Base URI for the discovery document. - # @param [Hash] discovery_document - # The section of the discovery document that applies to this service - # version. - # - # @return [Google::APIClient::API] The constructed service object. - def initialize(document_base, discovery_document) - @document_base = Addressable::URI.parse(document_base) - @discovery_document = discovery_document - metaclass = (class << self; self; end) - self.discovered_resources.each do |resource| - method_name = ActiveSupport::Inflector.underscore(resource.name).to_sym - if !self.respond_to?(method_name) - metaclass.send(:define_method, method_name) { resource } - end - end - self.discovered_methods.each do |method| - method_name = ActiveSupport::Inflector.underscore(method.name).to_sym - if !self.respond_to?(method_name) - metaclass.send(:define_method, method_name) { method } - end - end - end - - # @return [String] unparsed discovery document for the API - attr_reader :discovery_document - - ## - # Returns the id of the service. - # - # @return [String] The service id. - def id - return ( - @discovery_document['id'] || - "#{self.name}:#{self.version}" - ) - end - - ## - # Returns the identifier for the service. - # - # @return [String] The service identifier. - def name - return @discovery_document['name'] - end - - ## - # Returns the version of the service. - # - # @return [String] The service version. - def version - return @discovery_document['version'] - end - - ## - # Returns a human-readable title for the API. - # - # @return [Hash] The API title. - def title - return @discovery_document['title'] - end - - ## - # Returns a human-readable description of the API. - # - # @return [Hash] The API description. - def description - return @discovery_document['description'] - end - - ## - # Returns a URI for the API documentation. - # - # @return [Hash] The API documentation. - def documentation - return Addressable::URI.parse(@discovery_document['documentationLink']) - end - - ## - # Returns true if this is the preferred version of this API. - # - # @return [TrueClass, FalseClass] - # Whether or not this is the preferred version of this API. - def preferred - return !!@discovery_document['preferred'] - end - - ## - # Returns the list of API features. - # - # @return [Array] - # The features supported by this API. - def features - return @discovery_document['features'] || [] - end - - ## - # Returns the root URI for this service. - # - # @return [Addressable::URI] The root URI. - def root_uri - return @root_uri ||= ( - Addressable::URI.parse(self.discovery_document['rootUrl']) - ) - end - - ## - # Returns true if this API uses a data wrapper. - # - # @return [TrueClass, FalseClass] - # Whether or not this API uses a data wrapper. - def data_wrapper? - return self.features.include?('dataWrapper') - end - - ## - # Returns the base URI for the discovery document. - # - # @return [Addressable::URI] The base URI. - attr_reader :document_base - - ## - # Returns the base URI for this version of the service. - # - # @return [Addressable::URI] The base URI that methods are joined to. - def method_base - if @discovery_document['basePath'] - return @method_base ||= ( - self.root_uri.join(Addressable::URI.parse(@discovery_document['basePath'])) - ).normalize - else - return nil - end - end - - ## - # Updates the hierarchy of resources and methods with the new base. - # - # @param [Addressable::URI, #to_str, String] new_method_base - # The new base URI to use for the service. - def method_base=(new_method_base) - @method_base = Addressable::URI.parse(new_method_base) - self.discovered_resources.each do |resource| - resource.method_base = @method_base - end - self.discovered_methods.each do |method| - method.method_base = @method_base - end - end - - ## - # Returns the base URI for batch calls to this service. - # - # @return [Addressable::URI] The base URI that methods are joined to. - def batch_path - if @discovery_document['batchPath'] - return @batch_path ||= ( - self.document_base.join(Addressable::URI.parse('/' + - @discovery_document['batchPath'])) - ).normalize - else - return nil - end - end - - ## - # A list of schemas available for this version of the API. - # - # @return [Hash] A list of {Google::APIClient::Schema} objects. - def schemas - return @schemas ||= ( - (@discovery_document['schemas'] || []).inject({}) do |accu, (k, v)| - accu[k] = Google::APIClient::Schema.parse(self, v) - accu - end - ) - end - - ## - # Returns a schema for a kind value. - # - # @return [Google::APIClient::Schema] The associated Schema object. - def schema_for_kind(kind) - api_name, schema_name = kind.split('#', 2) - if api_name != self.name - raise ArgumentError, - "The kind does not match this API. " + - "Expected '#{self.name}', got '#{api_name}'." - end - for k, v in self.schemas - return v if k.downcase == schema_name.downcase - end - return nil - end - - ## - # A list of resources available at the root level of this version of the - # API. - # - # @return [Array] A list of {Google::APIClient::Resource} objects. - def discovered_resources - return @discovered_resources ||= ( - (@discovery_document['resources'] || []).inject([]) do |accu, (k, v)| - accu << Google::APIClient::Resource.new( - self, self.method_base, k, v - ) - accu - end - ) - end - - ## - # A list of methods available at the root level of this version of the - # API. - # - # @return [Array] A list of {Google::APIClient::Method} objects. - def discovered_methods - return @discovered_methods ||= ( - (@discovery_document['methods'] || []).inject([]) do |accu, (k, v)| - accu << Google::APIClient::Method.new(self, self.method_base, k, v) - accu - end - ) - end - - ## - # Allows deep inspection of the discovery document. - def [](key) - return @discovery_document[key] - end - - ## - # Converts the service to a flat mapping of RPC names and method objects. - # - # @return [Hash] All methods available on the service. - # - # @example - # # Discover available methods - # method_names = client.discovered_api('buzz').to_h.keys - def to_h - return @hash ||= (begin - methods_hash = {} - self.discovered_methods.each do |method| - methods_hash[method.id] = method - end - self.discovered_resources.each do |resource| - methods_hash.merge!(resource.to_h) - end - methods_hash - end) - end - - ## - # Returns a String representation of the service's state. - # - # @return [String] The service's state, as a String. - def inspect - sprintf( - "#<%s:%#0x ID:%s>", self.class.to_s, self.object_id, self.id - ) - end - - ## - # Marshalling support - serialize the API to a string (doc base + original - # discovery document). - def _dump(level) - MultiJson.dump([@document_base.to_s, @discovery_document]) - end - - ## - # Marshalling support - Restore an API instance from serialized form - def self._load(obj) - new(*MultiJson.load(obj)) - end - - end - end -end diff --git a/lib/google/api_client/discovery/media.rb b/lib/google/api_client/discovery/media.rb deleted file mode 100644 index ffa7e87c3..000000000 --- a/lib/google/api_client/discovery/media.rb +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'addressable/uri' -require 'addressable/template' - -require 'google/api_client/errors' - - -module Google - class APIClient - ## - # Media upload elements for discovered methods - class MediaUpload - - ## - # Creates a description of a particular method. - # - # @param [Google::APIClient::API] api - # Base discovery document for the API - # @param [Addressable::URI] method_base - # The base URI for the service. - # @param [Hash] discovery_document - # The media upload section of the discovery document. - # - # @return [Google::APIClient::Method] The constructed method object. - def initialize(api, method_base, discovery_document) - @api = api - @method_base = method_base - @discovery_document = discovery_document - end - - ## - # List of acceptable mime types - # - # @return [Array] - # List of acceptable mime types for uploaded content - def accepted_types - @discovery_document['accept'] - end - - ## - # Maximum size of an uplad - # TODO: Parse & convert to numeric value - # - # @return [String] - def max_size - @discovery_document['maxSize'] - end - - ## - # Returns the URI template for the method. A parameter list can be - # used to expand this into a URI. - # - # @return [Addressable::Template] The URI template. - def uri_template - return @uri_template ||= Addressable::Template.new( - @api.method_base.join(Addressable::URI.parse(@discovery_document['protocols']['simple']['path'])) - ) - end - - end - - end -end diff --git a/lib/google/api_client/discovery/method.rb b/lib/google/api_client/discovery/method.rb deleted file mode 100644 index 3a06857c0..000000000 --- a/lib/google/api_client/discovery/method.rb +++ /dev/null @@ -1,363 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'addressable/uri' -require 'addressable/template' - -require 'google/api_client/errors' - - -module Google - class APIClient - ## - # A method that has been described by a discovery document. - class Method - - ## - # Creates a description of a particular method. - # - # @param [Google::APIClient::API] api - # The API this method belongs to. - # @param [Addressable::URI] method_base - # The base URI for the service. - # @param [String] method_name - # The identifier for the method. - # @param [Hash] discovery_document - # The section of the discovery document that applies to this method. - # - # @return [Google::APIClient::Method] The constructed method object. - def initialize(api, method_base, method_name, discovery_document) - @api = api - @method_base = method_base - @name = method_name - @discovery_document = discovery_document - end - - # @return [String] unparsed discovery document for the method - attr_reader :discovery_document - - ## - # Returns the API this method belongs to. - # - # @return [Google::APIClient::API] The API this method belongs to. - attr_reader :api - - ## - # Returns the identifier for the method. - # - # @return [String] The method identifier. - attr_reader :name - - ## - # Returns the base URI for the method. - # - # @return [Addressable::URI] - # The base URI that this method will be joined to. - attr_reader :method_base - - ## - # Updates the method with the new base. - # - # @param [Addressable::URI, #to_str, String] new_method_base - # The new base URI to use for the method. - def method_base=(new_method_base) - @method_base = Addressable::URI.parse(new_method_base) - @uri_template = nil - end - - ## - # Returns a human-readable description of the method. - # - # @return [Hash] The API description. - def description - return @discovery_document['description'] - end - - ## - # Returns the method ID. - # - # @return [String] The method identifier. - def id - return @discovery_document['id'] - end - - ## - # Returns the HTTP method or 'GET' if none is specified. - # - # @return [String] The HTTP method that will be used in the request. - def http_method - return @discovery_document['httpMethod'] || 'GET' - end - - ## - # Returns the URI template for the method. A parameter list can be - # used to expand this into a URI. - # - # @return [Addressable::Template] The URI template. - def uri_template - return @uri_template ||= Addressable::Template.new( - self.method_base.join(Addressable::URI.parse("./" + @discovery_document['path'])) - ) - end - - ## - # Returns media upload information for this method, if supported - # - # @return [Google::APIClient::MediaUpload] Description of upload endpoints - def media_upload - if @discovery_document['mediaUpload'] - return @media_upload ||= Google::APIClient::MediaUpload.new(self, self.method_base, @discovery_document['mediaUpload']) - else - return nil - end - end - - ## - # Returns the Schema object for the method's request, if any. - # - # @return [Google::APIClient::Schema] The request schema. - def request_schema - if @discovery_document['request'] - schema_name = @discovery_document['request']['$ref'] - return @api.schemas[schema_name] - else - return nil - end - end - - ## - # Returns the Schema object for the method's response, if any. - # - # @return [Google::APIClient::Schema] The response schema. - def response_schema - if @discovery_document['response'] - schema_name = @discovery_document['response']['$ref'] - return @api.schemas[schema_name] - else - return nil - end - end - - ## - # Normalizes parameters, converting to the appropriate types. - # - # @param [Hash, Array] parameters - # The parameters to normalize. - # - # @return [Hash] The normalized parameters. - def normalize_parameters(parameters={}) - # Convert keys to Strings when appropriate - if parameters.kind_of?(Hash) || parameters.kind_of?(Array) - # Returning an array since parameters can be repeated (ie, Adsense Management API) - parameters = parameters.inject([]) do |accu, (k, v)| - k = k.to_s if k.kind_of?(Symbol) - k = k.to_str if k.respond_to?(:to_str) - unless k.kind_of?(String) - raise TypeError, "Expected String, got #{k.class}." - end - accu << [k, v] - accu - end - else - raise TypeError, - "Expected Hash or Array, got #{parameters.class}." - end - return parameters - end - - ## - # Expands the method's URI template using a parameter list. - # - # @api private - # @param [Hash, Array] parameters - # The parameter list to use. - # - # @return [Addressable::URI] The URI after expansion. - def generate_uri(parameters={}) - parameters = self.normalize_parameters(parameters) - - self.validate_parameters(parameters) - template_variables = self.uri_template.variables - upload_type = parameters.assoc('uploadType') || parameters.assoc('upload_type') - if upload_type - unless self.media_upload - raise ArgumentException, "Media upload not supported for this method" - end - case upload_type.last - when 'media', 'multipart', 'resumable' - uri = self.media_upload.uri_template.expand(parameters) - else - raise ArgumentException, "Invalid uploadType '#{upload_type}'" - end - else - uri = self.uri_template.expand(parameters) - end - query_parameters = parameters.reject do |k, v| - template_variables.include?(k) - end - # encode all non-template parameters - params = "" - unless query_parameters.empty? - params = "?" + Addressable::URI.form_encode(query_parameters.sort) - end - # Normalization is necessary because of undesirable percent-escaping - # during URI template expansion - return uri.normalize + params - end - - ## - # Generates an HTTP request for this method. - # - # @api private - # @param [Hash, Array] parameters - # The parameters to send. - # @param [String, StringIO] body The body for the HTTP request. - # @param [Hash, Array] headers The HTTP headers for the request. - # @option options [Faraday::Connection] :connection - # The HTTP connection to use. - # - # @return [Array] The generated HTTP request. - def generate_request(parameters={}, body='', headers={}, options={}) - if !headers.kind_of?(Array) && !headers.kind_of?(Hash) - raise TypeError, "Expected Hash or Array, got #{headers.class}." - end - method = self.http_method.to_s.downcase.to_sym - uri = self.generate_uri(parameters) - headers = Faraday::Utils::Headers.new(headers) - return [method, uri, headers, body] - end - - - ## - # Returns a Hash of the parameter descriptions for - # this method. - # - # @return [Hash] The parameter descriptions. - def parameter_descriptions - @parameter_descriptions ||= ( - @discovery_document['parameters'] || {} - ).inject({}) { |h,(k,v)| h[k]=v; h } - end - - ## - # Returns an Array of the parameters for this method. - # - # @return [Array] The parameters. - def parameters - @parameters ||= (( - @discovery_document['parameters'] || {} - ).inject({}) { |h,(k,v)| h[k]=v; h }).keys - end - - ## - # Returns an Array of the required parameters for this - # method. - # - # @return [Array] The required parameters. - # - # @example - # # A list of all required parameters. - # method.required_parameters - def required_parameters - @required_parameters ||= ((self.parameter_descriptions.select do |k, v| - v['required'] - end).inject({}) { |h,(k,v)| h[k]=v; h }).keys - end - - ## - # Returns an Array of the optional parameters for this - # method. - # - # @return [Array] The optional parameters. - # - # @example - # # A list of all optional parameters. - # method.optional_parameters - def optional_parameters - @optional_parameters ||= ((self.parameter_descriptions.reject do |k, v| - v['required'] - end).inject({}) { |h,(k,v)| h[k]=v; h }).keys - end - - ## - # Verifies that the parameters are valid for this method. Raises an - # exception if validation fails. - # - # @api private - # @param [Hash, Array] parameters - # The parameters to verify. - # - # @return [NilClass] nil if validation passes. - def validate_parameters(parameters={}) - parameters = self.normalize_parameters(parameters) - required_variables = ((self.parameter_descriptions.select do |k, v| - v['required'] - end).inject({}) { |h,(k,v)| h[k]=v; h }).keys - missing_variables = required_variables - parameters.map { |(k, _)| k } - if missing_variables.size > 0 - raise ArgumentError, - "Missing required parameters: #{missing_variables.join(', ')}." - end - parameters.each do |k, v| - # Handle repeated parameters. - if self.parameter_descriptions[k] && - self.parameter_descriptions[k]['repeated'] && - v.kind_of?(Array) - # If this is a repeated parameter and we've got an array as a - # value, just provide the whole array to the loop below. - items = v - else - # If this is not a repeated parameter, or if it is but we're - # being given a single value, wrap the value in an array, so that - # the loop below still works for the single element. - items = [v] - end - - items.each do |item| - if self.parameter_descriptions[k] - enum = self.parameter_descriptions[k]['enum'] - if enum && !enum.include?(item) - raise ArgumentError, - "Parameter '#{k}' has an invalid value: #{item}. " + - "Must be one of #{enum.inspect}." - end - pattern = self.parameter_descriptions[k]['pattern'] - if pattern - regexp = Regexp.new("^#{pattern}$") - if item !~ regexp - raise ArgumentError, - "Parameter '#{k}' has an invalid value: #{item}. " + - "Must match: /^#{pattern}$/." - end - end - end - end - end - return nil - end - - ## - # Returns a String representation of the method's state. - # - # @return [String] The method's state, as a String. - def inspect - sprintf( - "#<%s:%#0x ID:%s>", - self.class.to_s, self.object_id, self.id - ) - end - end - end -end diff --git a/lib/google/api_client/discovery/resource.rb b/lib/google/api_client/discovery/resource.rb deleted file mode 100644 index 9b757c684..000000000 --- a/lib/google/api_client/discovery/resource.rb +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'addressable/uri' - -require 'active_support/inflector' -require 'google/api_client/discovery/method' - - -module Google - class APIClient - ## - # A resource that has been described by a discovery document. - class Resource - - ## - # Creates a description of a particular version of a resource. - # - # @param [Google::APIClient::API] api - # The API this resource belongs to. - # @param [Addressable::URI] method_base - # The base URI for the service. - # @param [String] resource_name - # The identifier for the resource. - # @param [Hash] discovery_document - # The section of the discovery document that applies to this resource. - # - # @return [Google::APIClient::Resource] The constructed resource object. - def initialize(api, method_base, resource_name, discovery_document) - @api = api - @method_base = method_base - @name = resource_name - @discovery_document = discovery_document - metaclass = (class <String representation of the resource's state. - # - # @return [String] The resource's state, as a String. - def inspect - sprintf( - "#<%s:%#0x NAME:%s>", self.class.to_s, self.object_id, self.name - ) - end - end - end -end diff --git a/lib/google/api_client/discovery/schema.rb b/lib/google/api_client/discovery/schema.rb deleted file mode 100644 index 57666e698..000000000 --- a/lib/google/api_client/discovery/schema.rb +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'time' -require 'multi_json' -require 'compat/multi_json' -require 'base64' -require 'autoparse' -require 'addressable/uri' -require 'addressable/template' - -require 'active_support/inflector' -require 'google/api_client/errors' - - -module Google - class APIClient - ## - # @api private - module Schema - def self.parse(api, schema_data) - # This method is super-long, but hard to break up due to the - # unavoidable dependence on closures and execution context. - schema_name = schema_data['id'] - - # Due to an oversight, schema IDs may not be URI references. - # TODO(bobaman): Remove this code once this has been resolved. - schema_uri = ( - api.document_base + - (schema_name[0..0] != '#' ? '#' + schema_name : schema_name) - ) - - # Due to an oversight, schema IDs may not be URI references. - # TODO(bobaman): Remove this whole lambda once this has been resolved. - reformat_references = lambda do |data| - # This code is not particularly efficient due to recursive traversal - # and excess object creation, but this hopefully shouldn't be an - # issue since it should only be called only once per schema per - # process. - if data.kind_of?(Hash) && - data['$ref'] && !data['$ref'].kind_of?(Hash) - if data['$ref'].respond_to?(:to_str) - reference = data['$ref'].to_str - else - raise TypeError, "Expected String, got #{data['$ref'].class}" - end - reference = '#' + reference if reference[0..0] != '#' - data.merge({ - '$ref' => reference - }) - elsif data.kind_of?(Hash) - data.inject({}) do |accu, (key, value)| - if value.kind_of?(Hash) - accu[key] = reformat_references.call(value) - else - accu[key] = value - end - accu - end - else - data - end - end - schema_data = reformat_references.call(schema_data) - - if schema_name - api_name_string = ActiveSupport::Inflector.camelize(api.name) - api_version_string = ActiveSupport::Inflector.camelize(api.version).gsub('.', '_') - # This is for compatibility with Ruby 1.8.7. - # TODO(bobaman) Remove this when we eventually stop supporting 1.8.7. - args = [] - args << false if Class.method(:const_defined?).arity != 1 - if Google::APIClient::Schema.const_defined?(api_name_string, *args) - api_name = Google::APIClient::Schema.const_get( - api_name_string, *args - ) - else - api_name = Google::APIClient::Schema.const_set( - api_name_string, Module.new - ) - end - if api_name.const_defined?(api_version_string, *args) - api_version = api_name.const_get(api_version_string, *args) - else - api_version = api_name.const_set(api_version_string, Module.new) - end - if api_version.const_defined?(schema_name, *args) - schema_class = api_version.const_get(schema_name, *args) - end - end - - # It's possible the schema has already been defined. If so, don't - # redefine it. This means that reloading a schema which has already - # been loaded into memory is not possible. - unless schema_class - schema_class = AutoParse.generate(schema_data, :uri => schema_uri) - if schema_name - api_version.const_set(schema_name, schema_class) - end - end - return schema_class - end - end - end -end diff --git a/lib/google/api_client/environment.rb b/lib/google/api_client/environment.rb deleted file mode 100644 index 50c84fe5c..000000000 --- a/lib/google/api_client/environment.rb +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -module Google - class APIClient - module ENV - OS_VERSION = begin - if RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/ - # TODO(bobaman) - # Confirm that all of these Windows environments actually have access - # to the `ver` command. - `ver`.sub(/\s*\[Version\s*/, '/').sub(']', '').strip - elsif RUBY_PLATFORM =~ /darwin/i - "Mac OS X/#{`sw_vers -productVersion`}" - elsif RUBY_PLATFORM == 'java' - # Get the information from java system properties to avoid spawning a - # sub-process, which is not friendly in some contexts (web servers). - require 'java' - name = java.lang.System.getProperty('os.name') - version = java.lang.System.getProperty('os.version') - "#{name}/#{version}" - else - `uname -sr`.sub(' ', '/') - end - rescue Exception - RUBY_PLATFORM - end - end - end -end diff --git a/lib/google/api_client/gzip.rb b/lib/google/api_client/gzip.rb deleted file mode 100644 index 42fabbbdb..000000000 --- a/lib/google/api_client/gzip.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'faraday' -require 'zlib' - -module Google - class APIClient - class Gzip < Faraday::Response::Middleware - include Google::APIClient::Logging - - def on_complete(env) - encoding = env[:response_headers]['content-encoding'].to_s.downcase - case encoding - when 'gzip' - logger.debug { "Decompressing gzip encoded response (#{env[:body].length} bytes)" } - env[:body] = Zlib::GzipReader.new(StringIO.new(env[:body])).read - env[:response_headers].delete('content-encoding') - logger.debug { "Decompressed (#{env[:body].length} bytes)" } - when 'deflate' - logger.debug{ "Decompressing deflate encoded response (#{env[:body].length} bytes)" } - env[:body] = Zlib::Inflate.inflate(env[:body]) - env[:response_headers].delete('content-encoding') - logger.debug { "Decompressed (#{env[:body].length} bytes)" } - end - end - end - end -end - -Faraday::Response.register_middleware :gzip => Google::APIClient::Gzip \ No newline at end of file diff --git a/lib/google/api_client/logging.rb b/lib/google/api_client/logging.rb deleted file mode 100644 index 09a075b5c..000000000 --- a/lib/google/api_client/logging.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'logger' - -module Google - class APIClient - - class << self - ## - # Logger for the API client - # - # @return [Logger] logger instance. - attr_accessor :logger - end - - self.logger = Logger.new(STDOUT) - self.logger.level = Logger::WARN - - ## - # Module to make accessing the logger simpler - module Logging - ## - # Logger for the API client - # - # @return [Logger] logger instance. - def logger - Google::APIClient.logger - end - end - - end - - -end \ No newline at end of file diff --git a/lib/google/api_client/media.rb b/lib/google/api_client/media.rb deleted file mode 100644 index 5066bcebd..000000000 --- a/lib/google/api_client/media.rb +++ /dev/null @@ -1,259 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -require 'google/api_client/reference' - -module Google - class APIClient - ## - # Uploadable media support. Holds an IO stream & content type. - # - # @see Faraday::UploadIO - # @example - # media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4') - class UploadIO < Faraday::UploadIO - - # @return [Fixnum] Size of chunks to upload. Default is nil, meaning upload the entire file in a single request - attr_accessor :chunk_size - - ## - # Get the length of the stream - # - # @return [Fixnum] - # Length of stream, in bytes - def length - io.respond_to?(:length) ? io.length : File.size(local_path) - end - end - - ## - # Wraps an input stream and limits data to a given range - # - # @example - # chunk = Google::APIClient::RangedIO.new(io, 0, 1000) - class RangedIO - ## - # Bind an input stream to a specific range. - # - # @param [IO] io - # Source input stream - # @param [Fixnum] offset - # Starting offset of the range - # @param [Fixnum] length - # Length of range - def initialize(io, offset, length) - @io = io - @offset = offset - @length = length - self.rewind - end - - ## - # @see IO#read - def read(amount = nil, buf = nil) - buffer = buf || '' - if amount.nil? - size = @length - @pos - done = '' - elsif amount == 0 - size = 0 - done = '' - else - size = [@length - @pos, amount].min - done = nil - end - - if size > 0 - result = @io.read(size) - result.force_encoding("BINARY") if result.respond_to?(:force_encoding) - buffer << result if result - @pos = @pos + size - end - - if buffer.length > 0 - buffer - else - done - end - end - - ## - # @see IO#rewind - def rewind - self.pos = 0 - end - - ## - # @see IO#pos - def pos - @pos - end - - ## - # @see IO#pos= - def pos=(pos) - @pos = pos - @io.pos = @offset + pos - end - end - - ## - # Resumable uploader. - # - class ResumableUpload < Request - # @return [Fixnum] Max bytes to send in a single request - attr_accessor :chunk_size - - ## - # Creates a new uploader. - # - # @param [Hash] options - # Request options - def initialize(options={}) - super options - self.uri = options[:uri] - self.http_method = :put - @offset = options[:offset] || 0 - @complete = false - @expired = false - end - - ## - # Sends all remaining chunks to the server - # - # @deprecated Pass the instance to {Google::APIClient#execute} instead - # - # @param [Google::APIClient] api_client - # API Client instance to use for sending - def send_all(api_client) - result = nil - until complete? - result = send_chunk(api_client) - break unless result.status == 308 - end - return result - end - - - ## - # Sends the next chunk to the server - # - # @deprecated Pass the instance to {Google::APIClient#execute} instead - # - # @param [Google::APIClient] api_client - # API Client instance to use for sending - def send_chunk(api_client) - return api_client.execute(self) - end - - ## - # Check if upload is complete - # - # @return [TrueClass, FalseClass] - # Whether or not the upload complete successfully - def complete? - return @complete - end - - ## - # Check if the upload URL expired (upload not completed in alotted time.) - # Expired uploads must be restarted from the beginning - # - # @return [TrueClass, FalseClass] - # Whether or not the upload has expired and can not be resumed - def expired? - return @expired - end - - ## - # Check if upload is resumable. That is, neither complete nor expired - # - # @return [TrueClass, FalseClass] True if upload can be resumed - def resumable? - return !(self.complete? or self.expired?) - end - - ## - # Convert to an HTTP request. Returns components in order of method, URI, - # request headers, and body - # - # @api private - # - # @return [Array<(Symbol, Addressable::URI, Hash, [#read,#to_str])>] - def to_http_request - if @complete - raise Google::APIClient::ClientError, "Upload already complete" - elsif @offset.nil? - self.headers.update({ - 'Content-Length' => "0", - 'Content-Range' => "bytes */#{media.length}" }) - else - start_offset = @offset - remaining = self.media.length - start_offset - chunk_size = self.media.chunk_size || self.chunk_size || self.media.length - content_length = [remaining, chunk_size].min - chunk = RangedIO.new(self.media.io, start_offset, content_length) - end_offset = start_offset + content_length - 1 - self.headers.update({ - 'Content-Length' => "#{content_length}", - 'Content-Type' => self.media.content_type, - 'Content-Range' => "bytes #{start_offset}-#{end_offset}/#{media.length}" }) - self.body = chunk - end - super - end - - ## - # Check the result from the server, updating the offset and/or location - # if available. - # - # @api private - # - # @param [Faraday::Response] response - # HTTP response - # - # @return [Google::APIClient::Result] - # Processed API response - def process_http_response(response) - case response.status - when 200...299 - @complete = true - when 308 - range = response.headers['range'] - if range - @offset = range.scan(/\d+/).collect{|x| Integer(x)}.last + 1 - end - if response.headers['location'] - self.uri = response.headers['location'] - end - when 400...499 - @expired = true - when 500...599 - # Invalidate the offset to mark it needs to be queried on the - # next request - @offset = nil - end - return Google::APIClient::Result.new(self, response) - end - - ## - # Hashified verison of the API request - # - # @return [Hash] - def to_hash - super.merge(:offset => @offset) - end - - end - end -end \ No newline at end of file diff --git a/lib/google/api_client/railtie.rb b/lib/google/api_client/railtie.rb deleted file mode 100644 index 86d9a6b20..000000000 --- a/lib/google/api_client/railtie.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'rails/railtie' -require 'google/api_client/logging' - -module Google - class APIClient - - ## - # Optional support class for Rails. Currently replaces the built-in logger - # with Rails' application log. - # - class Railtie < Rails::Railtie - initializer 'google-api-client' do |app| - logger = app.config.logger || Rails.logger - Google::APIClient.logger = logger unless logger.nil? - end - end - end -end diff --git a/lib/google/api_client/request.rb b/lib/google/api_client/request.rb deleted file mode 100644 index d043e0016..000000000 --- a/lib/google/api_client/request.rb +++ /dev/null @@ -1,350 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'faraday' -require 'faraday/request/multipart' -require 'compat/multi_json' -require 'addressable/uri' -require 'stringio' -require 'google/api_client/discovery' -require 'google/api_client/logging' - -module Google - class APIClient - - ## - # Represents an API request. - class Request - include Google::APIClient::Logging - - MULTIPART_BOUNDARY = "-----------RubyApiMultipartPost".freeze - - # @return [Hash] Request parameters - attr_reader :parameters - # @return [Hash] Additional HTTP headers - attr_reader :headers - # @return [Google::APIClient::Method] API method to invoke - attr_reader :api_method - # @return [Google::APIClient::UploadIO] File to upload - attr_accessor :media - # @return [#generated_authenticated_request] User credentials - attr_accessor :authorization - # @return [TrueClass,FalseClass] True if request should include credentials - attr_accessor :authenticated - # @return [#read, #to_str] Request body - attr_accessor :body - - ## - # Build a request - # - # @param [Hash] options - # @option options [Hash, Array] :parameters - # Request parameters for the API method. - # @option options [Google::APIClient::Method] :api_method - # API method to invoke. Either :api_method or :uri must be specified - # @option options [TrueClass, FalseClass] :authenticated - # True if request should include credentials. Implicitly true if - # unspecified and :authorization present - # @option options [#generate_signed_request] :authorization - # OAuth credentials - # @option options [Google::APIClient::UploadIO] :media - # File to upload, if media upload request - # @option options [#to_json, #to_hash] :body_object - # Main body of the API request. Typically hash or object that can - # be serialized to JSON - # @option options [#read, #to_str] :body - # Raw body to send in POST/PUT requests - # @option options [String, Addressable::URI] :uri - # URI to request. Either :api_method or :uri must be specified - # @option options [String, Symbol] :http_method - # HTTP method when requesting a URI - def initialize(options={}) - @parameters = Faraday::Utils::ParamsHash.new - @headers = Faraday::Utils::Headers.new - - self.parameters.merge!(options[:parameters]) unless options[:parameters].nil? - self.headers.merge!(options[:headers]) unless options[:headers].nil? - self.api_method = options[:api_method] - self.authenticated = options[:authenticated] - self.authorization = options[:authorization] - - # These parameters are handled differently because they're not - # parameters to the API method, but rather to the API system. - self.parameters['key'] ||= options[:key] if options[:key] - self.parameters['userIp'] ||= options[:user_ip] if options[:user_ip] - - if options[:media] - self.initialize_media_upload(options) - elsif options[:body] - self.body = options[:body] - elsif options[:body_object] - self.headers['Content-Type'] ||= 'application/json' - self.body = serialize_body(options[:body_object]) - else - self.body = '' - end - - unless self.api_method - self.http_method = options[:http_method] || 'GET' - self.uri = options[:uri] - end - end - - # @!attribute [r] upload_type - # @return [String] protocol used for upload - def upload_type - return self.parameters['uploadType'] || self.parameters['upload_type'] - end - - # @!attribute http_method - # @return [Symbol] HTTP method if invoking a URI - def http_method - return @http_method ||= self.api_method.http_method.to_s.downcase.to_sym - end - - def http_method=(new_http_method) - if new_http_method.kind_of?(Symbol) - @http_method = new_http_method.to_s.downcase.to_sym - elsif new_http_method.respond_to?(:to_str) - @http_method = new_http_method.to_s.downcase.to_sym - else - raise TypeError, - "Expected String or Symbol, got #{new_http_method.class}." - end - end - - def api_method=(new_api_method) - if new_api_method.nil? || new_api_method.kind_of?(Google::APIClient::Method) - @api_method = new_api_method - else - raise TypeError, - "Expected Google::APIClient::Method, got #{new_api_method.class}." - end - end - - # @!attribute uri - # @return [Addressable::URI] URI to send request - def uri - return @uri ||= self.api_method.generate_uri(self.parameters) - end - - def uri=(new_uri) - @uri = Addressable::URI.parse(new_uri) - @parameters.update(@uri.query_values) unless @uri.query_values.nil? - end - - - # Transmits the request with the given connection - # - # @api private - # - # @param [Faraday::Connection] connection - # the connection to transmit with - # @param [TrueValue,FalseValue] is_retry - # True if request has been previous sent - # - # @return [Google::APIClient::Result] - # result of API request - def send(connection, is_retry = false) - self.body.rewind if is_retry && self.body.respond_to?(:rewind) - env = self.to_env(connection) - logger.debug { "#{self.class} Sending API request #{env[:method]} #{env[:url].to_s} #{env[:request_headers]}" } - http_response = connection.app.call(env) - result = self.process_http_response(http_response) - - logger.debug { "#{self.class} Result: #{result.status} #{result.headers}" } - - # Resumamble slightly different than other upload protocols in that it requires at least - # 2 requests. - if result.status == 200 && self.upload_type == 'resumable' && self.media - upload = result.resumable_upload - unless upload.complete? - logger.debug { "#{self.class} Sending upload body" } - result = upload.send(connection) - end - end - return result - end - - # Convert to an HTTP request. Returns components in order of method, URI, - # request headers, and body - # - # @api private - # - # @return [Array<(Symbol, Addressable::URI, Hash, [#read,#to_str])>] - def to_http_request - request = ( - if self.api_method - self.api_method.generate_request(self.parameters, self.body, self.headers) - elsif self.uri - unless self.parameters.empty? - self.uri.query = Addressable::URI.form_encode(self.parameters) - end - [self.http_method, self.uri.to_s, self.headers, self.body] - end) - return request - end - - ## - # Hashified verison of the API request - # - # @return [Hash] - def to_hash - options = {} - if self.api_method - options[:api_method] = self.api_method - options[:parameters] = self.parameters - else - options[:http_method] = self.http_method - options[:uri] = self.uri - end - options[:headers] = self.headers - options[:body] = self.body - options[:media] = self.media - unless self.authorization.nil? - options[:authorization] = self.authorization - end - return options - end - - ## - # Prepares the request for execution, building a hash of parts - # suitable for sending to Faraday::Connection. - # - # @api private - # - # @param [Faraday::Connection] connection - # Connection for building the request - # - # @return [Hash] - # Encoded request - def to_env(connection) - method, uri, headers, body = self.to_http_request - http_request = connection.build_request(method) do |req| - req.url(uri.to_s) - req.headers.update(headers) - req.body = body - end - - if self.authorization.respond_to?(:generate_authenticated_request) - http_request = self.authorization.generate_authenticated_request( - :request => http_request, - :connection => connection - ) - end - - http_request.to_env(connection) - end - - ## - # Convert HTTP response to an API Result - # - # @api private - # - # @param [Faraday::Response] response - # HTTP response - # - # @return [Google::APIClient::Result] - # Processed API response - def process_http_response(response) - Result.new(self, response) - end - - protected - - ## - # Adjust headers & body for media uploads - # - # @api private - # - # @param [Hash] options - # @option options [Hash, Array] :parameters - # Request parameters for the API method. - # @option options [Google::APIClient::UploadIO] :media - # File to upload, if media upload request - # @option options [#to_json, #to_hash] :body_object - # Main body of the API request. Typically hash or object that can - # be serialized to JSON - # @option options [#read, #to_str] :body - # Raw body to send in POST/PUT requests - def initialize_media_upload(options) - self.media = options[:media] - case self.upload_type - when "media" - if options[:body] || options[:body_object] - raise ArgumentError, "Can not specify body & body object for simple uploads" - end - self.headers['Content-Type'] ||= self.media.content_type - self.headers['Content-Length'] ||= self.media.length.to_s - self.body = self.media - when "multipart" - unless options[:body_object] - raise ArgumentError, "Multipart requested but no body object" - end - metadata = StringIO.new(serialize_body(options[:body_object])) - build_multipart([Faraday::UploadIO.new(metadata, 'application/json', 'file.json'), self.media]) - when "resumable" - file_length = self.media.length - self.headers['X-Upload-Content-Type'] = self.media.content_type - self.headers['X-Upload-Content-Length'] = file_length.to_s - if options[:body_object] - self.headers['Content-Type'] ||= 'application/json' - self.body = serialize_body(options[:body_object]) - else - self.body = '' - end - end - end - - ## - # Assemble a multipart message from a set of parts - # - # @api private - # - # @param [Array<[#read,#to_str]>] parts - # Array of parts to encode. - # @param [String] mime_type - # MIME type of the message - # @param [String] boundary - # Boundary for separating each part of the message - def build_multipart(parts, mime_type = 'multipart/related', boundary = MULTIPART_BOUNDARY) - env = Faraday::Env.new - env.request = Faraday::RequestOptions.new - env.request.boundary = boundary - env.request_headers = {'Content-Type' => "#{mime_type};boundary=#{boundary}"} - multipart = Faraday::Request::Multipart.new - self.body = multipart.create_multipart(env, parts.map {|part| [nil, part]}) - self.headers.update(env[:request_headers]) - end - - ## - # Serialize body object to JSON - # - # @api private - # - # @param [#to_json,#to_hash] body - # object to serialize - # - # @return [String] - # JSON - def serialize_body(body) - return body.to_json if body.respond_to?(:to_json) - return MultiJson.dump(body.to_hash) if body.respond_to?(:to_hash) - raise TypeError, 'Could not convert body object to JSON.' + - 'Must respond to :to_json or :to_hash.' - end - - end - end -end diff --git a/lib/google/api_client/result.rb b/lib/google/api_client/result.rb deleted file mode 100644 index 090f22947..000000000 --- a/lib/google/api_client/result.rb +++ /dev/null @@ -1,259 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -module Google - class APIClient - ## - # This class wraps a result returned by an API call. - class Result - extend Forwardable - - ## - # Init the result - # - # @param [Google::APIClient::Request] request - # The original request - # @param [Faraday::Response] response - # Raw HTTP Response - def initialize(request, response) - @request = request - @response = response - @media_upload = reference if reference.kind_of?(ResumableUpload) - end - - # @return [Google::APIClient::Request] Original request object - attr_reader :request - # @return [Faraday::Response] HTTP response - attr_reader :response - # @!attribute [r] reference - # @return [Google::APIClient::Request] Original request object - # @deprecated See {#request} - alias_method :reference, :request # For compatibility with pre-beta clients - - # @!attribute [r] status - # @return [Fixnum] HTTP status code - # @!attribute [r] headers - # @return [Hash] HTTP response headers - # @!attribute [r] body - # @return [String] HTTP response body - def_delegators :@response, :status, :headers, :body - - # @!attribute [r] resumable_upload - # @return [Google::APIClient::ResumableUpload] For resuming media uploads - def resumable_upload - @media_upload ||= ( - options = self.reference.to_hash.merge( - :uri => self.headers['location'], - :media => self.reference.media - ) - Google::APIClient::ResumableUpload.new(options) - ) - end - - ## - # Get the content type of the response - # @!attribute [r] media_type - # @return [String] - # Value of content-type header - def media_type - _, content_type = self.headers.detect do |h, v| - h.downcase == 'Content-Type'.downcase - end - if content_type - return content_type[/^([^;]*);?.*$/, 1].strip.downcase - else - return nil - end - end - - ## - # Check if request failed - which is anything other than 200/201 OK - # - # @!attribute [r] error? - # @return [TrueClass, FalseClass] - # true if result of operation is an error - def error? - return !self.success? - end - - ## - # Check if request was successful - # - # @!attribute [r] success? - # @return [TrueClass, FalseClass] - # true if result of operation was successful - def success? - if self.response.status == 200 || self.response.status == 201 - return true - else - return false - end - end - - ## - # Extracts error messages from the response body - # - # @!attribute [r] error_message - # @return [String] - # error message, if available - def error_message - if self.data? - if self.data.respond_to?(:error) && - self.data.error.respond_to?(:message) - # You're going to get a terrible error message if the response isn't - # parsed successfully as an error. - return self.data.error.message - elsif self.data['error'] && self.data['error']['message'] - return self.data['error']['message'] - end - end - return self.body - end - - ## - # Check for parsable data in response - # - # @!attribute [r] data? - # @return [TrueClass, FalseClass] - # true if body can be parsed - def data? - !(self.body.nil? || self.body.empty? || self.media_type != 'application/json') - end - - ## - # Return parsed version of the response body. - # - # @!attribute [r] data - # @return [Object, Hash, String] - # Object if body parsable from API schema, Hash if JSON, raw body if unable to parse - def data - return @data ||= (begin - if self.data? - media_type = self.media_type - data = self.body - case media_type - when 'application/json' - data = MultiJson.load(data) - # Strip data wrapper, if present - data = data['data'] if data.has_key?('data') - else - raise ArgumentError, - "Content-Type not supported for parsing: #{media_type}" - end - if @request.api_method && @request.api_method.response_schema - # Automatically parse using the schema designated for the - # response of this API method. - data = @request.api_method.response_schema.new(data) - data - else - # Otherwise, return the raw unparsed value. - # This value must be indexable like a Hash. - data - end - end - end) - end - - ## - # Get the token used for requesting the next page of data - # - # @!attribute [r] next_page_token - # @return [String] - # next page token - def next_page_token - if self.data.respond_to?(:next_page_token) - return self.data.next_page_token - elsif self.data.respond_to?(:[]) - return self.data["nextPageToken"] - else - raise TypeError, "Data object did not respond to #next_page_token." - end - end - - ## - # Build a request for fetching the next page of data - # - # @return [Google::APIClient::Request] - # API request for retrieving next page, nil if no page token available - def next_page - return nil unless self.next_page_token - merged_parameters = Hash[self.reference.parameters].merge({ - self.page_token_param => self.next_page_token - }) - # Because Requests can be coerced to Hashes, we can merge them, - # preserving all context except the API method parameters that we're - # using for pagination. - return Google::APIClient::Request.new( - Hash[self.reference].merge(:parameters => merged_parameters) - ) - end - - ## - # Get the token used for requesting the previous page of data - # - # @!attribute [r] prev_page_token - # @return [String] - # previous page token - def prev_page_token - if self.data.respond_to?(:prev_page_token) - return self.data.prev_page_token - elsif self.data.respond_to?(:[]) - return self.data["prevPageToken"] - else - raise TypeError, "Data object did not respond to #next_page_token." - end - end - - ## - # Build a request for fetching the previous page of data - # - # @return [Google::APIClient::Request] - # API request for retrieving previous page, nil if no page token available - def prev_page - return nil unless self.prev_page_token - merged_parameters = Hash[self.reference.parameters].merge({ - self.page_token_param => self.prev_page_token - }) - # Because Requests can be coerced to Hashes, we can merge them, - # preserving all context except the API method parameters that we're - # using for pagination. - return Google::APIClient::Request.new( - Hash[self.reference].merge(:parameters => merged_parameters) - ) - end - - ## - # Pagination scheme used by this request/response - # - # @!attribute [r] pagination_type - # @return [Symbol] - # currently always :token - def pagination_type - return :token - end - - ## - # Name of the field that contains the pagination token - # - # @!attribute [r] page_token_param - # @return [String] - # currently always 'pageToken' - def page_token_param - return "pageToken" - end - - end - end -end diff --git a/lib/google/api_client/service.rb b/lib/google/api_client/service.rb deleted file mode 100755 index d80257a89..000000000 --- a/lib/google/api_client/service.rb +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'google/api_client' -require 'google/api_client/service/stub_generator' -require 'google/api_client/service/resource' -require 'google/api_client/service/request' -require 'google/api_client/service/result' -require 'google/api_client/service/batch' -require 'google/api_client/service/simple_file_store' - -module Google - class APIClient - - ## - # Experimental new programming interface at the API level. - # Hides Google::APIClient. Designed to be easier to use, with less code. - # - # @example - # calendar = Google::APIClient::Service.new('calendar', 'v3') - # result = calendar.events.list('calendarId' => 'primary').execute() - class Service - include Google::APIClient::Service::StubGenerator - extend Forwardable - - DEFAULT_CACHE_FILE = 'discovery.cache' - - # Cache for discovered APIs. - @@discovered = {} - - ## - # Creates a new Service. - # - # @param [String, Symbol] api_name - # The name of the API this service will access. - # @param [String, Symbol] api_version - # The version of the API this service will access. - # @param [Hash] options - # The configuration parameters for the service. - # @option options [Symbol, #generate_authenticated_request] :authorization - # (:oauth_1) - # The authorization mechanism used by the client. The following - # mechanisms are supported out-of-the-box: - #
      - #
    • :two_legged_oauth_1
    • - #
    • :oauth_1
    • - #
    • :oauth_2
    • - #
    - # @option options [Boolean] :auto_refresh_token (true) - # The setting that controls whether or not the api client attempts to - # refresh authorization when a 401 is hit in #execute. If the token does - # not support it, this option is ignored. - # @option options [String] :application_name - # The name of the application using the client. - # @option options [String] :application_version - # The version number of the application using the client. - # @option options [String] :host ("www.googleapis.com") - # The API hostname used by the client. This rarely needs to be changed. - # @option options [String] :port (443) - # The port number used by the client. This rarely needs to be changed. - # @option options [String] :discovery_path ("/discovery/v1") - # The discovery base path. This rarely needs to be changed. - # @option options [String] :ca_file - # Optional set of root certificates to use when validating SSL connections. - # By default, a bundled set of trusted roots will be used. - # @option options [#generate_authenticated_request] :authorization - # The authorization mechanism for requests. Used only if - # `:authenticated` is `true`. - # @option options [TrueClass, FalseClass] :authenticated (default: true) - # `true` if requests must be signed or somehow - # authenticated, `false` otherwise. - # @option options [TrueClass, FalseClass] :gzip (default: true) - # `true` if gzip enabled, `false` otherwise. - # @options options[Hash] :faraday_option - # Pass through of options to set on the Faraday connection - # @option options [Faraday::Connection] :connection - # A custom connection to be used for all requests. - # @option options [ActiveSupport::Cache::Store, :default] :discovery_cache - # A cache store to place the discovery documents for loaded APIs. - # Avoids unnecessary roundtrips to the discovery service. - # :default loads the default local file cache store. - def initialize(api_name, api_version, options = {}) - @api_name = api_name.to_s - if api_version.nil? - raise ArgumentError, - "API version must be set" - end - @api_version = api_version.to_s - if options && !options.respond_to?(:to_hash) - raise ArgumentError, - "expected options Hash, got #{options.class}" - end - - params = {} - [:application_name, :application_version, :authorization, :host, :port, - :discovery_path, :auto_refresh_token, :key, :user_ip, - :ca_file, :faraday_option].each do |option| - if options.include? option - params[option] = options[option] - end - end - - @client = Google::APIClient.new(params) - - @connection = options[:connection] || @client.connection - - @options = options - - # Initialize cache store. Default to SimpleFileStore if :cache_store - # is not provided and we have write permissions. - if options.include? :cache_store - @cache_store = options[:cache_store] - else - cache_exists = File.exists?(DEFAULT_CACHE_FILE) - if (cache_exists && File.writable?(DEFAULT_CACHE_FILE)) || - (!cache_exists && File.writable?(Dir.pwd)) - @cache_store = Google::APIClient::Service::SimpleFileStore.new( - DEFAULT_CACHE_FILE) - end - end - - # Attempt to read API definition from memory cache. - # Not thread-safe, but the worst that can happen is a cache miss. - unless @api = @@discovered[[api_name, api_version]] - # Attempt to read API definition from cache store, if there is one. - # If there's a miss or no cache store, call discovery service. - if !@cache_store.nil? - @api = @cache_store.fetch("%s/%s" % [api_name, api_version]) do - @client.discovered_api(api_name, api_version) - end - else - @api = @client.discovered_api(api_name, api_version) - end - @@discovered[[api_name, api_version]] = @api - end - - generate_call_stubs(self, @api) - end - - ## - # Returns the authorization mechanism used by the service. - # - # @return [#generate_authenticated_request] The authorization mechanism. - def_delegators :@client, :authorization, :authorization= - - ## - # The setting that controls whether or not the service attempts to - # refresh authorization when a 401 is hit during an API call. - # - # @return [Boolean] - def_delegators :@client, :auto_refresh_token, :auto_refresh_token= - - ## - # The application's API key issued by the API console. - # - # @return [String] The API key. - def_delegators :@client, :key, :key= - - ## - # The Faraday/HTTP connection used by this service. - # - # @return [Faraday::Connection] - attr_accessor :connection - - ## - # The cache store used for storing discovery documents. - # - # @return [ActiveSupport::Cache::Store, - # Google::APIClient::Service::SimpleFileStore, - # nil] - attr_reader :cache_store - - ## - # Prepares a Google::APIClient::BatchRequest object to make batched calls. - # @param [Array] calls - # Optional array of Google::APIClient::Service::Request to initialize - # the batch request with. - # @param [Proc] block - # Callback for every call's response. Won't be called if a call defined - # a callback of its own. - # - # @yield [Google::APIClient::Service::Result] - # block to be called when result ready - def batch(calls = nil, &block) - Google::APIClient::Service::BatchRequest.new(self, calls, &block) - end - - ## - # Executes an API request. - # Do not call directly; this method is only used by Request objects when - # executing. - # - # @param [Google::APIClient::Service::Request, - # Google::APIClient::Service::BatchCall] request - # The request to be executed. - def execute(request) - if request.instance_of? Google::APIClient::Service::Request - params = {:api_method => request.method, - :parameters => request.parameters, - :connection => @connection} - if request.respond_to? :body - if request.body.respond_to? :to_hash - params[:body_object] = request.body - else - params[:body] = request.body - end - end - if request.respond_to? :media - params[:media] = request.media - end - [:authenticated, :gzip].each do |option| - if @options.include? option - params[option] = @options[option] - end - end - result = @client.execute(params) - return Google::APIClient::Service::Result.new(request, result) - elsif request.instance_of? Google::APIClient::Service::BatchRequest - @client.execute(request.base_batch, {:connection => @connection}) - end - end - end - end -end diff --git a/lib/google/api_client/service/batch.rb b/lib/google/api_client/service/batch.rb deleted file mode 100644 index 7ba406e61..000000000 --- a/lib/google/api_client/service/batch.rb +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'google/api_client/service/result' -require 'google/api_client/batch' - -module Google - class APIClient - class Service - - ## - # Helper class to contain the result of an individual batched call. - # - class BatchedCallResult < Result - # @return [Fixnum] Index of the call - def call_index - return @base_result.response.call_id.to_i - 1 - end - end - - ## - # - # - class BatchRequest - ## - # Creates a new batch request. - # This class shouldn't be instantiated directly, but rather through - # Service.batch. - # - # @param [Array] calls - # List of Google::APIClient::Service::Request to be made. - # @param [Proc] block - # Callback for every call's response. Won't be called if a call - # defined a callback of its own. - # - # @yield [Google::APIClient::Service::Result] - # block to be called when result ready - def initialize(service, calls, &block) - @service = service - @base_batch = Google::APIClient::BatchRequest.new - @global_callback = block if block_given? - - if calls && calls.length > 0 - calls.each do |call| - add(call) - end - end - end - - ## - # Add a new call to the batch request. - # - # @param [Google::APIClient::Service::Request] call - # the call to be added. - # @param [Proc] block - # callback for this call's response. - # - # @return [Google::APIClient::Service::BatchRequest] - # the BatchRequest, for chaining - # - # @yield [Google::APIClient::Service::Result] - # block to be called when result ready - def add(call, &block) - if !block_given? && @global_callback.nil? - raise BatchError, 'Request needs a block' - end - callback = block || @global_callback - base_call = { - :api_method => call.method, - :parameters => call.parameters - } - if call.respond_to? :body - if call.body.respond_to? :to_hash - base_call[:body_object] = call.body - else - base_call[:body] = call.body - end - end - @base_batch.add(base_call) do |base_result| - result = Google::APIClient::Service::BatchedCallResult.new( - call, base_result) - callback.call(result) - end - return self - end - - ## - # Executes the batch request. - def execute - @service.execute(self) - end - - attr_reader :base_batch - - end - - end - end -end diff --git a/lib/google/api_client/service/request.rb b/lib/google/api_client/service/request.rb deleted file mode 100755 index dcbc7e321..000000000 --- a/lib/google/api_client/service/request.rb +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module Google - class APIClient - class Service - ## - # Handles an API request. - # This contains a full definition of the request to be made (including - # method name, parameters, body and media). The remote API call can be - # invoked with execute(). - class Request - ## - # Build a request. - # This class should not be directly instantiated in user code; - # instantiation is handled by the stub methods created on Service and - # Resource objects. - # - # @param [Google::APIClient::Service] service - # The parent Service instance that will execute the request. - # @param [Google::APIClient::Method] method - # The Method instance that describes the API method invoked by the - # request. - # @param [Hash] parameters - # A Hash of parameter names and values to be sent in the API call. - def initialize(service, method, parameters) - @service = service - @method = method - @parameters = parameters - @body = nil - @media = nil - - metaclass = (class << self; self; end) - - # If applicable, add "body", "body=" and resource-named methods for - # retrieving and setting the HTTP body for this request. - # Examples of setting the body for files.insert in the Drive API: - # request.body = object - # request.execute - # OR - # request.file = object - # request.execute - # OR - # request.body(object).execute - # OR - # request.file(object).execute - # Examples of retrieving the body for files.insert in the Drive API: - # object = request.body - # OR - # object = request.file - if method.request_schema - body_name = method.request_schema.data['id'].dup - body_name[0] = body_name[0].chr.downcase - body_name_equals = (body_name + '=').to_sym - body_name = body_name.to_sym - - metaclass.send(:define_method, :body) do |*args| - if args.length == 1 - @body = args.first - return self - elsif args.length == 0 - return @body - else - raise ArgumentError, - "wrong number of arguments (#{args.length}; expecting 0 or 1)" - end - end - - metaclass.send(:define_method, :body=) do |body| - @body = body - end - - metaclass.send(:alias_method, body_name, :body) - metaclass.send(:alias_method, body_name_equals, :body=) - end - - # If applicable, add "media" and "media=" for retrieving and setting - # the media object for this request. - # Examples of setting the media object: - # request.media = object - # request.execute - # OR - # request.media(object).execute - # Example of retrieving the media object: - # object = request.media - if method.media_upload - metaclass.send(:define_method, :media) do |*args| - if args.length == 1 - @media = args.first - return self - elsif args.length == 0 - return @media - else - raise ArgumentError, - "wrong number of arguments (#{args.length}; expecting 0 or 1)" - end - end - - metaclass.send(:define_method, :media=) do |media| - @media = media - end - end - end - - ## - # Returns the parent service capable of executing this request. - # - # @return [Google::APIClient::Service] The parent service. - attr_reader :service - - ## - # Returns the Method instance that describes the API method invoked by - # the request. - # - # @return [Google::APIClient::Method] The API method description. - attr_reader :method - - ## - # Contains the Hash of parameter names and values to be sent as the - # parameters for the API call. - # - # @return [Hash] The request parameters. - attr_accessor :parameters - - ## - # Executes the request. - def execute - @service.execute(self) - end - end - end - end -end diff --git a/lib/google/api_client/service/resource.rb b/lib/google/api_client/service/resource.rb deleted file mode 100755 index b493769d4..000000000 --- a/lib/google/api_client/service/resource.rb +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module Google - class APIClient - class Service - ## - # Handles an API resource. - # Simple class that contains API methods and/or child resources. - class Resource - include Google::APIClient::Service::StubGenerator - - ## - # Build a resource. - # This class should not be directly instantiated in user code; resources - # are instantiated by the stub generation mechanism on Service creation. - # - # @param [Google::APIClient::Service] service - # The Service instance this resource belongs to. - # @param [Google::APIClient::API, Google::APIClient::Resource] root - # The node corresponding to this resource. - def initialize(service, root) - @service = service - generate_call_stubs(service, root) - end - end - end - end -end diff --git a/lib/google/api_client/service/result.rb b/lib/google/api_client/service/result.rb deleted file mode 100755 index b20a59664..000000000 --- a/lib/google/api_client/service/result.rb +++ /dev/null @@ -1,164 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module Google - class APIClient - class Service - ## - # Handles an API result. - # Wraps around the Google::APIClient::Result class, making it easier to - # handle the result (e.g. pagination) and keeping it in line with the rest - # of the Service programming interface. - class Result - extend Forwardable - - ## - # Init the result. - # - # @param [Google::APIClient::Service::Request] request - # The original request - # @param [Google::APIClient::Result] base_result - # The base result to be wrapped - def initialize(request, base_result) - @request = request - @base_result = base_result - end - - # @!attribute [r] status - # @return [Fixnum] HTTP status code - # @!attribute [r] headers - # @return [Hash] HTTP response headers - # @!attribute [r] body - # @return [String] HTTP response body - def_delegators :@base_result, :status, :headers, :body - - # @return [Google::APIClient::Service::Request] Original request object - attr_reader :request - - ## - # Get the content type of the response - # @!attribute [r] media_type - # @return [String] - # Value of content-type header - def_delegators :@base_result, :media_type - - ## - # Check if request failed - # - # @!attribute [r] error? - # @return [TrueClass, FalseClass] - # true if result of operation is an error - def_delegators :@base_result, :error? - - ## - # Check if request was successful - # - # @!attribute [r] success? - # @return [TrueClass, FalseClass] - # true if result of operation was successful - def_delegators :@base_result, :success? - - ## - # Extracts error messages from the response body - # - # @!attribute [r] error_message - # @return [String] - # error message, if available - def_delegators :@base_result, :error_message - - ## - # Check for parsable data in response - # - # @!attribute [r] data? - # @return [TrueClass, FalseClass] - # true if body can be parsed - def_delegators :@base_result, :data? - - ## - # Return parsed version of the response body. - # - # @!attribute [r] data - # @return [Object, Hash, String] - # Object if body parsable from API schema, Hash if JSON, raw body if unable to parse - def_delegators :@base_result, :data - - ## - # Pagination scheme used by this request/response - # - # @!attribute [r] pagination_type - # @return [Symbol] - # currently always :token - def_delegators :@base_result, :pagination_type - - ## - # Name of the field that contains the pagination token - # - # @!attribute [r] page_token_param - # @return [String] - # currently always 'pageToken' - def_delegators :@base_result, :page_token_param - - ## - # Get the token used for requesting the next page of data - # - # @!attribute [r] next_page_token - # @return [String] - # next page tokenx = - def_delegators :@base_result, :next_page_token - - ## - # Get the token used for requesting the previous page of data - # - # @!attribute [r] prev_page_token - # @return [String] - # previous page token - def_delegators :@base_result, :prev_page_token - - # @!attribute [r] resumable_upload - def resumable_upload - # TODO(sgomes): implement resumable_upload for Service::Result - raise NotImplementedError - end - - ## - # Build a request for fetching the next page of data - # - # @return [Google::APIClient::Service::Request] - # API request for retrieving next page - def next_page - return nil unless self.next_page_token - request = @request.clone - # Make a deep copy of the parameters. - request.parameters = Marshal.load(Marshal.dump(request.parameters)) - request.parameters[page_token_param] = self.next_page_token - return request - end - - ## - # Build a request for fetching the previous page of data - # - # @return [Google::APIClient::Service::Request] - # API request for retrieving previous page - def prev_page - return nil unless self.prev_page_token - request = @request.clone - # Make a deep copy of the parameters. - request.parameters = Marshal.load(Marshal.dump(request.parameters)) - request.parameters[page_token_param] = self.prev_page_token - return request - end - end - end - end -end diff --git a/lib/google/api_client/service/simple_file_store.rb b/lib/google/api_client/service/simple_file_store.rb deleted file mode 100644 index 216b3fac5..000000000 --- a/lib/google/api_client/service/simple_file_store.rb +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module Google - class APIClient - class Service - - # Simple file store to be used in the event no ActiveSupport cache store - # is provided. This is not thread-safe, and does not support a number of - # features (such as expiration), but it's useful for the simple purpose of - # caching discovery documents to disk. - # Implements the basic cache methods of ActiveSupport::Cache::Store in a - # limited fashion. - class SimpleFileStore - - # Creates a new SimpleFileStore. - # - # @param [String] file_path - # The path to the cache file on disk. - # @param [Object] options - # The options to be used with this SimpleFileStore. Not implemented. - def initialize(file_path, options = nil) - @file_path = file_path.to_s - end - - # Returns true if a key exists in the cache. - # - # @param [String] name - # The name of the key. Will always be converted to a string. - # @param [Object] options - # The options to be used with this query. Not implemented. - def exist?(name, options = nil) - read_file - @cache.nil? ? nil : @cache.include?(name.to_s) - end - - # Fetches data from the cache and returns it, using the given key. - # If the key is missing and no block is passed, returns nil. - # If the key is missing and a block is passed, executes the block, sets - # the key to its value, and returns it. - # - # @param [String] name - # The name of the key. Will always be converted to a string. - # @param [Object] options - # The options to be used with this query. Not implemented. - # @yield [String] - # optional block with the default value if the key is missing - def fetch(name, options = nil) - read_file - if block_given? - entry = read(name.to_s, options) - if entry.nil? - value = yield name.to_s - write(name.to_s, value) - return value - else - return entry - end - else - return read(name.to_s, options) - end - end - - # Fetches data from the cache, using the given key. - # Returns nil if the key is missing. - # - # @param [String] name - # The name of the key. Will always be converted to a string. - # @param [Object] options - # The options to be used with this query. Not implemented. - def read(name, options = nil) - read_file - @cache.nil? ? nil : @cache[name.to_s] - end - - # Writes the value to the cache, with the key. - # - # @param [String] name - # The name of the key. Will always be converted to a string. - # @param [Object] value - # The value to be written. - # @param [Object] options - # The options to be used with this query. Not implemented. - def write(name, value, options = nil) - read_file - @cache = {} if @cache.nil? - @cache[name.to_s] = value - write_file - return nil - end - - # Deletes an entry in the cache. - # Returns true if an entry is deleted. - # - # @param [String] name - # The name of the key. Will always be converted to a string. - # @param [Object] options - # The options to be used with this query. Not implemented. - def delete(name, options = nil) - read_file - return nil if @cache.nil? - if @cache.include? name.to_s - @cache.delete name.to_s - write_file - return true - else - return nil - end - end - - protected - - # Read the entire cache file from disk. - # Will avoid reading if there have been no changes. - def read_file - if !File.exist? @file_path - @cache = nil - else - # Check for changes after our last read or write. - if @last_change.nil? || File.mtime(@file_path) > @last_change - File.open(@file_path) do |file| - @cache = Marshal.load(file) - @last_change = file.mtime - end - end - end - return @cache - end - - # Write the entire cache contents to disk. - def write_file - File.open(@file_path, 'w') do |file| - Marshal.dump(@cache, file) - end - @last_change = File.mtime(@file_path) - end - end - end - end -end \ No newline at end of file diff --git a/lib/google/api_client/service/stub_generator.rb b/lib/google/api_client/service/stub_generator.rb deleted file mode 100755 index 3c84dddbd..000000000 --- a/lib/google/api_client/service/stub_generator.rb +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'active_support/inflector' - -module Google - class APIClient - class Service - ## - # Auxiliary mixin to generate resource and method stubs. - # Used by the Service and Service::Resource classes to generate both - # top-level and nested resources and methods. - module StubGenerator - def generate_call_stubs(service, root) - metaclass = (class << self; self; end) - - # Handle resources. - root.discovered_resources.each do |resource| - method_name = ActiveSupport::Inflector.underscore(resource.name).to_sym - if !self.respond_to?(method_name) - metaclass.send(:define_method, method_name) do - Google::APIClient::Service::Resource.new(service, resource) - end - end - end - - # Handle methods. - root.discovered_methods.each do |method| - method_name = ActiveSupport::Inflector.underscore(method.name).to_sym - if !self.respond_to?(method_name) - metaclass.send(:define_method, method_name) do |*args| - if args.length > 1 - raise ArgumentError, - "wrong number of arguments (#{args.length} for 1)" - elsif !args.first.respond_to?(:to_hash) && !args.first.nil? - raise ArgumentError, - "expected parameter Hash, got #{args.first.class}" - else - return Google::APIClient::Service::Request.new( - service, method, args.first - ) - end - end - end - end - end - end - end - end -end diff --git a/lib/google/apis.rb b/lib/google/apis.rb new file mode 100644 index 000000000..72977af08 --- /dev/null +++ b/lib/google/apis.rb @@ -0,0 +1,48 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/version' +require 'logger' + +module Google + module Apis + ROOT = File.expand_path('..', File.dirname(__dir__)) + + # @!attribute [rw] logger + # @return [Logger] The logger. + def self.logger + @logger ||= rails_logger || default_logger + end + + class << self + attr_writer :logger + end + + private + + # Create and configure a logger + # @return [Logger] + def self.default_logger + logger = Logger.new($stdout) + logger.level = Logger::WARN + logger + end + + # Check to see if client is being used in a Rails environment and ge the logger if present + # @return [Logger] + def self.rails_logger + ::Rails.logger if defined?(::Rails) && ::Rails.respond_to?(:logger) && ::Rails.logger + end + end +end diff --git a/lib/google/apis/core/api_command.rb b/lib/google/apis/core/api_command.rb new file mode 100644 index 000000000..9ee2604f0 --- /dev/null +++ b/lib/google/apis/core/api_command.rb @@ -0,0 +1,128 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'active_support/inflector' +require 'addressable/uri' +require 'addressable/template' +require 'google/apis/core/http_command' +require 'google/apis/errors' +require 'multi_json' +require 'retriable' + +module Google + module Apis + module Core + # Command for executing most basic API request with JSON requests/responses + class ApiCommand < HttpCommand + JSON_CONTENT_TYPE = 'application/json' + FIELDS_PARAM = 'fields' + RATE_LIMIT_ERRORS = %w(rateLimitExceeded userRateLimitExceeded) + + # JSON serializer for request objects + # @return [Google::Apis::Core::JsonRepresentation] + attr_accessor :request_representation + + # Request body to serialize + # @return [Object] + attr_accessor :request_object + + # JSON serializer for response objects + # @return [Google::Apis::Core::JsonRepresentation] + attr_accessor :response_representation + + # Class to instantiate when de-serializing responses + # @return [Object] + attr_accessor :response_class + + # Serialize the request body + # + # @return [void] + def prepare! + query[FIELDS_PARAM] = normalize_fields_param(query[FIELDS_PARAM]) if query.key?(FIELDS_PARAM) + if request_representation && request_object + header[:content_type] ||= JSON_CONTENT_TYPE + self.body = request_representation.new(request_object).to_json(skip_undefined: true) + end + super + end + + # Deserialize the response body if present + # + # @param [String] content_type + # Content type of body + # @param [String, #read] body + # Response body + # @return [Object] + # Response object + # noinspection RubyUnusedLocalVariable + def decode_response_body(content_type, body) + return super unless response_representation + return super if content_type.nil? + return nil unless content_type.start_with?(JSON_CONTENT_TYPE) + instance = response_class.new + response_representation.new(instance).from_json(body, unwrap: response_class) + instance + end + + # Check the response and raise error if needed + # + # @param [Fixnum] status + # HTTP status code of response + # @param [String] body + # HTTP response body + # @return [void] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def check_status(status, body = nil) + case status + when 400, 402...500 + error = parse_error(body) + if error + logger.debug { error } + fail Google::Apis::RateLimitError, error if RATE_LIMIT_ERRORS.include?(error['reason']) + end + super(status, error) + else + super(status, body) + end + end + + private + + # Attempt to parse a JSON error message, returning the first found error + # @param [String] body + # HTTP response body + # @return [Hash] + def parse_error(body) + hash = MultiJson.load(body) + hash['error']['errors'].first + rescue + nil + end + + # Convert field names from ruby conventions to original names in JSON + # + # @param [String] fields + # Value of 'fields' param + # @return [String] + # Updated header value + def normalize_fields_param(fields) + # TODO: Generate map of parameter names during code gen. Small possibility that camelization fails + fields.gsub(/:/, '').gsub(/[\w_]+/) { |str| ActiveSupport::Inflector.camelize(str, false) } + end + end + end + end +end diff --git a/lib/google/apis/core/base_service.rb b/lib/google/apis/core/base_service.rb new file mode 100644 index 000000000..53aba3f04 --- /dev/null +++ b/lib/google/apis/core/base_service.rb @@ -0,0 +1,314 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'addressable/uri' +require 'addressable/template' +require 'google/apis/version' +require 'google/apis/core/api_command' +require 'google/apis/core/batch' +require 'google/apis/core/upload' +require 'google/apis/core/download' +require 'google/apis/options' +require 'googleauth' +require 'hurley' +require 'hurley/addressable' + +module Google + module Apis + module Core + # Base service for all APIs. Not to be used directly. + # + class BaseService + # Root URL (host/port) for the API + # @return [Addressable::URI] + attr_accessor :root_url + + # Additional path prefix for all API methods + # @return [Addressable::URI] + attr_accessor :base_path + + # Alternate path prefix for media uploads + # @return [Addressable::URI] + attr_accessor :upload_path + + # Alternate path prefix for all batch methods + # @return [Addressable::URI] + attr_accessor :batch_path + + # HTTP client + # @return [Hurley::Client] + attr_accessor :client + + # General settings + # @return [Google::Apis::ClientOptions] + attr_accessor :client_options + + # Default options for all requests + # @return [Google::Apis::RequestOptions] + attr_accessor :request_options + + # @param [String,Addressable::URI] root_url + # Root URL for the API + # @param [String,Addressable::URI] base_path + # Additional path prefix for all API methods + # @api private + def initialize(root_url, base_path) + self.root_url = root_url + self.base_path = base_path + self.upload_path = "upload/#{base_path}" + self.batch_path = 'batch' + self.client_options = Google::Apis::ClientOptions.default.dup + self.request_options = Google::Apis::RequestOptions.default.dup + end + + # @!attribute [rw] authorization + # @return [Signet::OAuth2::Client] + # OAuth2 credentials + def authorization=(authorization) + request_options.authorization = authorization + end + + def authorization + request_options.authorization + end + + # TODO: with(options) method + + # Perform a batch request. Calls made within the block are sent in a single network + # request to the server. + # + # @example + # service.batch do |service| + # service.get_item(id1) do |res, err| + # # process response for 1st call + # end + # # ... + # service.get_item(idN) do |res, err| + # # process response for Nth call + # end + # end + # + # @param [Hash, Google::Apis::RequestOptions] options + # Request-specific options + # @yield [self] + # @return [void] + def batch(options = nil) + batch_command = BatchCommand.new(:post, Addressable::URI.parse(root_url + batch_path)) + batch_command.options = request_options.merge(options) + apply_command_defaults(batch_command) + begin + Thread.current[:google_api_batch] = batch_command + yield self + ensure + Thread.current[:google_api_batch] = nil + end + batch_command.execute(client) + end + + # Perform a batch upload request. Calls made within the block are sent in a single network + # request to the server. Batch uploads are useful for uploading multiple small files. For larger + # files, use single requests which use a resumable upload protocol. + # + # @example + # service.batch do |service| + # service.insert_item(upload_source: 'file1.txt') do |res, err| + # # process response for 1st call + # end + # # ... + # service.insert_item(upload_source: 'fileN.txt') do |res, err| + # # process response for Nth call + # end + # end + # + # @param [Hash, Google::Apis::RequestOptions] options + # Request-specific options + # @yield [self] + # @return [void] + def batch_upload(options = nil) + batch_command = BatchUploadCommand.new(:put, Addressable::URI.parse(root_url + upload_path)) + batch_command.options = request_options.merge(options) + apply_command_defaults(batch_command) + begin + Thread.current[:google_api_batch] = batch_command + yield self + ensure + Thread.current[:google_api_batch] = nil + end + batch_command.execute(client) + end + + # Get the current HTTP client + # @return [Hurley::Client] + def client + @client ||= new_client + end + + + # Simple escape hatch for making API requests directly to a given + # URL. This is not intended to be used as a generic HTTP client + # and should be used only in cases where no service method exists + # (e.g. fetching an export link for a Google Drive file.) + # + # @param [Symbol] method + # HTTP method as symbol (e.g. :get, :post, :put, ...) + # @param [String] url + # URL to call + # @param [Hash e + error(e, &callback) + end + end + end + nil + end + + def split_parts(body, boundary) + parts = body.split(/\r?\n?--#{Regexp.escape(boundary)}/) + parts[1...-1] + end + + # Encode the batch request + # @return [void] + # @raise [Google::Apis::BatchError] if batch is empty + def prepare! + fail BatchError, 'Cannot make an empty batch request' if @calls.empty? + + serializer = CallSerializer.new + multipart = Multipart.new(boundary: BATCH_BOUNDARY, content_type: MULTIPART_MIXED) + @calls.each do |(call, _)| + io = serializer.to_upload_io(call) + multipart.add_upload(io) + end + self.body = multipart.assemble + + header[:content_type] = multipart.content_type + header[:content_length] = "#{body.length}" + super + end + + def ensure_valid_command(command) + if command.is_a?(Google::Apis::Core::BaseUploadCommand) || command.is_a?(Google::Apis::Core::DownloadCommand) + fail Google::Apis::ClientError, 'Can not include media requests in batch' + end + fail Google::Apis::ClientError, 'Invalid command object' unless command.is_a?(HttpCommand) + end + end + + # Wrapper request for batching multiple uploads in a single server request + class BatchUploadCommand < BatchCommand + def ensure_valid_command(command) + fail Google::Apis::ClientError, 'Can only include upload commands in batch' \ + unless command.is_a?(Google::Apis::Core::BaseUploadCommand) + end + + def prepare! + header['X-Goog-Upload-Protocol'] = 'batch' + super + end + end + + # Serializes a command for embedding in a multipart batch request + # @private + class CallSerializer + HTTP_CONTENT_TYPE = 'application/http' + + ## + # Serialize a single batched call for assembling the multipart message + # + # @param [Google::Apis::Core::HttpCommand] call + # the call to serialize. + # @return [Hurley::UploadIO] + # the serialized request + def to_upload_io(call) + call.prepare! + parts = [] + parts << build_head(call) + parts << build_body(call) unless call.body.nil? + length = parts.inject(0) { |a, e| a + e.length } + Hurley::UploadIO.new(Hurley::CompositeReadIO.new(length, *parts), + HTTP_CONTENT_TYPE, + 'ruby-api-request') + end + + protected + + def build_head(call) + request_head = "#{call.method.to_s.upcase} #{Addressable::URI.parse(call.url).request_uri} HTTP/1.1" + call.header.each do |key, value| + request_head << sprintf("\r\n%s: %s", key, value) + end + request_head << sprintf("\r\nHost: %s", call.url.host) + request_head << "\r\n\r\n" + StringIO.new(request_head) + end + + def build_body(call) + return nil if call.body.nil? + return call.body if call.body.respond_to?(:read) + StringIO.new(call.body) + end + end + + # Deconstructs a raw HTTP response part + # @private + class CallDeserializer + # Convert a single batched response into a BatchedCallResponse object. + # + # @param [String] call_response + # the response to parse. + # @return [Array<(Fixnum, Hurley::Header, String)>] + # Status, header, and response body. + def to_http_response(call_response) + _, outer_body = split_header_and_body(call_response) + status_line, payload = outer_body.split(/\n/, 2) + _, status = status_line.split(' ', 3) + + header, body = split_header_and_body(payload) + [status.to_i, header, body] + end + + protected + + # Auxiliary method to split the header from the body in an HTTP response. + # + # @param [String] response + # the response to parse. + # @return [Array<(Hurley::Header, String)>] + # the header and the body, separately. + def split_header_and_body(response) + header = Hurley::Header.new + payload = response.lstrip + while payload + line, payload = payload.split(/\n/, 2) + line.sub!(/\s+\z/, '') + break if line.empty? + match = /\A([^:]+):\s*/.match(line) + fail BatchError, sprintf('Invalid header line in response: %s', line) if match.nil? + header[match[1]] = match.post_match + end + [header, payload] + end + end + end + end +end diff --git a/lib/google/apis/core/download.rb b/lib/google/apis/core/download.rb new file mode 100644 index 000000000..207ff0099 --- /dev/null +++ b/lib/google/apis/core/download.rb @@ -0,0 +1,94 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/multipart' +require 'google/apis/core/api_command' +require 'google/apis/errors' +require 'addressable/uri' + +module Google + module Apis + module Core + # Streaming/resumable media download support + class DownloadCommand < ApiCommand + RANGE_HEADER = 'range' + + # File or IO to write content to + # @return [String, File, #write] + attr_accessor :download_dest + + # Ensure the download destination is a writable stream. + # + # @return [void] + def prepare! + @state = :start + @download_url = nil + @offset = 0 + if download_dest.respond_to?(:write) + @download_io = download_dest + @close_io_on_finish = false + elsif download_dest.is_a?(String) + @download_io = File.open(download_dest, 'wb') + @close_io_on_finish = true + else + @download_io = StringIO.new('', 'wb') + @close_io_on_finish = false + end + super + end + + # Close IO stream when command done. Only closes the stream if it was opened by the command. + def release! + @download_io.close if @close_io_on_finish + end + + # Execute the upload request once. Overrides the default implementation to handle streaming/chunking + # of file content. + # + # @private + # @param [Hurley::Client] client + # HTTP client + # @yield [result, err] Result or error if block supplied + # @return [Object] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def execute_once(client, &block) + client.get(@download_url || url) do |req| + apply_request_options(req) + if @offset > 0 + logger.debug { sprintf('Resuming download from offset %d', @offset) } + req.header[RANGE_HEADER] = sprintf('bytes=%d-', @offset) + end + req.on_body do |res, chunk| + check_status(res.status_code, chunk) unless res.status_code.nil? + logger.debug { sprintf('Writing chunk (%d bytes)', chunk.length) } + @offset += chunk.length + @download_io.write(chunk) + @download_io.flush + end + end + if @close_io_on_finish + result = nil + else + result = @download_io + end + success(result, &block) + rescue => e + error(e, rethrow: true, &block) + end + end + end + end +end diff --git a/lib/google/apis/core/hashable.rb b/lib/google/apis/core/hashable.rb new file mode 100644 index 000000000..ea63e3c0e --- /dev/null +++ b/lib/google/apis/core/hashable.rb @@ -0,0 +1,44 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +module Google + module Apis + module Core + # Adds to_hash to objects + module Hashable + # Convert object to hash representation + # + # @return [Hash] + def to_h + Hash[instance_variables.map { |k| [k[1..-1].to_sym, Hashable.process_value(instance_variable_get(k))] }] + end + + # Recursively serialize an object + # + # @param [Object] val + # @return [Hash] + def self.process_value(val) + case val + when Hash + Hash[val.map {|k, v| [k.to_sym, Hashable.process_value(v)] }] + when Array + val.map{ |v| Hashable.process_value(v) } + else + val.respond_to?(:to_h) ? val.to_h : val + end + end + end + end + end +end diff --git a/lib/google/apis/core/http_command.rb b/lib/google/apis/core/http_command.rb new file mode 100644 index 000000000..e0b652066 --- /dev/null +++ b/lib/google/apis/core/http_command.rb @@ -0,0 +1,275 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'addressable/uri' +require 'addressable/template' +require 'google/apis/options' +require 'google/apis/errors' +require 'retriable' +require 'hurley' +require 'hurley/addressable' +require 'google/apis/core/logging' +require 'pp' + +module Google + module Apis + module Core + # Command for HTTP request/response. + class HttpCommand + include Logging + + RETRIABLE_ERRORS = [Google::Apis::ServerError, Google::Apis::RateLimitError, Google::Apis::TransmissionError] + + # Request options + # @return [Google::Apis::RequestOptions] + attr_accessor :options + + # HTTP request URL + # @return [String, Addressable::URI] + attr_accessor :url + + # HTTP headers + # @return [Hurley::Header] + attr_accessor :header + + # Request body + # @return [#read] + attr_accessor :body + + # HTTP method + # @return [symbol] + attr_accessor :method + + # HTTP Client + # @return [Hurley::Client] + attr_accessor :connection + + # Query params + # @return [Hash] + attr_accessor :query + + # Path params for URL Template + # @return [Hash] + attr_accessor :params + + # @param [symbol] method + # HTTP method + # @param [String,Addressable::URI, Addressable::Template] url + # HTTP URL or template + # @param [String, #read] body + # Request body + def initialize(method, url, body: nil) + self.options = Google::Apis::RequestOptions.default.dup + self.url = url + self.url = Addressable::Template.new(url) if url.is_a?(String) + self.method = method + self.header = Hurley::Header.new + self.body = body + self.query = {} + self.params = {} + end + + # Execute the command, retrying as necessary + # + # @param [Hurley::Client] client + # HTTP client + # @yield [result, err] Result or error if block supplied + # @return [Object] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def execute(client) + prepare! + proc = block_given? ? Proc.new : nil + begin + Retriable.retriable tries: options.retries + 1, + base_interval: 1, + multiplier: 2, + on: RETRIABLE_ERRORS do |try| + # This 2nd level retriable only catches auth errors, and supports 1 retry, which allows + # auth to be re-attempted without having to retry all sorts of other failures like + # NotFound, etc + auth_tries = (try == 1 && authorization_refreshable? ? 2 : 1) + Retriable.retriable tries: auth_tries, + on: [Google::Apis::AuthorizationError], + on_retry: proc { |*| refresh_authorization } do + return execute_once(client, &proc) + end + end + rescue => e + raise e if proc.nil? + end + ensure + release! + end + + # Refresh the authorization authorization after a 401 error + # + # @private + # @return [void] + def refresh_authorization + # Handled implicitly by auth lib, here in case need to override + logger.debug('Retrying after authentication failure') + end + + # Check if attached credentials can be automatically refreshed + # @return [Boolean] + def authorization_refreshable? + options.authorization.respond_to?(:apply!) + end + + # Prepare the request (e.g. calculate headers, serialize data, etc) before sending + # + # @private + # @return [void] + def prepare! + header.update(options.header) if options && options.header + self.url = url.expand(params) if url.is_a?(Addressable::Template) + url.query_values = query + end + + # Release any resources used by this command + # @private + # @return [void] + def release! + end + + # Check the response and either decode body or raise error + # + # @param [Fixnum] status + # HTTP status code of response + # @param [Hurley::Header] header + # Response headers + # @param [String, #read] body + # Response body + # @return [Object] + # Response object + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def process_response(status, header, body) + check_status(status, body) + decode_response_body(header[:content_type], body) + end + + # Check the response and raise error if needed + # + # @param [Fixnum] status + # HTTP status code of response + # @param [String] body + # HTTP response body + # @return [void] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def check_status(status, body = nil) + # TODO: 304 Not Modified depends on context... + case status + when 200...300 + nil + when 301, 302, 303, 307 + fail Google::Apis::RedirectError, header[:location] + when 401 + fail Google::Apis::AuthorizationError, body + when 304, 400, 402...500 + fail Google::Apis::ClientError, body + when 500...600 + fail Google::Apis::ServerError, body + else + logger.warn(sprintf('Encountered unexpected status code %s', status)) + fail Google::Apis::TransmissionError, body + end + end + + # Process the actual response body. Intended to be overridden by subclasses + # + # @param [String] _content_type + # Content type of body + # @param [String, #read] body + # Response body + # @return [Object] + def decode_response_body(_content_type, body) + body + end + + # Process a success response + # @param [Object] result + # Result object + # @return [Object] result if no block given + # @yield [result, nil] if block given + def success(result, &block) + logger.debug { sprintf('Success - %s', PP.pp(result, '')) } + block.call(result, nil) if block_given? + result + end + + # Process an error response + # @param [StandardError] err + # Error object + # @param [Boolean] rethrow + # True if error should be raised again after handling + # @return [void] + # @yield [nil, err] if block given + # @raise [StandardError] if no block + def error(err, rethrow: false, &block) + logger.debug { sprintf('Error - %s', PP.pp(err, '')) } + err = Google::Apis::TransmissionError.new(err) if err.is_a?(Hurley::ClientError) + block.call(nil, err) if block_given? + fail err if rethrow || block.nil? + end + + # Execute the command once. + # + # @private + # @param [Hurley::Client] client + # HTTP client + # @yield [result, err] Result or error if block supplied + # @return [Object] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def execute_once(client, &block) + body.rewind if body.respond_to?(:rewind) + begin + logger.debug { sprintf('Sending HTTP %s %s', method, url) } + response = client.send(method, url, body) do |req| + apply_request_options(req) + end + logger.debug { response.status_code } + logger.debug { response.inspect } + response = process_response(response.status_code, response.header, response.body) + success(response, &block) + rescue => e + logger.debug { sprintf('Caught error %s', e) } + error(e, rethrow: true, &block) + end + end + + # Update the request with any specified options. + # @param [Hurley::Request] req + # HTTP request + # @return [void] + def apply_request_options(req) + if options.authorization.respond_to?(:apply!) + options.authorization.apply!(req.header) + elsif options.authorization.is_a?(String) + req.header[:authorization] = sprintf('Bearer %s', options.authorization) + end + req.header.update(header) + req.options.timeout = options.timeout_sec + end + end + end + end +end diff --git a/lib/google/apis/core/json_representation.rb b/lib/google/apis/core/json_representation.rb new file mode 100644 index 000000000..3e353f2bb --- /dev/null +++ b/lib/google/apis/core/json_representation.rb @@ -0,0 +1,122 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'representable/json' +require 'representable/json/hash' +require 'representable/coercion' +require 'base64' + +module Google + module Apis + module Core + # Support for serializing hashes + propery value/nil/unset tracking + # To be included in representers as a feature. + # @private + module JsonRepresentationSupport + def self.included(base) + base.extend(JsonSupport) + end + + # @private + module JsonSupport + # Returns a customized getter function for Representable. Allows + # indifferent hash/attribute access. + # + # @param [String] name Property name + # @return [Proc] + def getter_fn(name) + ivar_name = "@#{name}".to_sym + lambda do |_| + if respond_to?(:[]) + self[name] || instance_variable_get(ivar_name) + else + instance_variable_get(ivar_name) + end + end + end + + # Returns a customized function for Representable that checks whether or not + # an attribute should be serialized. Allows proper patch semantics by distinguishing + # between nil & unset values + # + # @param [String] name Property name + # @return [Proc] + def if_fn(name) + ivar_name = "@#{name}".to_sym + lambda do |opts| + if opts[:skip_undefined] + if respond_to?(:key?) + self.key?(name) || instance_variable_defined?(ivar_name) + else + instance_variable_defined?(ivar_name) + end + else + true + end + end + end + + def set_default_options(name, options) + if options[:base64] + options[:render_filter] = ->(value, _doc, *_args) { Base64.urlsafe_encode64(value) } + options[:parse_filter] = ->(fragment, _doc, *_args) { Base64.urlsafe_decode64(fragment) } + end + options[:render_nil] = true + options[:getter] = getter_fn(name) + options[:if] = if_fn(name) + end + + # Define a single value property + # + # @param [String] name + # Property name + # @param [Hash] options + def property(name, options = {}) + set_default_options(name, options) + super(name, options) + end + + # Define a collection property + # + # @param [String] name + # Property name + # @param [Hash] options + def collection(name, options = {}) + set_default_options(name, options) + super(name, options) + end + + # Define a hash property + # + # @param [String] name + # Property name + # @param [Hash] options + def hash(name, options) + set_default_options(name, options) + super(name, options) + end + end + end + + # Base decorator for JSON representers + # + # @see https://github.com/apotonick/representable + class JsonRepresentation < Representable::Decorator + include Representable::JSON + include Representable::Coercion + feature JsonRepresentationSupport + end + end + end +end diff --git a/lib/google/api_client/version.rb b/lib/google/apis/core/logging.rb similarity index 69% rename from lib/google/api_client/version.rb rename to lib/google/apis/core/logging.rb index 18d4ec22c..5d0bdc0de 100644 --- a/lib/google/api_client/version.rb +++ b/lib/google/apis/core/logging.rb @@ -1,4 +1,4 @@ -# Copyright 2010 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,15 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. +require 'google/apis' module Google - class APIClient - module VERSION - MAJOR = 0 - MINOR = 8 - TINY = 6 - PATCH = nil - STRING = [MAJOR, MINOR, TINY, PATCH].compact.join('.') + module Apis + module Core + # Logging support + module Logging + # Get the logger instance + # @return [Logger] + def logger + Google::Apis.logger + end + end end end end diff --git a/lib/google/apis/core/multipart.rb b/lib/google/apis/core/multipart.rb new file mode 100644 index 000000000..7eb4c43f2 --- /dev/null +++ b/lib/google/apis/core/multipart.rb @@ -0,0 +1,173 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'hurley' + +module Google + module Apis + module Core + # Part of a multipart request for holding JSON data + # + # @private + class JsonPart + include Hurley::Multipart::Part + + # @return [Fixnum] + # Length of part + attr_reader :length + + # @param [String] boundary + # Multipart boundary + # @param [String] value + # JSON content + def initialize(boundary, value) + @part = build_part(boundary, value) + @length = @part.bytesize + @io = StringIO.new(@part) + end + + private + + # Format the part + # + # @param [String] boundary + # Multipart boundary + # @param [String] value + # JSON content + # @return [String] + def build_part(boundary, value) + part = '' + part << "--#{boundary}\r\n" + part << "Content-Type: application/json\r\n" + part << "\r\n" + part << "#{value}\r\n" + end + end + + # Part of a multipart request for holding arbitrary content. Modified + # from Hurley::Multipart::FilePart to remove Content-Disposition + # + # @private + class FilePart + include Hurley::Multipart::Part + + # @return [Fixnum] + # Length of part + attr_reader :length + + # @param [String] boundary + # Multipart boundary + # @param [Google::Apis::Core::UploadIO] io + # IO stream + # @param [Hash] header + # Additional headers + def initialize(boundary, io, header = {}) + file_length = io.respond_to?(:length) ? io.length : File.size(io.local_path) + + @head = build_head(boundary, io.content_type, file_length, + io.respond_to?(:opts) ? io.opts.merge(header) : header) + + @length = @head.bytesize + file_length + FOOT.length + @io = Hurley::CompositeReadIO.new(@length, StringIO.new(@head), io, StringIO.new(FOOT)) + end + + private + + # Construct the header for the part + # + # @param [String] boundary + # Multipart boundary + # @param [String] type + # Content type for the part + # @param [Fixnum] content_len + # Length of the part + # @param [Hash] header + # Headers for the part + def build_head(boundary, type, content_len, header) + sprintf(HEAD_FORMAT, + boundary, + content_len.to_i, + header[:content_type] || type, + header[:content_transfer_encoding] || DEFAULT_TR_ENCODING) + end + + DEFAULT_TR_ENCODING = 'binary'.freeze + FOOT = "\r\n".freeze + HEAD_FORMAT = <<-END +--%s\r +Content-Length: %d\r +Content-Type: %s\r +Content-Transfer-Encoding: %s\r +\r + END + end + + # Helper for building multipart requests + class Multipart + MULTIPART_RELATED = 'multipart/related' + DEFAULT_BOUNDARY = 'RubyApiClientMultiPart' + + # @return [String] + # Content type header + attr_reader :content_type + + # @param [String] content_type + # Content type for the multipart request + # @param [String] boundary + # Part delimiter + + def initialize(content_type: MULTIPART_RELATED, boundary: nil) + @parts = [] + @boundary = boundary || DEFAULT_BOUNDARY + @content_type = "#{content_type}; boundary=#{boundary}" + end + + # Append JSON data part + # + # @param [String] body + # JSON text + # @return [self] + def add_json(body) + @parts << Google::Apis::Core::JsonPart.new(@boundary, body) + self + end + + # Append arbitrary data as a part + # + # @param [Google::Apis::Core::UploadIO] upload_io + # IO stream + # @return [self] + def add_upload(upload_io) + @parts << Google::Apis::Core::FilePart.new(@boundary, upload_io) + self + end + + # Assemble the multipart requests + # + # @return [IO] + # IO stream + def assemble + @parts << Hurley::Multipart::EpiloguePart.new(@boundary) + ios = [] + len = 0 + @parts.each do |part| + len += part.length + ios << part.to_io + end + Hurley::CompositeReadIO.new(len, *ios) + end + end + end + end +end diff --git a/lib/google/apis/core/upload.rb b/lib/google/apis/core/upload.rb new file mode 100644 index 000000000..af4007433 --- /dev/null +++ b/lib/google/apis/core/upload.rb @@ -0,0 +1,275 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/multipart' +require 'google/apis/core/http_command' +require 'google/apis/core/api_command' +require 'google/apis/errors' +require 'addressable/uri' +require 'mime-types' + +module Google + module Apis + module Core + # Extension of Hurley's UploadIO to add length accessor + class UploadIO < Hurley::UploadIO + OCTET_STREAM_CONTENT_TYPE = 'application/octet-stream' + + # Get the length of the stream + # @return [Fixnum] + def length + io.respond_to?(:length) ? io.length : File.size(local_path) + end + + # Create a new instance given a file path + # @param [String, File] file_name + # Path to file + # @param [String] content_type + # Optional content type. If nil, will attempt to auto-detect + # @return [Google::Apis::Core::UploadIO] + def self.from_file(file_name, content_type: nil) + if content_type.nil? + type = MIME::Types.of(file_name) + content_type = type.first.content_type unless type.nil? || type.empty? + end + new(file_name, content_type || OCTET_STREAM_CONTENT_TYPE) + end + + # Wraps an IO stream in UploadIO + # @param [#read] io + # IO to wrap + # @param [String] content_type + # Optional content type. + # @return [Google::Apis::Core::UploadIO] + def self.from_io(io, content_type: OCTET_STREAM_CONTENT_TYPE) + new(io, content_type) + end + end + + # Base upload command. Not intended to be used directly + # @private + class BaseUploadCommand < ApiCommand + UPLOAD_PROTOCOL_HEADER = 'X-Goog-Upload-Protocol' + UPLOAD_CONTENT_TYPE_HEADER = 'X-Goog-Upload-Header-Content-Type' + UPLOAD_CONTENT_LENGTH = 'X-Goog-Upload-Header-Content-Length' + + # File name or IO containing the content to upload + # @return [String, File, #read] + attr_accessor :upload_source + + # Content type of the upload material + # @return [String] + attr_accessor :upload_content_type + + # Content, as UploadIO + # @return [Google::Apis::Core::UploadIO] + attr_accessor :upload_io + + # Ensure the content is readable and wrapped in an {{Google::Apis::Core::UploadIO}} instance. + # + # @return [void] + # @raise [Google::Apis::ClientError] if upload source is invalid + def prepare! + super + if upload_source.is_a?(IO) || upload_source.is_a?(StringIO) + self.upload_io = UploadIO.from_io(upload_source, content_type: upload_content_type) + @close_io_on_finish = false + elsif upload_source.is_a?(String) + self.upload_io = UploadIO.from_file(upload_source, content_type: upload_content_type) + @close_io_on_finish = true + else + fail Google::Apis::ClientError, 'Invalid upload source' + end + end + + # Close IO stream when command done. Only closes the stream if it was opened by the command. + def release! + upload_io.close if @close_io_on_finish + end + end + + # Implementation of the raw upload protocol + class RawUploadCommand < BaseUploadCommand + RAW_PROTOCOL = 'raw' + + # Ensure the content is readable and wrapped in an {{Google::Apis::Core::UploadIO}} instance. + # + # @return [void] + # @raise [Google::Apis::ClientError] if upload source is invalid + def prepare! + super + self.body = upload_io + header[UPLOAD_PROTOCOL_HEADER] = RAW_PROTOCOL + header[UPLOAD_CONTENT_TYPE_HEADER] = upload_io.content_type + end + end + + # Implementation of the multipart upload protocol + class MultipartUploadCommand < BaseUploadCommand + UPLOAD_BOUNDARY = 'RubyApiClientUpload' + MULTIPART_PROTOCOL = 'multipart' + MULTIPART_RELATED = 'multipart/related' + + # Encode the multipart request + # + # @return [void] + # @raise [Google::Apis::ClientError] if upload source is invalid + def prepare! + super + @multipart = Multipart.new(boundary: UPLOAD_BOUNDARY, content_type: MULTIPART_RELATED) + @multipart.add_json(body) + @multipart.add_upload(upload_io) + self.body = @multipart.assemble + header[:content_type] = @multipart.content_type + header[UPLOAD_PROTOCOL_HEADER] = MULTIPART_PROTOCOL + end + end + + # Implementation of the resumable upload protocol + class ResumableUploadCommand < BaseUploadCommand + UPLOAD_COMMAND_HEADER = 'X-Goog-Upload-Command' + UPLOAD_OFFSET_HEADER = 'X-Goog-Upload-Offset' + BYTES_RECEIVED_HEADER = 'X-Goog-Upload-Size-Received' + UPLOAD_URL_HEADER = 'X-Goog-Upload-URL' + UPLOAD_STATUS_HEADER = 'X-Goog-Upload-Status' + STATUS_ACTIVE = 'active' + STATUS_FINAL = 'final' + STATUS_CANCELLED = 'cancelled' + RESUMABLE = 'resumable' + START_COMMAND = 'start' + QUERY_COMMAND = 'query' + UPLOAD_COMMAND = 'upload, finalize' + + # Reset upload to initial state. + # + # @return [void] + # @raise [Google::Apis::ClientError] if upload source is invalid + def prepare! + @state = :start + @upload_url = nil + @offset = 0 + super + end + + # Check the to see if the upload is complete or needs to be resumed. + # + # @param [Fixnum] status + # HTTP status code of response + # @param [Hurley::Header] header + # Response headers + # @param [String, #read] body + # Response body + # @return [Object] + # Response object + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def process_response(status, header, body) + @offset = Integer(header[BYTES_RECEIVED_HEADER]) if header.key?(BYTES_RECEIVED_HEADER) + @upload_url = header[UPLOAD_URL_HEADER] if header.key?(UPLOAD_URL_HEADER) + + upload_status = header[UPLOAD_STATUS_HEADER] + logger.debug { sprintf('Upload status %s', upload_status) } + if upload_status == STATUS_ACTIVE + @state = :active + elsif upload_status == STATUS_FINAL + @state = :final + elsif upload_status == STATUS_CANCELLED + @state = :cancelled + fail Google::Apis::ClientError, body + end + super(status, header, body) + end + + # Send the start command to initiate the upload + # + # @param [Hurley::Client] client + # HTTP client + # @return [Hurley::Response] + # @raise [Google::Apis::ServerError] Unable to send the request + def send_start_command(client) + logger.debug { sprintf('Sending upload start command to %s', url) } + client.send(method, url, body) do |req| + apply_request_options(req) + req.header[UPLOAD_PROTOCOL_HEADER] = RESUMABLE + req.header[UPLOAD_COMMAND_HEADER] = START_COMMAND + req.header[UPLOAD_CONTENT_LENGTH] = upload_io.length.to_s + req.header[UPLOAD_CONTENT_TYPE_HEADER] = upload_io.content_type + end + rescue => e + raise Google::Apis::ServerError, e.message + end + + # Query for the status of an incomplete upload + # + # @param [Hurley::Client] client + # HTTP client + # @return [Hurley::Response] + # @raise [Google::Apis::ServerError] Unable to send the request + def send_query_command(client) + logger.debug { sprintf('Sending upload query command to %s', @upload_url) } + client.post(@upload_url, nil) do |req| + apply_request_options(req) + req.header[UPLOAD_COMMAND_HEADER] = QUERY_COMMAND + end + end + + # Send the actual content + # + # @param [Hurley::Client] client + # HTTP client + # @return [Hurley::Response] + # @raise [Google::Apis::ServerError] Unable to send the request + def send_upload_command(client) + logger.debug { sprintf('Sending upload command to %s', @upload_url) } + content = upload_io + content.pos = @offset + client.post(@upload_url, content) do |req| + apply_request_options(req) + req.header[UPLOAD_COMMAND_HEADER] = UPLOAD_COMMAND + req.header[UPLOAD_OFFSET_HEADER] = @offset.to_s + end + end + + # Execute the upload request once. This will typically perform two HTTP requests -- one to initiate or query + # for the status of the upload, the second to send the (remaining) content. + # + # @private + # @param [Hurley::Client] client + # HTTP client + # @yield [result, err] Result or error if block supplied + # @return [Object] + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def execute_once(client, &block) + if @state == :start + response = send_start_command(client) + else + response = send_query_command(client) + end + result = process_response(response.status_code, response.header, response.body) + if @state == :active + response = send_upload_command(client) + result = process_response(response.status_code, response.header, response.body) + end + + success(result, &block) if @state == :final + rescue => e + error(e, rethrow: true, &block) + end + end + end + end +end diff --git a/lib/google/api_client/errors.rb b/lib/google/apis/errors.rb similarity index 58% rename from lib/google/api_client/errors.rb rename to lib/google/apis/errors.rb index 9644c692a..33e20bb9a 100644 --- a/lib/google/api_client/errors.rb +++ b/lib/google/apis/errors.rb @@ -1,4 +1,4 @@ -# Copyright 2010 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,54 +12,58 @@ # See the License for the specific language governing permissions and # limitations under the License. - module Google - class APIClient - ## - # An error which is raised when there is an unexpected response or other - # transport error that prevents an operation from succeeding. - class TransmissionError < StandardError - attr_reader :result - def initialize(message = nil, result = nil) - super(message) - @result = result + module Apis + # Base error, capable of wrapping another + class Error < StandardError + def initialize(err) + @cause = nil + + if err.respond_to?(:backtrace) + super(err.message) + @cause = err + else + super(err.to_s) + end + end + + def backtrace + if @cause + @cause.backtrace + else + super + end end end - ## + # An error which is raised when there is an unexpected response or other + # transport error that prevents an operation from succeeding. + class TransmissionError < Error + end + # An exception that is raised if a redirect is required # - class RedirectError < TransmissionError + class RedirectError < Error end - ## - # An exception that is raised if a method is called with missing or - # invalid parameter values. - class ValidationError < StandardError - end - - ## # A 4xx class HTTP error occurred. - class ClientError < TransmissionError + class ClientError < Error + end + + # A 4xx class HTTP error occurred. + class RateLimitError < Error end - ## # A 401 HTTP error occurred. - class AuthorizationError < ClientError + class AuthorizationError < Error end - ## # A 5xx class HTTP error occurred. - class ServerError < TransmissionError - end - - ## - # An exception that is raised if an ID token could not be validated. - class InvalidIDTokenError < StandardError + class ServerError < Error end # Error class for problems in batch requests. - class BatchError < StandardError + class BatchError < Error end end end diff --git a/lib/google/apis/generator.rb b/lib/google/apis/generator.rb new file mode 100644 index 000000000..9004e4efd --- /dev/null +++ b/lib/google/apis/generator.rb @@ -0,0 +1,70 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/discovery_v1' +require 'google/apis/generator/annotator' +require 'google/apis/generator/model' +require 'google/apis/generator/template' +require 'active_support/inflector' +require 'yaml' + +module Google + module Apis + # Generates ruby classes for APIs from discovery documents + # @private + class Generator + Discovery = Google::Apis::DiscoveryV1 + + # Load templates + def initialize(api_names: nil) + @names = Google::Apis::Generator::Names.new(api_names || File.join(Google::Apis::ROOT, 'api_names.yaml')) + @module_template = Template.load('module.rb') + @service_template = Template.load('service.rb') + @classes_template = Template.load('classes.rb') + @representations_template = Template.load('representations.rb') + end + + # Generates ruby source for an API + # + # @param [String] json + # API Description, as JSON text + # @return [Hash] + # Hash of generated files keyed by path + def render(json) + api = parse_description(json) + Annotator.process(api, @names) + base_path = ActiveSupport::Inflector.underscore(api.qualified_name) + context = { + 'api' => api + } + files = {} + files[base_path + '.rb'] = @module_template.render(context) + files[File.join(base_path, 'service.rb')] = @service_template.render(context) + files[File.join(base_path, 'classes.rb')] = @classes_template.render(context) + files[File.join(base_path, 'representations.rb')] = @representations_template.render(context) + files + end + + # Dump mapping of API names + # @return [String] Mapping of paths to ruby names in YAML format + def dump_api_names + @names.dump + end + + def parse_description(json) + Discovery::RestDescription::Representation.new(Discovery::RestDescription.new).from_json(json) + end + end + end +end diff --git a/lib/google/apis/generator/annotator.rb b/lib/google/apis/generator/annotator.rb new file mode 100644 index 000000000..e1df6c3cb --- /dev/null +++ b/lib/google/apis/generator/annotator.rb @@ -0,0 +1,271 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'logger' +require 'erb' +require 'yaml' +require 'multi_json' +require 'active_support/inflector' +require 'google/apis/core/logging' +require 'google/apis/generator/template' +require 'google/apis/generator/model' +require 'google/apis/generator/helpers' +require 'addressable/uri' + +module Google + module Apis + # @private + class Generator + # Helper for picking names for methods, properties, types, etc. Performs various normaliations + # as well as allows for overriding individual names from a configuration file for cases + # where algorithmic approaches produce poor APIs. + class Names + include Google::Apis::Core::Logging + include NameHelpers + + def initialize(file_path = nil) + if file_path + logger.info { sprintf('Loading API names from %s', file_path) } + @names = YAML.load(File.read(file_path)) || {} + else + @names = {} + end + @path = [] + end + + def with_path(path) + @path.push(path) + begin + yield + ensure + @path.pop + end + end + + def infer_parameter_name + pick_name(normalize_param_name(@path.last)) + end + + # Determine the ruby method name to generate for a given method in discovery. + # @param [Google::Apis::DiscoveryV1::RestMethod] method + # Fragment of the discovery doc describing the method + def infer_method_name(method) + pick_name(infer_method_name_for_rpc(method) || infer_method_name_from_id(method)) + end + + def infer_property_name + pick_name(normalize_property_name(@path.last)) + end + + def pick_name(alt_name) + preferred_name = @names[key] + if preferred_name && preferred_name == alt_name + logger.warn { sprintf("Unnecessary name override '%s': %s", key, alt_name) } + elsif preferred_name.nil? + preferred_name = @names[key] = alt_name + end + preferred_name + end + + def []=(key, value) + @names[key] = value + end + + def dump + YAML.dump(@names) + end + + def key + @path.reduce('') { |a, e| a + '/' + e } + end + + private + + # For RPC style methods, pick a name based off the request objects. + # @param [Google::Apis::DiscoveryV1::RestMethod] method + # Fragment of the discovery doc describing the method + def infer_method_name_for_rpc(method) + return nil if method.request.nil? + verb = ActiveSupport::Inflector.underscore(method.id.split('.').last) + match = method.request._ref.match(/(.*)(?i:request)/) + return nil if match.nil? + name = ActiveSupport::Inflector.underscore(match[1]) + return nil unless name == verb || name.start_with?(verb + '_') + name + end + + # For REST style methods, build a method name from the verb/resource(s) in the method + # id. IDs are in the form .. + # @param [Google::Apis::DiscoveryV1::RestMethod] method + # Fragment of the discovery doc describing the method + def infer_method_name_from_id(method) + parts = method.id.split('.') + parts.shift + verb = parts.pop + return ActiveSupport::Inflector.underscore(verb) if parts.empty? + resource_name = parts.pop + method_name = verb + '_' + method_name += parts.map { |p| ActiveSupport::Inflector.singularize(p) }.join('_') + '_' unless parts.empty? + if pluralize_method?(verb) + method_name += ActiveSupport::Inflector.pluralize(resource_name) + else + method_name += ActiveSupport::Inflector.singularize(resource_name) + end + ActiveSupport::Inflector.underscore(method_name) + end + end + + # Modifies an API description to support ruby code generation. Primarily does: + # - Ensure all names follow appopriate ruby conventions + # - Maps types to ruby types, classes, and resolves $refs + # - Attempts to simplify names where possible to make APIs more sensible + class Annotator + include NameHelpers + include Google::Apis::Core::Logging + + # Don't expose these in the API directly. + PARAMETER_BLACKLIST = %w(alt access_token bearer_token oauth_token pp prettyPrint + $.xgafv callback upload_protocol uploadType) + + # Prepare the API for the templates. + # @param [Google::Apis::DiscoveryV1::RestDescription] description + # API Description + def self.process(description, api_names = nil) + Annotator.new(description, api_names).annotate_api + end + + # @param [Google::Apis::DiscoveryV1::RestDescription] description + # API Description + # @param [Google::Api::Generator::Names] api_names + # Name helper instanace + def initialize(description, api_names = nil) + api_names = Names.new if api_names.nil? + @names = api_names + @rest_description = description + @registered_types = [] + @deferred_types = [] + @strip_prefixes = [] + @all_methods = {} + @path = [] + end + + def annotate_api + @names.with_path(@rest_description.id) do + @strip_prefixes << @rest_description.name + if @rest_description.auth + @rest_description.auth.oauth2.scopes.each do |key, value| + value.constant = constantize_scope(key) + end + end + @rest_description.parameters.reject! { |k, _v| PARAMETER_BLACKLIST.include?(k) } + annotate_parameters(@rest_description.parameters) + annotate_resource(@rest_description.name, @rest_description) + @rest_description.schemas.each do |k, v| + annotate_type(k, v, @rest_description) + end unless @rest_description.schemas.nil? + end + resolve_type_references + resolve_variants + end + + def annotate_type(name, type, parent) + @names.with_path(name) do + type.name = name + type.path = @names.key + type.generated_name = @names.infer_property_name + if type.type == 'object' + type.generated_class_name = ActiveSupport::Inflector.camelize(type.generated_name) + @registered_types << type + end + type.parent = parent + @deferred_types << type if type._ref + type.properties.each do |k, v| + annotate_type(k, v, type) + end unless type.properties.nil? + if type.additional_properties + type.type = 'hash' + annotate_type(ActiveSupport::Inflector.singularize(type.generated_name), type.additional_properties, + parent) + end + annotate_type(ActiveSupport::Inflector.singularize(type.generated_name), type.items, parent) if type.items + end + end + + def annotate_resource(name, resource, parent_resource = nil) + @strip_prefixes << name + resource.parent = parent_resource unless parent_resource.nil? + resource.api_methods.each do |_k, v| + annotate_method(v, resource) + end unless resource.api_methods.nil? + + resource.resources.each do |k, v| + annotate_resource(k, v, resource) + end unless resource.resources.nil? + end + + def annotate_method(method, parent_resource = nil) + @names.with_path(method.id) do + method.parent = parent_resource + method.generated_name = @names.infer_method_name(method) + check_duplicate_method(method) + annotate_parameters(method.parameters) + end + end + + def annotate_parameters(parameters) + parameters.each do |key, value| + @names.with_path(key) do + value.name = key + value.generated_name = @names.infer_parameter_name + @deferred_types << value if value._ref + end + end unless parameters.nil? + end + + def resolve_type_references + @deferred_types.each do |type| + if type._ref + ref = @rest_description.schemas[type._ref] + ivars = ref.instance_variables - [:@name, :@generated_name] + (ivars).each do |var| + type.instance_variable_set(var, ref.instance_variable_get(var)) + end + end + end + end + + def resolve_variants + @deferred_types.each do |type| + if type.variant + type.variant.map.each do |v| + ref = @rest_description.schemas[v._ref] + ref.base_ref = type + ref.discriminant = type.variant.discriminant + ref.discriminant_value = v.type_value + end + end + end + end + + def check_duplicate_method(m) + if @all_methods.include?(m.generated_name) + logger.error { sprintf('Duplicate method %s generated', m.generated_name) } + fail 'Duplicate name generated' + end + @all_methods[m.generated_name] = m + end + end + end + end +end diff --git a/lib/google/apis/generator/helpers.rb b/lib/google/apis/generator/helpers.rb new file mode 100644 index 000000000..b90192469 --- /dev/null +++ b/lib/google/apis/generator/helpers.rb @@ -0,0 +1,74 @@ +module Google + module Apis + # @private + class Generator + # Methods for validating & normalizing symbols + module NameHelpers + KEYWORDS = %w(__ENCODING__ def in self __LINE__ defined? module super __FILE__ do next then BEGIN + else nil true END elsif not undef alias end or unless and ensure redo until begin + false rescue when break for retry while case if return yield class) + PLURAL_METHODS = %w(list search) + + # Check to see if the method name should be plauralized + # @return [Boolean] + def pluralize_method?(method_name) + PLURAL_METHODS.include?(method_name) + end + + # Check to see if the method is either a keyword or built-in method on object + # @return [Boolean] + def reserved?(name) + keyword?(name) || object_method?(name) + end + + # Check to see if the name is a ruby keyword + # @return [Boolean] + def keyword?(name) + KEYWORDS.include?(name) + end + + # Check to see if the method already exists on ruby objects + # @return [Boolean] + def object_method?(name) + Object.new.respond_to?(name) + end + + # Convert a parameter name to ruby conventions + # @param [String] name + # @return [String] updated param name + def normalize_param_name(name) + name = ActiveSupport::Inflector.underscore(name.gsub(/\W/, '_')) + if reserved?(name) + logger.warn { sprintf('Found reserved keyword \'%1$s\'', name) } + name += '_' + logger.warn { sprintf('Changed to \'%1$s\'', name) } + end + name + end + + # Convert a property name to ruby conventions + # @param [String] name + # @return [String] + def normalize_property_name(name) + name = ActiveSupport::Inflector.underscore(name.gsub(/\W/, '_')) + if object_method?(name) + logger.warn { sprintf('Found reserved property \'%1$s\'', name) } + name += '_prop' + logger.warn { sprintf('Changed to \'%1$s\'', name) } + end + name + end + + # Converts a scope string into a ruby constant + # @param [String] url + # Url to convert + # @return [String] + def constantize_scope(url) + scope = Addressable::URI.parse(url).path[1..-1].upcase.gsub(/\W/, '_') + scope = 'AUTH_SCOPE' if scope.nil? || scope.empty? + scope + end + end + end + end +end diff --git a/lib/google/apis/generator/model.rb b/lib/google/apis/generator/model.rb new file mode 100644 index 000000000..eca79e1cf --- /dev/null +++ b/lib/google/apis/generator/model.rb @@ -0,0 +1,130 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'active_support/inflector' +require 'google/apis/discovery_v1' + +# Extend the discovery API classes with additional data needed to make +# code generation produce better results +module Google + module Apis + module DiscoveryV1 + TYPE_MAP = { + 'string' => 'String', + 'boolean' => 'Boolean', + 'number' => 'Float', + 'integer' => 'Fixnum', + 'any' => 'Object' + } + + class JsonSchema + attr_accessor :name + attr_accessor :generated_name + attr_accessor :generated_class_name + attr_accessor :base_ref + attr_accessor :parent + attr_accessor :discriminant + attr_accessor :discriminant_value + attr_accessor :path + + def properties + @properties ||= {} + end + + def qualified_name + parent.qualified_name + '::' + generated_class_name + end + + def generated_type + case type + when 'string', 'boolean', 'number', 'integer', 'any' + return 'DateTime' if format == 'date-time' + return 'Date' if format == 'date' + return TYPE_MAP[type] + when 'array' + return sprintf('Array<%s>', items.generated_type) + when 'hash' + return sprintf('Hash', additional_properties.generated_type) + when 'object' + return qualified_name + end + end + end + + class RestMethod + attr_accessor :generated_name + attr_accessor :parent + + def path_parameters + return [] if parameter_order.nil? || parameters.nil? + parameter_order.map { |name| parameters[name] }.select { |param| param.location == 'path' } + end + + def query_parameters + return [] if parameters.nil? + parameters.values.select { |param| param.location == 'query' } + end + end + + class RestResource + attr_accessor :parent + + def all_methods + m = [] + m << api_methods.values unless api_methods.nil? + m << resources.map { |_k, r| r.all_methods } unless resources.nil? + m.flatten + end + end + + class RestDescription + def version + ActiveSupport::Inflector.camelize(@version.gsub(/\W/, '-')).gsub(/-/, '_') + end + + def name + ActiveSupport::Inflector.camelize(@name) + end + + def module_name + name + version + end + + def qualified_name + sprintf('Google::Apis::%s', module_name) + end + + def service_name + class_name = (canonical_name || name).gsub(/\W/, '') + ActiveSupport::Inflector.camelize(sprintf('%sService', class_name)) + end + + def all_methods + m = [] + m << api_methods.values unless api_methods.nil? + m << resources.map { |_k, r| r.all_methods } unless resources.nil? + m.flatten + end + + class Auth + class Oauth2 + class Scope + attr_accessor :constant + end + end + end + end + end + end +end diff --git a/lib/google/apis/generator/template.rb b/lib/google/apis/generator/template.rb new file mode 100644 index 000000000..37a809373 --- /dev/null +++ b/lib/google/apis/generator/template.rb @@ -0,0 +1,124 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'active_support/inflector' +require 'erb' +require 'ostruct' + +module Google + module Apis + # @private + class Generator + # Directory containing ERB templates + TEMPLATE_DIR = File.expand_path('../templates', __FILE__) + + # Helpers used in ERB templates + module TemplateHelpers + # Get the include path for a ruby module/class + # + # @param [String] module_name + # Fully qualified module/class name + # @return [String] + # Path to file + def to_path(module_name) + ActiveSupport::Inflector.underscore(module_name) + end + + # Render a block comment + # + # @param [String] str + # Comment string + # @param [Fixnum] spaces_before + # Number of spaces to indent the comment hash + # @param [Fixnum] spaces_after + # Number of spaces to indent after the comment hash for subsequent lines + # @return [String] formatted comment + def block_comment(str, spaces_before = 0, spaces_after = 0) + return '' if str.nil? + pre = ' ' * spaces_before + post = ' ' * spaces_after + lines = str.gsub(/([{}])/, '`').scan(/.{1,78}(?:\W|$)/).map(&:strip) + lines.join("\n" + pre + '#' + post) + end + + # Indent a block of text + # + # @param [String] str + # Content to indent + # @param [Fixnum] spaces + # Number of spaces to indent + # @return [String] formatted content + def indent(str, spaces) + pre = ' ' * spaces + str = pre + str.split(/\n/).join("\n" + pre) + "\n" + return str unless str.strip.empty? + nil + end + + # Include a partial inside a template. + # + # @private + # @param [String] partial + # Name of the template + # @param [Hash] context + # Context used to render + # @return [String] rendered content + def include(partial, context) + template = Template.new(sprintf('_%s.tmpl', partial)) + template.render(context) + end + end + + # Holds local vars/helpers for template rendering + class Context < OpenStruct + include TemplateHelpers + + # Get the context for ERB evaluation + # @return [Binding] + def to_binding + binding + end + end + + # ERB template for the code generator + class Template + # Loads a template from the template dir. Automatically + # appends the .tmpl suffix + # + # @param [String] template_name + # Name of the template file + def self.load(template_name) + Template.new(sprintf('%s.tmpl', template_name)) + end + + # @param [String] template_name + # Name of the template file + def initialize(template_name) + file = File.join(TEMPLATE_DIR, template_name) + @erb = ERB.new(File.read(file), nil, '-') + end + + # Render the template + # + # @param [Hash] context + # Variables to set when rendering the template + # @return [String] rendered template + def render(context) + ctx = Context.new(context) + @erb.result(ctx.to_binding) + end + end + end + end +end diff --git a/lib/google/apis/generator/templates/_class.tmpl b/lib/google/apis/generator/templates/_class.tmpl new file mode 100644 index 000000000..1bf4efaf2 --- /dev/null +++ b/lib/google/apis/generator/templates/_class.tmpl @@ -0,0 +1,40 @@ +<% if cls.type == 'object' -%> + +# <%= block_comment(cls.description, 0, 1) %> +class <%= cls.generated_class_name %><% if cls.base_ref %> < <%= cls.base_ref.generated_type %><% end %> + include Google::Apis::Core::Hashable +<% for property in cls.properties.values -%> + + # <%= block_comment(property.description, 2, 1) %> + # Corresponds to the JSON property `<%= property.name %>` + # @return [<%= property.generated_type %>] + attr_accessor :<%= property.generated_name %> +<% if property.type == 'boolean' -%> + alias_method :<%= property.generated_name %>?, :<%= property.generated_name %> +<% end -%> +<% end -%> + + def initialize(**args) +<% if cls.discriminant -%> + @<%= cls.properties[cls.discriminant].generated_name %> = '<%= cls.discriminant_value %>' +<% end -%> + update!(**args) + end + + # Update properties of this object + def update!(**args) +<% for property in cls.properties.values -%> + @<%= property.generated_name %> = args[:<%= property.generated_name %>] unless args[:<%= property.generated_name %>].nil? +<% end -%> + end +<% for child_class in cls.properties.values -%> +<% if child_class._ref.nil? -%> +<%= indent(include('class', :cls => child_class, :api => api), 2) -%> +<% end -%> +<% end -%> +end +<% elsif cls.items && cls.items._ref.nil? -%> +<%= include('class', :cls => cls.items, :api => api) -%> +<% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%> +<%= include('class', :cls => cls.additional_properties, :api => api) -%> +<% end -%> diff --git a/lib/google/apis/generator/templates/_method.tmpl b/lib/google/apis/generator/templates/_method.tmpl new file mode 100644 index 000000000..347f9a132 --- /dev/null +++ b/lib/google/apis/generator/templates/_method.tmpl @@ -0,0 +1,90 @@ + +# <%= block_comment(api_method.description, 0, 1) %> +<% for param in api_method.path_parameters -%> +# @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %> +<% if param.description -%> +# <%= block_comment(param.description, 0, 3) %> +<% end -%> +<% end -%> +<% if api_method.request -%> +# @param [<%= api.schemas[api_method.request._ref].generated_type %>] <%= api.schemas[api_method.request._ref].generated_name %>_object +<% end -%> +<% for param in api_method.query_parameters -%> +# @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %> +<% if param.description -%> +# <%= block_comment(param.description, 0, 3) %> +<% end -%> +<% end -%> +<% for param in api.parameters.values.reject {|p| p.name == 'key'} -%> +# @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %> +<% if param.description -%> +# <%= block_comment(param.description, 0, 3) %> +<% end -%> +<% end -%> +<% if api_method.supports_media_upload? -%> +# @param [IO, String] upload_source +# IO stream or filename containing content to upload +# @param [String] content_type +# Content type of the uploaded content. +<% elsif api_method.supports_media_download? -%> +# @param [IO, String] download_dest +# IO stream or filename to receive content download +<% end -%> +# @param [Google::Apis::RequestOptions] options +# Request-specific options +# +# @yield [result, err] Result & error if block supplied +<% if api_method.response -%> +# @yieldparam result [<%= api.schemas[api_method.response._ref].generated_type %>] parsed result object +# @yieldparam err [StandardError] error object if request failed +# +# @return [<%= api.schemas[api_method.response._ref].generated_type %>] +<% else -%> +# @yieldparam result [NilClass] No result returned for this method +# @yieldparam err [StandardError] error object if request failed +# +# @return [void] +<% end -%> +# +# @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried +# @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification +# @raise [Google::Apis::AuthorizationError] Authorization is required +def <%= api_method.generated_name %>(<% for param in api_method.path_parameters %><%= param.generated_name %>, <% end %><% if api_method.request %><%= api.schemas[api_method.request._ref].generated_name %>_object = nil, <% end %><% for param in api_method.query_parameters %><%= param.generated_name %>: nil, <% end %><% for param in api.parameters.values.reject {|p| p.name == 'key'} %><%= param.generated_name %>: nil, <% end %><% if api_method.supports_media_upload? %>upload_source: nil, content_type: nil, <% elsif api_method.supports_media_download? %>download_dest: nil, <% end %>options: nil, &block) + path = '<%= api_method.path %>' +<% if api_method.supports_media_upload? -%> + if upload_source.nil? + command = make_simple_command(:<%= api_method.http_method.downcase %>, path, options) + else + command = make_upload_command(:<%= api_method.http_method.downcase %>, path, options) + command.upload_source = upload_source + command.upload_content_type = content_type + end +<% elsif api_method.supports_media_download? -%> + if download_dest.nil? + command = make_simple_command(:<%= api_method.http_method.downcase %>, path, options) + else + command = make_download_command(:<%= api_method.http_method.downcase %>, path, options) + command.download_dest = download_dest + end +<% else -%> + command = make_simple_command(:<%= api_method.http_method.downcase %>, path, options) +<% end -%> +<% if api_method.request -%> + command.request_representation = <%= api.schemas[api_method.request._ref].generated_type %>::Representation + command.request_object = <%= api.schemas[api_method.request._ref].generated_name %>_object +<% end -%> +<% if api_method.response -%> + command.response_representation = <%= api.schemas[api_method.response._ref].generated_type %>::Representation + command.response_class = <%= api.schemas[api_method.response._ref].generated_type %> +<% end -%> +<% for param in api_method.path_parameters -%> + command.params['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil? +<% end -%> +<% for param in api_method.query_parameters -%> + command.query['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil? +<% end -%> +<% for param in api.parameters.values.reject {|p| p.name == 'key'} -%> + command.query['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil? +<% end -%> + execute_or_queue_command(command, &block) +end diff --git a/lib/google/apis/generator/templates/_representation.tmpl b/lib/google/apis/generator/templates/_representation.tmpl new file mode 100644 index 000000000..8e9cc843b --- /dev/null +++ b/lib/google/apis/generator/templates/_representation.tmpl @@ -0,0 +1,51 @@ +<% if cls.type == 'object' -%> + +# @private +class <%= cls.generated_class_name %> + class Representation < Google::Apis::Core::JsonRepresentation +<% if api.features && api.features.include?('dataWrapper') -%> + self.representation_wrap = lambda { |args| :data if args[:unwrap] == <%= cls.generated_type %> } +<% end -%> +<% if cls.variant -%> + def from_hash(hash, *args) + case hash['<%= cls.variant.discriminant %>'] +<% for v in cls.variant.map -%> +<% ref = api.schemas[v._ref] %> + when '<%= v.type_value %>' + <%= ref.generated_type %>::Representation.new(<%= ref.generated_type %>.new).from_hash(hash, *args) +<% end -%> + end + end + + def to_hash(*args) + case represented +<% for v in cls.variant.map -%> +<% ref = api.schemas[v._ref] %> + when <%= ref.generated_type %> + <%= ref.generated_type %>::Representation.new(represented).to_hash(*args) +<% end -%> + end + end +<% else -%> +<% for property in cls.properties.values -%> +<% if property.type == 'hash' -%> + hash :<%= property.generated_name %>, as: '<%= property.name %>'<%= include('representation_type', :lead => ', ', :type => property.additional_properties, :api => api) %> +<% elsif property.type == 'array' -%> + collection :<%= property.generated_name %>, as: '<%= property.name %>'<%= include('representation_type', :lead => ', ', :type => property.items, :api => api) %> +<% else -%> + property :<%= property.generated_name %>,<% if property.format == 'byte' %> :base64 => true,<%end%> as: '<%= property.name %>'<%= include('representation_type', :lead => ', ', :type => property, :api => api) %> +<% end -%> +<% end -%> +<% end -%> + end +<% for child_class in cls.properties.values -%> +<% if child_class._ref.nil? -%> +<%= indent(include('representation', :cls => child_class, :api => api), 2) -%> +<% end -%> +<% end -%> +end +<% elsif cls.items && cls.items._ref.nil? -%> +<%= include('representation', :cls => cls.items, :api => api) -%> +<% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%> +<%= include('representation', :cls => cls.additional_properties, :api => api) -%> +<% end -%> diff --git a/lib/google/apis/generator/templates/_representation_stub.tmpl b/lib/google/apis/generator/templates/_representation_stub.tmpl new file mode 100644 index 000000000..b80cf6932 --- /dev/null +++ b/lib/google/apis/generator/templates/_representation_stub.tmpl @@ -0,0 +1,15 @@ +<% if cls.type == 'object' -%> + +class <%= cls.generated_class_name %> + class Representation < Google::Apis::Core::JsonRepresentation; end +<% for child_class in cls.properties.values -%> +<% if child_class._ref.nil? -%> +<%= indent(include('representation_stub', :cls => child_class), 2) -%> +<% end -%> +<% end -%> +end +<% elsif cls.items && cls.items._ref.nil? -%> +<%= include('representation_stub', :cls => cls.items, :api => api) -%> +<% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%> +<%= include('representation_stub', :cls => cls.additional_properties, :api => api) -%> +<% end -%> diff --git a/lib/google/apis/generator/templates/_representation_type.tmpl b/lib/google/apis/generator/templates/_representation_type.tmpl new file mode 100644 index 000000000..633bbf2f6 --- /dev/null +++ b/lib/google/apis/generator/templates/_representation_type.tmpl @@ -0,0 +1,10 @@ +<% if type.type == 'array' -%> +<%= lead %>:class => Array do + include Representable::JSON::Collection + items<%= include('representation_type', :lead => ' ' , :type => type.items, :api => api) %> +end +<% elsif ['date', 'date-time'].include?(type.format) -%> +<%= lead %>type: <%= type.generated_type %> +<% elsif type.type == 'object' -%> +<%= lead %>class: <%= type.generated_type %>, decorator: <%= type.generated_type %>::Representation +<% end -%> diff --git a/lib/google/api_client/reference.rb b/lib/google/apis/generator/templates/classes.rb.tmpl similarity index 60% rename from lib/google/api_client/reference.rb rename to lib/google/apis/generator/templates/classes.rb.tmpl index 15b34250d..e034f8961 100644 --- a/lib/google/api_client/reference.rb +++ b/lib/google/apis/generator/templates/classes.rb.tmpl @@ -1,4 +1,4 @@ -# Copyright 2010 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,16 +12,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -require 'google/api_client/request' +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' module Google - class APIClient - ## - # Subclass of Request for backwards compatibility with pre-0.5.0 versions of the library - # - # @deprecated - # use {Google::APIClient::Request} instead - class Reference < Request + module Apis + module <%= api.module_name %> +<% for cls in api.schemas.values.partition(&:variant).flatten -%> +<%= indent(include('class', :cls => cls, :api => api), 6) -%> +<% end -%> end end end diff --git a/lib/google/apis/generator/templates/module.rb.tmpl b/lib/google/apis/generator/templates/module.rb.tmpl new file mode 100644 index 000000000..24a3f32e0 --- /dev/null +++ b/lib/google/apis/generator/templates/module.rb.tmpl @@ -0,0 +1,40 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require '<%= to_path(api.qualified_name) %>/service.rb' +require '<%= to_path(api.qualified_name) %>/classes.rb' +require '<%= to_path(api.qualified_name) %>/representations.rb' + +module Google + module Apis + # <%= api.title %> + # + # <%= block_comment(api.description, 4, 1) %> + # +<% if api.documentation_link -%> + # @see <%= api.documentation_link %> +<% end -%> + module <%= api.module_name %> + VERSION = '<%= api.version %>' + REVISION = '<%= api.revision %>' +<% if api.auth && api.auth.oauth2 -%> +<% for scope_string, scope in api.auth.oauth2.scopes -%> + + # <%= scope.description %> + <%= scope.constant %> = '<%= scope_string %>' +<% end -%> +<% end -%> + end + end +end diff --git a/spec/google/api_client/request_spec.rb b/lib/google/apis/generator/templates/representations.rb.tmpl similarity index 50% rename from spec/google/api_client/request_spec.rb rename to lib/google/apis/generator/templates/representations.rb.tmpl index c63f750dc..20bd1c769 100644 --- a/spec/google/api_client/request_spec.rb +++ b/lib/google/apis/generator/templates/representations.rb.tmpl @@ -1,4 +1,4 @@ -# Copyright 2012 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,18 +12,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -require 'spec_helper' +require 'date' +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' -require 'google/api_client' - -RSpec.describe Google::APIClient::Request do - CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) - - it 'should normalize parameter names to strings' do - request = Google::APIClient::Request.new(:uri => 'https://www.google.com', :parameters => { - :a => '1', 'b' => '2' - }) - expect(request.parameters['a']).to eq('1') - expect(request.parameters['b']).to eq('2') +module Google + module Apis + module <%= api.module_name %> +<% for cls in api.schemas.values.partition(&:variant).flatten -%> +<%= indent(include('representation_stub', :cls => cls), 6) -%> +<% end -%> +<% for cls in api.schemas.values.partition(&:variant).flatten -%> +<%= indent(include('representation', :cls => cls, :api => api), 6) -%> +<% end -%> + end end end diff --git a/lib/google/apis/generator/templates/service.rb.tmpl b/lib/google/apis/generator/templates/service.rb.tmpl new file mode 100644 index 000000000..7bf7315ee --- /dev/null +++ b/lib/google/apis/generator/templates/service.rb.tmpl @@ -0,0 +1,60 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'google/apis/core/base_service' +require 'google/apis/core/json_representation' +require 'google/apis/core/hashable' +require 'google/apis/errors' + +module Google + module Apis + module <%= api.module_name %> + # <%= api.title %> + # + # <%= block_comment(api.description, 6, 2) %> + # + # @example + # require '<%= to_path(api.qualified_name) %>' + # + # <%= api.name %> = <%= api.qualified_name %> # Alias the module + # service = <%= api.name %>::<%= api.service_name %>.new + # +<% if api.documentation_link -%> + # @see <%= api.documentation_link %> +<% end -%> + class <%= api.service_name %> < Google::Apis::Core::BaseService +<% for param in api.parameters.values.reject {|p| p.name == 'fields'} -%> + # @return [<%= param.generated_type %>] + # <%= block_comment(param.description, 8, 2) %> + attr_accessor :<%= param.generated_name %> + +<% end -%> + def initialize + super('<%= api.root_url %>', '<%= api.service_path %>') + end +<% for api_method in api.all_methods -%> +<%= indent(include('method', :api_method => api_method, :api => api), 8) -%> +<% end -%> + + protected + + def apply_command_defaults(command) +<% for param in api.parameters.values.reject {|p| p.name == 'fields'} -%> + command.query['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil? +<% end -%> + end + end + end + end +end diff --git a/lib/google/apis/options.rb b/lib/google/apis/options.rb new file mode 100644 index 000000000..2ad2ac3d3 --- /dev/null +++ b/lib/google/apis/options.rb @@ -0,0 +1,79 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +module Google + module Apis + # General options for API requests + ClientOptions = Struct.new( + :application_name, + :application_version, + :proxy_url) + + RequestOptions = Struct.new( + :authorization, + :retries, + :header, + :timeout_sec) + + # General client options + class ClientOptions + # @!attribute [rw] application_name + # @return [String] Name of the application, for identification in the User-Agent header + # @!attribute [rw] application_version + # @return [String] Version of the application, for identification in the User-Agent header + # @!attribute [rw] proxy_url + # @return [String] URL of a proxy server + + # Get the default options + # @return [Google::Apis::ClientOptions] + def self.default + @options ||= ClientOptions.new + end + end + + # Request options + class RequestOptions + # @!attribute [rw] credentials + # @return [Signet::OAuth2::Client, #apply(Hash)] OAuth2 credentials + # @!attribute [rw] retries + # @return [Fixnum] Number of times to retry requests on server error + # @!attribute [rw] timeout_sec + # @return [Fixnum] How long, in seconds, before requests time out + # @!attribute [rw] header + # @return [Hash ["clobber", "gem:package"] do - sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}" - end - - desc "Uninstall the gem" - task :uninstall do - installed_list = Gem.source_index.find_name(PKG_NAME) - if installed_list && - (installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION)) - sh( - "#{SUDO} gem uninstall --version '#{PKG_VERSION}' " + - "--ignore-dependencies --executables #{PKG_NAME}" - ) - end - end - - desc "Reinstall the gem" - task :reinstall => [:uninstall, :install] -end - -desc "Alias to gem:package" -task "gem" => "gem:package" - -task "clobber" => ["gem:clobber_package"] \ No newline at end of file diff --git a/rakelib/git.rake b/rakelib/git.rake deleted file mode 100644 index ac3f1c268..000000000 --- a/rakelib/git.rake +++ /dev/null @@ -1,45 +0,0 @@ -namespace :git do - namespace :tag do - desc 'List tags from the Git repository' - task :list do - tags = `git tag -l` - tags.gsub!("\r", '') - tags = tags.split("\n").sort {|a, b| b <=> a } - puts tags.join("\n") - end - - desc 'Create a new tag in the Git repository' - task :create do - changelog = File.open('CHANGELOG.md', 'r') { |file| file.read } - puts '-' * 80 - puts changelog - puts '-' * 80 - puts - - v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z' - abort "Versions don't match #{v} vs #{PKG_VERSION}" if v != PKG_VERSION - - git_status = `git status` - if git_status !~ /nothing to commit \(working directory clean\)/ - abort "Working directory isn't clean." - end - - tag = "#{PKG_NAME}-#{PKG_VERSION}" - msg = "Release #{PKG_NAME}-#{PKG_VERSION}" - - existing_tags = `git tag -l #{PKG_NAME}-*`.split('\n') - if existing_tags.include?(tag) - warn('Tag already exists, deleting...') - unless system "git tag -d #{tag}" - abort 'Tag deletion failed.' - end - end - puts "Creating git tag '#{tag}'..." - unless system "git tag -a -m \"#{msg}\" #{tag}" - abort 'Tag creation failed.' - end - end - end -end - -task 'gem:release' => 'git:tag:create' \ No newline at end of file diff --git a/rakelib/metrics.rake b/rakelib/metrics.rake index 67cb4eb77..812339c22 100644 --- a/rakelib/metrics.rake +++ b/rakelib/metrics.rake @@ -1,7 +1,7 @@ namespace :metrics do task :lines do lines, codelines, total_lines, total_codelines = 0, 0, 0, 0 - for file_name in FileList['lib/**/*.rb'] + for file_name in FileList['lib/**/*.rb', 'bin/generate-api'] f = File.open(file_name) while line = f.gets lines += 1 @@ -10,7 +10,7 @@ namespace :metrics do codelines += 1 end puts "L: #{sprintf('%4d', lines)}, " + - "LOC #{sprintf('%4d', codelines)} | #{file_name}" + "LOC #{sprintf('%4d', codelines)} | #{file_name}" total_lines += lines total_codelines += codelines diff --git a/rakelib/rubocop.rake b/rakelib/rubocop.rake new file mode 100644 index 000000000..61c4fe14c --- /dev/null +++ b/rakelib/rubocop.rake @@ -0,0 +1,10 @@ +require 'rubocop/rake_task' + +desc 'Run RuboCop on the lib directory' +RuboCop::RakeTask.new(:rubocop) do |task| + task.patterns = ['lib/**/*.rb'] + # only show the files with failures + task.formatters = ['progress'] + # don't abort rake on failure + task.fail_on_error = false +end \ No newline at end of file diff --git a/rakelib/spec.rake b/rakelib/spec.rake index 102e9a9cc..f118b758e 100644 --- a/rakelib/spec.rake +++ b/rakelib/spec.rake @@ -1,21 +1,10 @@ require 'rake/clean' require 'rspec/core/rake_task' -CLOBBER.include('coverage', 'specdoc') +CLOBBER.include('coverage') namespace :spec do - RSpec::Core::RakeTask.new(:all) do |t| - t.pattern = FileList['spec/**/*_spec.rb'] - t.rspec_opts = ['--color', '--format', 'documentation'] - end - - desc 'Generate HTML Specdocs for all specs.' - RSpec::Core::RakeTask.new(:specdoc) do |t| - specdoc_path = File.expand_path('../../specdoc', __FILE__) - - t.rspec_opts = %W( --format html --out #{File.join(specdoc_path, 'index.html')} ) - t.fail_on_error = false - end + RSpec::Core::RakeTask.new(:all) end desc 'Alias to spec:all' diff --git a/rakelib/wiki.rake b/rakelib/wiki.rake deleted file mode 100644 index 3e0d97d2e..000000000 --- a/rakelib/wiki.rake +++ /dev/null @@ -1,82 +0,0 @@ -require 'rake' -require 'rake/clean' - -CLOBBER.include('wiki') - -CACHE_PREFIX = - "http://www.gmodules.com/gadgets/proxy/container=default&debug=0&nocache=0/" - -namespace :wiki do - desc 'Autogenerate wiki pages' - task :supported_apis do - output = <<-WIKI -#summary The list of supported APIs - -The Google API Client for Ruby is a small flexible client library for accessing -the following Google APIs. - -WIKI - preferred_apis = {} - require 'google/api_client' - client = Google::APIClient.new - for api in client.discovered_apis - if !preferred_apis.has_key?(api.name) - preferred_apis[api.name] = api - elsif api.preferred - preferred_apis[api.name] = api - end - end - for api_name, api in preferred_apis - if api.documentation.to_s != "" && api.title != "" - output += ( - "||#{CACHE_PREFIX}#{api['icons']['x16']}||" + - "[#{api.documentation} #{api.title}]||" + - "#{api.description}||\n" - ) - end - end - output.gsub!(/-32\./, "-16.") - wiki_path = File.expand_path( - File.join(File.dirname(__FILE__), '../wiki/')) - Dir.mkdir(wiki_path) unless File.exists?(wiki_path) - File.open(File.join(wiki_path, 'SupportedAPIs.wiki'), 'w') do |file| - file.write(output) - end - end - - task 'generate' => ['wiki:supported_apis'] -end - -begin - $LOAD_PATH.unshift( - File.expand_path(File.join(File.dirname(__FILE__), '../yard/lib')) - ) - $LOAD_PATH.unshift(File.expand_path('.')) - $LOAD_PATH.uniq! - - require 'yard' - require 'yard/rake/wikidoc_task' - - namespace :wiki do - desc 'Generate Wiki Documentation with YARD' - YARD::Rake::WikidocTask.new do |yardoc| - yardoc.name = 'reference' - yardoc.options = [ - '--verbose', - '--markup', 'markdown', - '-e', 'yard/lib/yard-google-code.rb', - '-p', 'yard/templates', - '-f', 'wiki', - '-o', 'wiki' - ] - yardoc.files = [ - 'lib/**/*.rb', 'ext/**/*.c', '-', 'README.md', 'CHANGELOG.md' - ] - end - - task 'generate' => ['wiki:reference', 'wiki:supported_apis'] - end -rescue LoadError - # If yard isn't available, it's not the end of the world - warn('YARD unavailable. Cannot fully generate wiki.') -end diff --git a/rakelib/yard.rake b/rakelib/yard.rake index be0ff6592..a0675a8dc 100644 --- a/rakelib/yard.rake +++ b/rakelib/yard.rake @@ -1,29 +1,11 @@ -require 'rake' -require 'rake/clean' - -CLOBBER.include('doc', '.yardoc') -CLOBBER.uniq! - begin - require 'yard' - require 'yard/rake/yardoc_task' + require 'yard' + require 'yard/rake/yardoc_task' - namespace :doc do - desc 'Generate Yardoc documentation' - YARD::Rake::YardocTask.new do |yardoc| - yardoc.name = 'yard' - yardoc.options = ['--verbose', '--markup', 'markdown'] - yardoc.files = [ - 'lib/**/*.rb', 'ext/**/*.c', '-', - 'README.md', 'CONTRIB.md', 'CHANGELOG.md', 'LICENSE' - ] - end - end - - desc 'Alias to doc:yard' - task 'doc' => 'doc:yard' + YARD::Rake::YardocTask.new do |t| + t.files = ['lib/**/*.rb', 'generated/**/*.rb'] + t.options = ['--verbose', '--markup', 'markdown'] + end rescue LoadError - # If yard isn't available, it's not the end of the world - desc 'Alias to doc:rdoc' - task 'doc' => 'doc:rdoc' + puts "YARD not available" end diff --git a/samples/calendar/calendar.rb b/samples/calendar/calendar.rb new file mode 100644 index 000000000..3c665c36a --- /dev/null +++ b/samples/calendar/calendar.rb @@ -0,0 +1,43 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'googleauth' +require 'google/apis/calendar_v3' + +Calendar = Google::Apis::CalendarV3 + +calendar = Calendar::CalendarService.new +calendar.authorization = Google::Auth.get_application_default([Calendar::AUTH_CALENDAR]) + +# Create an event, adding any emails listed in the command line as attendees +event = Calendar::Event.new(summary: 'A sample event', + location: '1600 Amphitheatre Parkway, Mountain View, CA 94045', + attendees: ARGV.map { |email| Calendar::EventAttendee.new(email: email) }, + start: Calendar::EventDateTime.new(date_time: DateTime.parse('2015-12-31T20:00:00')), + end: Calendar::EventDateTime.new(date_time: DateTime.parse('2016-01-01T02:00:00'))) +event = calendar.insert_event('primary', event, send_notifications: true) +puts "Created event '#{event.summary}' (#{event.id})" + +# List upcoming events +events = calendar.list_events('primary', max_results: 10, single_events: true, + order_by: 'startTime', time_min: Time.now.iso8601) +puts "Upcoming events:" +events.items.each do |evt| + start = event.start.date || event.start.date_time + puts "- #{event.summary} (#{start}) (ID: #{event.id})" +end + +# Delete the event we created earlier +calendar.delete_event('primary', event.id, send_notifications: true) +puts "Event deleted" diff --git a/samples/drive/drive.rb b/samples/drive/drive.rb new file mode 100644 index 000000000..24220e0ea --- /dev/null +++ b/samples/drive/drive.rb @@ -0,0 +1,40 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'tempfile' +require 'googleauth' +require 'google/apis/drive_v2' + +Drive = Google::Apis::DriveV2 + +drive = Drive::DriveService.new +drive.authorization = Google::Auth.get_application_default([Drive::AUTH_DRIVE]) + +# Insert a file +file = drive.insert_file({title: 'drive.rb'}, upload_source: 'drive.rb') +puts "Created file #{file.title} (#{file.id})" + +# Search for it +files = drive.list_files(q: "title = 'drive.rb'") +puts "Search results:" +files.items.each do |file| + puts "- File: #{file.title} (#{file.id})" +end + +# Read it back +tmp = drive.get_file(file.id, download_dest: Tempfile.new('drive')) + +# Delete it +drive.delete_file(file.id) +puts "File deleted" \ No newline at end of file diff --git a/samples/pubsub/pubsub.rb b/samples/pubsub/pubsub.rb new file mode 100644 index 000000000..1fdbdf987 --- /dev/null +++ b/samples/pubsub/pubsub.rb @@ -0,0 +1,52 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'googleauth' +require 'google/apis/pubsub_v1beta2' + +Pubsub = Google::Apis::PubsubV1beta2 + +pubsub = Pubsub::PubsubService.new +pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB]) + +project = ARGV[0] || 'YOUR_PROJECT_NAME' + +topic = "projects/#{project}/topics/foo" +subscription = "projects/#{project}/subscriptions/bar" + +# Create topic & subscription +pubsub.create_topic(topic) +pubsub.create_subscription(subscription, Pubsub::Subscription.new(topic: topic)) + +# Publish messages +request = Pubsub::PublishRequest.new(messages: []) +request.messages << Pubsub::Message.new(attributes: { "language" => "en" }, data: 'Hello') +request.messages << Pubsub::Message.new(attributes: { "language" => "en" }, data: 'World') +pubsub.publish(topic, request) + +# Pull messages +response = pubsub.pull(subscription, Pubsub::PullRequest.new(max_messages: 5)) +response.received_messages.each do |received_message| + data = received_message.message.data + puts "Received #{data}" +end + +# Acknowledge receipt +ack_ids = response.received_messages.map{ |msg| msg.ack_id } +pubsub.acknowledge(subscription, Pubsub::AcknowledgeRequest.new(ack_ids: ack_ids)) + +# Delete the subscription & topic +pubsub.delete_subscription(subscription) +pubsub.delete_topic(topic) + diff --git a/lib/google/api_client/discovery.rb b/samples/translate/translate.rb similarity index 57% rename from lib/google/api_client/discovery.rb rename to samples/translate/translate.rb index bb01d67ce..30a506d0b 100644 --- a/lib/google/api_client/discovery.rb +++ b/samples/translate/translate.rb @@ -1,4 +1,4 @@ -# Copyright 2010 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,8 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. +require 'tempfile' +require 'googleauth' +require 'google/apis/translate_v2' + +Google::Apis.logger.level = Logger::DEBUG + +Translate = Google::Apis::TranslateV2 + +translate = Translate::TranslateService.new +translate.key = ARGV[0] || 'YOUR_API_KEY' + +result = translate.list_translations(source: 'en', target: 'es', q: 'Hello world!') +puts result.translations.first.translated_text -require 'google/api_client/discovery/api' -require 'google/api_client/discovery/resource' -require 'google/api_client/discovery/method' -require 'google/api_client/discovery/schema' diff --git a/script/generate b/script/generate new file mode 100755 index 000000000..c081817bb --- /dev/null +++ b/script/generate @@ -0,0 +1,79 @@ +#!/usr/bin/env bash +# Usage: script/generate +# Update packaged APIs + +DIR=$(dirname $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )) + +APIS=(adexchangebuyer:v1.3 \ + adexchangeseller:v2.0 \ + admin:directory_v1 \ + admin:reports_v1 \ + adsense:v1.4 \ + adsensehost:v4.1 \ + analytics:v3 \ + androidenterprise:v1 \ + androidpublisher:v2 \ + appsactivity:v1 \ + appstate:v1 \ + autoscaler:v1beta2 \ + bigquery:v2 \ + blogger:v3 \ + books:v1 \ + calendar:v3 \ + civicinfo:v2 \ + cloudmonitoring:v2beta2 \ + cloudresourcemanager:v1beta1 \ + compute:v1 \ + container:v1beta1 \ + content:v2 \ + coordinate:v1 \ + customsearch:v1 \ + datastore:v1beta2 \ + deploymentmanager:v2beta2 \ + dfareporting:v2.1 \ + discovery:v1 \ + dns:v1 \ + doubleclickbidmanager:v1 \ + doubleclicksearch:v2 \ + drive:v2 \ + fitness:v1 \ + fusiontables:v2 \ + games:v1 \ + gamesConfiguration:v1configuration \ + gamesConfiguration:v1management \ + gan:v1beta1 \ + genomics:v1beta2 \ + gmail:v1 \ + groupsmigration:v1 \ + groupssettings:v1 \ + identitytoolkit:v3 \ + licensing:v1 \ + logging:v1beta3 \ + manager:v1beta2 \ + mapsengine:v1 \ + mirror:v1 \ + oauth2:v2 \ + pagespeedonline:v2 \ + plus:v1 \ + plusDomains:v1 \ + prediction:v1.6 \ + pubsub:v1beta2 \ + qpxExpress:v1 \ + replicapool:v1beta2 \ + replicapoolupdater:v1beta1 \ + reseller:v1 \ + resourceviews:v1beta2 \ + siteVerification:v1 \ + sqladmin:v1beta4 \ + storage:v1 \ + tagmanager:v1 \ + taskqueue:v1beta2 \ + tasks:v1 \ + translate:v2 \ + urlshortener:v1 \ + webmasters:v3 \ + youtube:v3 \ + youtubeAnalytics:v1 \ +) + +echo 'a' | bundle exec bin/generate-api gen generated --names_out=$DIR/api_names_out.yaml --id=${APIS[*]} diff --git a/script/release b/script/release index 1a26a4234..30f161468 100755 --- a/script/release +++ b/script/release @@ -1,4 +1,5 @@ -age: script/release +#!/usr/bin/env bash +# Usage: script/release # Build the package, tag a commit, push it to origin, and then release the # package publicly. diff --git a/spec/fixtures/files/api_names.yaml b/spec/fixtures/files/api_names.yaml new file mode 100644 index 000000000..a3d751215 --- /dev/null +++ b/spec/fixtures/files/api_names.yaml @@ -0,0 +1,3 @@ +--- +"/test:v1/TestAnotherThing": another_thing + diff --git a/spec/fixtures/files/privatekey.p12 b/spec/fixtures/files/privatekey.p12 deleted file mode 100644 index 1e737a93a..000000000 Binary files a/spec/fixtures/files/privatekey.p12 and /dev/null differ diff --git a/spec/fixtures/files/sample.txt b/spec/fixtures/files/sample.txt deleted file mode 100644 index fe9a30d95..000000000 --- a/spec/fixtures/files/sample.txt +++ /dev/null @@ -1,33 +0,0 @@ -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus posuere urna bibendum diam vulputate fringilla. Fusce elementum fermentum justo id aliquam. Integer vel felis ut arcu elementum lacinia. Duis congue urna eget nisl dapibus tristique molestie turpis sollicitudin. Vivamus in justo quam. Proin condimentum mollis tortor at molestie. Cras luctus, nunc a convallis iaculis, est risus consequat nisi, sit amet sollicitudin metus mi a urna. Aliquam accumsan, massa quis condimentum varius, sapien massa faucibus nibh, a dignissim magna nibh a lacus. Nunc aliquet, nunc ac pulvinar consectetur, sapien lacus hendrerit enim, nec dapibus lorem mi eget risus. Praesent vitae justo eget dolor blandit ullamcorper. Duis id nibh vitae sem aliquam vehicula et ac massa. In neque elit, molestie pulvinar viverra at, vestibulum quis velit. - -Mauris sit amet placerat enim. Duis vel tellus ac dui auctor tincidunt id nec augue. Donec ut blandit turpis. Mauris dictum urna id urna vestibulum accumsan. Maecenas sagittis urna vitae erat facilisis gravida. Phasellus tellus augue, commodo ut iaculis vitae, interdum ut dolor. Proin at dictum lorem. Quisque pellentesque neque ante, vitae rutrum elit. Pellentesque sit amet erat orci. Praesent justo diam, tristique eu tempus ut, vestibulum eget dui. Maecenas et elementum justo. Cras a augue a elit porttitor placerat eget ut magna. - -Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam adipiscing tellus in arcu bibendum volutpat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed laoreet faucibus tristique. Duis metus eros, molestie eget dignissim in, imperdiet fermentum nulla. Vestibulum laoreet lorem eu justo vestibulum lobortis. Praesent pharetra leo vel mauris rhoncus commodo sollicitudin ante auctor. Ut sagittis, tortor nec placerat rutrum, neque ipsum cursus nisl, ut lacinia magna risus ac risus. Sed volutpat commodo orci, sodales fermentum dui accumsan eu. Donec egestas ullamcorper elit at condimentum. In euismod sodales posuere. Nullam lacinia tempus molestie. Etiam vitae ullamcorper dui. Fusce congue suscipit arcu, at consectetur diam gravida id. Quisque augue urna, commodo eleifend volutpat vitae, tincidunt ac ligula. Curabitur eget orci nisl, vel placerat ipsum. - -Curabitur rutrum euismod nisi, consectetur varius tortor condimentum non. Pellentesque rhoncus nisi eu purus ultricies suscipit. Morbi ante nisi, varius nec molestie bibendum, pharetra quis enim. Proin eget nunc ante. Cras aliquam enim vel nunc laoreet ut facilisis nunc interdum. Fusce libero ipsum, posuere eget blandit quis, bibendum vitae quam. Integer dictum faucibus lacus eget facilisis. Duis adipiscing tortor magna, vel tincidunt risus. In non augue eu nisl sodales cursus vel eget nisi. Maecenas dignissim lectus elementum eros fermentum gravida et eget leo. Aenean quis cursus arcu. Mauris posuere purus non diam mattis vehicula. Integer nec orci velit. - -Integer ac justo ac magna adipiscing condimentum vitae tincidunt dui. Morbi augue arcu, blandit nec interdum sit amet, condimentum vel nisl. Nulla vehicula tincidunt laoreet. Aliquam ornare elementum urna, sed vehicula magna porta id. Vestibulum dictum ultrices tortor sit amet tincidunt. Praesent bibendum, metus vel volutpat interdum, nisl nunc cursus libero, vel congue ligula mi et felis. Nulla mollis elementum nulla, in accumsan risus consequat at. Suspendisse potenti. Vestibulum enim lorem, dignissim ut porta vestibulum, porta eget mi. Fusce a elit ac dui sodales gravida. Pellentesque sed elit at dui dapibus mattis a non arcu. - -Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In nec posuere augue. Praesent non suscipit arcu. Sed nibh risus, lacinia ut molestie vitae, tristique eget turpis. Sed pretium volutpat arcu, non rutrum leo volutpat sed. Maecenas quis neque nisl, sit amet ornare dolor. Nulla pharetra pulvinar tellus sed eleifend. Aliquam eget mattis nulla. Nulla dictum vehicula velit, non facilisis lorem volutpat id. Fusce scelerisque sem vitae purus dapibus lobortis. Mauris ac turpis nec nibh consequat porttitor. Ut sit amet iaculis lorem. Vivamus blandit erat ac odio venenatis fringilla a sit amet ante. Quisque ut urna sed augue laoreet sagittis. - -Integer nisl urna, bibendum id lobortis in, tempor non velit. Fusce sed volutpat quam. Suspendisse eu placerat purus. Maecenas quis feugiat lectus. Sed accumsan malesuada dui, a pretium purus facilisis quis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc ac purus id lacus malesuada placerat et in nunc. Ut imperdiet tincidunt est, at consectetur augue egestas hendrerit. Pellentesque eu erat a dui dignissim adipiscing. Integer quis leo non felis placerat eleifend. Fusce luctus mi a lorem mattis eget accumsan libero posuere. Sed pellentesque, odio id pharetra tempus, enim quam placerat metus, auctor aliquam elit mi facilisis quam. Nam at velit et eros rhoncus accumsan. - -Donec tellus diam, fringilla ac viverra fringilla, rhoncus sit amet purus. Cras et ligula sed nibh tempor gravida. Aliquam id tempus mauris. Ut convallis quam sed arcu varius eget mattis magna tincidunt. Aliquam et suscipit est. Sed metus augue, tristique sed accumsan eget, euismod et augue. Nam augue sapien, placerat vel facilisis eu, tempor id risus. Aliquam mollis egestas mi. Fusce scelerisque convallis mauris quis blandit. Mauris nec ante id lacus sagittis tincidunt ornare vehicula dui. Curabitur tristique mattis nunc, vel cursus libero viverra feugiat. Suspendisse at sapien velit, a lacinia dolor. Vivamus in est non odio feugiat lacinia sodales ut magna. - -Donec interdum ligula id ipsum dapibus consectetur. Pellentesque vitae posuere ligula. Morbi rhoncus bibendum eleifend. Suspendisse fringilla nunc at elit malesuada vitae ullamcorper lorem laoreet. Suspendisse a ante at ipsum iaculis cursus. Duis accumsan ligula quis nibh luctus pretium. Duis ultrices scelerisque dolor, et vulputate lectus commodo ut. - -Vestibulum ac tincidunt lorem. Vestibulum lorem massa, dictum a scelerisque ut, convallis vitae eros. Morbi ipsum nisl, lacinia non tempor nec, lobortis id diam. Fusce quis magna nunc. Proin ultricies congue justo sed mattis. Vestibulum sit amet arcu tellus. Quisque ultricies porta massa iaculis vehicula. Vestibulum sollicitudin tempor urna vel sodales. Pellentesque ultricies tellus vel metus porta nec iaculis sapien mollis. Maecenas ullamcorper, metus eget imperdiet sagittis, odio orci dapibus neque, in vulputate nunc nibh non libero. Donec velit quam, lobortis quis tempus a, hendrerit id arcu. - -Donec nec ante at tortor dignissim mattis. Curabitur vehicula tincidunt magna id sagittis. Proin euismod dignissim porta. Curabitur non turpis purus, in rutrum nulla. Nam turpis nulla, tincidunt et hendrerit non, posuere nec enim. Curabitur leo enim, lobortis ut placerat id, condimentum nec massa. In bibendum, lectus sit amet molestie commodo, felis massa rutrum nisl, ac fermentum ligula lacus in ipsum. - -Pellentesque mi nulla, scelerisque vitae tempus id, consequat a augue. Quisque vel nisi sit amet ipsum faucibus laoreet sed vitae lorem. Praesent nunc tortor, volutpat ac commodo non, pharetra sed neque. Curabitur nec felis at mi blandit aliquet eu ornare justo. Mauris dignissim purus quis nisl porttitor interdum. Aenean id ipsum enim, blandit commodo justo. Quisque facilisis elit quis velit commodo scelerisque lobortis sapien condimentum. Cras sit amet porttitor velit. Praesent nec tempor arcu. - -Donec varius mi adipiscing elit semper vel feugiat ipsum dictum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec non quam nisl, ac mattis justo. Vestibulum sed massa eget velit tristique auctor ut ac sapien. Curabitur aliquet ligula eget dui ornare at scelerisque mauris faucibus. Vestibulum id mauris metus, sed vestibulum nibh. Nulla egestas dictum blandit. Mauris vitae nibh at dui mollis lobortis. Phasellus sem leo, euismod at fringilla quis, mollis in nibh. Aenean vel lacus et elit pharetra elementum. Aliquam at ligula id sem bibendum volutpat. Pellentesque quis elit a massa dapibus viverra ut et lorem. Donec nulla eros, iaculis nec commodo vel, suscipit sit amet tortor. Integer tempor, elit at viverra imperdiet, velit sapien laoreet nunc, id laoreet ligula risus vel risus. Nullam sed tortor metus. - -In nunc orci, tempor vulputate pretium vel, suscipit quis risus. Suspendisse accumsan facilisis felis eget posuere. Donec a faucibus felis. Proin nibh erat, sollicitudin quis vestibulum id, tincidunt quis justo. In sed purus eu nisi dignissim condimentum. Sed mattis dapibus lorem id vulputate. Suspendisse nec elit a augue interdum consequat quis id magna. In eleifend aliquam tempor. In in lacus augue. - -Ut euismod sollicitudin lorem, id aliquam magna dictum sed. Nunc fringilla lobortis nisi sed consectetur. Nulla facilisi. Aenean nec lobortis augue. Curabitur ullamcorper dapibus libero, vel pellentesque arcu sollicitudin non. Praesent varius, turpis nec sollicitudin bibendum, elit tortor rhoncus lacus, gravida luctus leo nisi in felis. Ut metus eros, molestie non faucibus vel, condimentum ac elit. - -Suspendisse nisl justo, lacinia sit amet interdum nec, tincidunt placerat urna. Suspendisse potenti. In et odio sed purus malesuada cursus sed nec lectus. Cras commodo, orci sit amet hendrerit iaculis, nunc urna facilisis tellus, vel laoreet odio nulla quis nibh. Maecenas ut justo ut lacus posuere sodales. Vestibulum facilisis fringilla diam at volutpat. Proin a hendrerit urna. Aenean placerat pulvinar arcu, sit amet lobortis neque eleifend in. Aenean risus nulla, facilisis ut tincidunt vitae, fringilla at ligula. Praesent eleifend est at sem lacinia auctor. Nulla ornare nunc in erat laoreet blandit. - -Suspendisse pharetra leo ac est porta consequat. Nunc sem nibh, gravida vel aliquam a, ornare in tortor. Nulla vel sapien et felis placerat pellentesque id scelerisque nisl. Praesent et posuere. \ No newline at end of file diff --git a/spec/fixtures/files/secret.pem b/spec/fixtures/files/secret.pem deleted file mode 100644 index 28b8d1205..000000000 --- a/spec/fixtures/files/secret.pem +++ /dev/null @@ -1,19 +0,0 @@ -Bag Attributes - friendlyName: privatekey - localKeyID: 54 69 6D 65 20 31 33 35 31 38 38 38 31 37 38 36 39 36 -Key Attributes: ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDYDyPb3GhyFx5i/wxS/jFsO6wSLys1ehAk6QZoBXGlg7ETVrIJ -HYh9gXQUno4tJiQoaO8wOvleIRrqI0LkiftCXKWVSrzOiV+O9GkKx1byw1yAIZus -QdwMT7X0O9hrZLZwhICWC9s6cGhnlCVxLIP/+JkVK7hxEq/LxoSszNV77wIDAQAB -AoGAa2G69L7quil7VMBmI6lqbtyJfNAsrXtpIq8eG/z4qsZ076ObAKTI/XeldcoH -57CZL+xXVKU64umZMt0rleJuGXdlauEUbsSx+biGewRfGTgC4rUSjmE539rBvmRW -gaKliorepPMp/+B9CcG/2YfDPRvG/2cgTXJHVvneo+xHL4ECQQD2Jx5Mvs8z7s2E -jY1mkpRKqh4Z7rlitkAwe1NXcVC8hz5ASu7ORyTl8EPpKAfRMYl1ofK/ozT1URXf -kL5nChPfAkEA4LPUJ6cqrY4xrrtdGaM4iGIxzen5aZlKz/YNlq5LuQKbnLLHMuXU -ohp/ynpqNWbcAFbmtGSMayxGKW5+fJgZ8QJAUBOZv82zCmn9YcnK3juBEmkVMcp/ -dKVlbGAyVJgAc9RrY+78kQ6D6mmnLgpfwKYk2ae9mKo3aDbgrsIfrtWQcQJAfFGi -CEpJp3orbLQG319ZsMM7MOTJdC42oPZOMFbAWFzkAX88DKHx0bn9h+XQizkccSej -Ppz+v3DgZJ3YZ1Cz0QJBALiqIokZ+oa3AY6oT0aiec6txrGvNPPbwOsrBpFqGNbu -AByzWWBoBi40eKMSIR30LqN9H8YnJ91Aoy1njGYyQaw= ------END RSA PRIVATE KEY----- diff --git a/spec/fixtures/files/test.blah b/spec/fixtures/files/test.blah new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/spec/fixtures/files/test.blah @@ -0,0 +1 @@ +test diff --git a/spec/fixtures/files/test.txt b/spec/fixtures/files/test.txt new file mode 100644 index 000000000..802992c42 --- /dev/null +++ b/spec/fixtures/files/test.txt @@ -0,0 +1 @@ +Hello world diff --git a/spec/fixtures/files/test_api.json b/spec/fixtures/files/test_api.json new file mode 100644 index 000000000..3447ac5be --- /dev/null +++ b/spec/fixtures/files/test_api.json @@ -0,0 +1,440 @@ +{ + "kind": "discovery#describeItem", + "name": "test", + "version": "v1", + "id": "test:v1", + "description": "Discovery doc API used for testing the code generator", + "basePath": "/test/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "test/v1/", + "rpcPath": "/rpc", + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/test": { + "description": "View and manage things" + }, + "https://www.googleapis.com/auth/test.readonly": { + "description": "View things" + } + } + } + }, + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json" + ], + "location": "query" + }, + "fields": { + "type": "string", + "description": "Selector specifying which fields to include in a partial response.", + "location": "query" + }, + "key": { + "type": "string", + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query" + }, + "oauth_token": { + "type": "string", + "description": "OAuth 2.0 token for the current user.", + "location": "query" + }, + "prettyPrint": { + "type": "boolean", + "description": "Returns response with indentations and line breaks.", + "default": "true", + "location": "query" + }, + "quotaUser": { + "type": "string", + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.", + "location": "query" + }, + "userIp": { + "type": "string", + "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.", + "location": "query" + } + }, + "schemas": { + "Thing": { + "id": "Thing", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "test#thing" + }, + "name": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "hat": { + "$ref": "Hat" + }, + "properties": { + "$ref": "HashLikeThing" + }, + "photo": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "hash": { + "type": "string" + }, + "hashAlgorithm": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + } + } + }, + "Hat": { + "type": "object", + "variant": { + "discriminant": "type", + "map": [ + { + "type_value": "topHat", + "$ref": "TopHat" + }, + { + "type_value": "baseballHat", + "$ref": "BaseballHat" + } + ] + } + }, + "TopHat": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "height": { + "type": "number" + } + } + }, + "BaseballHat": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "color": { + "type": "string" + } + } + }, + "HashLikeThing": { + "id": "HashLikeThing", + "type": "object", + "additionalProperties": { + "type": "string", + "description": "A mapping from export format to URL" + } + }, + "TestThing": { + "id": "TestThing", + "type": "object", + "properties" :{} + }, + "TestAnotherThing": { + "id": "TestAnotherThing", + "type": "object", + "properties" :{} + }, + "ThingList": { + "id": "ThingList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The actual list of files.", + "items": { + "$ref": "Thing" + } + }, + "kind": { + "type": "string", + "default": "test#thinglist" + } + } + }, + "QueryResults": { + "id": "QueryResults", + "type": "object", + "properties": { + "rows": { + "$ref": "Rows" + } + } + }, + "Rows": { + "id": "QueryResults", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + } + } + } + }, + "methods": { + "query": { + "path": "query", + "id": "test.query", + "httpMethod": "GET", + "response": { + "$ref": "QueryResults" + //"$ref": "Rows" TODO: Support naked collections as a return value + }, + "parameters": { + "s": { + "type": "string", + "location": "query", + "required": false, + "repeated": false + }, + "i": { + "type": "integer", + "location": "query", + "required": false, + "repeated": false, + "minimum": "0", + "maximum": "4294967295", + "default": "20" + }, + "n": { + "type": "number", + "location": "query", + "required": false, + "repeated": false + }, + "b": { + "type": "boolean", + "location": "query", + "required": false, + "repeated": false + }, + "a": { + "type": "any", + "location": "query", + "required": false, + "repeated": false + }, + "e": { + "type": "string", + "location": "query", + "required": false, + "repeated": false, + "enum": [ + "foo", + "bar" + ] + }, + "er": { + "type": "string", + "location": "query", + "required": false, + "repeated": true, + "enum": [ + "one", + "two", + "three" + ] + }, + "sr": { + "type": "string", + "location": "query", + "required": false, + "repeated": true, + "pattern": "[a-z]+" + }, + "do": { + "type": "string", + "location": "query", + "required": false + } + } + } + }, + "resources": { + "things": { + "resources": { + "subthings": { + "methods": { + "list": { + "path": "things", + "id": "test.things.subthings.list", + "httpMethod": "GET", + "parameters": { + "max-results": { + "type": "number", + "location": "query", + "required": false + } + }, + "response": { + "$ref": "ThingList" + } + } + } + } + }, + "methods": { + "list": { + "path": "things", + "id": "test.things.list", + "httpMethod": "GET", + "parameters": { + "max-results": { + "type": "number", + "location": "query", + "required": false + } + }, + "response": { + "$ref": "ThingList" + } + }, + "delete": { + "path": "things/{id}", + "id": "test.things.delete", + "httpMethod": "DELETE", + "description": "Delete things", + "parameters": { + "id": { + "location": "path", + "required": true, + "description": "ID of the thing to delete", + "type": "string" + } + }, + "parameterOrder": [ + "id" + ] + }, + "get": { + "path": "things/{id}", + "id": "test.things.get", + "httpMethod": "GET", + "description": "Get things", + "supportsMediaDownload": true, + "parameters": { + "id": { + "location": "path", + "required": true, + "description": "ID of the thing to get", + "type": "string" + } + }, + "supportsMediaDownload": true, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Thing" + } + }, + "create": { + "path": "things", + "id": "test.things.create", + "httpMethod": "POST", + "description": "Create things", + "request": { + "$ref": "Thing" + }, + "response": { + "$ref": "Thing" + }, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "1KB", + "protocols": { + "simple": { + "multipart": true, + "path": "upload/things/{id}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/things/{id}" + } + } + } + }, + "update": { + "path": "things/{id}", + "id": "test.things.update", + "httpMethod": "PUT", + "description": "Update things", + "parameters": { + "id": { + "location": "path", + "description": "ID of the thing to update", + "type": "string" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Thing" + }, + "response": { + "$ref": "Thing" + }, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "1KB", + "protocols": { + "simple": { + "multipart": true, + "path": "upload/things/{id}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/things/{id}" + } + } + } + } + } + } + } +} diff --git a/spec/fixtures/files/zoo.json b/spec/fixtures/files/zoo.json deleted file mode 100644 index 4abd957c9..000000000 --- a/spec/fixtures/files/zoo.json +++ /dev/null @@ -1,584 +0,0 @@ -{ - "kind": "discovery#describeItem", - "name": "zoo", - "version": "v1", - "description": "Zoo API used for testing", - "basePath": "/zoo/", - "rootUrl": "https://www.googleapis.com/", - "servicePath": "zoo/v1/", - "rpcPath": "/rpc", - "parameters": { - "alt": { - "type": "string", - "description": "Data format for the response.", - "default": "json", - "enum": [ - "json" - ], - "enumDescriptions": [ - "Responses with Content-Type of application/json" - ], - "location": "query" - }, - "fields": { - "type": "string", - "description": "Selector specifying which fields to include in a partial response.", - "location": "query" - }, - "key": { - "type": "string", - "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", - "location": "query" - }, - "oauth_token": { - "type": "string", - "description": "OAuth 2.0 token for the current user.", - "location": "query" - }, - "prettyPrint": { - "type": "boolean", - "description": "Returns response with indentations and line breaks.", - "default": "true", - "location": "query" - }, - "quotaUser": { - "type": "string", - "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.", - "location": "query" - }, - "userIp": { - "type": "string", - "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.", - "location": "query" - } - }, - "features": [ - "dataWrapper" - ], - "schemas": { - "Animal": { - "id": "Animal", - "type": "object", - "properties": { - "etag": { - "type": "string" - }, - "kind": { - "type": "string", - "default": "zoo#animal" - }, - "name": { - "type": "string" - }, - "photo": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "hash": { - "type": "string" - }, - "hashAlgorithm": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - } - } - } - }, - "Animal2": { - "id": "Animal2", - "type": "object", - "properties": { - "kind": { - "type": "string", - "default": "zoo#animal" - }, - "name": { - "type": "string" - } - } - }, - "AnimalFeed": { - "id": "AnimalFeed", - "type": "object", - "properties": { - "etag": { - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "Animal" - } - }, - "kind": { - "type": "string", - "default": "zoo#animalFeed" - } - } - }, - "AnimalMap": { - "id": "AnimalMap", - "type": "object", - "properties": { - "etag": { - "type": "string" - }, - "animals": { - "type": "object", - "description": "Map of animal id to animal data", - "additionalProperties": { - "$ref": "Animal" - } - }, - "kind": { - "type": "string", - "default": "zoo#animalMap" - } - } - }, - "LoadFeed": { - "id": "LoadFeed", - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "doubleVal": { - "type": "number" - }, - "nullVal": { - "type": "null" - }, - "booleanVal": { - "type": "boolean", - "description": "True or False." - }, - "anyVal": { - "type": "any", - "description": "Anything will do." - }, - "enumVal": { - "type": "string" - }, - "kind": { - "type": "string", - "default": "zoo#loadValue" - }, - "longVal": { - "type": "integer" - }, - "stringVal": { - "type": "string" - } - } - } - }, - "kind": { - "type": "string", - "default": "zoo#loadFeed" - } - } - } - }, - "methods": { - "query": { - "path": "query", - "id": "bigquery.query", - "httpMethod": "GET", - "parameters": { - "q": { - "type": "string", - "location": "query", - "required": false, - "repeated": false - }, - "i": { - "type": "integer", - "location": "query", - "required": false, - "repeated": false, - "minimum": "0", - "maximum": "4294967295", - "default": "20" - }, - "n": { - "type": "number", - "location": "query", - "required": false, - "repeated": false - }, - "b": { - "type": "boolean", - "location": "query", - "required": false, - "repeated": false - }, - "a": { - "type": "any", - "location": "query", - "required": false, - "repeated": false - }, - "o": { - "type": "object", - "location": "query", - "required": false, - "repeated": false - }, - "e": { - "type": "string", - "location": "query", - "required": false, - "repeated": false, - "enum": [ - "foo", - "bar" - ] - }, - "er": { - "type": "string", - "location": "query", - "required": false, - "repeated": true, - "enum": [ - "one", - "two", - "three" - ] - }, - "rr": { - "type": "string", - "location": "query", - "required": false, - "repeated": true, - "pattern": "[a-z]+" - } - } - } - }, - "resources": { - "my": { - "resources": { - "favorites": { - "methods": { - "list": { - "path": "favorites/@me/mine", - "id": "zoo.animals.mine", - "httpMethod": "GET", - "parameters": { - "max-results": { - "location": "query", - "required": false - } - } - } - } - } - } - }, - "global": { - "resources": { - "print": { - "methods": { - "assert": { - "path": "global/print/assert", - "id": "zoo.animals.mine", - "httpMethod": "GET", - "parameters": { - "max-results": { - "location": "query", - "required": false - } - } - } - } - } - } - }, - "animals": { - "methods": { - "crossbreed": { - "path": "animals/crossbreed", - "id": "zoo.animals.crossbreed", - "httpMethod": "POST", - "description": "Cross-breed animals", - "response": { - "$ref": "Animal2" - }, - "mediaUpload": { - "accept": [ - "image/png" - ], - "protocols": { - "simple": { - "multipart": true, - "path": "upload/activities/{userId}/@self" - }, - "resumable": { - "multipart": true, - "path": "upload/activities/{userId}/@self" - } - } - } - }, - "delete": { - "path": "animals/{name}", - "id": "zoo.animals.delete", - "httpMethod": "DELETE", - "description": "Delete animals", - "parameters": { - "name": { - "location": "path", - "required": true, - "description": "Name of the animal to delete", - "type": "string" - } - }, - "parameterOrder": [ - "name" - ] - }, - "get": { - "path": "animals/{name}", - "id": "zoo.animals.get", - "httpMethod": "GET", - "description": "Get animals", - "supportsMediaDownload": true, - "parameters": { - "name": { - "location": "path", - "required": true, - "description": "Name of the animal to load", - "type": "string" - }, - "projection": { - "location": "query", - "type": "string", - "enum": [ - "full" - ], - "enumDescriptions": [ - "Include everything" - ] - } - }, - "parameterOrder": [ - "name" - ], - "response": { - "$ref": "Animal" - } - }, - "getmedia": { - "path": "animals/{name}", - "id": "zoo.animals.get", - "httpMethod": "GET", - "description": "Get animals", - "parameters": { - "name": { - "location": "path", - "required": true, - "description": "Name of the animal to load", - "type": "string" - }, - "projection": { - "location": "query", - "type": "string", - "enum": [ - "full" - ], - "enumDescriptions": [ - "Include everything" - ] - } - }, - "parameterOrder": [ - "name" - ] - }, - "insert": { - "path": "animals", - "id": "zoo.animals.insert", - "httpMethod": "POST", - "description": "Insert animals", - "request": { - "$ref": "Animal" - }, - "response": { - "$ref": "Animal" - }, - "mediaUpload": { - "accept": [ - "image/png" - ], - "maxSize": "1KB", - "protocols": { - "simple": { - "multipart": true, - "path": "upload/activities/{userId}/@self" - }, - "resumable": { - "multipart": true, - "path": "upload/activities/{userId}/@self" - } - } - } - }, - "list": { - "path": "animals", - "id": "zoo.animals.list", - "httpMethod": "GET", - "description": "List animals", - "parameters": { - "max-results": { - "location": "query", - "description": "Maximum number of results to return", - "type": "integer", - "minimum": "0" - }, - "name": { - "location": "query", - "description": "Restrict result to animals with this name", - "type": "string" - }, - "projection": { - "location": "query", - "type": "string", - "enum": [ - "full" - ], - "enumDescriptions": [ - "Include absolutely everything" - ] - }, - "start-token": { - "location": "query", - "description": "Pagination token", - "type": "string" - } - }, - "response": { - "$ref": "AnimalFeed" - } - }, - "patch": { - "path": "animals/{name}", - "id": "zoo.animals.patch", - "httpMethod": "PATCH", - "description": "Update animals", - "parameters": { - "name": { - "location": "path", - "required": true, - "description": "Name of the animal to update", - "type": "string" - } - }, - "parameterOrder": [ - "name" - ], - "request": { - "$ref": "Animal" - }, - "response": { - "$ref": "Animal" - } - }, - "update": { - "path": "animals/{name}", - "id": "zoo.animals.update", - "httpMethod": "PUT", - "description": "Update animals", - "parameters": { - "name": { - "location": "path", - "description": "Name of the animal to update", - "type": "string" - } - }, - "parameterOrder": [ - "name" - ], - "request": { - "$ref": "Animal" - }, - "response": { - "$ref": "Animal" - } - } - } - }, - "load": { - "methods": { - "list": { - "path": "load", - "id": "zoo.load.list", - "httpMethod": "GET", - "response": { - "$ref": "LoadFeed" - } - } - } - }, - "loadNoTemplate": { - "methods": { - "list": { - "path": "loadNoTemplate", - "id": "zoo.loadNoTemplate.list", - "httpMethod": "GET" - } - } - }, - "scopedAnimals": { - "methods": { - "list": { - "path": "scopedanimals", - "id": "zoo.scopedAnimals.list", - "httpMethod": "GET", - "description": "List animals (scoped)", - "parameters": { - "max-results": { - "location": "query", - "description": "Maximum number of results to return", - "type": "integer", - "minimum": "0" - }, - "name": { - "location": "query", - "description": "Restrict result to animals with this name", - "type": "string" - }, - "projection": { - "location": "query", - "type": "string", - "enum": [ - "full" - ], - "enumDescriptions": [ - "Include absolutely everything" - ] - }, - "start-token": { - "location": "query", - "description": "Pagination token", - "type": "string" - } - }, - "response": { - "$ref": "AnimalFeed" - } - } - } - } - } -} \ No newline at end of file diff --git a/spec/google/api_client/auth/storage_spec.rb b/spec/google/api_client/auth/storage_spec.rb index d8e5b960c..bc941fc70 100644 --- a/spec/google/api_client/auth/storage_spec.rb +++ b/spec/google/api_client/auth/storage_spec.rb @@ -1,10 +1,8 @@ require 'spec_helper' -require 'google/api_client' -require 'google/api_client/version' +require 'google/api_client/auth/storage' describe Google::APIClient::Storage do - let(:client) { Google::APIClient.new(:application_name => 'API Client Tests') } let(:root_path) { File.expand_path(File.join(__FILE__, '..', '..', '..')) } let(:json_file) { File.expand_path(File.join(root_path, 'fixtures', 'files', 'auth_stored_credentials.json')) } diff --git a/spec/google/api_client/auth/storages/file_store_spec.rb b/spec/google/api_client/auth/storages/file_store_spec.rb index 2963b1d45..83199774b 100644 --- a/spec/google/api_client/auth/storages/file_store_spec.rb +++ b/spec/google/api_client/auth/storages/file_store_spec.rb @@ -1,7 +1,6 @@ require 'spec_helper' -require 'google/api_client' -require 'google/api_client/version' +require 'google/api_client/auth/storages/file_store' describe Google::APIClient::FileStore do let(:root_path) { File.expand_path(File.join(__FILE__, '..','..','..', '..','..')) } diff --git a/spec/google/api_client/auth/storages/redis_store_spec.rb b/spec/google/api_client/auth/storages/redis_store_spec.rb index de5abc4a1..c36687964 100644 --- a/spec/google/api_client/auth/storages/redis_store_spec.rb +++ b/spec/google/api_client/auth/storages/redis_store_spec.rb @@ -1,8 +1,6 @@ require 'spec_helper' -require 'google/api_client' -require 'google/api_client/version' - +require 'google/api_client/auth/storages/redis_store' describe Google::APIClient::RedisStore do let(:root_path) { File.expand_path(File.join(__FILE__, '..', '..', '..', '..', '..')) } diff --git a/spec/google/api_client/batch_spec.rb b/spec/google/api_client/batch_spec.rb deleted file mode 100644 index 3aa95a88b..000000000 --- a/spec/google/api_client/batch_spec.rb +++ /dev/null @@ -1,248 +0,0 @@ -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' -require 'google/api_client' - -RSpec.describe Google::APIClient::BatchRequest do - CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) - - after do - # Reset client to not-quite-pristine state - CLIENT.key = nil - CLIENT.user_ip = nil - end - - it 'should raise an error if making an empty batch request' do - batch = Google::APIClient::BatchRequest.new - - expect(lambda do - CLIENT.execute(batch) - end).to raise_error(Google::APIClient::BatchError) - end - - it 'should allow query parameters in batch requests' do - batch = Google::APIClient::BatchRequest.new - batch.add(:uri => 'https://example.com', :parameters => { - 'a' => '12345' - }) - method, uri, headers, body = batch.to_http_request - expect(body.read).to include("/?a=12345") - end - - describe 'with the discovery API' do - before do - CLIENT.authorization = nil - @discovery = CLIENT.discovered_api('discovery', 'v1') - end - - describe 'with two valid requests' do - before do - @call1 = { - :api_method => @discovery.apis.get_rest, - :parameters => { - 'api' => 'plus', - 'version' => 'v1' - } - } - - @call2 = { - :api_method => @discovery.apis.get_rest, - :parameters => { - 'api' => 'discovery', - 'version' => 'v1' - } - } - end - - it 'should execute both when using a global callback' do - block_called = 0 - ids = ['first_call', 'second_call'] - expected_ids = ids.clone - batch = Google::APIClient::BatchRequest.new do |result| - block_called += 1 - expect(result.status).to eq(200) - expect(expected_ids).to include(result.response.call_id) - expected_ids.delete(result.response.call_id) - end - - batch.add(@call1, ids[0]) - batch.add(@call2, ids[1]) - - CLIENT.execute(batch) - expect(block_called).to eq(2) - end - - it 'should execute both when using individual callbacks' do - batch = Google::APIClient::BatchRequest.new - - call1_returned, call2_returned = false, false - batch.add(@call1) do |result| - call1_returned = true - expect(result.status).to eq(200) - end - batch.add(@call2) do |result| - call2_returned = true - expect(result.status).to eq(200) - end - - CLIENT.execute(batch) - expect(call1_returned).to be_truthy - expect(call2_returned).to be_truthy - end - - it 'should raise an error if using the same call ID more than once' do - batch = Google::APIClient::BatchRequest.new - - expect(lambda do - batch.add(@call1, 'my_id') - batch.add(@call2, 'my_id') - end).to raise_error(Google::APIClient::BatchError) - end - end - - describe 'with a valid request and an invalid one' do - before do - @call1 = { - :api_method => @discovery.apis.get_rest, - :parameters => { - 'api' => 'plus', - 'version' => 'v1' - } - } - - @call2 = { - :api_method => @discovery.apis.get_rest, - :parameters => { - 'api' => 0, - 'version' => 1 - } - } - end - - it 'should execute both when using a global callback' do - block_called = 0 - ids = ['first_call', 'second_call'] - expected_ids = ids.clone - batch = Google::APIClient::BatchRequest.new do |result| - block_called += 1 - expect(expected_ids).to include(result.response.call_id) - expected_ids.delete(result.response.call_id) - if result.response.call_id == ids[0] - expect(result.status).to eq(200) - else - expect(result.status).to be >= 400 - expect(result.status).to be < 500 - end - end - - batch.add(@call1, ids[0]) - batch.add(@call2, ids[1]) - - CLIENT.execute(batch) - expect(block_called).to eq(2) - end - - it 'should execute both when using individual callbacks' do - batch = Google::APIClient::BatchRequest.new - - call1_returned, call2_returned = false, false - batch.add(@call1) do |result| - call1_returned = true - expect(result.status).to eq(200) - end - batch.add(@call2) do |result| - call2_returned = true - expect(result.status).to be >= 400 - expect(result.status).to be < 500 - end - - CLIENT.execute(batch) - expect(call1_returned).to be_truthy - expect(call2_returned).to be_truthy - end - end - end - - describe 'with the calendar API' do - before do - CLIENT.authorization = nil - @calendar = CLIENT.discovered_api('calendar', 'v3') - end - - describe 'with two valid requests' do - before do - event1 = { - 'summary' => 'Appointment 1', - 'location' => 'Somewhere', - 'start' => { - 'dateTime' => '2011-01-01T10:00:00.000-07:00' - }, - 'end' => { - 'dateTime' => '2011-01-01T10:25:00.000-07:00' - }, - 'attendees' => [ - { - 'email' => 'myemail@mydomain.tld' - } - ] - } - - event2 = { - 'summary' => 'Appointment 2', - 'location' => 'Somewhere as well', - 'start' => { - 'dateTime' => '2011-01-02T10:00:00.000-07:00' - }, - 'end' => { - 'dateTime' => '2011-01-02T10:25:00.000-07:00' - }, - 'attendees' => [ - { - 'email' => 'myemail@mydomain.tld' - } - ] - } - - @call1 = { - :api_method => @calendar.events.insert, - :parameters => {'calendarId' => 'myemail@mydomain.tld'}, - :body => MultiJson.dump(event1), - :headers => {'Content-Type' => 'application/json'} - } - - @call2 = { - :api_method => @calendar.events.insert, - :parameters => {'calendarId' => 'myemail@mydomain.tld'}, - :body => MultiJson.dump(event2), - :headers => {'Content-Type' => 'application/json'} - } - end - - it 'should convert to a correct HTTP request' do - batch = Google::APIClient::BatchRequest.new { |result| } - batch.add(@call1, '1').add(@call2, '2') - request = batch.to_env(CLIENT.connection) - boundary = Google::APIClient::BatchRequest::BATCH_BOUNDARY - expect(request[:method].to_s.downcase).to eq('post') - expect(request[:url].to_s).to eq('https://www.googleapis.com/batch') - expect(request[:request_headers]['Content-Type']).to eq("multipart/mixed;boundary=#{boundary}") - body = request[:body].read - expect(body).to include(@call1[:body]) - expect(body).to include(@call2[:body]) - end - end - - end -end diff --git a/spec/google/api_client/discovery_spec.rb b/spec/google/api_client/discovery_spec.rb deleted file mode 100644 index 637d25e9f..000000000 --- a/spec/google/api_client/discovery_spec.rb +++ /dev/null @@ -1,708 +0,0 @@ -# encoding:utf-8 - -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -require 'spec_helper' - -require 'faraday' -require 'multi_json' -require 'compat/multi_json' -require 'signet/oauth_1/client' -require 'google/api_client' - -fixtures_path = File.expand_path('../../../fixtures', __FILE__) - -RSpec.describe Google::APIClient do - include ConnectionHelpers - CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) - - after do - # Reset client to not-quite-pristine state - CLIENT.key = nil - CLIENT.user_ip = nil - end - - it 'should raise a type error for bogus authorization' do - expect(lambda do - Google::APIClient.new(:application_name => 'API Client Tests', :authorization => 42) - end).to raise_error(TypeError) - end - - it 'should not be able to retrieve the discovery document for a bogus API' do - expect(lambda do - CLIENT.discovery_document('bogus') - end).to raise_error(Google::APIClient::TransmissionError) - expect(lambda do - CLIENT.discovered_api('bogus') - end).to raise_error(Google::APIClient::TransmissionError) - end - - it 'should raise an error for bogus services' do - expect(lambda do - CLIENT.discovered_api(42) - end).to raise_error(TypeError) - end - - it 'should raise an error for bogus services' do - expect(lambda do - CLIENT.preferred_version(42) - end).to raise_error(TypeError) - end - - it 'should raise an error for bogus methods' do - expect(lambda do - CLIENT.execute(42) - end).to raise_error(TypeError) - end - - it 'should not return a preferred version for bogus service names' do - expect(CLIENT.preferred_version('bogus')).to eq(nil) - end - - describe 'with zoo API' do - it 'should return API instance registered from file' do - zoo_json = File.join(fixtures_path, 'files', 'zoo.json') - contents = File.open(zoo_json, 'rb') { |io| io.read } - api = CLIENT.register_discovery_document('zoo', 'v1', contents) - expect(api).to be_kind_of(Google::APIClient::API) - end - end - - describe 'with the prediction API' do - before do - CLIENT.authorization = nil - # The prediction API no longer exposes a v1, so we have to be - # careful about looking up the wrong API version. - @prediction = CLIENT.discovered_api('prediction', 'v1.2') - end - - it 'should correctly determine the discovery URI' do - expect(CLIENT.discovery_uri('prediction')).to be === - 'https://www.googleapis.com/discovery/v1/apis/prediction/v1/rest' - end - - it 'should correctly determine the discovery URI if :user_ip is set' do - CLIENT.user_ip = '127.0.0.1' - - conn = stub_connection do |stub| - stub.get('/discovery/v1/apis/prediction/v1.2/rest?userIp=127.0.0.1') do |env| - [200, {}, '{}'] - end - end - CLIENT.execute( - :http_method => 'GET', - :uri => CLIENT.discovery_uri('prediction', 'v1.2'), - :authenticated => false, - :connection => conn - ) - conn.verify - end - - it 'should correctly determine the discovery URI if :key is set' do - CLIENT.key = 'qwerty' - conn = stub_connection do |stub| - stub.get('/discovery/v1/apis/prediction/v1.2/rest?key=qwerty') do |env| - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :http_method => 'GET', - :uri => CLIENT.discovery_uri('prediction', 'v1.2'), - :authenticated => false, - :connection => conn - ) - conn.verify - end - - it 'should correctly determine the discovery URI if both are set' do - CLIENT.key = 'qwerty' - CLIENT.user_ip = '127.0.0.1' - conn = stub_connection do |stub| - stub.get('/discovery/v1/apis/prediction/v1.2/rest?key=qwerty&userIp=127.0.0.1') do |env| - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :http_method => 'GET', - :uri => CLIENT.discovery_uri('prediction', 'v1.2'), - :authenticated => false, - :connection => conn - ) - conn.verify - end - - it 'should correctly generate API objects' do - expect(CLIENT.discovered_api('prediction', 'v1.2').name).to eq('prediction') - expect(CLIENT.discovered_api('prediction', 'v1.2').version).to eq('v1.2') - expect(CLIENT.discovered_api(:prediction, 'v1.2').name).to eq('prediction') - expect(CLIENT.discovered_api(:prediction, 'v1.2').version).to eq('v1.2') - end - - it 'should discover methods' do - expect(CLIENT.discovered_method( - 'prediction.training.insert', 'prediction', 'v1.2' - ).name).to eq('insert') - expect(CLIENT.discovered_method( - :'prediction.training.insert', :prediction, 'v1.2' - ).name).to eq('insert') - expect(CLIENT.discovered_method( - 'prediction.training.delete', 'prediction', 'v1.2' - ).name).to eq('delete') - end - - it 'should define the origin API in discovered methods' do - expect(CLIENT.discovered_method( - 'prediction.training.insert', 'prediction', 'v1.2' - ).api.name).to eq('prediction') - end - - it 'should not find methods that are not in the discovery document' do - expect(CLIENT.discovered_method( - 'prediction.bogus', 'prediction', 'v1.2' - )).to eq(nil) - end - - it 'should raise an error for bogus methods' do - expect(lambda do - CLIENT.discovered_method(42, 'prediction', 'v1.2') - end).to raise_error(TypeError) - end - - it 'should raise an error for bogus methods' do - expect(lambda do - CLIENT.execute(:api_method => CLIENT.discovered_api('prediction', 'v1.2')) - end).to raise_error(TypeError) - end - - it 'should correctly determine the preferred version' do - expect(CLIENT.preferred_version('prediction').version).not_to eq('v1') - expect(CLIENT.preferred_version(:prediction).version).not_to eq('v1') - end - - it 'should return a batch path' do - expect(CLIENT.discovered_api('prediction', 'v1.2').batch_path).not_to be_nil - end - - it 'should generate valid requests' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - expect(env[:body]).to eq('') - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => conn - ) - conn.verify - end - - it 'should generate valid requests when parameter value includes semicolon' do - conn = stub_connection do |stub| - # semicolon (;) in parameter value was being converted to - # bare ampersand (&) in 0.4.7. ensure that it gets converted - # to a CGI-escaped semicolon (%3B) instead. - stub.post('/prediction/v1.2/training?data=12345%3B67890') do |env| - expect(env[:body]).to eq('') - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345;67890'}, - :connection => conn - ) - conn.verify - end - - it 'should generate valid requests when multivalued parameters are passed' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=1&data=2') do |env| - expect(env.params['data']).to include('1', '2') - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => ['1', '2']}, - :connection => conn - ) - conn.verify - end - - it 'should generate requests against the correct URIs' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => conn - ) - conn.verify - end - - it 'should generate requests against the correct URIs' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => conn - ) - conn.verify - end - - it 'should allow modification to the base URIs for testing purposes' do - # Using a new client instance here to avoid caching rebased discovery doc - prediction_rebase = - Google::APIClient.new(:application_name => 'API Client Tests').discovered_api('prediction', 'v1.2') - prediction_rebase.method_base = - 'https://testing-domain.example.com/prediction/v1.2/' - - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training') do |env| - expect(env[:url].host).to eq('testing-domain.example.com') - [200, {}, '{}'] - end - end - - request = CLIENT.execute( - :api_method => prediction_rebase.training.insert, - :parameters => {'data' => '123'}, - :connection => conn - ) - conn.verify - end - - it 'should generate OAuth 1 requests' do - CLIENT.authorization = :oauth_1 - CLIENT.authorization.token_credential_key = '12345' - CLIENT.authorization.token_credential_secret = '12345' - - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - expect(env[:request_headers]).to have_key('Authorization') - expect(env[:request_headers]['Authorization']).to match(/^OAuth/) - [200, {}, '{}'] - end - end - - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => conn - ) - conn.verify - end - - it 'should generate OAuth 2 requests' do - CLIENT.authorization = :oauth_2 - CLIENT.authorization.access_token = '12345' - - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - expect(env[:request_headers]).to have_key('Authorization') - expect(env[:request_headers]['Authorization']).to match(/^Bearer/) - [200, {}, '{}'] - end - end - - request = CLIENT.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => conn - ) - conn.verify - end - - it 'should not be able to execute improperly authorized requests' do - CLIENT.authorization = :oauth_1 - CLIENT.authorization.token_credential_key = '12345' - CLIENT.authorization.token_credential_secret = '12345' - result = CLIENT.execute( - @prediction.training.insert, - {'data' => '12345'} - ) - expect(result.response.status).to eq(401) - end - - it 'should not be able to execute improperly authorized requests' do - CLIENT.authorization = :oauth_2 - CLIENT.authorization.access_token = '12345' - result = CLIENT.execute( - @prediction.training.insert, - {'data' => '12345'} - ) - expect(result.response.status).to eq(401) - end - - it 'should not be able to execute improperly authorized requests' do - expect(lambda do - CLIENT.authorization = :oauth_1 - CLIENT.authorization.token_credential_key = '12345' - CLIENT.authorization.token_credential_secret = '12345' - result = CLIENT.execute!( - @prediction.training.insert, - {'data' => '12345'} - ) - end).to raise_error(Google::APIClient::ClientError) - end - - it 'should not be able to execute improperly authorized requests' do - expect(lambda do - CLIENT.authorization = :oauth_2 - CLIENT.authorization.access_token = '12345' - result = CLIENT.execute!( - @prediction.training.insert, - {'data' => '12345'} - ) - end).to raise_error(Google::APIClient::ClientError) - end - - it 'should correctly handle unnamed parameters' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.2/training') do |env| - expect(env[:request_headers]).to have_key('Content-Type') - expect(env[:request_headers]['Content-Type']).to eq('application/json') - [200, {}, '{}'] - end - end - CLIENT.authorization = :oauth_2 - CLIENT.authorization.access_token = '12345' - CLIENT.execute( - :api_method => @prediction.training.insert, - :body => MultiJson.dump({"id" => "bucket/object"}), - :headers => {'Content-Type' => 'application/json'}, - :connection => conn - ) - conn.verify - end - end - - describe 'with the plus API' do - before do - CLIENT.authorization = nil - @plus = CLIENT.discovered_api('plus') - end - - it 'should correctly determine the discovery URI' do - expect(CLIENT.discovery_uri('plus')).to be === - 'https://www.googleapis.com/discovery/v1/apis/plus/v1/rest' - end - - it 'should find APIs that are in the discovery document' do - expect(CLIENT.discovered_api('plus').name).to eq('plus') - expect(CLIENT.discovered_api('plus').version).to eq('v1') - expect(CLIENT.discovered_api(:plus).name).to eq('plus') - expect(CLIENT.discovered_api(:plus).version).to eq('v1') - end - - it 'should find methods that are in the discovery document' do - # TODO(bobaman) Fix this when the RPC names are correct - expect(CLIENT.discovered_method( - 'plus.activities.list', 'plus' - ).name).to eq('list') - end - - it 'should define the origin API in discovered methods' do - expect(CLIENT.discovered_method( - 'plus.activities.list', 'plus' - ).api.name).to eq('plus') - end - - it 'should not find methods that are not in the discovery document' do - expect(CLIENT.discovered_method('plus.bogus', 'plus')).to eq(nil) - end - - it 'should generate requests against the correct URIs' do - conn = stub_connection do |stub| - stub.get('/plus/v1/people/107807692475771887386/activities/public') do |env| - [200, {}, '{}'] - end - end - - request = CLIENT.execute( - :api_method => @plus.activities.list, - :parameters => { - 'userId' => '107807692475771887386', 'collection' => 'public' - }, - :authenticated => false, - :connection => conn - ) - conn.verify - end - - it 'should correctly validate parameters' do - expect(lambda do - CLIENT.execute( - :api_method => @plus.activities.list, - :parameters => {'alt' => 'json'}, - :authenticated => false - ) - end).to raise_error(ArgumentError) - end - - it 'should correctly validate parameters' do - expect(lambda do - CLIENT.execute( - :api_method => @plus.activities.list, - :parameters => { - 'userId' => '107807692475771887386', 'collection' => 'bogus' - }, - :authenticated => false - ).to_env(CLIENT.connection) - end).to raise_error(ArgumentError) - end - - it 'should correctly determine the service root_uri' do - expect(@plus.root_uri.to_s).to eq('https://www.googleapis.com/') - end - end - - describe 'with the adsense API' do - before do - CLIENT.authorization = nil - @adsense = CLIENT.discovered_api('adsense', 'v1.3') - end - - it 'should correctly determine the discovery URI' do - expect(CLIENT.discovery_uri('adsense', 'v1.3').to_s).to be === - 'https://www.googleapis.com/discovery/v1/apis/adsense/v1.3/rest' - end - - it 'should find APIs that are in the discovery document' do - expect(CLIENT.discovered_api('adsense', 'v1.3').name).to eq('adsense') - expect(CLIENT.discovered_api('adsense', 'v1.3').version).to eq('v1.3') - end - - it 'should return a batch path' do - expect(CLIENT.discovered_api('adsense', 'v1.3').batch_path).not_to be_nil - end - - it 'should find methods that are in the discovery document' do - expect(CLIENT.discovered_method( - 'adsense.reports.generate', 'adsense', 'v1.3' - ).name).to eq('generate') - end - - it 'should not find methods that are not in the discovery document' do - expect(CLIENT.discovered_method('adsense.bogus', 'adsense', 'v1.3')).to eq(nil) - end - - it 'should generate requests against the correct URIs' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/adclients') do |env| - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @adsense.adclients.list, - :authenticated => false, - :connection => conn - ) - conn.verify - end - - it 'should not be able to execute requests without authorization' do - result = CLIENT.execute( - :api_method => @adsense.adclients.list, - :authenticated => false - ) - expect(result.response.status).to eq(401) - end - - it 'should fail when validating missing required parameters' do - expect(lambda do - CLIENT.execute( - :api_method => @adsense.reports.generate, - :authenticated => false - ) - end).to raise_error(ArgumentError) - end - - it 'should succeed when validating parameters in a correct call' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/reports?dimension=DATE&endDate=2010-01-01&metric=PAGE_VIEWS&startDate=2000-01-01') do |env| - [200, {}, '{}'] - end - end - expect(lambda do - CLIENT.execute( - :api_method => @adsense.reports.generate, - :parameters => { - 'startDate' => '2000-01-01', - 'endDate' => '2010-01-01', - 'dimension' => 'DATE', - 'metric' => 'PAGE_VIEWS' - }, - :authenticated => false, - :connection => conn - ) - end).not_to raise_error - conn.verify - end - - it 'should fail when validating parameters with invalid values' do - expect(lambda do - CLIENT.execute( - :api_method => @adsense.reports.generate, - :parameters => { - 'startDate' => '2000-01-01', - 'endDate' => '2010-01-01', - 'dimension' => 'BAD_CHARACTERS=-&*(£&', - 'metric' => 'PAGE_VIEWS' - }, - :authenticated => false - ) - end).to raise_error(ArgumentError) - end - - it 'should succeed when validating repeated parameters in a correct call' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/reports?dimension=DATE&dimension=PRODUCT_CODE'+ - '&endDate=2010-01-01&metric=CLICKS&metric=PAGE_VIEWS&'+ - 'startDate=2000-01-01') do |env| - [200, {}, '{}'] - end - end - expect(lambda do - CLIENT.execute( - :api_method => @adsense.reports.generate, - :parameters => { - 'startDate' => '2000-01-01', - 'endDate' => '2010-01-01', - 'dimension' => ['DATE', 'PRODUCT_CODE'], - 'metric' => ['PAGE_VIEWS', 'CLICKS'] - }, - :authenticated => false, - :connection => conn - ) - end).not_to raise_error - conn.verify - end - - it 'should fail when validating incorrect repeated parameters' do - expect(lambda do - CLIENT.execute( - :api_method => @adsense.reports.generate, - :parameters => { - 'startDate' => '2000-01-01', - 'endDate' => '2010-01-01', - 'dimension' => ['DATE', 'BAD_CHARACTERS=-&*(£&'], - 'metric' => ['PAGE_VIEWS', 'CLICKS'] - }, - :authenticated => false - ) - end).to raise_error(ArgumentError) - end - - it 'should generate valid requests when multivalued parameters are passed' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/reports?dimension=DATE&dimension=PRODUCT_CODE'+ - '&endDate=2010-01-01&metric=CLICKS&metric=PAGE_VIEWS&'+ - 'startDate=2000-01-01') do |env| - expect(env.params['dimension']).to include('DATE', 'PRODUCT_CODE') - expect(env.params['metric']).to include('CLICKS', 'PAGE_VIEWS') - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @adsense.reports.generate, - :parameters => { - 'startDate' => '2000-01-01', - 'endDate' => '2010-01-01', - 'dimension' => ['DATE', 'PRODUCT_CODE'], - 'metric' => ['PAGE_VIEWS', 'CLICKS'] - }, - :authenticated => false, - :connection => conn - ) - conn.verify - end - end - - describe 'with the Drive API' do - before do - CLIENT.authorization = nil - @drive = CLIENT.discovered_api('drive', 'v1') - end - - it 'should include media upload info methods' do - expect(@drive.files.insert.media_upload).not_to eq(nil) - end - - it 'should include accepted media types' do - expect(@drive.files.insert.media_upload.accepted_types).not_to be_empty - end - - it 'should have an upload path' do - expect(@drive.files.insert.media_upload.uri_template).not_to eq(nil) - end - - it 'should have a max file size' do - expect(@drive.files.insert.media_upload.max_size).not_to eq(nil) - end - end - - describe 'with the Pub/Sub API' do - before do - CLIENT.authorization = nil - @pubsub = CLIENT.discovered_api('pubsub', 'v1beta2') - end - - it 'should generate requests against the correct URIs' do - conn = stub_connection do |stub| - stub.get('/v1beta2/projects/12345/topics') do |env| - expect(env[:url].host).to eq('pubsub.googleapis.com') - [200, {}, '{}'] - end - end - request = CLIENT.execute( - :api_method => @pubsub.projects.topics.list, - :parameters => {'project' => 'projects/12345'}, - :connection => conn - ) - conn.verify - end - - it 'should correctly determine the service root_uri' do - expect(@pubsub.root_uri.to_s).to eq('https://pubsub.googleapis.com/') - end - - it 'should discover correct method URIs' do - list = CLIENT.discovered_method( - "pubsub.projects.topics.list", "pubsub", "v1beta2" - ) - expect(list.uri_template.pattern).to eq( - "https://pubsub.googleapis.com/v1beta2/{+project}/topics" - ) - - publish = CLIENT.discovered_method( - "pubsub.projects.topics.publish", "pubsub", "v1beta2" - ) - expect(publish.uri_template.pattern).to eq( - "https://pubsub.googleapis.com/v1beta2/{+topic}:publish" - ) - end - end -end diff --git a/spec/google/api_client/gzip_spec.rb b/spec/google/api_client/gzip_spec.rb deleted file mode 100644 index 0539b97d9..000000000 --- a/spec/google/api_client/gzip_spec.rb +++ /dev/null @@ -1,98 +0,0 @@ -# Encoding: utf-8 -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client' - -RSpec.describe Google::APIClient::Gzip do - - def create_connection(&block) - Faraday.new do |b| - b.response :charset - b.response :gzip - b.adapter :test do |stub| - stub.get '/', &block - end - end - end - - it 'should ignore non-zipped content' do - conn = create_connection do |env| - [200, {}, 'Hello world'] - end - result = conn.get('/') - expect(result.body).to eq("Hello world") - end - - it 'should decompress gziped content' do - conn = create_connection do |env| - [200, { 'Content-Encoding' => 'gzip'}, Base64.decode64('H4sICLVGwlEAA3RtcADzSM3JyVcozy/KSeECANXgObcMAAAA')] - end - result = conn.get('/') - expect(result.body).to eq("Hello world\n") - end - - it 'should inflate with the correct charset encoding' do - conn = create_connection do |env| - [200, - { 'Content-Encoding' => 'deflate', 'Content-Type' => 'application/json;charset=BIG5'}, - Base64.decode64('eJxb8nLp7t2VAA8fBCI=')] - end - result = conn.get('/') - expect(result.body.encoding).to eq(Encoding::BIG5) - expect(result.body).to eq('日本語'.encode("BIG5")) - end - - describe 'with API Client' do - - before do - @client = Google::APIClient.new(:application_name => 'test') - @client.authorization = nil - end - - - it 'should send gzip in user agent' do - conn = create_connection do |env| - agent = env[:request_headers]['User-Agent'] - expect(agent).not_to be_nil - expect(agent).to include 'gzip' - [200, {}, 'Hello world'] - end - @client.execute(:uri => 'http://www.example.com/', :connection => conn) - end - - it 'should send gzip in accept-encoding' do - conn = create_connection do |env| - encoding = env[:request_headers]['Accept-Encoding'] - expect(encoding).not_to be_nil - expect(encoding).to include 'gzip' - [200, {}, 'Hello world'] - end - @client.execute(:uri => 'http://www.example.com/', :connection => conn) - end - - it 'should not send gzip in accept-encoding if disabled for request' do - conn = create_connection do |env| - encoding = env[:request_headers]['Accept-Encoding'] - expect(encoding).not_to include('gzip') unless encoding.nil? - [200, {}, 'Hello world'] - end - response = @client.execute(:uri => 'http://www.example.com/', :gzip => false, :connection => conn) - puts response.status - end - - end -end diff --git a/spec/google/api_client/media_spec.rb b/spec/google/api_client/media_spec.rb deleted file mode 100644 index f32b31efc..000000000 --- a/spec/google/api_client/media_spec.rb +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client' - -fixtures_path = File.expand_path('../../../fixtures', __FILE__) - -RSpec.describe Google::APIClient::UploadIO do - it 'should reject invalid file paths' do - expect(lambda do - media = Google::APIClient::UploadIO.new('doesnotexist', 'text/plain') - end).to raise_error - end - - describe 'with a file' do - before do - @file = File.expand_path('files/sample.txt', fixtures_path) - @media = Google::APIClient::UploadIO.new(@file, 'text/plain') - end - - it 'should report the correct file length' do - expect(@media.length).to eq(File.size(@file)) - end - - it 'should have a mime type' do - expect(@media.content_type).to eq('text/plain') - end - end - - describe 'with StringIO' do - before do - @content = "hello world" - @media = Google::APIClient::UploadIO.new(StringIO.new(@content), 'text/plain', 'test.txt') - end - - it 'should report the correct file length' do - expect(@media.length).to eq(@content.length) - end - - it 'should have a mime type' do - expect(@media.content_type).to eq('text/plain') - end - end -end - -RSpec.describe Google::APIClient::RangedIO do - before do - @source = StringIO.new("1234567890abcdef") - @io = Google::APIClient::RangedIO.new(@source, 1, 5) - end - - it 'should return the correct range when read entirely' do - expect(@io.read).to eq("23456") - end - - it 'should maintain position' do - expect(@io.read(1)).to eq('2') - expect(@io.read(2)).to eq('34') - expect(@io.read(2)).to eq('56') - end - - it 'should allow rewinds' do - expect(@io.read(2)).to eq('23') - @io.rewind() - expect(@io.read(2)).to eq('23') - end - - it 'should allow setting position' do - @io.pos = 3 - expect(@io.read).to eq('56') - end - - it 'should not allow position to be set beyond range' do - @io.pos = 10 - expect(@io.read).to eq('') - end - - it 'should return empty string when read amount is zero' do - expect(@io.read(0)).to eq('') - end - - it 'should return empty string at EOF if amount is nil' do - @io.read - expect(@io.read).to eq('') - end - - it 'should return nil at EOF if amount is positive int' do - @io.read - expect(@io.read(1)).to eq(nil) - end - -end - -RSpec.describe Google::APIClient::ResumableUpload do - CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) - - after do - # Reset client to not-quite-pristine state - CLIENT.key = nil - CLIENT.user_ip = nil - end - - before do - @drive = CLIENT.discovered_api('drive', 'v1') - @file = File.expand_path('files/sample.txt', fixtures_path) - @media = Google::APIClient::UploadIO.new(@file, 'text/plain') - @uploader = Google::APIClient::ResumableUpload.new( - :media => @media, - :api_method => @drive.files.insert, - :uri => 'https://www.googleapis.com/upload/drive/v1/files/12345') - end - - it 'should consider 20x status as complete' do - request = @uploader.to_http_request - @uploader.process_http_response(mock_result(200)) - expect(@uploader.complete?).to eq(true) - end - - it 'should consider 30x status as incomplete' do - request = @uploader.to_http_request - @uploader.process_http_response(mock_result(308)) - expect(@uploader.complete?).to eq(false) - expect(@uploader.expired?).to eq(false) - end - - it 'should consider 40x status as fatal' do - request = @uploader.to_http_request - @uploader.process_http_response(mock_result(404)) - expect(@uploader.expired?).to eq(true) - end - - it 'should detect changes to location' do - request = @uploader.to_http_request - @uploader.process_http_response(mock_result(308, 'location' => 'https://www.googleapis.com/upload/drive/v1/files/abcdef')) - expect(@uploader.uri.to_s).to eq('https://www.googleapis.com/upload/drive/v1/files/abcdef') - end - - it 'should resume from the saved range reported by the server' do - @uploader.chunk_size = 200 - @uploader.to_http_request # Send bytes 0-199, only 0-99 saved - @uploader.process_http_response(mock_result(308, 'range' => '0-99')) - method, url, headers, body = @uploader.to_http_request # Send bytes 100-299 - expect(headers['Content-Range']).to eq("bytes 100-299/#{@media.length}") - expect(headers['Content-length']).to eq("200") - end - - it 'should resync the offset after 5xx errors' do - @uploader.chunk_size = 200 - @uploader.to_http_request - @uploader.process_http_response(mock_result(500)) # Invalidates range - method, url, headers, body = @uploader.to_http_request # Resync - expect(headers['Content-Range']).to eq("bytes */#{@media.length}") - expect(headers['Content-length']).to eq("0") - @uploader.process_http_response(mock_result(308, 'range' => '0-99')) - method, url, headers, body = @uploader.to_http_request # Send next chunk at correct range - expect(headers['Content-Range']).to eq("bytes 100-299/#{@media.length}") - expect(headers['Content-length']).to eq("200") - end - - def mock_result(status, headers = {}) - reference = Google::APIClient::Reference.new(:api_method => @drive.files.insert) - double('result', :status => status, :headers => headers, :reference => reference) - end - -end diff --git a/spec/google/api_client/result_spec.rb b/spec/google/api_client/result_spec.rb deleted file mode 100644 index 67c63b77c..000000000 --- a/spec/google/api_client/result_spec.rb +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client' - -RSpec.describe Google::APIClient::Result do - CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT) - - describe 'with the plus API' do - before do - CLIENT.authorization = nil - @plus = CLIENT.discovered_api('plus', 'v1') - @reference = Google::APIClient::Reference.new({ - :api_method => @plus.activities.list, - :parameters => { - 'userId' => 'me', - 'collection' => 'public', - 'maxResults' => 20 - } - }) - @request = @reference.to_http_request - - # Response double - @response = double("response") - allow(@response).to receive(:status).and_return(200) - allow(@response).to receive(:headers).and_return({ - 'etag' => '12345', - 'x-google-apiary-auth-scopes' => - 'https://www.googleapis.com/auth/plus.me', - 'content-type' => 'application/json; charset=UTF-8', - 'date' => 'Mon, 23 Apr 2012 00:00:00 GMT', - 'cache-control' => 'private, max-age=0, must-revalidate, no-transform', - 'server' => 'GSE', - 'connection' => 'close' - }) - end - - describe 'with a next page token' do - before do - allow(@response).to receive(:body).and_return( - <<-END_OF_STRING - { - "kind": "plus#activityFeed", - "etag": "FOO", - "nextPageToken": "NEXT+PAGE+TOKEN", - "selfLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?", - "nextLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?maxResults=20&pageToken=NEXT%2BPAGE%2BTOKEN", - "title": "Plus Public Activity Feed for ", - "updated": "2012-04-23T00:00:00.000Z", - "id": "123456790", - "items": [] - } - END_OF_STRING - ) - @result = Google::APIClient::Result.new(@reference, @response) - end - - it 'should indicate a successful response' do - expect(@result.error?).to be_falsey - end - - it 'should return the correct next page token' do - expect(@result.next_page_token).to eq('NEXT+PAGE+TOKEN') - end - - it 'should escape the next page token when calling next_page' do - reference = @result.next_page - expect(Hash[reference.parameters]).to include('pageToken') - expect(Hash[reference.parameters]['pageToken']).to eq('NEXT+PAGE+TOKEN') - url = reference.to_env(CLIENT.connection)[:url] - expect(url.to_s).to include('pageToken=NEXT%2BPAGE%2BTOKEN') - end - - it 'should return content type correctly' do - expect(@result.media_type).to eq('application/json') - end - - it 'should return the result data correctly' do - expect(@result.data?).to be_truthy - expect(@result.data.class.to_s).to eq( - 'Google::APIClient::Schema::Plus::V1::ActivityFeed' - ) - expect(@result.data.kind).to eq('plus#activityFeed') - expect(@result.data.etag).to eq('FOO') - expect(@result.data.nextPageToken).to eq('NEXT+PAGE+TOKEN') - expect(@result.data.selfLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' - ) - expect(@result.data.nextLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' + - 'maxResults=20&pageToken=NEXT%2BPAGE%2BTOKEN' - ) - expect(@result.data.title).to eq('Plus Public Activity Feed for ') - expect(@result.data.id).to eq("123456790") - expect(@result.data.items).to be_empty - end - end - - describe 'without a next page token' do - before do - allow(@response).to receive(:body).and_return( - <<-END_OF_STRING - { - "kind": "plus#activityFeed", - "etag": "FOO", - "selfLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?", - "title": "Plus Public Activity Feed for ", - "updated": "2012-04-23T00:00:00.000Z", - "id": "123456790", - "items": [] - } - END_OF_STRING - ) - @result = Google::APIClient::Result.new(@reference, @response) - end - - it 'should not return a next page token' do - expect(@result.next_page_token).to eq(nil) - end - - it 'should return content type correctly' do - expect(@result.media_type).to eq('application/json') - end - - it 'should return the result data correctly' do - expect(@result.data?).to be_truthy - expect(@result.data.class.to_s).to eq( - 'Google::APIClient::Schema::Plus::V1::ActivityFeed' - ) - expect(@result.data.kind).to eq('plus#activityFeed') - expect(@result.data.etag).to eq('FOO') - expect(@result.data.selfLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' - ) - expect(@result.data.title).to eq('Plus Public Activity Feed for ') - expect(@result.data.id).to eq("123456790") - expect(@result.data.items).to be_empty - end - end - - describe 'with JSON error response' do - before do - allow(@response).to receive(:body).and_return( - <<-END_OF_STRING - { - "error": { - "errors": [ - { - "domain": "global", - "reason": "parseError", - "message": "Parse Error" - } - ], - "code": 400, - "message": "Parse Error" - } - } - END_OF_STRING - ) - allow(@response).to receive(:status).and_return(400) - @result = Google::APIClient::Result.new(@reference, @response) - end - - it 'should return error status correctly' do - expect(@result.error?).to be_truthy - end - - it 'should return the correct error message' do - expect(@result.error_message).to eq('Parse Error') - end - end - - describe 'with 204 No Content response' do - before do - allow(@response).to receive(:body).and_return('') - allow(@response).to receive(:status).and_return(204) - allow(@response).to receive(:headers).and_return({}) - @result = Google::APIClient::Result.new(@reference, @response) - end - - it 'should indicate no data is available' do - expect(@result.data?).to be_falsey - end - - it 'should return nil for data' do - expect(@result.data).to eq(nil) - end - - it 'should return nil for media_type' do - expect(@result.media_type).to eq(nil) - end - end - end -end diff --git a/spec/google/api_client/service_account_spec.rb b/spec/google/api_client/service_account_spec.rb deleted file mode 100644 index 6314cea6b..000000000 --- a/spec/google/api_client/service_account_spec.rb +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 2012 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client' - -fixtures_path = File.expand_path('../../../fixtures', __FILE__) - -RSpec.describe Google::APIClient::KeyUtils do - it 'should read PKCS12 files from the filesystem' do - if RUBY_PLATFORM == 'java' && RUBY_VERSION.start_with?('1.8') - pending "Reading from PKCS12 not supported on jruby 1.8.x" - end - path = File.expand_path('files/privatekey.p12', fixtures_path) - key = Google::APIClient::KeyUtils.load_from_pkcs12(path, 'notasecret') - expect(key).not_to eq(nil) - end - - it 'should read PKCS12 files from loaded files' do - if RUBY_PLATFORM == 'java' && RUBY_VERSION.start_with?('1.8') - pending "Reading from PKCS12 not supported on jruby 1.8.x" - end - path = File.expand_path('files/privatekey.p12', fixtures_path) - content = File.read(path) - key = Google::APIClient::KeyUtils.load_from_pkcs12(content, 'notasecret') - expect(key).not_to eq(nil) - end - - it 'should read PEM files from the filesystem' do - path = File.expand_path('files/secret.pem', fixtures_path) - key = Google::APIClient::KeyUtils.load_from_pem(path, 'notasecret') - expect(key).not_to eq(nil) - end - - it 'should read PEM files from loaded files' do - path = File.expand_path('files/secret.pem', fixtures_path) - content = File.read(path) - key = Google::APIClient::KeyUtils.load_from_pem(content, 'notasecret') - expect(key).not_to eq(nil) - end - -end - -RSpec.describe Google::APIClient::JWTAsserter do - include ConnectionHelpers - - before do - @key = OpenSSL::PKey::RSA.new 2048 - end - - it 'should generate valid JWTs' do - asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key) - jwt = asserter.to_authorization.to_jwt - expect(jwt).not_to eq(nil) - - claim = JWT.decode(jwt, @key.public_key, true) - claim = claim[0] if claim[0] - expect(claim["iss"]).to eq('client1') - expect(claim["scope"]).to eq('scope1 scope2') - end - - it 'should allow impersonation' do - conn = stub_connection do |stub| - stub.post('/o/oauth2/token') do |env| - params = Addressable::URI.form_unencode(env[:body]) - JWT.decode(params.assoc("assertion").last, @key.public_key) - expect(params.assoc("grant_type")).to eq(['grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer']) - [200, {'content-type' => 'application/json'}, '{ - "access_token" : "1/abcdef1234567890", - "token_type" : "Bearer", - "expires_in" : 3600 - }'] - end - end - asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key) - auth = asserter.authorize('user1@email.com', { :connection => conn }) - expect(auth).not_to eq(nil?) - expect(auth.person).to eq('user1@email.com') - conn.verify - end - - it 'should send valid access token request' do - conn = stub_connection do |stub| - stub.post('/o/oauth2/token') do |env| - params = Addressable::URI.form_unencode(env[:body]) - JWT.decode(params.assoc("assertion").last, @key.public_key) - expect(params.assoc("grant_type")).to eq(['grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer']) - [200, {'content-type' => 'application/json'}, '{ - "access_token" : "1/abcdef1234567890", - "token_type" : "Bearer", - "expires_in" : 3600 - }'] - end - end - asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key) - auth = asserter.authorize(nil, { :connection => conn }) - expect(auth).not_to eq(nil?) - expect(auth.access_token).to eq("1/abcdef1234567890") - conn.verify - end - - it 'should be refreshable' do - conn = stub_connection do |stub| - stub.post('/o/oauth2/token') do |env| - params = Addressable::URI.form_unencode(env[:body]) - JWT.decode(params.assoc("assertion").last, @key.public_key) - expect(params.assoc("grant_type")).to eq(['grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer']) - [200, {'content-type' => 'application/json'}, '{ - "access_token" : "1/abcdef1234567890", - "token_type" : "Bearer", - "expires_in" : 3600 - }'] - end - stub.post('/o/oauth2/token') do |env| - params = Addressable::URI.form_unencode(env[:body]) - JWT.decode(params.assoc("assertion").last, @key.public_key) - expect(params.assoc("grant_type")).to eq(['grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer']) - [200, {'content-type' => 'application/json'}, '{ - "access_token" : "1/0987654321fedcba", - "token_type" : "Bearer", - "expires_in" : 3600 - }'] - end - end - asserter = Google::APIClient::JWTAsserter.new('client1', 'scope1 scope2', @key) - auth = asserter.authorize(nil, { :connection => conn }) - expect(auth).not_to eq(nil?) - expect(auth.access_token).to eq("1/abcdef1234567890") - - auth.fetch_access_token!(:connection => conn) - expect(auth.access_token).to eq("1/0987654321fedcba") - - conn.verify - end -end - -RSpec.describe Google::APIClient::ComputeServiceAccount do - include ConnectionHelpers - - it 'should query metadata server' do - conn = stub_connection do |stub| - stub.get('/computeMetadata/v1beta1/instance/service-accounts/default/token') do |env| - expect(env.url.host).to eq('metadata') - [200, {'content-type' => 'application/json'}, '{ - "access_token" : "1/abcdef1234567890", - "token_type" : "Bearer", - "expires_in" : 3600 - }'] - end - end - service_account = Google::APIClient::ComputeServiceAccount.new - auth = service_account.fetch_access_token!({ :connection => conn }) - expect(auth).not_to eq(nil?) - expect(auth["access_token"]).to eq("1/abcdef1234567890") - conn.verify - end -end diff --git a/spec/google/api_client/service_spec.rb b/spec/google/api_client/service_spec.rb deleted file mode 100644 index a6f6925e5..000000000 --- a/spec/google/api_client/service_spec.rb +++ /dev/null @@ -1,618 +0,0 @@ -# encoding:utf-8 - -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client' -require 'google/api_client/service' - -fixtures_path = File.expand_path('../../../fixtures', __FILE__) - -RSpec.describe Google::APIClient::Service do - include ConnectionHelpers - - APPLICATION_NAME = 'API Client Tests' - - it 'should error out when called without an API name or version' do - expect(lambda do - Google::APIClient::Service.new - end).to raise_error(ArgumentError) - end - - it 'should error out when called without an API version' do - expect(lambda do - Google::APIClient::Service.new('foo') - end).to raise_error(ArgumentError) - end - - it 'should error out when the options hash is not a hash' do - expect(lambda do - Google::APIClient::Service.new('foo', 'v1', 42) - end).to raise_error(ArgumentError) - end - - describe 'with the AdSense Management API' do - - it 'should make a valid call for a method with no parameters' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/adclients') do |env| - [200, {}, '{}'] - end - end - adsense = Google::APIClient::Service.new( - 'adsense', - 'v1.3', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - - req = adsense.adclients.list.execute() - conn.verify - end - - it 'should make a valid call for a method with parameters' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/adclients/1/adunits') do |env| - [200, {}, '{}'] - end - end - adsense = Google::APIClient::Service.new( - 'adsense', - 'v1.3', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - req = adsense.adunits.list(:adClientId => '1').execute() - end - - it 'should make a valid call for a deep method' do - conn = stub_connection do |stub| - stub.get('/adsense/v1.3/accounts/1/adclients') do |env| - [200, {}, '{}'] - end - end - adsense = Google::APIClient::Service.new( - 'adsense', - 'v1.3', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - req = adsense.accounts.adclients.list(:accountId => '1').execute() - end - - describe 'with no connection' do - before do - @adsense = Google::APIClient::Service.new('adsense', 'v1.3', - {:application_name => APPLICATION_NAME, :cache_store => nil}) - end - - it 'should return a resource when using a valid resource name' do - expect(@adsense.accounts).to be_a(Google::APIClient::Service::Resource) - end - - it 'should throw an error when using an invalid resource name' do - expect(lambda do - @adsense.invalid_resource - end).to raise_error - end - - it 'should return a request when using a valid method name' do - req = @adsense.adclients.list - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('adsense.adclients.list') - expect(req.parameters).to be_nil - end - - it 'should throw an error when using an invalid method name' do - expect(lambda do - @adsense.adclients.invalid_method - end).to raise_error - end - - it 'should return a valid request with parameters' do - req = @adsense.adunits.list(:adClientId => '1') - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('adsense.adunits.list') - expect(req.parameters).not_to be_nil - expect(req.parameters[:adClientId]).to eq('1') - end - end - end - - describe 'with the Prediction API' do - - it 'should make a valid call with an object body' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.5/trainedmodels?project=1') do |env| - expect(env.body).to eq('{"id":"1"}') - [200, {}, '{}'] - end - end - prediction = Google::APIClient::Service.new( - 'prediction', - 'v1.5', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - req = prediction.trainedmodels.insert(:project => '1').body({'id' => '1'}).execute() - conn.verify - end - - it 'should make a valid call with a text body' do - conn = stub_connection do |stub| - stub.post('/prediction/v1.5/trainedmodels?project=1') do |env| - expect(env.body).to eq('{"id":"1"}') - [200, {}, '{}'] - end - end - prediction = Google::APIClient::Service.new( - 'prediction', - 'v1.5', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - req = prediction.trainedmodels.insert(:project => '1').body('{"id":"1"}').execute() - conn.verify - end - - describe 'with no connection' do - before do - @prediction = Google::APIClient::Service.new('prediction', 'v1.5', - {:application_name => APPLICATION_NAME, :cache_store => nil}) - end - - it 'should return a valid request with a body' do - req = @prediction.trainedmodels.insert(:project => '1').body({'id' => '1'}) - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('prediction.trainedmodels.insert') - expect(req.body).to eq({'id' => '1'}) - expect(req.parameters).not_to be_nil - expect(req.parameters[:project]).to eq('1') - end - - it 'should return a valid request with a body when using resource name' do - req = @prediction.trainedmodels.insert(:project => '1').training({'id' => '1'}) - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('prediction.trainedmodels.insert') - expect(req.training).to eq({'id' => '1'}) - expect(req.parameters).not_to be_nil - expect(req.parameters[:project]).to eq('1') - end - end - end - - describe 'with the Drive API' do - - before do - @metadata = { - 'title' => 'My movie', - 'description' => 'The best home movie ever made' - } - @file = File.expand_path('files/sample.txt', fixtures_path) - @media = Google::APIClient::UploadIO.new(@file, 'text/plain') - end - - it 'should make a valid call with an object body and media upload' do - conn = stub_connection do |stub| - stub.post('/upload/drive/v1/files?uploadType=multipart') do |env| - expect(env.body).to be_a Faraday::CompositeReadIO - [200, {}, '{}'] - end - end - drive = Google::APIClient::Service.new( - 'drive', - 'v1', - { - :application_name => APPLICATION_NAME, - :authenticated => false, - :connection => conn, - :cache_store => nil - } - ) - req = drive.files.insert(:uploadType => 'multipart').body(@metadata).media(@media).execute() - conn.verify - end - - describe 'with no connection' do - before do - @drive = Google::APIClient::Service.new('drive', 'v1', - {:application_name => APPLICATION_NAME, :cache_store => nil}) - end - - it 'should return a valid request with a body and media upload' do - req = @drive.files.insert(:uploadType => 'multipart').body(@metadata).media(@media) - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('drive.files.insert') - expect(req.body).to eq(@metadata) - expect(req.media).to eq(@media) - expect(req.parameters).not_to be_nil - expect(req.parameters[:uploadType]).to eq('multipart') - end - - it 'should return a valid request with a body and media upload when using resource name' do - req = @drive.files.insert(:uploadType => 'multipart').file(@metadata).media(@media) - expect(req).to be_a(Google::APIClient::Service::Request) - expect(req.method.id).to eq('drive.files.insert') - expect(req.file).to eq(@metadata) - expect(req.media).to eq(@media) - expect(req.parameters).not_to be_nil - expect(req.parameters[:uploadType]).to eq('multipart') - end - end - end - - describe 'with the Discovery API' do - it 'should make a valid end-to-end request' do - discovery = Google::APIClient::Service.new('discovery', 'v1', - {:application_name => APPLICATION_NAME, :authenticated => false, - :cache_store => nil}) - result = discovery.apis.get_rest(:api => 'discovery', :version => 'v1').execute - expect(result).not_to be_nil - expect(result.data.name).to eq('discovery') - expect(result.data.version).to eq('v1') - end - end -end - - -RSpec.describe Google::APIClient::Service::Result do - - describe 'with the plus API' do - before do - @plus = Google::APIClient::Service.new('plus', 'v1', - {:application_name => APPLICATION_NAME, :cache_store => nil}) - @reference = Google::APIClient::Reference.new({ - :api_method => @plus.activities.list.method, - :parameters => { - 'userId' => 'me', - 'collection' => 'public', - 'maxResults' => 20 - } - }) - @request = @plus.activities.list(:userId => 'me', :collection => 'public', - :maxResults => 20) - - # Response double - @response = double("response") - allow(@response).to receive(:status).and_return(200) - allow(@response).to receive(:headers).and_return({ - 'etag' => '12345', - 'x-google-apiary-auth-scopes' => - 'https://www.googleapis.com/auth/plus.me', - 'content-type' => 'application/json; charset=UTF-8', - 'date' => 'Mon, 23 Apr 2012 00:00:00 GMT', - 'cache-control' => 'private, max-age=0, must-revalidate, no-transform', - 'server' => 'GSE', - 'connection' => 'close' - }) - end - - describe 'with a next page token' do - before do - @body = <<-END_OF_STRING - { - "kind": "plus#activityFeed", - "etag": "FOO", - "nextPageToken": "NEXT+PAGE+TOKEN", - "selfLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?", - "nextLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?maxResults=20&pageToken=NEXT%2BPAGE%2BTOKEN", - "title": "Plus Public Activity Feed for ", - "updated": "2012-04-23T00:00:00.000Z", - "id": "123456790", - "items": [] - } - END_OF_STRING - allow(@response).to receive(:body).and_return(@body) - base_result = Google::APIClient::Result.new(@reference, @response) - @result = Google::APIClient::Service::Result.new(@request, base_result) - end - - it 'should indicate a successful response' do - expect(@result.error?).to be_falsey - end - - it 'should return the correct next page token' do - expect(@result.next_page_token).to eq('NEXT+PAGE+TOKEN') - end - - it 'generate a correct request when calling next_page' do - next_page_request = @result.next_page - expect(next_page_request.parameters).to include('pageToken') - expect(next_page_request.parameters['pageToken']).to eq('NEXT+PAGE+TOKEN') - @request.parameters.each_pair do |param, value| - expect(next_page_request.parameters[param]).to eq(value) - end - end - - it 'should return content type correctly' do - expect(@result.media_type).to eq('application/json') - end - - it 'should return the body correctly' do - expect(@result.body).to eq(@body) - end - - it 'should return the result data correctly' do - expect(@result.data?).to be_truthy - expect(@result.data.class.to_s).to eq( - 'Google::APIClient::Schema::Plus::V1::ActivityFeed' - ) - expect(@result.data.kind).to eq('plus#activityFeed') - expect(@result.data.etag).to eq('FOO') - expect(@result.data.nextPageToken).to eq('NEXT+PAGE+TOKEN') - expect(@result.data.selfLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' - ) - expect(@result.data.nextLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' + - 'maxResults=20&pageToken=NEXT%2BPAGE%2BTOKEN' - ) - expect(@result.data.title).to eq('Plus Public Activity Feed for ') - expect(@result.data.id).to eq("123456790") - expect(@result.data.items).to be_empty - end - end - - describe 'without a next page token' do - before do - @body = <<-END_OF_STRING - { - "kind": "plus#activityFeed", - "etag": "FOO", - "selfLink": "https://www.googleapis.com/plus/v1/people/foo/activities/public?", - "title": "Plus Public Activity Feed for ", - "updated": "2012-04-23T00:00:00.000Z", - "id": "123456790", - "items": [] - } - END_OF_STRING - allow(@response).to receive(:body).and_return(@body) - base_result = Google::APIClient::Result.new(@reference, @response) - @result = Google::APIClient::Service::Result.new(@request, base_result) - end - - it 'should not return a next page token' do - expect(@result.next_page_token).to eq(nil) - end - - it 'should return content type correctly' do - expect(@result.media_type).to eq('application/json') - end - - it 'should return the body correctly' do - expect(@result.body).to eq(@body) - end - - it 'should return the result data correctly' do - expect(@result.data?).to be_truthy - expect(@result.data.class.to_s).to eq( - 'Google::APIClient::Schema::Plus::V1::ActivityFeed' - ) - expect(@result.data.kind).to eq('plus#activityFeed') - expect(@result.data.etag).to eq('FOO') - expect(@result.data.selfLink).to eq( - 'https://www.googleapis.com/plus/v1/people/foo/activities/public?' - ) - expect(@result.data.title).to eq('Plus Public Activity Feed for ') - expect(@result.data.id).to eq("123456790") - expect(@result.data.items).to be_empty - end - end - - describe 'with JSON error response' do - before do - @body = <<-END_OF_STRING - { - "error": { - "errors": [ - { - "domain": "global", - "reason": "parseError", - "message": "Parse Error" - } - ], - "code": 400, - "message": "Parse Error" - } - } - END_OF_STRING - allow(@response).to receive(:body).and_return(@body) - allow(@response).to receive(:status).and_return(400) - base_result = Google::APIClient::Result.new(@reference, @response) - @result = Google::APIClient::Service::Result.new(@request, base_result) - end - - it 'should return error status correctly' do - expect(@result.error?).to be_truthy - end - - it 'should return the correct error message' do - expect(@result.error_message).to eq('Parse Error') - end - - it 'should return the body correctly' do - expect(@result.body).to eq(@body) - end - end - - describe 'with 204 No Content response' do - before do - allow(@response).to receive(:body).and_return('') - allow(@response).to receive(:status).and_return(204) - allow(@response).to receive(:headers).and_return({}) - base_result = Google::APIClient::Result.new(@reference, @response) - @result = Google::APIClient::Service::Result.new(@request, base_result) - end - - it 'should indicate no data is available' do - expect(@result.data?).to be_falsey - end - - it 'should return nil for data' do - expect(@result.data).to eq(nil) - end - - it 'should return nil for media_type' do - expect(@result.media_type).to eq(nil) - end - end - end -end - -RSpec.describe Google::APIClient::Service::BatchRequest do - - include ConnectionHelpers - - context 'with a service connection' do - before do - @conn = stub_connection do |stub| - stub.post('/batch') do |env| - [500, {'Content-Type' => 'application/json'}, '{}'] - end - end - @discovery = Google::APIClient::Service.new('discovery', 'v1', - {:application_name => APPLICATION_NAME, :authorization => nil, - :cache_store => nil, :connection => @conn}) - @calls = [ - @discovery.apis.get_rest(:api => 'plus', :version => 'v1'), - @discovery.apis.get_rest(:api => 'discovery', :version => 'v1') - ] - end - - it 'should use the service connection' do - batch = @discovery.batch(@calls) do - end - batch.execute - @conn.verify - end - end - - describe 'with the discovery API' do - before do - @discovery = Google::APIClient::Service.new('discovery', 'v1', - {:application_name => APPLICATION_NAME, :authorization => nil, - :cache_store => nil}) - end - - describe 'with two valid requests' do - before do - @calls = [ - @discovery.apis.get_rest(:api => 'plus', :version => 'v1'), - @discovery.apis.get_rest(:api => 'discovery', :version => 'v1') - ] - end - - it 'should execute both when using a global callback' do - block_called = 0 - batch = @discovery.batch(@calls) do |result| - block_called += 1 - expect(result.status).to eq(200) - end - - batch.execute - expect(block_called).to eq(2) - end - - it 'should execute both when using individual callbacks' do - call1_returned, call2_returned = false, false - batch = @discovery.batch - - batch.add(@calls[0]) do |result| - call1_returned = true - expect(result.status).to eq(200) - expect(result.call_index).to eq(0) - end - - batch.add(@calls[1]) do |result| - call2_returned = true - expect(result.status).to eq(200) - expect(result.call_index).to eq(1) - end - - batch.execute - expect(call1_returned).to eq(true) - expect(call2_returned).to eq(true) - end - end - - describe 'with a valid request and an invalid one' do - before do - @calls = [ - @discovery.apis.get_rest(:api => 'plus', :version => 'v1'), - @discovery.apis.get_rest(:api => 'invalid', :version => 'invalid') - ] - end - - it 'should execute both when using a global callback' do - block_called = 0 - batch = @discovery.batch(@calls) do |result| - block_called += 1 - if result.call_index == 0 - expect(result.status).to eq(200) - else - expect(result.status).to be >= 400 - expect(result.status).to be < 500 - end - end - - batch.execute - expect(block_called).to eq(2) - end - - it 'should execute both when using individual callbacks' do - call1_returned, call2_returned = false, false - batch = @discovery.batch - - batch.add(@calls[0]) do |result| - call1_returned = true - expect(result.status).to eq(200) - expect(result.call_index).to eq(0) - end - - batch.add(@calls[1]) do |result| - call2_returned = true - expect(result.status).to be >= 400 - expect(result.status).to be < 500 - expect(result.call_index).to eq(1) - end - - batch.execute - expect(call1_returned).to eq(true) - expect(call2_returned).to eq(true) - end - end - end -end \ No newline at end of file diff --git a/spec/google/api_client/simple_file_store_spec.rb b/spec/google/api_client/simple_file_store_spec.rb deleted file mode 100644 index cb7d89847..000000000 --- a/spec/google/api_client/simple_file_store_spec.rb +++ /dev/null @@ -1,133 +0,0 @@ -# encoding:utf-8 - -# Copyright 2013 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'google/api_client/service/simple_file_store' - -RSpec.describe Google::APIClient::Service::SimpleFileStore do - - FILE_NAME = 'test.cache' - - describe 'with no cache file' do - before(:each) do - File.delete(FILE_NAME) if File.exists?(FILE_NAME) - @cache = Google::APIClient::Service::SimpleFileStore.new(FILE_NAME) - end - - it 'should return nil when asked if a key exists' do - expect(@cache.exist?('invalid')).to be_nil - expect(File.exists?(FILE_NAME)).to be_falsey - end - - it 'should return nil when asked to read a key' do - expect(@cache.read('invalid')).to be_nil - expect(File.exists?(FILE_NAME)).to be_falsey - end - - it 'should return nil when asked to fetch a key' do - expect(@cache.fetch('invalid')).to be_nil - expect(File.exists?(FILE_NAME)).to be_falsey - end - - it 'should create a cache file when asked to fetch a key with a default' do - expect(@cache.fetch('new_key') do - 'value' - end).to eq('value') - expect(File.exists?(FILE_NAME)).to be_truthy - end - - it 'should create a cache file when asked to write a key' do - @cache.write('new_key', 'value') - expect(File.exists?(FILE_NAME)).to be_truthy - end - - it 'should return nil when asked to delete a key' do - expect(@cache.delete('invalid')).to be_nil - expect(File.exists?(FILE_NAME)).to be_falsey - end - end - - describe 'with an existing cache' do - before(:each) do - File.delete(FILE_NAME) if File.exists?(FILE_NAME) - @cache = Google::APIClient::Service::SimpleFileStore.new(FILE_NAME) - @cache.write('existing_key', 'existing_value') - end - - it 'should return true when asked if an existing key exists' do - expect(@cache.exist?('existing_key')).to be_truthy - end - - it 'should return false when asked if a nonexistent key exists' do - expect(@cache.exist?('invalid')).to be_falsey - end - - it 'should return the value for an existing key when asked to read it' do - expect(@cache.read('existing_key')).to eq('existing_value') - end - - it 'should return nil for a nonexistent key when asked to read it' do - expect(@cache.read('invalid')).to be_nil - end - - it 'should return the value for an existing key when asked to read it' do - expect(@cache.read('existing_key')).to eq('existing_value') - end - - it 'should return nil for a nonexistent key when asked to fetch it' do - expect(@cache.fetch('invalid')).to be_nil - end - - it 'should return and save the default value for a nonexistent key when asked to fetch it with a default' do - expect(@cache.fetch('new_key') do - 'value' - end).to eq('value') - expect(@cache.read('new_key')).to eq('value') - end - - it 'should remove an existing value and return true when asked to delete it' do - expect(@cache.delete('existing_key')).to be_truthy - expect(@cache.read('existing_key')).to be_nil - end - - it 'should return false when asked to delete a nonexistent key' do - expect(@cache.delete('invalid')).to be_falsey - end - - it 'should convert keys to strings when storing them' do - @cache.write(:symbol_key, 'value') - expect(@cache.read('symbol_key')).to eq('value') - end - - it 'should convert keys to strings when reading them' do - expect(@cache.read(:existing_key)).to eq('existing_value') - end - - it 'should convert keys to strings when fetching them' do - expect(@cache.fetch(:existing_key)).to eq('existing_value') - end - - it 'should convert keys to strings when deleting them' do - expect(@cache.delete(:existing_key)).to be_truthy - expect(@cache.read('existing_key')).to be_nil - end - end - - after(:all) do - File.delete(FILE_NAME) if File.exists?(FILE_NAME) - end -end \ No newline at end of file diff --git a/spec/google/api_client_spec.rb b/spec/google/api_client_spec.rb deleted file mode 100644 index eb9a59af7..000000000 --- a/spec/google/api_client_spec.rb +++ /dev/null @@ -1,352 +0,0 @@ -# Copyright 2010 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'spec_helper' - -require 'faraday' -require 'signet/oauth_1/client' -require 'google/api_client' - -shared_examples_for 'configurable user agent' do - include ConnectionHelpers - - it 'should allow the user agent to be modified' do - client.user_agent = 'Custom User Agent/1.2.3' - expect(client.user_agent).to eq('Custom User Agent/1.2.3') - end - - it 'should allow the user agent to be set to nil' do - client.user_agent = nil - expect(client.user_agent).to eq(nil) - end - - it 'should not allow the user agent to be used with bogus values' do - expect(lambda do - client.user_agent = 42 - client.execute(:uri=>'https://www.google.com/') - end).to raise_error(TypeError) - end - - it 'should transmit a User-Agent header when sending requests' do - client.user_agent = 'Custom User Agent/1.2.3' - - conn = stub_connection do |stub| - stub.get('/') do |env| - headers = env[:request_headers] - expect(headers).to have_key('User-Agent') - expect(headers['User-Agent']).to eq(client.user_agent) - [200, {}, ['']] - end - end - client.execute(:uri=>'https://www.google.com/', :connection => conn) - conn.verify - end -end - -RSpec.describe Google::APIClient do - include ConnectionHelpers - - let(:client) { Google::APIClient.new(:application_name => 'API Client Tests') } - - it "should pass the faraday options provided on initialization to FaraDay configuration block" do - client = Google::APIClient.new(faraday_option: {timeout: 999}) - expect(client.connection.options.timeout).to be == 999 - end - - it 'should make its version number available' do - expect(Google::APIClient::VERSION::STRING).to be_instance_of(String) - end - - it 'should default to OAuth 2' do - expect(Signet::OAuth2::Client).to be === client.authorization - end - - describe 'configure for no authentication' do - before do - client.authorization = nil - end - it_should_behave_like 'configurable user agent' - end - - describe 'configured for OAuth 1' do - before do - client.authorization = :oauth_1 - client.authorization.token_credential_key = 'abc' - client.authorization.token_credential_secret = '123' - end - - it 'should use the default OAuth1 client configuration' do - expect(client.authorization.temporary_credential_uri.to_s).to eq( - 'https://www.google.com/accounts/OAuthGetRequestToken' - ) - expect(client.authorization.authorization_uri.to_s).to include( - 'https://www.google.com/accounts/OAuthAuthorizeToken' - ) - expect(client.authorization.token_credential_uri.to_s).to eq( - 'https://www.google.com/accounts/OAuthGetAccessToken' - ) - expect(client.authorization.client_credential_key).to eq('anonymous') - expect(client.authorization.client_credential_secret).to eq('anonymous') - end - - it_should_behave_like 'configurable user agent' - end - - describe 'configured for OAuth 2' do - before do - client.authorization = :oauth_2 - client.authorization.access_token = '12345' - end - - # TODO - it_should_behave_like 'configurable user agent' - end - - describe 'when executing requests' do - before do - @prediction = client.discovered_api('prediction', 'v1.2') - client.authorization = :oauth_2 - @connection = stub_connection do |stub| - stub.post('/prediction/v1.2/training?data=12345') do |env| - expect(env[:request_headers]['Authorization']).to eq('Bearer 12345') - [200, {}, '{}'] - end - end - end - - after do - @connection.verify - end - - it 'should use default authorization' do - client.authorization.access_token = "12345" - client.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :connection => @connection - ) - end - - it 'should use request scoped authorization when provided' do - client.authorization.access_token = "abcdef" - new_auth = Signet::OAuth2::Client.new(:access_token => '12345') - client.execute( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'}, - :authorization => new_auth, - :connection => @connection - ) - end - - it 'should accept options with batch/request style execute' do - client.authorization.access_token = "abcdef" - new_auth = Signet::OAuth2::Client.new(:access_token => '12345') - request = client.generate_request( - :api_method => @prediction.training.insert, - :parameters => {'data' => '12345'} - ) - client.execute( - request, - :authorization => new_auth, - :connection => @connection - ) - end - - - it 'should accept options in array style execute' do - client.authorization.access_token = "abcdef" - new_auth = Signet::OAuth2::Client.new(:access_token => '12345') - client.execute( - @prediction.training.insert, {'data' => '12345'}, '', {}, - { :authorization => new_auth, :connection => @connection } - ) - end - end - - describe 'when retries enabled' do - before do - client.retries = 2 - end - - after do - @connection.verify - end - - it 'should follow redirects' do - client.authorization = nil - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [302, {'location' => 'https://www.google.com/bar'}, '{}'] - end - stub.get('/bar') do |env| - [200, {}, '{}'] - end - end - - client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection - ) - end - - it 'should refresh tokens on 401 errors' do - client.authorization.access_token = '12345' - expect(client.authorization).to receive(:fetch_access_token!) - - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [401, {}, '{}'] - end - stub.get('/foo') do |env| - [200, {}, '{}'] - end - end - - client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection - ) - end - - - it 'should not attempt multiple token refreshes' do - client.authorization.access_token = '12345' - expect(client.authorization).to receive(:fetch_access_token!).once - - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [401, {}, '{}'] - end - end - - client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection - ) - end - - it 'should not retry on client errors' do - count = 0 - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - expect(count).to eq(0) - count += 1 - [403, {}, '{}'] - end - end - - client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection, - :authenticated => false - ) - end - - it 'should retry on 500 errors' do - client.authorization = nil - - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [500, {}, '{}'] - end - stub.get('/foo') do |env| - [200, {}, '{}'] - end - end - - expect(client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection - ).status).to eq(200) - - end - - it 'should fail after max retries' do - client.authorization = nil - count = 0 - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - count += 1 - [500, {}, '{}'] - end - end - - expect(client.execute( - :uri => 'https://www.google.com/foo', - :connection => @connection - ).status).to eq(500) - expect(count).to eq(3) - end - - end - - describe 'when retries disabled and expired_auth_retry on (default)' do - before do - client.retries = 0 - end - - after do - @connection.verify - end - - it 'should refresh tokens on 401 errors' do - client.authorization.access_token = '12345' - expect(client.authorization).to receive(:fetch_access_token!) - - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [401, {}, '{}'] - end - stub.get('/foo') do |env| - [200, {}, '{}'] - end - end - - client.execute( - :uri => 'https://www.gogole.com/foo', - :connection => @connection - ) - end - - end - - describe 'when retries disabled and expired_auth_retry off' do - before do - client.retries = 0 - client.expired_auth_retry = false - end - - it 'should not refresh tokens on 401 errors' do - client.authorization.access_token = '12345' - expect(client.authorization).not_to receive(:fetch_access_token!) - - @connection = stub_connection do |stub| - stub.get('/foo') do |env| - [401, {}, '{}'] - end - stub.get('/foo') do |env| - [200, {}, '{}'] - end - end - - resp = client.execute( - :uri => 'https://www.gogole.com/foo', - :connection => @connection - ) - - expect(resp.response.status).to be == 401 - end - - end -end diff --git a/spec/google/apis/core/api_command_spec.rb b/spec/google/apis/core/api_command_spec.rb new file mode 100644 index 000000000..6d105e200 --- /dev/null +++ b/spec/google/apis/core/api_command_spec.rb @@ -0,0 +1,170 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/api_command' +require 'google/apis/core/json_representation' +require 'hurley/test' + +RSpec.describe Google::Apis::Core::HttpCommand do + include TestHelpers + include_context 'HTTP client' + + let(:model_class) do + Class.new do + attr_accessor :value + end + end + + let(:representer_class) do + Class.new(Google::Apis::Core::JsonRepresentation) do + property :value + end + end + + context('with a request body') do + let(:command) do + request = model_class.new + request.value = 'hello' + command = Google::Apis::Core::ApiCommand.new(:post, 'https://www.googleapis.com/zoo/animals') + command.request_representation = representer_class + command.request_object = request + command + end + + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals') + .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({})) + end + + it 'should serialize the request object' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals').with do |req| + be_json_eql(%({"value":"hello"})).matches?(req.body) + end).to have_been_made + end + end + + context('with a JSON response') do + let(:command) do + command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + command.response_representation = representer_class + command.response_class = model_class + command + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({"value" : "hello"})) + end + + it 'should return a model instance' do + result = command.execute(client) + expect(result).to be_kind_of(model_class) + end + + it 'should return a populated object' do + result = command.execute(client) + expect(result.value).to eql 'hello' + end + end + + context('with an invalid content-type response') do + let(:command) do + command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + command.response_representation = representer_class + command.response_class = model_class + command + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(headers: { 'Content-Type' => 'text/plain' }, body: %(Ignore me)) + end + + it 'should return nil' do + result = command.execute(client) + expect(result).to be_nil + end + end + + + context('with a field parameter') do + let(:command) do + command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + command.query['fields'] = ':items(:id, :long_name)' + command + end + + before(:example) do + stub_request(:get, /.*/) + .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({})) + end + + it 'should normalize fields params' do + command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with(query: { 'fields' => 'items(id, longName)' })) .to have_been_made + end + end + + context('with a rate limit response') do + let(:command) do + Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + json = < 'application/json' }, body: json) + .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({})) + end + + it 'should retry' do + command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals')).to have_been_made.times(2) + end + end + + context('with an empty error body') do + let(:command) do + Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + json = %({}) + + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [403, 'Rate Limit Exceeded'], headers: { 'Content-Type' => 'application/json' }, body: json) + end + + it 'should raise client error' do + expect { command.execute(client) }.to raise_error(Google::Apis::ClientError) + end + end +end diff --git a/spec/google/apis/core/batch_spec.rb b/spec/google/apis/core/batch_spec.rb new file mode 100644 index 000000000..16ef7aa87 --- /dev/null +++ b/spec/google/apis/core/batch_spec.rb @@ -0,0 +1,128 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/batch' +require 'google/apis/core/json_representation' +require 'hurley/test' + +RSpec.describe Google::Apis::Core::BatchCommand do + include TestHelpers + include_context 'HTTP client' + + let(:command) do + command = Google::Apis::Core::BatchCommand.new(:post, 'https://www.googleapis.com/batch') + end + + let(:get_command) { Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals/1') } + + let(:post_with_string_command) do + command = Google::Apis::Core::HttpCommand.new(:post, 'https://www.googleapis.com/zoo/animals/2') + command.body = 'Hello world' + command.header[:content_type] = 'text/plain' + command + end + + let(:post_with_io_command) do + command = Google::Apis::Core::HttpCommand.new(:post, 'https://www.googleapis.com/zoo/animals/3') + command.body = StringIO.new('Goodbye!') + command.header[:content_type] = 'text/plain' + command + end + + before(:example) do + response = < 'multipart/mixed; boundary=batch123' }, body: response) + end + + it 'should send content' do + b = ->(_res, _err) {} + command.add(get_command, &b) + command.add(post_with_string_command, &b) + command.add(post_with_io_command, &b) + command.execute(client) + + expected_body = < 'application/json' }, body: %(Hello world)) + end + + it 'should not include a range header' do + command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| !req.headers.key?('Range') } + ).to have_been_made + end + + it 'should receive content' do + expect(received).to eql 'Hello world' + end + end + + context 'with disconnects' do + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(body: ['Hello ', Timeout::Error]) + .to_return(body: 'world') + end + + it 'should receive entire content' do + expect(received).to eql('Hello world') + end + end + end + + context 'with default destination' do + let(:dest) { nil } + let(:received) { command.execute(client).string } + include_examples 'should download' + end + + context 'with IO destination' do + let(:dest) { Tempfile.new('test') } + let(:received) do + command.execute(client) + dest.rewind + dest.read + end + + include_examples 'should download' + end + + context 'with filename destination' do + let(:dest) { File.join(Dir.mktmpdir, 'test.txt') } + let(:received) do + command.execute(client) + File.read(dest) + end + + include_examples 'should download' + end +end diff --git a/spec/google/apis/core/hashable_spec.rb b/spec/google/apis/core/hashable_spec.rb new file mode 100644 index 000000000..f8a45ba50 --- /dev/null +++ b/spec/google/apis/core/hashable_spec.rb @@ -0,0 +1,60 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/hashable' + +RSpec.describe Google::Apis::Core::Hashable do + let(:child_class) do + Class.new do + include Google::Apis::Core::Hashable + attr_accessor :value + end + end + + let(:model_class) do + Class.new do + include Google::Apis::Core::Hashable + attr_accessor :value + attr_accessor :value2 + attr_accessor :children + end + end + + let(:model) do + obj = model_class.new + obj.value = 'hello' + obj.value2 = { + a: 'a' + } + child = child_class.new + child.value = 'goodbye' + obj.children = [child] + obj + end + + let(:hash) { model.to_h } + + it 'should serialize attributes' do + expect(hash).to include(value: 'hello') + end + + it 'should serialize collections' do + expect(hash).to include(children: [{ value: 'goodbye' }]) + end + + it 'should serialize hashes' do + expect(hash[:value2]).to include(a: 'a') + end +end diff --git a/spec/google/apis/core/http_command_spec.rb b/spec/google/apis/core/http_command_spec.rb new file mode 100644 index 000000000..d9b14cc7d --- /dev/null +++ b/spec/google/apis/core/http_command_spec.rb @@ -0,0 +1,238 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/http_command' +require 'hurley/test' + +RSpec.describe Google::Apis::Core::HttpCommand do + include TestHelpers + include_context 'HTTP client' + + context('with credentials') do + let(:command) do + command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + command.options.authorization = authorization + command + end + + context('that are refreshable') do + let(:authorization) do + calls = 0 + auth = object_double(Signet::OAuth2::Client.new) + allow(auth).to receive(:apply!) do |header| + header['Authorization'] = sprintf('Bearer a_token_value_%d', calls) + calls += 1 + end + auth + end + + it 'should send credentials' do + stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_return(body: %(Hello world)) + result = command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['Authorization'] == 'Bearer a_token_value_0' }).to have_been_made + end + + context('with authorizaton error') do + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [401, 'Unauthorized']) + .to_return(body: %(Hello world)) + end + + it 'should refresh if auth error received' do + result = command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['Authorization'] == 'Bearer a_token_value_1' }).to have_been_made + end + + it 'should ignore retry count' do + command.options.retries = 0 + result = command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['Authorization'] == 'Bearer a_token_value_1' }).to have_been_made + end + end + end + + context('that are bare tokens`') do + let(:authorization) { 'a_token_value' } + + it 'should send credentials' do + stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_return(body: %(Hello world)) + result = command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| expect(req.headers['Authorization']).to eql 'Bearer a_token_value' }).to have_been_made + end + + it 'should send not refresh' do + stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_return(status: [401, 'Unauthorized']) + expect { command.execute(client) }.to raise_error(Google::Apis::AuthorizationError) + end + end + end + + context('with a successful response') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_return(body: %(Hello world)) + end + + it 'should return the response body if block not present' do + result = command.execute(client) + expect(result).to eql 'Hello world' + end + + it 'should call block if present' do + expect { |b| command.execute(client, &b) }.to yield_with_args('Hello world', nil) + end + end + + context('with server errors') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [500, 'Server error']).times(2) + .to_return(body: %(Hello world)) + end + + it 'should return the response body' do + result = command.execute(client) + expect(result).to eql 'Hello world' + end + + it 'should raise error if retries exceeded' do + command.options.retries = 1 + expect { command.execute(client) }.to raise_error(Google::Apis::ServerError) + end + + context('with callbacks') do + it 'should return the response body after retries' do + expect { |b| command.execute(client, &b) }.to yield_successive_args( + [nil, an_instance_of(Google::Apis::ServerError)], + [nil, an_instance_of(Google::Apis::ServerError)], + ['Hello world', nil]) + end + end + end + + context('with options') do + let(:command) do + command = Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + command.options.header = { 'X-Foo' => 'bar' } + command + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(body: %(Hello world)) + end + + it 'should send user headers' do + result = command.execute(client) + expect(a_request(:get, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['X-Foo'] == 'bar' }).to have_been_made + end + end + + + context('with redirects') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [302, 'Redirect'], headers: { 'Location' => 'https://zoo.googleapis.com/animals' }) + stub_request(:get, 'https://zoo.googleapis.com/animals') + .to_return(body: %(Hello world)) + end + + it 'should return the response body' do + result = command.execute(client) + expect(result).to eql 'Hello world' + end + end + + context('with too many redirects') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [302, 'Redirect'], headers: { 'Location' => 'https://www.googleapis.com/zoo/animals' }).times(6) + end + + it 'should raise error if retries exceeded' do + expect { command.execute(client) }.to raise_error(Google::Apis::RedirectError) + end + end + + context('with no server response') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals').to_timeout + end + + it 'should raise transmission error' do + expect { command.execute(client) }.to raise_error(Google::Apis::TransmissionError) + end + end + + context('with invalid status code') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [0, 'Wat!?']) + end + + it 'should raise transmission error' do + expect { command.execute(client) }.to raise_error(Google::Apis::TransmissionError) + end + end + + context('with client errors') do + let(:command) do + Google::Apis::Core::HttpCommand.new(:get, 'https://www.googleapis.com/zoo/animals') + end + + before(:example) do + stub_request(:get, 'https://www.googleapis.com/zoo/animals') + .to_return(status: [400, 'Invalid request']) + end + + it 'should raise error without retry' do + command.options.retries = 1 + expect { command.execute(client) }.to raise_error(Google::Apis::ClientError) + end + + it 'should call block if present' do + expect { |b| command.execute(client, &b) }.to yield_with_args(nil, an_instance_of(Google::Apis::ClientError)) + end + end +end diff --git a/spec/google/apis/core/json_representation_spec.rb b/spec/google/apis/core/json_representation_spec.rb new file mode 100644 index 000000000..28db73dca --- /dev/null +++ b/spec/google/apis/core/json_representation_spec.rb @@ -0,0 +1,192 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/json_representation' + +RSpec.describe Google::Apis::Core::JsonRepresentation do + let(:child_class) do + Class.new do + attr_accessor :value + end + end + + let(:model_class) do + Class.new do + attr_accessor :unset_value + attr_accessor :nil_value + attr_accessor :numeric_value + attr_accessor :string_value + attr_accessor :boolean_value + attr_accessor :date_value + attr_accessor :bytes_value + attr_accessor :items + attr_accessor :child + attr_accessor :children + end + end + + let(:representer_class) do + klass = child_class + Class.new(Google::Apis::Core::JsonRepresentation) do + property :unset_value, as: 'unsetValue' + property :nil_value, as: 'nilValue' + property :numeric_value, as: 'numericValue' + property :string_value, as: 'stringValue' + property :boolean_value, as: 'booleanValue' + property :date_value, as: 'dateValue', type: DateTime + property :bytes_value, as: 'bytesValue', base64: true + property :items + property :child, class: klass do + property :value + end + collection :children, class: klass do + property :value + end + end + end + + shared_examples 'it serializes' do + it 'does not serialize unset values' do + expect(json).not_to have_json_path('unsetValue') + end + + it 'serializes explicit nil values' do + expect(json).to be_json_eql(%(null)).at_path('nilValue') + end + + it 'serializes numeric values' do + expect(json).to be_json_eql(%(123)).at_path('numericValue') + end + + it 'serializes string values' do + expect(json).to be_json_eql(%("test")).at_path('stringValue') + end + + it 'serializes boolean values' do + expect(json).to be_json_eql(%(true)).at_path('booleanValue') + end + + it 'serializes date values' do + expect(json).to be_json_eql(%("2015-05-01T12:00:00+00:00")).at_path('dateValue') + end + + it 'serializes byte values to base64' do + expect(json).to be_json_eql(%("SGVsbG8gd29ybGQ=")).at_path('bytesValue') + end + + it 'serializes basic collections' do + expect(json).to be_json_eql(%([1,2,3])).at_path('items') + end + + it 'serializes nested objects' do + expect(json).to be_json_eql(%({"value" : "child"})).at_path('child') + end + + it 'serializes object collections' do + expect(json).to be_json_eql(%([{"value" : "child"}])).at_path('children') + end + end + + context 'with model object' do + let(:json) { representer_class.new(model).to_json(skip_undefined: true) } + let(:model) do + model = model_class.new + model.nil_value = nil + model.numeric_value = 123 + model.string_value = 'test' + model.date_value = DateTime.new(2015, 5, 1, 12) + model.boolean_value = true + model.bytes_value = 'Hello world' + model.items = [1, 2, 3] + model.child = child_class.new + model.child.value = 'child' + model.children = [model.child] + model + end + + include_examples 'it serializes' + end + + context 'with hash' do + let(:json) { representer_class.new(model).to_json(skip_undefined: true) } + let(:model) do + { + nil_value: nil, + string_value: 'test', + numeric_value: 123, + date_value: DateTime.new(2015, 5, 1, 12), + boolean_value: true, + bytes_value: 'Hello world', + items: [1, 2, 3], + child: { + value: 'child' + }, + children: [{ value: 'child' }] + } + end + + include_examples 'it serializes' + end + + context 'when de-serializing' do + let(:model) { representer_class.new(model_class.new).from_json(json) } + let(:json) do + json = < 'media') + end + + include_examples 'with options' + end + + context 'when making upload commands' do + let(:command) { service.send(:make_upload_command, :post, 'zoo/animals', authorization: 'foo') } + + it 'should return the correct command type' do + expect(command).to be_an_instance_of(Google::Apis::Core::ResumableUploadCommand) + end + + it 'should build a correct URL' do + url = command.url.expand({}).to_s + expect(url).to eql 'https://www.googleapis.com/upload/zoo/animals' + end + + include_examples 'with options' + end + + context 'with batch' do + before(:example) do + response = < 'multipart/mixed; boundary=batch123' }, body: response) + end + + it 'should add commands to a batch' do + expect do |b| + service.batch do |service| + command = service.send(:make_simple_command, :get, 'zoo/animals', {}) + service.send(:execute_or_queue_command, command, &b) + end + end.to yield_with_args('Hello', nil) + end + + it 'should disallow uploads in batch' do + expect do |b| + service.batch do |service| + command = service.send(:make_upload_command, :post, 'zoo/animals', {}) + service.send(:execute_or_queue_command, command, &b) + end + end.to raise_error(Google::Apis::ClientError) + end + + it 'should disallow downloads in batch' do + expect do |b| + service.batch do |service| + command = service.send(:make_download_command, :get, 'zoo/animals', {}) + service.send(:execute_or_queue_command, command, &b) + end + end.to raise_error(Google::Apis::ClientError) + end + end + + context 'with batch uploads' do + before(:example) do + response = < 'multipart/mixed; boundary=batch123' }, body: response) + end + + it 'should add upload to a batch' do + expect do |b| + service.batch_upload do |service| + command = service.send(:make_upload_command, :post, 'zoo/animals', {}) + command.upload_source = StringIO.new('test') + command.upload_content_type = 'text/plain' + service.send(:execute_or_queue_command, command, &b) + end + end.to yield_with_args('Hello', nil) + end + + it 'should use multipart upload' do + expect do |b| + service.batch_upload do |service| + command = service.send(:make_upload_command, :post, 'zoo/animals', {}) + command.upload_source = StringIO.new('test') + command.upload_content_type = 'text/plain' + expect(command).to be_an_instance_of(Google::Apis::Core::MultipartUploadCommand) + service.send(:execute_or_queue_command, command, &b) + end + end.to yield_with_args('Hello', nil) + end + + it 'should disallow downloads in batch' do + expect do |b| + service.batch_upload do |service| + command = service.send(:make_download_command, :get, 'zoo/animals', {}) + service.send(:execute_or_queue_command, command, &b) + end + end.to raise_error(Google::Apis::ClientError) + end + + it 'should disallow simple commands in batch' do + expect do |b| + service.batch_upload do |service| + command = service.send(:make_simple_command, :get, 'zoo/animals', {}) + service.send(:execute_or_queue_command, command, &b) + end + end.to raise_error(Google::Apis::ClientError) + end + end +end diff --git a/spec/google/apis/core/upload_spec.rb b/spec/google/apis/core/upload_spec.rb new file mode 100644 index 000000000..037341b29 --- /dev/null +++ b/spec/google/apis/core/upload_spec.rb @@ -0,0 +1,238 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/core/upload' +require 'google/apis/core/json_representation' +require 'hurley/test' + +# TODO: JSON Response decoding +# TODO: Upload from IO +# TODO: Upload from file + +RSpec.describe Google::Apis::Core::UploadIO do + let(:upload_io) { Google::Apis::Core::UploadIO.from_file(file) } + + context 'with text file' do + let(:file) { File.join(FIXTURES_DIR, 'files', 'test.txt') } + it 'should infer content type from file' do + expect(upload_io.content_type).to eql('text/plain') + end + + it 'should allow overriding the mime type' do + io = Google::Apis::Core::UploadIO.from_file(file, content_type: 'application/json') + expect(io.content_type).to eql('application/json') + end + end + + context 'with unknown type' do + let(:file) { File.join(FIXTURES_DIR, 'files', 'test.blah') } + it 'should use the default mime type' do + expect(upload_io.content_type).to eql('application/octet-stream') + end + + it 'should allow overriding the mime type' do + io = Google::Apis::Core::UploadIO.from_file(file, content_type: 'application/json') + expect(io.content_type).to eql('application/json') + end + end +end + +RSpec.describe Google::Apis::Core::RawUploadCommand do + include TestHelpers + include_context 'HTTP client' + + let(:command) do + command = Google::Apis::Core::RawUploadCommand.new(:post, 'https://www.googleapis.com/zoo/animals') + command.upload_source = file + command.upload_content_type = 'text/plain' + command + end + + shared_examples 'should upload' do + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals').to_return(body: '') + end + + it 'should send content' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with(body: "Hello world\n")).to have_been_made + end + + it 'should send upload protocol' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['X-Goog-Upload-Protocol'] == 'raw' }).to have_been_made + end + end + + context('with StringIO input') do + let(:file) { StringIO.new("Hello world\n") } + include_examples 'should upload' + end + + context('with IO input') do + let(:file) { File.open(File.join(FIXTURES_DIR, 'files', 'test.txt'), 'r') } + include_examples 'should upload' + + it 'should not close stream' do + expect(file.closed?).to be false + end + end + + context('with file path input') do + let(:file) { File.join(FIXTURES_DIR, 'files', 'test.txt') } + include_examples 'should upload' + end + + context('with invalid input') do + let(:file) { -> {} } + it 'should raise client error' do + expect { command.execute(client) }.to raise_error(Google::Apis::ClientError) + end + end +end + +RSpec.describe Google::Apis::Core::MultipartUploadCommand do + include TestHelpers + include_context 'HTTP client' + + let(:command) do + command = Google::Apis::Core::MultipartUploadCommand.new(:post, 'https://www.googleapis.com/zoo/animals') + command.upload_source = StringIO.new('Hello world') + command.upload_content_type = 'text/plain' + command.body = 'metadata' + command + end + + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals').to_return(body: %(Hello world)) + end + + it 'should send content' do + expected_body = < 'active', 'X-Goog-Upload-URL' => 'https://www.googleapis.com/zoo/animals' }) + .to_return(headers: { 'X-Goog-Upload-Status' => 'final' }, body: %(OK)) + end + + it 'should send upload protocol' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['X-Goog-Upload-Protocol'] == 'resumable' }).to have_been_made + end + + it 'should send start command' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['X-Goog-Upload-Command'] == 'start' }).to have_been_made + end + + it 'should send upload command' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with { |req| req.headers['X-Goog-Upload-Command'].include?('upload') }).to have_been_made + end + + it 'should send upload content' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with(body: 'Hello world')).to have_been_made + end + end + + context 'with retriable error on start' do + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals') + .to_timeout + .to_return(headers: { 'X-Goog-Upload-Status' => 'active', 'X-Goog-Upload-URL' => 'https://www.googleapis.com/zoo/animals' }) + .to_return(headers: { 'X-Goog-Upload-Status' => 'active', 'X-Goog-Upload-Size-Received' => '6' }) + .to_return(headers: { 'X-Goog-Upload-Status' => 'final' }, body: %(OK)) + end + + it 'should retry start command and continue' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with(body: 'Hello world')).to have_been_made + end + end + + context 'with interruption' do + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals') + .to_return(headers: { 'X-Goog-Upload-Status' => 'active', 'X-Goog-Upload-URL' => 'https://www.googleapis.com/zoo/animals' }) + .to_return(status: [500, 'Server error']) + .to_return(headers: { 'X-Goog-Upload-Status' => 'active', 'X-Goog-Upload-Size-Received' => '6' }) + .to_return(headers: { 'X-Goog-Upload-Status' => 'final' }, body: %(OK)) + end + + it 'should send remaining upload content after failure' do + command.execute(client) + expect(a_request(:post, 'https://www.googleapis.com/zoo/animals') + .with(body: 'world')).to have_been_made + end + end + + context 'with cancelled upload' do + before(:example) do + stub_request(:post, 'https://www.googleapis.com/zoo/animals') + .to_return(headers: { 'X-Goog-Upload-Status' => 'active', 'X-Goog-Upload-URL' => 'https://www.googleapis.com/zoo/animals' }) + .to_return(status: [500, 'Server error']) + .to_return(headers: { 'X-Goog-Upload-Status' => 'cancelled' }) + end + + it 'should raise error' do + expect { command.execute(client) }.to raise_error Google::Apis::ClientError + end + end +end diff --git a/lib/google/api_client/service_account.rb b/spec/google/apis/generated_spec.rb similarity index 56% rename from lib/google/api_client/service_account.rb rename to spec/google/apis/generated_spec.rb index 3d941ae07..00945e336 100644 --- a/lib/google/api_client/service_account.rb +++ b/spec/google/apis/generated_spec.rb @@ -1,4 +1,4 @@ -# Copyright 2010 Google Inc. +# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -require 'google/api_client/auth/pkcs12' -require 'google/api_client/auth/jwt_asserter' -require 'google/api_client/auth/key_utils' -require 'google/api_client/auth/compute_service_account' -require 'google/api_client/auth/storage' -require 'google/api_client/auth/storages/redis_store' -require 'google/api_client/auth/storages/file_store' +require 'spec_helper' + +RSpec.describe Google::Apis do + # Minimal test just to ensure no syntax errors in generated code + it 'should load all APIs' do + expect do + Dir.glob(File.join(ROOT_DIR, 'generated', 'google', 'apis', '*.rb')) do |file| + base = File.basename(file, '.rb') + require sprintf('google/apis/%s', base) + end + end.not_to raise_error + end +end diff --git a/spec/google/apis/generator/generator_spec.rb b/spec/google/apis/generator/generator_spec.rb new file mode 100644 index 000000000..a771d80d4 --- /dev/null +++ b/spec/google/apis/generator/generator_spec.rb @@ -0,0 +1,272 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/generator' +require 'tmpdir' +require 'fileutils' + +# TODO - Naked arrays in method requests/responses + +RSpec.describe Google::Apis::Generator do + include TestHelpers + + context 'with test API' do + before(:context) do + generator = Google::Apis::Generator.new(api_names: File.join(FIXTURES_DIR, 'files', 'api_names.yaml')) + discovery = File.read(File.join(FIXTURES_DIR, 'files', 'test_api.json')) + generated_files = generator.render(discovery) + puts generator.dump_api_names + tempdir = Dir.mktmpdir + generated_files.each do |key, content| + path = File.join(tempdir, key) + FileUtils.mkdir_p(File.dirname(path)) + File.open(path, 'w') do |f| + f.write(content) + end + end + $LOAD_PATH.unshift(tempdir) + require 'google/apis/test_v1' + end + + let(:service) { Google::Apis::TestV1::TestService.new } + + context 'with the generated service' do + it 'should set the base URL' do + expect(service.root_url.to_s).to eql('https://www.googleapis.com/') + end + + it 'should define global methods from discovery' do + expect(service.method(:query)).to_not be_nil + end + + it 'should define parameters on methods' do + parameters = service.method(:query).parameters.map { |(_k, v)| v } + expect(parameters).to include(:s, :i, :n, :b, :a, :e, :er, :sr) + end + + it 'should modify parameter names that are ruby keywords' do + parameters = service.method(:query).parameters.map { |(_k, v)| v } + expect(parameters).to include(:do_) + end + + it 'should define global parameters on methods' do + parameters = service.method(:query).parameters.map { |(_k, v)| v } + expect(parameters).to include(:fields, :quota_user, :user_ip) + end + + it 'should include standard options & block' do + parameters = service.method(:query).parameters.map { |(_k, v)| v } + expect(parameters).to include(:options, :block) + end + + it 'should define AUTH_TEST scope' do + expect(Google::Apis::TestV1::AUTH_TEST).to eql ('https://www.googleapis.com/auth/test') + end + + it 'should define AUTH_TEST_READONLY scope' do + expect(Google::Apis::TestV1::AUTH_TEST_READONLY).to eql ('https://www.googleapis.com/auth/test.readonly') + end + + context 'when simplifying class names' do + it 'should simplify the TestAnotherThing name' do + expect { Google::Apis::TestV1::AnotherThing.new }.not_to raise_error + end + + it 'should not simplify the TestThing name' do + expect { Google::Apis::TestV1::TestThing.new }.not_to raise_error + end + end + + + context 'with the Thing resource' do + it 'should define the create method`' do + expect(service.method(:create_thing)).to_not be_nil + end + + it 'should define the list method`' do + expect(service.method(:list_things)).to_not be_nil + end + + it 'should define the get method`' do + expect(service.method(:get_thing)).to_not be_nil + end + + it 'should include the download_dest parameter for get_thing' do + parameters = service.method(:get_thing).parameters.map { |(_k, v)| v } + expect(parameters).to include(:download_dest) + end + + it 'should define the update method`' do + expect(service.method(:update_thing)).to_not be_nil + end + + it 'should include the upload_source parameter for update_thing' do + parameters = service.method(:update_thing).parameters.map { |(_k, v)| v } + expect(parameters).to include(:upload_source) + end + + it 'should define subresource methods' do + expect(service.method(:list_thing_subthings)).to_not be_nil + end + end + + context 'with the get_thing method' do + before(:example) do + json = < 'application/json' }, body: json) + end + + let(:thing) { service.get_thing('123') } + + it 'should return a Thing' do + expect(thing).to be_instance_of(Google::Apis::TestV1::Thing) + end + + it 'should set attributes' do + expect(thing.id).to eql '123' + end + + it 'should alias boolean methods on Thing' do + expect(thing.enabled?).to be true + end + + it 'should return a Hash for properties' do + expect(thing.properties).to be_instance_of(Hash) + end + + it 'should set hash elements' do + expect(thing.properties).to include('prop_a' => 'value_a') + end + + it 'should return the correct variant type for hat' do + expect(thing.hat).to be_instance_of(Google::Apis::TestV1::BaseballHat) + end + + it 'should return the correct variant properties for hat' do + expect(thing.hat.color).to eql 'red' + end + + it 'should return a photo' do + expect(thing.photo).to be_instance_of(Google::Apis::TestV1::Thing::Photo) + end + + it 'should return photo properties' do + expect(thing.photo.filename).to eql 'image.jpg' + end + end + + context 'with the create_thing method' do + before(:example) do + json = < 'application/json' }, body: json) + end + + let(:thing) do + thing = Google::Apis::TestV1::Thing.new(name: 'A thing', properties: { 'prop_a' => 'value_a' }) + thing.photo = Google::Apis::TestV1::Thing::Photo.new(filename: 'image.jpg') + thing.hat = Google::Apis::TestV1::TopHat.new(type: 'topHat', height: 100) + service.create_thing(thing) + end + + it 'should serialize the thing' do + expected_body = < 'application/json' }, body: body) + end + + it 'should return query results' do + results = service.query + expect(results).to be_instance_of(Google::Apis::TestV1::QueryResults) + end + + it 'should return an array for items' do + results = service.query + expect(results.rows).to be_instance_of(Array) + end + + it 'should return items of type Row' do + results = service.query + expect(results.rows.first).to be_instance_of(Google::Apis::TestV1::Row) + end + + it 'should return values for rows' do + results = service.query + expect(results.rows[1].value).to eql('world') + end + end + end + end +end diff --git a/spec/google/apis/logging_spec.rb b/spec/google/apis/logging_spec.rb new file mode 100644 index 000000000..96d939a5a --- /dev/null +++ b/spec/google/apis/logging_spec.rb @@ -0,0 +1,45 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis' +require 'google/apis/core/logging' + +RSpec.describe Google::Apis do + it 'should have a default logger' do + expect(Google::Apis.logger).to be_an_instance_of(Logger) + end + + context 'with service' do + let(:service) do + Class.new do + include Google::Apis::Core::Logging + end.new + end + + it 'should have a logger' do + expect(service.logger).to be_an_instance_of(Logger) + end + + it 'should use the default logger' do + expect(service.logger).to be Google::Apis.logger + end + + it 'should allow custom loggers' do + Google::Apis.logger = Logger.new(STDERR) + expect(service.logger).to be Google::Apis.logger + end + + end +end diff --git a/spec/google/apis/options_spec.rb b/spec/google/apis/options_spec.rb new file mode 100644 index 000000000..387ecb560 --- /dev/null +++ b/spec/google/apis/options_spec.rb @@ -0,0 +1,40 @@ +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require 'spec_helper' +require 'google/apis/options' + +RSpec.describe Google::Apis::RequestOptions do + let(:options) { Google::Apis::RequestOptions.new } + + it 'should not merge nil values' do + options.retries = 1 + expect(options.merge(authorization: 'foo').retries).to eql 1 + end + + it 'should merge non-nil values' do + options.retries = 1 + expect(options.merge(authorization: 'foo').authorization).to eql 'foo' + end + + it 'should merge from options' do + opts = Google::Apis::RequestOptions.new + opts.authorization = 'foo' + expect(options.merge(opts).authorization).to eql 'foo' + end + + it 'should allow nil in merge' do + expect(options.merge(nil)).to be_an_instance_of(Google::Apis::RequestOptions) + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1c64a4e8c..6b7514699 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,66 +1,117 @@ -$LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__)) +# Copyright 2015 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +SPEC_DIR = File.expand_path(File.dirname(__FILE__)) +ROOT_DIR = File.expand_path(File.join(SPEC_DIR, '..')) +LIB_DIR = File.expand_path(File.join(ROOT_DIR, 'lib')) +GENERATED_DIR = File.expand_path(File.join(ROOT_DIR, 'generated')) +FIXTURES_DIR = File.expand_path(File.join(SPEC_DIR, 'fixtures')) + +$LOAD_PATH.unshift(SPEC_DIR) +$LOAD_PATH.unshift(LIB_DIR) +$LOAD_PATH.unshift(GENERATED_DIR) $LOAD_PATH.uniq! -require 'rspec' -require 'faraday' -begin +if defined?(JRUBY_VERSION) + puts 'Skipping coverage on JRuby' +else + # set up coverage require 'simplecov' require 'coveralls' - SimpleCov.formatter = Coveralls::SimpleCov::Formatter - SimpleCov.start -rescue LoadError - # SimpleCov missing, so just run specs with no coverage. -end - -Faraday::Adapter.load_middleware(:test) - -module Faraday - class Connection - def verify - if app.kind_of?(Faraday::Adapter::Test) - app.stubs.verify_stubbed_calls - else - raise TypeError, "Expected test adapter" - end - end + SimpleCov.formatters = [ + Coveralls::SimpleCov::Formatter, + SimpleCov::Formatter::HTMLFormatter + ] + SimpleCov.start do + add_filter '/spec/' + add_filter '/generated/' end end -module ConnectionHelpers - def stub_connection(&block) - stubs = Faraday::Adapter::Test::Stubs.new do |stub| - block.call(stub) - end - connection = Faraday.new do |builder| - builder.options.params_encoder = Faraday::FlatParamsEncoder - builder.adapter(:test, stubs) - end - end -end - -module JSONMatchers - class EqualsJson - def initialize(expected) - @expected = JSON.parse(expected) - end - def matches?(target) - @target = JSON.parse(target) - @target.eql?(@expected) - end - def failure_message - "expected #{@target.inspect} to be #{@expected}" - end - def negative_failure_message - "expected #{@target.inspect} not to be #{@expected}" - end - end - - def be_json(expected) - EqualsJson.new(expected) - end -end +require 'rspec' +require 'webmock/rspec' +require 'json_spec' +require 'logging' +require 'rspec/logging_helper' +require 'google/apis' +require 'google/apis/core/base_service' +# Configure RSpec to capture log messages for each test. The output from the +# logs will be stored in the @log_output variable. It is a StringIO instance. RSpec.configure do |config| + include RSpec::LoggingHelper + config.include JsonSpec::Helpers + config.include WebMock::API + config.capture_log_messages + + Google::Apis.logger.level = Logger::DEBUG +end + +[JsonSpec::Matchers::BeJsonEql, + JsonSpec::Matchers::IncludeJson, + JsonSpec::Matchers::HaveJsonType, + JsonSpec::Matchers::HaveJsonSize, + JsonSpec::Matchers::HaveJsonPath].each do |klass| + klass.send(:alias_method, :===, :matches?) +end + +RSpec.shared_context 'HTTP client' do + let(:client) do + Google::Apis::Core::BaseService.new('', '').client + end +end + +module TestHelpers + include WebMock::API + include WebMock::Matchers +end + +# Enable retries for tests +Google::Apis::RequestOptions.default.retries = 5 + +# Temporarily patch WebMock to allow chunked responses for Net::HTTP +module Net + module WebMockHTTPResponse + def eval_chunk(chunk) + puts chunk.is_a? Exception + chunk if chunk.is_a?(String) + chunk.read if chunk.is_a?(IO) + chunk.call if chunk.is_a?(Proc) + fail chunk if chunk.is_a?(Class) + chunk + end + + def read_body(dest = nil, &block) + if !(defined?(@__read_body_previously_called).nil?) && @__read_body_previously_called + return super + end + return @body if dest.nil? && block.nil? + fail ArgumentError.new('both arg and block given for HTTP method') if dest && block + return nil if @body.nil? + + dest ||= ::Net::ReadAdapter.new(block) + body_parts = Array(@body) + body_parts.each do |chunk| + chunk = eval_chunk(chunk) + dest << chunk + end + @body = dest + ensure + # allow subsequent calls to #read_body to proceed as normal, without our hack... + @__read_body_previously_called = true + end + end end diff --git a/yard/bin/yard-wiki b/yard/bin/yard-wiki deleted file mode 100755 index 61416750e..000000000 --- a/yard/bin/yard-wiki +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env ruby -$LOAD_PATH.unshift( - File.expand_path(File.join(File.dirname(__FILE__), '../lib')) -) -$LOAD_PATH.uniq! - -require 'yard/cli/wiki' - -YARD::CLI::Wiki.run(*ARGV) diff --git a/yard/lib/yard-google-code.rb b/yard/lib/yard-google-code.rb deleted file mode 100644 index cd4eba834..000000000 --- a/yard/lib/yard-google-code.rb +++ /dev/null @@ -1,12 +0,0 @@ -$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) -$LOAD_PATH.uniq! - -YARD::Templates::Engine.register_template_path File.dirname(__FILE__) + '/../templates' -require 'yard/templates/template' -require 'yard/templates/helpers/wiki_helper' - -::YARD::Templates::Template.extra_includes |= [ - YARD::Templates::Helpers::WikiHelper -] - -require 'yard/serializers/wiki_serializer' diff --git a/yard/lib/yard/cli/wiki.rb b/yard/lib/yard/cli/wiki.rb deleted file mode 100644 index 2c1739319..000000000 --- a/yard/lib/yard/cli/wiki.rb +++ /dev/null @@ -1,44 +0,0 @@ -require 'yard' -require 'yard/serializers/wiki_serializer' -require 'yard/cli/yardoc' - -module YARD - module CLI - class Wiki < Yardoc - # Creates a new instance of the commandline utility - def initialize - super - @options = SymbolHash.new(false) - @options.update( - :format => :html, - :template => :default, - :markup => :rdoc, # default is :rdoc but falls back on :none - :serializer => YARD::Serializers::WikiSerializer.new, # Sigh. :-( - :default_return => "Object", - :hide_void_return => false, - :no_highlight => false, - :files => [], - :verifier => Verifier.new - ) - @visibilities = [:public] - @assets = {} - @excluded = [] - @files = [] - @hidden_tags = [] - @use_cache = false - @use_yardopts_file = true - @use_document_file = true - @generate = true - @options_file = DEFAULT_YARDOPTS_FILE - @statistics = true - @list = false - @save_yardoc = true - @has_markup = false - - if defined?(::Encoding) && ::Encoding.respond_to?(:default_external=) - ::Encoding.default_external, ::Encoding.default_internal = 'utf-8', 'utf-8' - end - end - end - end -end diff --git a/yard/lib/yard/rake/wikidoc_task.rb b/yard/lib/yard/rake/wikidoc_task.rb deleted file mode 100644 index 573bfb4d3..000000000 --- a/yard/lib/yard/rake/wikidoc_task.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'rake' -require 'rake/tasklib' -require 'yard/rake/yardoc_task' -require 'yard/cli/wiki' - -module YARD - module Rake - # The rake task to run {CLI::Yardoc} and generate documentation. - class WikidocTask < YardocTask - protected - - # Defines the rake task - # @return [void] - def define - desc "Generate Wiki Documentation with YARD" - task(name) do - before.call if before.is_a?(Proc) - yardoc = YARD::CLI::Wiki.new - yardoc.parse_arguments *(options + files) - yardoc.options[:verifier] = verifier if verifier - yardoc.run - after.call if after.is_a?(Proc) - end - end - end - end -end diff --git a/yard/lib/yard/serializers/wiki_serializer.rb b/yard/lib/yard/serializers/wiki_serializer.rb deleted file mode 100644 index 469c4736e..000000000 --- a/yard/lib/yard/serializers/wiki_serializer.rb +++ /dev/null @@ -1,68 +0,0 @@ -# encoding: utf-8 - -require 'yard/serializers/file_system_serializer' - -module YARD - module Serializers - ## - # Subclass required to get correct filename for the top level namespace. - # :-( - class WikiSerializer < FileSystemSerializer - # Post-process the data before serializing. - # Strip unnecessary whitespace. - # Convert stuff into more wiki-friendly stuff. - # FULL OF HACKS! - def serialize(object, data) - data = data.encode("UTF-8") - if object == "Sidebar.wiki" - data = data.gsub(/^#sidebar Sidebar\n/, "") - end - data = data.gsub(/\n\s*\n/, "\n") - # ASCII/UTF-8 erb error work-around. - data = data.gsub(/--/, "—") - data = data.gsub(/——/, "----") - data = data.gsub(/----\n----/, "----") - # HACK! Google Code Wiki treats blocks like
     blocks.
    -        data = data.gsub(/\(.+)\<\/code\>/, "`\\1`")
    -        super(object, data)
    -      end
    -
    -      def serialized_path(object)
    -        return object if object.is_a?(String)
    -
    -        if object.is_a?(CodeObjects::ExtraFileObject)
    -          fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")]
    -        else
    -          # This line is the only change of significance.
    -          # Changed from 'top-level-namespace' to 'TopLevelNamespace' to
    -          # conform to wiki word page naming convention.
    -          objname = object != YARD::Registry.root ? object.name.to_s : "TopLevelNamespace"
    -          objname += '_' + object.scope.to_s[0,1] if object.is_a?(CodeObjects::MethodObject)
    -          fspath = [objname + (extension.empty? ? '' : ".#{extension}")]
    -          if object.namespace && object.namespace.path != ""
    -            fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
    -          end
    -        end
    -
    -        # Don't change the filenames, it just makes it more complicated
    -        # to figure out the original name.
    -        #fspath.map! do |p|
    -        #  p.gsub(/([a-z])([A-Z])/, '\1_\2').downcase
    -        #end
    -
    -        # Remove special chars from filenames.
    -        # Windows disallows \ / : * ? " < > | but we will just remove any
    -        # non alphanumeric (plus period, underscore and dash).
    -        fspath.map! do |p|
    -          p.gsub(/[^\w\.-]/) do |x|
    -            encoded = '_'
    -
    -            x.each_byte { |b| encoded << ("%X" % b) }
    -            encoded
    -          end
    -        end
    -        fspath.join("")
    -      end
    -    end
    -  end
    -end
    diff --git a/yard/lib/yard/templates/helpers/wiki_helper.rb b/yard/lib/yard/templates/helpers/wiki_helper.rb
    deleted file mode 100644
    index e03dfb668..000000000
    --- a/yard/lib/yard/templates/helpers/wiki_helper.rb
    +++ /dev/null
    @@ -1,502 +0,0 @@
    -require 'cgi'
    -require 'rdiscount'
    -
    -module YARD
    -  module Templates::Helpers
    -    # The helper module for HTML templates.
    -    module WikiHelper
    -      include MarkupHelper
    -
    -      # @return [String] escapes text
    -      def h(text)
    -        out = ""
    -        text = text.split(/\n/)
    -        text.each_with_index do |line, i|
    -          out <<
    -          case line
    -          when /^\s*$/; "\n\n"
    -          when /^\s+\S/, /^=/; line + "\n"
    -          else; line + (text[i + 1] =~ /^\s+\S/ ? "\n" : " ")
    -          end
    -        end
    -        out.strip
    -      end
    -
    -      # @return [String] wraps text at +col+ columns.
    -      def wrap(text, col = 72)
    -        text.strip.gsub(/(.{1,#{col}})( +|$\n?)|(.{1,#{col}})/, "\\1\\3\n")
    -      end
    -
    -      # Escapes a URL
    -      # 
    -      # @param [String] text the URL
    -      # @return [String] the escaped URL
    -      def urlencode(text)
    -        CGI.escape(text.to_s)
    -      end
    -
    -      def indent(text, len = 2)
    -        text.gsub(/^/, ' ' * len)
    -      end
    -
    -      def unindent(text)
    -        lines = text.split("\n", -1)
    -        min_indent_size = text.size
    -        for line in lines
    -          indent_size = (line.gsub("\t", "  ") =~ /[^\s]/) || text.size
    -          min_indent_size = indent_size if indent_size < min_indent_size
    -        end
    -        text.gsub("\t", "  ").gsub(Regexp.new("^" + " " * min_indent_size), '')
    -      end
    -
    -      # @group Converting Markup to HTML
    -
    -      # Turns text into HTML using +markup+ style formatting.
    -      #
    -      # @param [String] text the text to format
    -      # @param [Symbol] markup examples are +:markdown+, +:textile+, +:rdoc+.
    -      #   To add a custom markup type, see {MarkupHelper}
    -      # @return [String] the HTML
    -      def htmlify(text, markup = options[:markup])
    -        markup_meth = "html_markup_#{markup}"
    -        return text unless respond_to?(markup_meth)
    -        return "" unless text
    -        return text unless markup
    -        load_markup_provider(markup)
    -        html = send(markup_meth, text)
    -        if html.respond_to?(:encode)
    -          html = html.force_encoding(text.encoding) # for libs that mess with encoding
    -          html = html.encode(:invalid => :replace, :replace => '?')
    -        end
    -        html = resolve_links(html)
    -        html = html.gsub(/
    (?:\s*)?(.+?)(?:<\/code>\s*)?<\/pre>/m) do
    -          str = unindent($1).strip
    -          str = html_syntax_highlight(CGI.unescapeHTML(str)) unless options[:no_highlight]
    -          str
    -        end unless markup == :text
    -        html
    -      end
    -
    -      # Converts Markdown to HTML
    -      # @param [String] text input Markdown text
    -      # @return [String] output HTML
    -      # @since 0.6.0
    -      def html_markup_markdown(text)
    -        Markdown.new(text).to_html
    -      end
    -
    -      # Converts Textile to HTML
    -      # @param [String] text the input Textile text
    -      # @return [String] output HTML
    -      # @since 0.6.0
    -      def html_markup_textile(text)
    -        doc = markup_class(:textile).new(text)
    -        doc.hard_breaks = false if doc.respond_to?(:hard_breaks=)
    -        doc.to_html
    -      end
    -
    -      # Converts plaintext to HTML
    -      # @param [String] text the input text
    -      # @return [String] the output HTML
    -      # @since 0.6.0
    -      def html_markup_text(text)
    -        "
    " + text + "
    " - end - - # Converts HTML to HTML - # @param [String] text input html - # @return [String] output HTML - # @since 0.6.0 - def html_markup_html(text) - text - end - - # @return [String] HTMLified text as a single line (paragraphs removed) - def htmlify_line(*args) - htmlify(*args) - end - - # Fixes RDoc behaviour with ++ only supporting alphanumeric text. - # - # @todo Refactor into own SimpleMarkup subclass - def fix_typewriter(text) - text.gsub(/\+(?! )([^\n\+]{1,900})(?! )\+/) do - type_text, pre_text, no_match = $1, $`, $& - pre_match = pre_text.scan(%r()) - if pre_match.last.nil? || pre_match.last.include?('/') - '`' + h(type_text) + '`' - else - no_match - end - end - end - - # Don't allow -- to turn into — element. The chances of this being - # some --option is far more likely than the typographical meaning. - # - # @todo Refactor into own SimpleMarkup subclass - def fix_dash_dash(text) - text.gsub(/—(?=\S)/, '--') - end - - # @group Syntax Highlighting Source Code - - # Syntax highlights +source+ in language +type+. - # - # @note To support a specific language +type+, implement the method - # +html_syntax_highlight_TYPE+ in this class. - # - # @param [String] source the source code to highlight - # @param [Symbol] type the language type (:ruby, :plain, etc). Use - # :plain for no syntax highlighting. - # @return [String] the highlighted source - def html_syntax_highlight(source, type = nil) - return "" unless source - return "{{{\n#{source}\n}}}" - end - - # @return [String] unhighlighted source - def html_syntax_highlight_plain(source) - return "" unless source - return "{{{\n#{source}\n}}}" - end - - # @group Linking Objects and URLs - - # Resolves any text in the form of +{Name}+ to the object specified by - # Name. Also supports link titles in the form +{Name title}+. - # - # @example Linking to an instance method - # resolve_links("{MyClass#method}") # => "MyClass#method" - # @example Linking to a class with a title - # resolve_links("{A::B::C the C class}") # => "the c class" - # @param [String] text the text to resolve links in - # @return [String] HTML with linkified references - def resolve_links(text) - code_tags = 0 - text.gsub(/<(\/)?(pre|code|tt)|\{(\S+?)(?:\s(.*?\S))?\}(?=[\W<]|.+<\/|$)/) do |str| - closed, tag, name, title, match = $1, $2, $3, $4, $& - if tag - code_tags += (closed ? -1 : 1) - next str - end - next str unless code_tags == 0 - - next(match) if name[0,1] == '|' - if object.is_a?(String) - object - else - link = linkify(name, title) - if link == name || link == title - match = /(.+)?(\{#{Regexp.quote name}(?:\s.*?)?\})(.+)?/.match(text) - file = (@file ? @file : object.file) || '(unknown)' - line = (@file ? 1 : (object.docstring.line_range ? object.docstring.line_range.first : 1)) + (match ? $`.count("\n") : 0) - log.warn "In file `#{file}':#{line}: Cannot resolve link to #{name} from text" + (match ? ":" : ".") - log.warn((match[1] ? '...' : '') + match[2].gsub("\n","") + (match[3] ? '...' : '')) if match - end - - link - end - end - end - - def unlink(value) - value.gsub(/\b(([A-Z][a-z]+){2,99})\b/, "!\\1") - end - - # (see BaseHelper#link_file) - def link_file(filename, title = nil, anchor = nil) - link_url(url_for_file(filename, anchor), title) - end - - # (see BaseHelper#link_include_object) - def link_include_object(obj) - htmlify(obj.docstring) - end - - # (see BaseHelper#link_object) - def link_object(obj, otitle = nil, anchor = nil, relative = true) - return otitle if obj.nil? - obj = Registry.resolve(object, obj, true, true) if obj.is_a?(String) - if !otitle && obj.root? - title = "Top Level Namespace" - elsif otitle - # title = "`" + otitle.to_s + "`" - title = otitle.to_s - elsif object.is_a?(CodeObjects::Base) - # title = "`" + h(object.relative_path(obj)) + "`" - title = h(object.relative_path(obj)) - else - # title = "`" + h(obj.to_s) + "`" - title = h(obj.to_s) - end - unless serializer - return unlink(title) - end - return unlink(title) if obj.is_a?(CodeObjects::Proxy) - - link = url_for(obj, anchor, relative) - if link - link_url(link, title, :formatted => false) - else - unlink(title) - end - end - - # (see BaseHelper#link_url) - def link_url(url, title = nil, params = {}) - title ||= url - if url.to_s == "" - title - else - if params[:formatted] - "#{title}" - else - "[#{url} #{title}]" - end - end - end - - # @group URL Helpers - - # @param [CodeObjects::Base] object the object to get an anchor for - # @return [String] the anchor for a specific object - def anchor_for(object) - # Method:_Google::APIClient#execute! - case object - when CodeObjects::MethodObject - if object.scope == :instance - "Method:_#{object.path}" - elsif object.scope == :class - "Method:_#{object.path}" - end - when CodeObjects::ClassVariableObject - "#{object.name.to_s.gsub('@@', '')}-#{object.type}" - when CodeObjects::Base - "#{object.name}-#{object.type}" - when CodeObjects::Proxy - object.path - else - object.to_s - end - end - - # Returns the URL for an object. - # - # @param [String, CodeObjects::Base] obj the object (or object path) to link to - # @param [String] anchor the anchor to link to - # @param [Boolean] relative use a relative or absolute link - # @return [String] the URL location of the object - def url_for(obj, anchor = nil, relative = true) - link = nil - return link unless serializer - if obj.kind_of?(CodeObjects::Base) && obj.root? - return 'TopLevelNamespace' - end - - if obj.is_a?(CodeObjects::Base) && !obj.is_a?(CodeObjects::NamespaceObject) - # If the obj is not a namespace obj make it the anchor. - anchor, obj = obj, obj.namespace - end - - objpath = serializer.serialized_path(obj) - return link unless objpath - - if relative - fromobj = object - if object.is_a?(CodeObjects::Base) && - !object.is_a?(CodeObjects::NamespaceObject) - fromobj = fromobj.namespace - end - - from = serializer.serialized_path(fromobj) - link = File.relative_path(from, objpath) - else - link = objpath - end - - return ( - link.gsub(/\.html$/, '').gsub(/\.wiki$/, '') + - (anchor ? '#' + urlencode(anchor_for(anchor)) : '') - ) - end - - # Returns the URL for a specific file - # - # @param [String] filename the filename to link to - # @param [String] anchor optional anchor - # @return [String] the URL pointing to the file - def url_for_file(filename, anchor = nil) - fromobj = object - if CodeObjects::Base === fromobj && !fromobj.is_a?(CodeObjects::NamespaceObject) - fromobj = fromobj.namespace - end - from = serializer.serialized_path(fromobj) - if filename == options[:readme] - filename = 'Documentation' - else - filename = File.basename(filename).gsub(/\.[^.]+$/, '').capitalize - end - link = File.relative_path(from, filename) - return ( - link.gsub(/\.html$/, '').gsub(/\.wiki$/, '') + - (anchor ? '#' + urlencode(anchor) : '') - ) - end - - # @group Formatting Objects and Attributes - - # Formats a list of objects and links them - # @return [String] a formatted list of objects - def format_object_name_list(objects) - objects.sort_by {|o| o.name.to_s.downcase }.map do |o| - "" + linkify(o, o.name) + "" - end.join(", ") - end - - # Formats a list of types from a tag. - # - # @param [Array, FalseClass] typelist - # the list of types to be formatted. - # - # @param [Boolean] brackets omits the surrounding - # brackets if +brackets+ is set to +false+. - # - # @return [String] the list of types formatted - # as [Type1, Type2, ...] with the types linked - # to their respective descriptions. - # - def format_types(typelist, brackets = true) - return unless typelist.is_a?(Array) - list = typelist.map do |type| - type = type.gsub(/([<>])/) { h($1) } - type = type.gsub(/([\w:]+)/) do - $1 == "lt" || $1 == "gt" ? "`#{$1}`" : linkify($1, $1) - end - end - list.empty? ? "" : (brackets ? "(#{list.join(", ")})" : list.join(", ")) - end - - # Get the return types for a method signature. - # - # @param [CodeObjects::MethodObject] meth the method object - # @param [Boolean] link whether to link the types - # @return [String] the signature types - # @since 0.5.3 - def signature_types(meth, link = true) - meth = convert_method_to_overload(meth) - - type = options[:default_return] || "" - if meth.tag(:return) && meth.tag(:return).types - types = meth.tags(:return).map {|t| t.types ? t.types : [] }.flatten.uniq - first = link ? h(types.first) : format_types([types.first], false) - if types.size == 2 && types.last == 'nil' - type = first + '?' - elsif types.size == 2 && types.last =~ /^(Array)?<#{Regexp.quote types.first}>$/ - type = first + '+' - elsif types.size > 2 - type = [first, '...'].join(', ') - elsif types == ['void'] && options[:hide_void_return] - type = "" - else - type = link ? h(types.join(", ")) : format_types(types, false) - end - elsif !type.empty? - type = link ? h(type) : format_types([type], false) - end - type = "(#{type.to_s.strip}) " unless type.empty? - type - end - - # Formats the signature of method +meth+. - # - # @param [CodeObjects::MethodObject] meth the method object to list - # the signature of - # @param [Boolean] link whether to link the method signature to the details view - # @param [Boolean] show_extras whether to show extra meta-data (visibility, attribute info) - # @param [Boolean] full_attr_name whether to show the full attribute name - # ("name=" instead of "name") - # @return [String] the formatted method signature - def signature(meth, link = true, show_extras = true, full_attr_name = true) - meth = convert_method_to_overload(meth) - - type = signature_types(meth, link) - name = full_attr_name ? meth.name : meth.name.to_s.gsub(/^(\w+)=$/, '\1') - blk = format_block(meth) - args = !full_attr_name && meth.writer? ? "" : format_args(meth) - extras = [] - extras_text = '' - if show_extras - if rw = meth.attr_info - attname = [rw[:read] ? 'read' : nil, rw[:write] ? 'write' : nil].compact - attname = attname.size == 1 ? attname.join('') + 'only' : nil - extras << attname if attname - end - extras << meth.visibility if meth.visibility != :public - extras_text = ' (' + extras.join(", ") + ')' unless extras.empty? - end - title = "%s *`%s`* `%s` `%s`" % [type, h(name.to_s).strip, args, blk] - title.gsub!(//, "") - title.gsub!(/<\/tt>/, "") - title.gsub!(/`\s*`/, "") - title.strip! - if link - if meth.is_a?(YARD::CodeObjects::MethodObject) - link_title = - "#{h meth.name(true)} (#{meth.scope} #{meth.type})" - else - link_title = "#{h name} (#{meth.type})" - end - # This has to be raw HTML, can't wiki-format a link title otherwise. - "#{title}#{extras_text}" - else - title + extras_text - end - end - - # @group Getting the Character Encoding - - # Returns the current character set. The default value can be overridden - # by setting the +LANG+ environment variable or by overriding this - # method. In Ruby 1.9 you can also modify this value by setting - # +Encoding.default_external+. - # - # @return [String] the current character set - # @since 0.5.4 - def charset - return 'utf-8' unless RUBY19 || lang = ENV['LANG'] - if RUBY19 - lang = Encoding.default_external.name.downcase - else - lang = lang.downcase.split('.').last - end - case lang - when "ascii-8bit", "us-ascii", "ascii-7bit"; 'iso-8859-1' - else; lang - end - end - - # @endgroup - - private - - # Converts a set of hash options into HTML attributes for a tag - # - # @param [Hash{String => String}] opts the tag options - # @return [String] the tag attributes of an HTML tag - def tag_attrs(opts = {}) - opts.sort_by {|k, v| k.to_s }.map {|k,v| "#{k}=#{v.to_s.inspect}" if v }.join(" ") - end - - # Converts a {CodeObjects::MethodObject} into an overload object - # @since 0.5.3 - def convert_method_to_overload(meth) - # use first overload tag if it has a return type and method itself does not - if !meth.tag(:return) && meth.tags(:overload).size == 1 && meth.tag(:overload).tag(:return) - return meth.tag(:overload) - end - meth - end - end - end -end diff --git a/yard/templates/default/class/setup.rb b/yard/templates/default/class/setup.rb deleted file mode 100644 index 0b4dc12f8..000000000 --- a/yard/templates/default/class/setup.rb +++ /dev/null @@ -1,43 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -include T('default/module') - -def init - super - sections.place(:subclasses).before(:children) - sections.place(:constructor_details, [T('method_details')]).before(:methodmissing) - # Weird bug w/ doubled sections - sections.uniq! -end - -def constructor_details - ctors = object.meths(:inherited => true, :included => true) - return unless @ctor = ctors.find {|o| o.name == :initialize } - return if prune_method_listing([@ctor]).empty? - erb(:constructor_details) -end - -def subclasses - return if object.path == "Object" # don't show subclasses for Object - unless globals.subclasses - globals.subclasses = {} - list = run_verifier Registry.all(:class) - list.each do |o| - (globals.subclasses[o.superclass.path] ||= []) << o if o.superclass - end - end - - @subclasses = globals.subclasses[object.path] - return if @subclasses.nil? || @subclasses.empty? - @subclasses = @subclasses.sort_by {|o| o.path }.map do |child| - name = child.path - if object.namespace - name = object.relative_path(child) - end - [name, child] - end - erb(:subclasses) -end \ No newline at end of file diff --git a/yard/templates/default/docstring/setup.rb b/yard/templates/default/docstring/setup.rb deleted file mode 100644 index 63a5877fb..000000000 --- a/yard/templates/default/docstring/setup.rb +++ /dev/null @@ -1,54 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -def init - return if object.docstring.blank? && !object.has_tag?(:api) - sections :index, [:private, :deprecated, :abstract, :todo, :note, :returns_void, :text], T('tags') -end - -def private - return unless object.has_tag?(:api) && object.tag(:api).text == 'private' - erb(:private) -end - -def abstract - return unless object.has_tag?(:abstract) - erb(:abstract) -end - -def deprecated - return unless object.has_tag?(:deprecated) - erb(:deprecated) -end - -def todo - return unless object.has_tag?(:todo) - erb(:todo) -end - -def note - return unless object.has_tag?(:note) - erb(:note) -end - -def returns_void - return unless object.type == :method - return if object.name == :initialize && object.scope == :instance - return unless object.tags(:return).size == 1 && object.tag(:return).types == ['void'] - erb(:returns_void) -end - -def docstring_text - text = "" - unless object.tags(:overload).size == 1 && object.docstring.empty? - text = object.docstring - end - - if text.strip.empty? && object.tags(:return).size == 1 && object.tag(:return).text - text = object.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase } - end - - text.strip -end \ No newline at end of file diff --git a/yard/templates/default/method/setup.rb b/yard/templates/default/method/setup.rb deleted file mode 100644 index a6ed29924..000000000 --- a/yard/templates/default/method/setup.rb +++ /dev/null @@ -1,8 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -def init - sections :header, [T('method_details')] -end \ No newline at end of file diff --git a/yard/templates/default/method_details/setup.rb b/yard/templates/default/method_details/setup.rb deleted file mode 100644 index e3bfea003..000000000 --- a/yard/templates/default/method_details/setup.rb +++ /dev/null @@ -1,8 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -def init - sections :header, [:method_signature, T('docstring')] -end diff --git a/yard/templates/default/module/setup.rb b/yard/templates/default/module/setup.rb deleted file mode 100644 index d2559eaa4..000000000 --- a/yard/templates/default/module/setup.rb +++ /dev/null @@ -1,133 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -include Helpers::ModuleHelper - -def init - sections :header, :box_info, :pre_docstring, T('docstring'), :children, - :constant_summary, [T('docstring')], :inherited_constants, - :inherited_methods, - :methodmissing, [T('method_details')], - :attribute_details, [T('method_details')], - :method_details_list, [T('method_details')] -end - -def pre_docstring - return if object.docstring.blank? - erb(:pre_docstring) -end - -def children - @inner = [[:modules, []], [:classes, []]] - object.children.each do |child| - @inner[0][1] << child if child.type == :module - @inner[1][1] << child if child.type == :class - end - @inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] } - return if (@inner[0][1].size + @inner[1][1].size) == 0 - erb(:children) -end - -def methodmissing - mms = object.meths(:inherited => true, :included => true) - return unless @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance } - erb(:methodmissing) -end - -def method_listing(include_specials = true) - return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials - return @meths if @meths - @meths = object.meths(:inherited => false, :included => false) - @meths = sort_listing(prune_method_listing(@meths)) - @meths -end - -def special_method?(meth) - return true if meth.name(true) == '#method_missing' - return true if meth.constructor? - false -end - -def attr_listing - return @attrs if @attrs - @attrs = [] - [:class, :instance].each do |scope| - object.attributes[scope].each do |name, rw| - @attrs << (rw[:read] || rw[:write]) - end - end - @attrs = sort_listing(prune_method_listing(@attrs, false)) -end - -def constant_listing - return @constants if @constants - @constants = object.constants(:included => false, :inherited => false) - @constants += object.cvars - @constants = run_verifier(@constants) - @constants -end - -def sort_listing(list) - list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] } -end - -def docstring_full(obj) - docstring = "" - if obj.tags(:overload).size == 1 && obj.docstring.empty? - docstring = obj.tag(:overload).docstring - else - docstring = obj.docstring - end - - if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text - docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase }.strip) - end - - docstring -end - -def docstring_summary(obj) - docstring_full(obj).summary -end - -def groups(list, type = "Method") - if groups_data = object.groups - others = list.select {|m| !m.group } - groups_data.each do |name| - items = list.select {|m| m.group == name } - yield(items, name) unless items.empty? - end - else - others = [] - group_data = {} - list.each do |meth| - if meth.group - (group_data[meth.group] ||= []) << meth - else - others << meth - end - end - group_data.each {|group, items| yield(items, group) unless items.empty? } - end - - scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") } -end - -def scopes(list) - [:class, :instance].each do |scope| - items = list.select {|m| m.scope == scope } - yield(items, scope) unless items.empty? - end -end - -def mixed_into(object) - unless globals.mixed_into - globals.mixed_into = {} - list = run_verifier Registry.all(:class, :module) - list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } } - end - - globals.mixed_into[object.path] || [] -end diff --git a/yard/templates/default/tags/setup.rb b/yard/templates/default/tags/setup.rb deleted file mode 100644 index 33dc42cac..000000000 --- a/yard/templates/default/tags/setup.rb +++ /dev/null @@ -1,55 +0,0 @@ -lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '../../../lib')) -$LOAD_PATH.unshift(lib_dir) -$LOAD_PATH.uniq! -require 'yard-google-code' - -def init - tags = Tags::Library.visible_tags - [:abstract, :deprecated, :note, :todo] - create_tag_methods(tags - [:example, :option, :overload, :see]) - sections :index, tags - sections.any(:overload).push(T('docstring')) -end - -def return - if object.type == :method - return if object.name == :initialize && object.scope == :instance - return if object.tags(:return).size == 1 && object.tag(:return).types == ['void'] - end - tag(:return) -end - -private - -def tag(name, opts = nil) - return unless object.has_tag?(name) - opts ||= options_for_tag(name) - @no_names = true if opts[:no_names] - @no_types = true if opts[:no_types] - @name = name - out = erb('tag') - @no_names, @no_types = nil, nil - out -end - -def create_tag_methods(tags) - tags.each do |tag| - next if respond_to?(tag) - instance_eval(<<-eof, __FILE__, __LINE__ + 1) - def #{tag}; tag(#{tag.inspect}) end - eof - end -end - -def options_for_tag(tag) - opts = {:no_types => true, :no_names => true} - case Tags::Library.factory_method_for(tag) - when :with_types - opts[:no_types] = false - when :with_types_and_name - opts[:no_types] = false - opts[:no_names] = false - when :with_name - opts[:no_names] = false - end - opts -end