diff --git a/Makefile b/Makefile index 7e6f17e79e..3ac983cb4b 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: json-to-xml clean help api-deps regen-apis license +.PHONY: json-to-xml clean help api-deps regen-apis license update-json cargo .SUFFIXES: include Makefile.helpers @@ -23,13 +23,14 @@ help: $(info using template engine: '$(TPL)') $(info ) $(info Targets) - $(info help - print this help) - $(info api-deps - generate a file to tell make what API file dependencies will be) - $(info regen-apis - clear out all generated apis, and regenerate them) - $(info help-api - show all api targets to build individually) - $(info clean-apis - delete all generated APIs) $(info cargo - run cargo on all APIs, use ARGS="args ..." to specify cargo arguments) + $(info regen-apis - clear out all generated apis, and regenerate them) + $(info clean-apis - delete all generated APIs) + $(info help-api - show all api targets to build individually) + $(info help - print this help) $(info license - regenerate the main license file) + $(info update-json - copy API definitions from source GOOGLE_GO_APIS_REPO=) + $(info api-deps - generate a file to tell make what API file dependencies will be) $(PYTHON): virtualenv $(VENV_DIR) @@ -55,4 +56,7 @@ clean: clean-apis -rm -Rf $(VENV_DIR) -rm $(API_DEPS) +update-json: + etc/bin/update-json.sh $(GOOGLE_GO_APIS_REPO) etc/api + diff --git a/etc/api/adexchangebuyer/v1.2/adexchangebuyer-api.json b/etc/api/adexchangebuyer/v1.2/adexchangebuyer-api.json new file mode 100644 index 0000000000..cbdee763de --- /dev/null +++ b/etc/api/adexchangebuyer/v1.2/adexchangebuyer-api.json @@ -0,0 +1,550 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/lyqQOHJaq-GnjxN_zYrPyfHYUGs\"", + "discoveryVersion": "v1", + "id": "adexchangebuyer:v1.2", + "name": "adexchangebuyer", + "canonicalName": "Ad Exchange Buyer", + "version": "v1.2", + "revision": "20141123", + "title": "Ad Exchange Buyer API", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.2/", + "basePath": "/adexchangebuyer/v1.2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adexchangebuyer/v1.2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.buyer": { + "description": "Manage your Ad Exchange buyer account configuration" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Configuration data for an Ad Exchange buyer account.", + "properties": { + "bidderLocation": { + "type": "array", + "description": "Your bidder locations that have distinct URLs.", + "items": { + "type": "object", + "properties": { + "maximumQps": { + "type": "integer", + "description": "The maximum queries per second the Ad Exchange will send.", + "format": "int32" + }, + "region": { + "type": "string", + "description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values: \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST" + }, + "url": { + "type": "string", + "description": "The URL to which the Ad Exchange will send bid requests." + } + } + } + }, + "cookieMatchingNid": { + "type": "string", + "description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this." + }, + "cookieMatchingUrl": { + "type": "string", + "description": "The base URL used in cookie match requests." + }, + "id": { + "type": "integer", + "description": "Account id.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#account" + }, + "maximumActiveCreatives": { + "type": "integer", + "description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.", + "format": "int32" + }, + "maximumTotalQps": { + "type": "integer", + "description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.", + "format": "int32" + }, + "numberActiveCreatives": { + "type": "integer", + "description": "The number of creatives that this account inserted or bid with in the last 30 days.", + "format": "int32" + } + } + }, + "AccountsList": { + "id": "AccountsList", + "type": "object", + "description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.", + "properties": { + "items": { + "type": "array", + "description": "A list of accounts.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#accountsList" + } + } + }, + "Creative": { + "id": "Creative", + "type": "object", + "description": "A creative and its classification data.", + "properties": { + "HTMLSnippet": { + "type": "string", + "description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set." + }, + "accountId": { + "type": "integer", + "description": "Account id.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "advertiserId": { + "type": "array", + "description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "string", + "format": "int64" + } + }, + "advertiserName": { + "type": "string", + "description": "The name of the company being advertised in the creative.", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "agencyId": { + "type": "string", + "description": "The agency id for this creative.", + "format": "int64" + }, + "attribute": { + "type": "array", + "description": "All attributes for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "buyerCreativeId": { + "type": "string", + "description": "A buyer-specific id identifying the creative in this ad.", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "clickThroughUrl": { + "type": "array", + "description": "The set of destination urls for the snippet.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "corrections": { + "type": "array", + "description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "Additional details about the correction.", + "items": { + "type": "string" + } + }, + "reason": { + "type": "string", + "description": "The type of correction that was applied to the creative." + } + } + } + }, + "disapprovalReasons": { + "type": "array", + "description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "Additional details about the reason for disapproval.", + "items": { + "type": "string" + } + }, + "reason": { + "type": "string", + "description": "The categorized reason for disapproval." + } + } + } + }, + "height": { + "type": "integer", + "description": "Ad height.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#creative" + }, + "productCategories": { + "type": "array", + "description": "Detected product categories, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "restrictedCategories": { + "type": "array", + "description": "All restricted categories for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "sensitiveCategories": { + "type": "array", + "description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "status": { + "type": "string", + "description": "Creative serving status. Read-only. This field should not be set in requests." + }, + "vendorType": { + "type": "array", + "description": "All vendor types for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "videoURL": { + "type": "string", + "description": "The url to fetch a video ad. If set, HTMLSnippet should not be set." + }, + "width": { + "type": "integer", + "description": "Ad width.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + } + } + }, + "CreativesList": { + "id": "CreativesList", + "type": "object", + "description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.", + "properties": { + "items": { + "type": "array", + "description": "A list of creatives.", + "items": { + "$ref": "Creative" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#creativesList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adexchangebuyer.accounts.get", + "path": "accounts/{id}", + "httpMethod": "GET", + "description": "Gets one account by ID.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "Retrieves the authenticated user's list of accounts.", + "response": { + "$ref": "AccountsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "id": "adexchangebuyer.accounts.patch", + "path": "accounts/{id}", + "httpMethod": "PATCH", + "description": "Updates an existing account. This method supports patch semantics.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "id": "adexchangebuyer.accounts.update", + "path": "accounts/{id}", + "httpMethod": "PUT", + "description": "Updates an existing account.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "id": "adexchangebuyer.creatives.get", + "path": "creatives/{accountId}/{buyerCreativeId}", + "httpMethod": "GET", + "description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.", + "parameters": { + "accountId": { + "type": "integer", + "description": "The id for the account that will serve this creative.", + "required": true, + "format": "int32", + "location": "path" + }, + "buyerCreativeId": { + "type": "string", + "description": "The buyer-specific id for this creative.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "buyerCreativeId" + ], + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "id": "adexchangebuyer.creatives.insert", + "path": "creatives", + "httpMethod": "POST", + "description": "Submit a new creative.", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.creatives.list", + "path": "creatives", + "httpMethod": "GET", + "description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query" + }, + "statusFilter": { + "type": "string", + "description": "When specified, only creatives having the given status are returned.", + "enum": [ + "approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved.", + "Creatives which have been disapproved.", + "Creatives whose status is not yet checked." + ], + "location": "query" + } + }, + "response": { + "$ref": "CreativesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + } +} diff --git a/etc/api/adexchangebuyer/v1.3/adexchangebuyer-api.json b/etc/api/adexchangebuyer/v1.3/adexchangebuyer-api.json new file mode 100644 index 0000000000..5bf8a5d8a4 --- /dev/null +++ b/etc/api/adexchangebuyer/v1.3/adexchangebuyer-api.json @@ -0,0 +1,1512 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/TNq58uhDuCyuU5JtNXwx-a0s4AI\"", + "discoveryVersion": "v1", + "id": "adexchangebuyer:v1.3", + "name": "adexchangebuyer", + "canonicalName": "Ad Exchange Buyer", + "version": "v1.3", + "revision": "20141123", + "title": "Ad Exchange Buyer API", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.3/", + "basePath": "/adexchangebuyer/v1.3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adexchangebuyer/v1.3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.buyer": { + "description": "Manage your Ad Exchange buyer account configuration" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Configuration data for an Ad Exchange buyer account.", + "properties": { + "bidderLocation": { + "type": "array", + "description": "Your bidder locations that have distinct URLs.", + "items": { + "type": "object", + "properties": { + "maximumQps": { + "type": "integer", + "description": "The maximum queries per second the Ad Exchange will send.", + "format": "int32" + }, + "region": { + "type": "string", + "description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values: \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST" + }, + "url": { + "type": "string", + "description": "The URL to which the Ad Exchange will send bid requests." + } + } + } + }, + "cookieMatchingNid": { + "type": "string", + "description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this." + }, + "cookieMatchingUrl": { + "type": "string", + "description": "The base URL used in cookie match requests." + }, + "id": { + "type": "integer", + "description": "Account id.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#account" + }, + "maximumActiveCreatives": { + "type": "integer", + "description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.", + "format": "int32" + }, + "maximumTotalQps": { + "type": "integer", + "description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.", + "format": "int32" + }, + "numberActiveCreatives": { + "type": "integer", + "description": "The number of creatives that this account inserted or bid with in the last 30 days.", + "format": "int32" + } + } + }, + "AccountsList": { + "id": "AccountsList", + "type": "object", + "description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.", + "properties": { + "items": { + "type": "array", + "description": "A list of accounts.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#accountsList" + } + } + }, + "BillingInfo": { + "id": "BillingInfo", + "type": "object", + "description": "The configuration data for an Ad Exchange billing info.", + "properties": { + "accountId": { + "type": "integer", + "description": "Account id.", + "format": "int32" + }, + "accountName": { + "type": "string", + "description": "Account name." + }, + "billingId": { + "type": "array", + "description": "A list of adgroup IDs associated with this particular account. These IDs may show up as part of a realtime bidding BidRequest, which indicates a bid request for this account.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#billingInfo" + } + } + }, + "BillingInfoList": { + "id": "BillingInfoList", + "type": "object", + "description": "A billing info feed lists Billing Info the Ad Exchange buyer account has access to. Each entry in the feed corresponds to a single billing info.", + "properties": { + "items": { + "type": "array", + "description": "A list of billing info relevant for your account.", + "items": { + "$ref": "BillingInfo" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#billingInfoList" + } + } + }, + "Budget": { + "id": "Budget", + "type": "object", + "description": "The configuration data for Ad Exchange RTB - Budget API.", + "properties": { + "accountId": { + "type": "string", + "description": "The id of the account. This is required for get and update requests.", + "format": "int64" + }, + "billingId": { + "type": "string", + "description": "The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.", + "format": "int64" + }, + "budgetAmount": { + "type": "string", + "description": "The budget amount to apply for the billingId provided. This is required for update requests.", + "format": "int64" + }, + "currencyCode": { + "type": "string", + "description": "The currency code for the buyer. This cannot be altered here." + }, + "id": { + "type": "string", + "description": "The unique id that describes this item." + }, + "kind": { + "type": "string", + "description": "The kind of the resource, i.e. \"adexchangebuyer#budget\".", + "default": "adexchangebuyer#budget" + } + } + }, + "Creative": { + "id": "Creative", + "type": "object", + "description": "A creative and its classification data.", + "properties": { + "HTMLSnippet": { + "type": "string", + "description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set." + }, + "accountId": { + "type": "integer", + "description": "Account id.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "advertiserId": { + "type": "array", + "description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "string", + "format": "int64" + } + }, + "advertiserName": { + "type": "string", + "description": "The name of the company being advertised in the creative.", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "agencyId": { + "type": "string", + "description": "The agency id for this creative.", + "format": "int64" + }, + "attribute": { + "type": "array", + "description": "All attributes for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "buyerCreativeId": { + "type": "string", + "description": "A buyer-specific id identifying the creative in this ad.", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "clickThroughUrl": { + "type": "array", + "description": "The set of destination urls for the snippet.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "corrections": { + "type": "array", + "description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "Additional details about the correction.", + "items": { + "type": "string" + } + }, + "reason": { + "type": "string", + "description": "The type of correction that was applied to the creative." + } + } + } + }, + "disapprovalReasons": { + "type": "array", + "description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "Additional details about the reason for disapproval.", + "items": { + "type": "string" + } + }, + "reason": { + "type": "string", + "description": "The categorized reason for disapproval." + } + } + } + }, + "filteringReasons": { + "type": "object", + "description": "The filtering reasons for the creative. If this feature is not enabled, please ask your technical account manager. Read-only. This field should not be set in requests.", + "properties": { + "date": { + "type": "string", + "description": "The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST." + }, + "reasons": { + "type": "array", + "description": "The filtering reasons.", + "items": { + "type": "object", + "properties": { + "filteringCount": { + "type": "string", + "description": "The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.", + "format": "int64" + }, + "filteringStatus": { + "type": "integer", + "description": "The filtering status code. Please refer to the creative-status-codes.txt file for different statuses.", + "format": "int32" + } + } + } + } + } + }, + "height": { + "type": "integer", + "description": "Ad height.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#creative" + }, + "productCategories": { + "type": "array", + "description": "Detected product categories, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "restrictedCategories": { + "type": "array", + "description": "All restricted categories for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "sensitiveCategories": { + "type": "array", + "description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "status": { + "type": "string", + "description": "Creative serving status. Read-only. This field should not be set in requests." + }, + "vendorType": { + "type": "array", + "description": "All vendor types for the ads that may be shown from this snippet.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "videoURL": { + "type": "string", + "description": "The url to fetch a video ad. If set, HTMLSnippet should not be set." + }, + "width": { + "type": "integer", + "description": "Ad width.", + "format": "int32", + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + } + } + } + }, + "CreativesList": { + "id": "CreativesList", + "type": "object", + "description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.", + "properties": { + "items": { + "type": "array", + "description": "A list of creatives.", + "items": { + "$ref": "Creative" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#creativesList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "DirectDeal": { + "id": "DirectDeal", + "type": "object", + "description": "The configuration data for an Ad Exchange direct deal.", + "properties": { + "accountId": { + "type": "integer", + "description": "The account id of the buyer this deal is for.", + "format": "int32" + }, + "advertiser": { + "type": "string", + "description": "The name of the advertiser this deal is for." + }, + "currencyCode": { + "type": "string", + "description": "The currency code that applies to the fixed_cpm value. If not set then assumed to be USD." + }, + "endTime": { + "type": "string", + "description": "End time for when this deal stops being active. If not set then this deal is valid until manually disabled by the publisher. In seconds since the epoch.", + "format": "int64" + }, + "fixedCpm": { + "type": "string", + "description": "The fixed price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Deal id.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#directDeal" + }, + "name": { + "type": "string", + "description": "Deal name." + }, + "privateExchangeMinCpm": { + "type": "string", + "description": "The minimum price for this direct deal. In cpm micros of currency according to currency_code. If set, then this deal is eligible for the private exchange tier of buying (below fixed price priority, run as a second price auction).", + "format": "int64" + }, + "publisherBlocksOverriden": { + "type": "boolean", + "description": "If true, the publisher has opted to have their blocks ignored when a creative is bid with for this deal." + }, + "sellerNetwork": { + "type": "string", + "description": "The name of the publisher offering this direct deal." + }, + "startTime": { + "type": "string", + "description": "Start time for when this deal becomes active. If not set then this deal is active immediately upon creation. In seconds since the epoch.", + "format": "int64" + } + } + }, + "DirectDealsList": { + "id": "DirectDealsList", + "type": "object", + "description": "A direct deals feed lists Direct Deals the Ad Exchange buyer account has access to. This includes direct deals set up for the buyer account as well as its merged stream seats.", + "properties": { + "directDeals": { + "type": "array", + "description": "A list of direct deals relevant for your account.", + "items": { + "$ref": "DirectDeal" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#directDealsList" + } + } + }, + "PerformanceReport": { + "id": "PerformanceReport", + "type": "object", + "description": "The configuration data for an Ad Exchange performance report list.", + "properties": { + "calloutStatusRate": { + "type": "array", + "description": "Rate of various prefiltering statuses per match. Please refer to the callout-status-codes.txt file for different statuses.", + "items": { + "type": "any" + } + }, + "cookieMatcherStatusRate": { + "type": "array", + "description": "Average QPS for cookie matcher operations.", + "items": { + "type": "any" + } + }, + "creativeStatusRate": { + "type": "array", + "description": "Rate of ads with a given status. Please refer to the creative-status-codes.txt file for different statuses.", + "items": { + "type": "any" + } + }, + "hostedMatchStatusRate": { + "type": "array", + "description": "Average QPS for hosted match operations.", + "items": { + "type": "any" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#performanceReport" + }, + "latency50thPercentile": { + "type": "number", + "description": "The 50th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double" + }, + "latency85thPercentile": { + "type": "number", + "description": "The 85th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double" + }, + "latency95thPercentile": { + "type": "number", + "description": "The 95th percentile round trip latency(ms) as perceived from Google servers for the duration period covered by the report.", + "format": "double" + }, + "noQuotaInRegion": { + "type": "number", + "description": "Rate of various quota account statuses per quota check.", + "format": "double" + }, + "outOfQuota": { + "type": "number", + "description": "Rate of various quota account statuses per quota check.", + "format": "double" + }, + "pixelMatchRequests": { + "type": "number", + "description": "Average QPS for pixel match requests from clients.", + "format": "double" + }, + "pixelMatchResponses": { + "type": "number", + "description": "Average QPS for pixel match responses from clients.", + "format": "double" + }, + "quotaConfiguredLimit": { + "type": "number", + "description": "The configured quota limits for this account.", + "format": "double" + }, + "quotaThrottledLimit": { + "type": "number", + "description": "The throttled quota limits for this account.", + "format": "double" + }, + "region": { + "type": "string", + "description": "The trading location of this data." + }, + "timestamp": { + "type": "string", + "description": "The unix timestamp of the starting time of this performance data.", + "format": "int64" + } + } + }, + "PerformanceReportList": { + "id": "PerformanceReportList", + "type": "object", + "description": "The configuration data for an Ad Exchange performance report list. https://sites.google.com/a/google.com/adx-integration/Home/engineering/binary-releases/rtb-api-release https://cs.corp.google.com/#piper///depot/google3/contentads/adx/tools/rtb_api/adxrtb.py", + "properties": { + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#performanceReportList" + }, + "performanceReport": { + "type": "array", + "description": "A list of performance reports relevant for the account.", + "items": { + "$ref": "PerformanceReport" + } + } + } + }, + "PretargetingConfig": { + "id": "PretargetingConfig", + "type": "object", + "properties": { + "billingId": { + "type": "string", + "description": "The id for billing purposes, provided for reference. Leave this field blank for insert requests; the id will be generated automatically.", + "format": "int64" + }, + "configId": { + "type": "string", + "description": "The config id; generated automatically. Leave this field blank for insert requests.", + "format": "int64" + }, + "configName": { + "type": "string", + "description": "The name of the config. Must be unique. Required for all requests." + }, + "creativeType": { + "type": "array", + "description": "List must contain exactly one of PRETARGETING_CREATIVE_TYPE_HTML or PRETARGETING_CREATIVE_TYPE_VIDEO.", + "items": { + "type": "string" + } + }, + "dimensions": { + "type": "array", + "description": "Requests which allow one of these (width, height) pairs will match. All pairs must be supported ad dimensions.", + "items": { + "type": "object", + "properties": { + "height": { + "type": "string", + "description": "Height in pixels.", + "format": "int64" + }, + "width": { + "type": "string", + "description": "Width in pixels.", + "format": "int64" + } + } + } + }, + "excludedContentLabels": { + "type": "array", + "description": "Requests with any of these content labels will not match. Values are from content-labels.txt in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "excludedGeoCriteriaIds": { + "type": "array", + "description": "Requests containing any of these geo criteria ids will not match.", + "items": { + "type": "string", + "format": "int64" + } + }, + "excludedPlacements": { + "type": "array", + "description": "Requests containing any of these placements will not match.", + "items": { + "type": "object", + "properties": { + "token": { + "type": "string", + "description": "The value of the placement. Interpretation depends on the placement type, e.g. URL for a site placement, channel name for a channel placement, app id for a mobile app placement." + }, + "type": { + "type": "string", + "description": "The type of the placement." + } + } + } + }, + "excludedUserLists": { + "type": "array", + "description": "Requests containing any of these users list ids will not match.", + "items": { + "type": "string", + "format": "int64" + } + }, + "excludedVerticals": { + "type": "array", + "description": "Requests containing any of these vertical ids will not match. Values are from the publisher-verticals.txt file in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "geoCriteriaIds": { + "type": "array", + "description": "Requests containing any of these geo criteria ids will match.", + "items": { + "type": "string", + "format": "int64" + } + }, + "isActive": { + "type": "boolean", + "description": "Whether this config is active. Required for all requests." + }, + "kind": { + "type": "string", + "description": "The kind of the resource, i.e. \"adexchangebuyer#pretargetingConfig\".", + "default": "adexchangebuyer#pretargetingConfig" + }, + "languages": { + "type": "array", + "description": "Request containing any of these language codes will match.", + "items": { + "type": "string" + } + }, + "mobileCarriers": { + "type": "array", + "description": "Requests containing any of these mobile carrier ids will match. Values are from mobile-carriers.csv in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "mobileDevices": { + "type": "array", + "description": "Requests containing any of these mobile device ids will match. Values are from mobile-devices.csv in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "mobileOperatingSystemVersions": { + "type": "array", + "description": "Requests containing any of these mobile operating system version ids will match. Values are from mobile-os.csv in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "placements": { + "type": "array", + "description": "Requests containing any of these placements will match.", + "items": { + "type": "object", + "properties": { + "token": { + "type": "string", + "description": "The value of the placement. Interpretation depends on the placement type, e.g. URL for a site placement, channel name for a channel placement, app id for a mobile app placement." + }, + "type": { + "type": "string", + "description": "The type of the placement." + } + } + } + }, + "platforms": { + "type": "array", + "description": "Requests matching any of these platforms will match. Possible values are PRETARGETING_PLATFORM_MOBILE, PRETARGETING_PLATFORM_DESKTOP, and PRETARGETING_PLATFORM_TABLET.", + "items": { + "type": "string" + } + }, + "supportedCreativeAttributes": { + "type": "array", + "description": "Creative attributes should be declared here if all creatives corresponding to this pretargeting configuration have that creative attribute. Values are from pretargetable-creative-attributes.txt in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "userLists": { + "type": "array", + "description": "Requests containing any of these user list ids will match.", + "items": { + "type": "string", + "format": "int64" + } + }, + "vendorTypes": { + "type": "array", + "description": "Requests that allow any of these vendor ids will match. Values are from vendors.txt in the downloadable files section.", + "items": { + "type": "string", + "format": "int64" + } + }, + "verticals": { + "type": "array", + "description": "Requests containing any of these vertical ids will match.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "PretargetingConfigList": { + "id": "PretargetingConfigList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of pretargeting configs", + "items": { + "$ref": "PretargetingConfig" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "adexchangebuyer#pretargetingConfigList" + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adexchangebuyer.accounts.get", + "path": "accounts/{id}", + "httpMethod": "GET", + "description": "Gets one account by ID.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "Retrieves the authenticated user's list of accounts.", + "response": { + "$ref": "AccountsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "id": "adexchangebuyer.accounts.patch", + "path": "accounts/{id}", + "httpMethod": "PATCH", + "description": "Updates an existing account. This method supports patch semantics.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "id": "adexchangebuyer.accounts.update", + "path": "accounts/{id}", + "httpMethod": "PUT", + "description": "Updates an existing account.", + "parameters": { + "id": { + "type": "integer", + "description": "The account id", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "billingInfo": { + "methods": { + "get": { + "id": "adexchangebuyer.billingInfo.get", + "path": "billinginfo/{accountId}", + "httpMethod": "GET", + "description": "Returns the billing information for one account specified by account ID.", + "parameters": { + "accountId": { + "type": "integer", + "description": "The account id.", + "required": true, + "format": "int32", + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "BillingInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.billingInfo.list", + "path": "billinginfo", + "httpMethod": "GET", + "description": "Retrieves a list of billing information for all accounts of the authenticated user.", + "response": { + "$ref": "BillingInfoList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "budget": { + "methods": { + "get": { + "id": "adexchangebuyer.budget.get", + "path": "billinginfo/{accountId}/{billingId}", + "httpMethod": "GET", + "description": "Returns the budget information for the adgroup specified by the accountId and billingId.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to get the budget information for.", + "required": true, + "format": "int64", + "location": "path" + }, + "billingId": { + "type": "string", + "description": "The billing id to get the budget information for.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "billingId" + ], + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "id": "adexchangebuyer.budget.patch", + "path": "billinginfo/{accountId}/{billingId}", + "httpMethod": "PATCH", + "description": "Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id associated with the budget being updated.", + "required": true, + "format": "int64", + "location": "path" + }, + "billingId": { + "type": "string", + "description": "The billing id associated with the budget being updated.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "billingId" + ], + "request": { + "$ref": "Budget" + }, + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "id": "adexchangebuyer.budget.update", + "path": "billinginfo/{accountId}/{billingId}", + "httpMethod": "PUT", + "description": "Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id associated with the budget being updated.", + "required": true, + "format": "int64", + "location": "path" + }, + "billingId": { + "type": "string", + "description": "The billing id associated with the budget being updated.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "billingId" + ], + "request": { + "$ref": "Budget" + }, + "response": { + "$ref": "Budget" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "id": "adexchangebuyer.creatives.get", + "path": "creatives/{accountId}/{buyerCreativeId}", + "httpMethod": "GET", + "description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.", + "parameters": { + "accountId": { + "type": "integer", + "description": "The id for the account that will serve this creative.", + "required": true, + "format": "int32", + "location": "path" + }, + "buyerCreativeId": { + "type": "string", + "description": "The buyer-specific id for this creative.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "buyerCreativeId" + ], + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "id": "adexchangebuyer.creatives.insert", + "path": "creatives", + "httpMethod": "POST", + "description": "Submit a new creative.", + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.creatives.list", + "path": "creatives", + "httpMethod": "GET", + "description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.", + "parameters": { + "accountId": { + "type": "integer", + "description": "When specified, only creatives for the given account ids are returned.", + "format": "int32", + "repeated": true, + "location": "query" + }, + "buyerCreativeId": { + "type": "string", + "description": "When specified, only creatives for the given buyer creative ids are returned.", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query" + }, + "statusFilter": { + "type": "string", + "description": "When specified, only creatives having the given status are returned.", + "enum": [ + "approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved.", + "Creatives which have been disapproved.", + "Creatives whose status is not yet checked." + ], + "location": "query" + } + }, + "response": { + "$ref": "CreativesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "directDeals": { + "methods": { + "get": { + "id": "adexchangebuyer.directDeals.get", + "path": "directdeals/{id}", + "httpMethod": "GET", + "description": "Gets one direct deal by ID.", + "parameters": { + "id": { + "type": "string", + "description": "The direct deal id", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "DirectDeal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.directDeals.list", + "path": "directdeals", + "httpMethod": "GET", + "description": "Retrieves the authenticated user's list of direct deals.", + "response": { + "$ref": "DirectDealsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "performanceReport": { + "methods": { + "list": { + "id": "adexchangebuyer.performanceReport.list", + "path": "performancereport", + "httpMethod": "GET", + "description": "Retrieves the authenticated user's list of performance metrics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to get the reports.", + "required": true, + "format": "int64", + "location": "query" + }, + "endDateTime": { + "type": "string", + "description": "The end time of the report in ISO 8601 timestamp format using UTC.", + "required": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.", + "format": "uint32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through performance reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.", + "location": "query" + }, + "startDateTime": { + "type": "string", + "description": "The start time of the report in ISO 8601 timestamp format using UTC.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "endDateTime", + "startDateTime" + ], + "response": { + "$ref": "PerformanceReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "pretargetingConfig": { + "methods": { + "delete": { + "id": "adexchangebuyer.pretargetingConfig.delete", + "path": "pretargetingconfigs/{accountId}/{configId}", + "httpMethod": "DELETE", + "description": "Deletes an existing pretargeting config.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to delete the pretargeting config for.", + "required": true, + "format": "int64", + "location": "path" + }, + "configId": { + "type": "string", + "description": "The specific id of the configuration to delete.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "configId" + ], + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "get": { + "id": "adexchangebuyer.pretargetingConfig.get", + "path": "pretargetingconfigs/{accountId}/{configId}", + "httpMethod": "GET", + "description": "Gets a specific pretargeting configuration", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to get the pretargeting config for.", + "required": true, + "format": "int64", + "location": "path" + }, + "configId": { + "type": "string", + "description": "The specific id of the configuration to retrieve.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "configId" + ], + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "id": "adexchangebuyer.pretargetingConfig.insert", + "path": "pretargetingconfigs/{accountId}", + "httpMethod": "POST", + "description": "Inserts a new pretargeting configuration.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to insert the pretargeting config for.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "id": "adexchangebuyer.pretargetingConfig.list", + "path": "pretargetingconfigs/{accountId}", + "httpMethod": "GET", + "description": "Retrieves a list of the authenticated user's pretargeting configurations.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to get the pretargeting configs for.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "PretargetingConfigList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "id": "adexchangebuyer.pretargetingConfig.patch", + "path": "pretargetingconfigs/{accountId}/{configId}", + "httpMethod": "PATCH", + "description": "Updates an existing pretargeting config. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to update the pretargeting config for.", + "required": true, + "format": "int64", + "location": "path" + }, + "configId": { + "type": "string", + "description": "The specific id of the configuration to update.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "configId" + ], + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "id": "adexchangebuyer.pretargetingConfig.update", + "path": "pretargetingconfigs/{accountId}/{configId}", + "httpMethod": "PUT", + "description": "Updates an existing pretargeting config.", + "parameters": { + "accountId": { + "type": "string", + "description": "The account id to update the pretargeting config for.", + "required": true, + "format": "int64", + "location": "path" + }, + "configId": { + "type": "string", + "description": "The specific id of the configuration to update.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "configId" + ], + "request": { + "$ref": "PretargetingConfig" + }, + "response": { + "$ref": "PretargetingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + } +} diff --git a/etc/api/adexchangeseller/v1.1/adexchangeseller-api.json b/etc/api/adexchangeseller/v1.1/adexchangeseller-api.json new file mode 100644 index 0000000000..a0fe9388f7 --- /dev/null +++ b/etc/api/adexchangeseller/v1.1/adexchangeseller-api.json @@ -0,0 +1,1241 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Ob-vIbU0CMw39spLQLZEQavYp3Q\"", + "discoveryVersion": "v1", + "id": "adexchangeseller:v1.1", + "name": "adexchangeseller", + "canonicalName": "Ad Exchange Seller", + "version": "v1.1", + "revision": "20141112", + "title": "Ad Exchange Seller API", + "description": "Gives Ad Exchange seller users access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/seller-rest/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adexchangeseller/v1.1/", + "basePath": "/adexchangeseller/v1.1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adexchangeseller/v1.1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.seller": { + "description": "View and manage your Ad Exchange data" + }, + "https://www.googleapis.com/auth/adexchange.seller.readonly": { + "description": "View your Ad Exchange data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#account.", + "default": "adexchangeseller#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#adClient.", + "default": "adexchangeseller#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#adClients.", + "default": "adexchangeseller#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#adUnit.", + "default": "adexchangeseller#adUnit" + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#adUnits.", + "default": "adexchangeseller#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Alert": { + "id": "Alert", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#alert.", + "default": "adexchangeseller#alert" + }, + "message": { + "type": "string", + "description": "The localized alert message." + }, + "severity": { + "type": "string", + "description": "Severity of this alert. Possible values: INFO, WARNING, SEVERE." + }, + "type": { + "type": "string", + "description": "Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD." + } + } + }, + "Alerts": { + "id": "Alerts", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The alerts returned in this list response.", + "items": { + "$ref": "Alert" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#alerts.", + "default": "adexchangeseller#alerts" + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#customChannel.", + "default": "adexchangeseller#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#customChannels.", + "default": "adexchangeseller#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "ReportingMetadataEntry" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#metadata.", + "default": "adexchangeseller#metadata" + } + } + }, + "PreferredDeal": { + "id": "PreferredDeal", + "type": "object", + "properties": { + "advertiserName": { + "type": "string", + "description": "The name of the advertiser this deal is for." + }, + "buyerNetworkName": { + "type": "string", + "description": "The name of the buyer network this deal is for." + }, + "currencyCode": { + "type": "string", + "description": "The currency code that applies to the fixed_cpm value. If not set then assumed to be USD." + }, + "endTime": { + "type": "string", + "description": "Time when this deal stops being active in seconds since the epoch (GMT). If not set then this deal is valid until manually disabled by the publisher.", + "format": "uint64" + }, + "fixedCpm": { + "type": "string", + "description": "The fixed price for this preferred deal. In cpm micros of currency according to currencyCode. If set, then this preferred deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Unique identifier of this preferred deal.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#preferredDeal.", + "default": "adexchangeseller#preferredDeal" + }, + "startTime": { + "type": "string", + "description": "Time when this deal becomes active in seconds since the epoch (GMT). If not set then this deal is active immediately upon creation.", + "format": "uint64" + } + } + }, + "PreferredDeals": { + "id": "PreferredDeals", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The preferred deals returned in this list response.", + "items": { + "$ref": "PreferredDeal" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#preferredDeals.", + "default": "adexchangeseller#preferredDeals" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adexchangeseller#report.", + "default": "adexchangeseller#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "ReportingMetadataEntry": { + "id": "ReportingMetadataEntry", + "type": "object", + "properties": { + "compatibleDimensions": { + "type": "array", + "description": "For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.", + "items": { + "type": "string" + } + }, + "compatibleMetrics": { + "type": "array", + "description": "The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#reportingMetadataEntry.", + "default": "adexchangeseller#reportingMetadataEntry" + }, + "requiredDimensions": { + "type": "array", + "description": "The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "requiredMetrics": { + "type": "array", + "description": "The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "supportedProducts": { + "type": "array", + "description": "The codes of the projects supported by the dimension or metric this reporting metadata entry describes.", + "items": { + "type": "string" + } + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#savedReport.", + "default": "adexchangeseller#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#savedReports.", + "default": "adexchangeseller#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#urlChannel.", + "default": "adexchangeseller#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#urlChannels.", + "default": "adexchangeseller#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adexchangeseller.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about. Tip: 'myaccount' is a valid ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "adclients": { + "methods": { + "list": { + "id": "adexchangeseller.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all ad clients in this Ad Exchange account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adexchangeseller.adunits.get", + "path": "adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.adunits.list", + "path": "adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adexchangeseller.adunits.customchannels.list", + "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "alerts": { + "methods": { + "list": { + "id": "adexchangeseller.alerts.list", + "path": "alerts", + "httpMethod": "GET", + "description": "List the alerts for this Ad Exchange account.", + "parameters": { + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adexchangeseller.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adexchangeseller.customchannels.adunits.list", + "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "metadata": { + "resources": { + "dimensions": { + "methods": { + "list": { + "id": "adexchangeseller.metadata.dimensions.list", + "path": "metadata/dimensions", + "httpMethod": "GET", + "description": "List the metadata for the dimensions available to this AdExchange account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "metrics": { + "methods": { + "list": { + "id": "adexchangeseller.metadata.metrics.list", + "path": "metadata/metrics", + "httpMethod": "GET", + "description": "List the metadata for the metrics available to this AdExchange account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "preferreddeals": { + "methods": { + "get": { + "id": "adexchangeseller.preferreddeals.get", + "path": "preferreddeals/{dealId}", + "httpMethod": "GET", + "description": "Get information about the selected Ad Exchange Preferred Deal.", + "parameters": { + "dealId": { + "type": "string", + "description": "Preferred deal to get information about.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "dealId" + ], + "response": { + "$ref": "PreferredDeal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.preferreddeals.list", + "path": "preferreddeals", + "httpMethod": "GET", + "description": "List the preferred deals for this Ad Exchange account.", + "response": { + "$ref": "PreferredDeals" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adexchangeseller.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adexchangeseller.reports.saved.generate", + "path": "reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the saved report ID sent in the query parameters.", + "parameters": { + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "savedReportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.reports.saved.list", + "path": "reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this Ad Exchange account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adexchangeseller.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adexchangeseller/v1/adexchangeseller-api.json b/etc/api/adexchangeseller/v1/adexchangeseller-api.json new file mode 100644 index 0000000000..a6770b259a --- /dev/null +++ b/etc/api/adexchangeseller/v1/adexchangeseller-api.json @@ -0,0 +1,918 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/kgKc4O1bceVftsMmf3p1OXF57gg\"", + "discoveryVersion": "v1", + "id": "adexchangeseller:v1", + "name": "adexchangeseller", + "canonicalName": "Ad Exchange Seller", + "version": "v1", + "revision": "20141112", + "title": "Ad Exchange Seller API", + "description": "Gives Ad Exchange seller users access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/seller-rest/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adexchangeseller/v1/", + "basePath": "/adexchangeseller/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adexchangeseller/v1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.seller": { + "description": "View and manage your Ad Exchange data" + }, + "https://www.googleapis.com/auth/adexchange.seller.readonly": { + "description": "View your Ad Exchange data" + } + } + } + }, + "schemas": { + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#adClient.", + "default": "adexchangeseller#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#adClients.", + "default": "adexchangeseller#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#adUnit.", + "default": "adexchangeseller#adUnit" + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#adUnits.", + "default": "adexchangeseller#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#customChannel.", + "default": "adexchangeseller#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#customChannels.", + "default": "adexchangeseller#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adexchangeseller#report.", + "default": "adexchangeseller#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#savedReport.", + "default": "adexchangeseller#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#savedReports.", + "default": "adexchangeseller#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#urlChannel.", + "default": "adexchangeseller#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#urlChannels.", + "default": "adexchangeseller#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "adclients": { + "methods": { + "list": { + "id": "adexchangeseller.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all ad clients in this Ad Exchange account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adexchangeseller.adunits.get", + "path": "adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.adunits.list", + "path": "adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adexchangeseller.adunits.customchannels.list", + "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adexchangeseller.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adexchangeseller.customchannels.adunits.list", + "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adexchangeseller.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adexchangeseller.reports.saved.generate", + "path": "reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the saved report ID sent in the query parameters.", + "parameters": { + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "savedReportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.reports.saved.list", + "path": "reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this Ad Exchange account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adexchangeseller.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adexchangeseller/v2.0/adexchangeseller-api.json b/etc/api/adexchangeseller/v2.0/adexchangeseller-api.json new file mode 100644 index 0000000000..df5225c1c5 --- /dev/null +++ b/etc/api/adexchangeseller/v2.0/adexchangeseller-api.json @@ -0,0 +1,1164 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/6aC1_omptpkys969gj83ZtJAvZ8\"", + "discoveryVersion": "v1", + "id": "adexchangeseller:v2.0", + "name": "adexchangeseller", + "canonicalName": "Ad Exchange Seller", + "version": "v2.0", + "revision": "20141112", + "title": "Ad Exchange Seller API", + "description": "Gives Ad Exchange seller users access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/seller-rest/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adexchangeseller/v2.0/", + "basePath": "/adexchangeseller/v2.0/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adexchangeseller/v2.0/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.seller": { + "description": "View and manage your Ad Exchange data" + }, + "https://www.googleapis.com/auth/adexchange.seller.readonly": { + "description": "View your Ad Exchange data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#account.", + "default": "adexchangeseller#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The accounts returned in this list response.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#accounts.", + "default": "adexchangeseller#accounts" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through accounts. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#adClient.", + "default": "adexchangeseller#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#adClients.", + "default": "adexchangeseller#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Alert": { + "id": "Alert", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#alert.", + "default": "adexchangeseller#alert" + }, + "message": { + "type": "string", + "description": "The localized alert message." + }, + "severity": { + "type": "string", + "description": "Severity of this alert. Possible values: INFO, WARNING, SEVERE." + }, + "type": { + "type": "string", + "description": "Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD." + } + } + }, + "Alerts": { + "id": "Alerts", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The alerts returned in this list response.", + "items": { + "$ref": "Alert" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#alerts.", + "default": "adexchangeseller#alerts" + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#customChannel.", + "default": "adexchangeseller#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#customChannels.", + "default": "adexchangeseller#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "ReportingMetadataEntry" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#metadata.", + "default": "adexchangeseller#metadata" + } + } + }, + "PreferredDeal": { + "id": "PreferredDeal", + "type": "object", + "properties": { + "advertiserName": { + "type": "string", + "description": "The name of the advertiser this deal is for." + }, + "buyerNetworkName": { + "type": "string", + "description": "The name of the buyer network this deal is for." + }, + "currencyCode": { + "type": "string", + "description": "The currency code that applies to the fixed_cpm value. If not set then assumed to be USD." + }, + "endTime": { + "type": "string", + "description": "Time when this deal stops being active in seconds since the epoch (GMT). If not set then this deal is valid until manually disabled by the publisher.", + "format": "uint64" + }, + "fixedCpm": { + "type": "string", + "description": "The fixed price for this preferred deal. In cpm micros of currency according to currencyCode. If set, then this preferred deal is eligible for the fixed price tier of buying (highest priority, pay exactly the configured fixed price).", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Unique identifier of this preferred deal.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#preferredDeal.", + "default": "adexchangeseller#preferredDeal" + }, + "startTime": { + "type": "string", + "description": "Time when this deal becomes active in seconds since the epoch (GMT). If not set then this deal is active immediately upon creation.", + "format": "uint64" + } + } + }, + "PreferredDeals": { + "id": "PreferredDeals", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The preferred deals returned in this list response.", + "items": { + "$ref": "PreferredDeal" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#preferredDeals.", + "default": "adexchangeseller#preferredDeals" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adexchangeseller#report.", + "default": "adexchangeseller#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "ReportingMetadataEntry": { + "id": "ReportingMetadataEntry", + "type": "object", + "properties": { + "compatibleDimensions": { + "type": "array", + "description": "For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.", + "items": { + "type": "string" + } + }, + "compatibleMetrics": { + "type": "array", + "description": "The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#reportingMetadataEntry.", + "default": "adexchangeseller#reportingMetadataEntry" + }, + "requiredDimensions": { + "type": "array", + "description": "The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "requiredMetrics": { + "type": "array", + "description": "The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "supportedProducts": { + "type": "array", + "description": "The codes of the projects supported by the dimension or metric this reporting metadata entry describes.", + "items": { + "type": "string" + } + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#savedReport.", + "default": "adexchangeseller#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#savedReports.", + "default": "adexchangeseller#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adexchangeseller#urlChannel.", + "default": "adexchangeseller#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adexchangeseller#urlChannels.", + "default": "adexchangeseller#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adexchangeseller.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about. Tip: 'myaccount' is a valid ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "List all accounts available to this Ad Exchange account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of accounts to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + }, + "resources": { + "adclients": { + "methods": { + "list": { + "id": "adexchangeseller.accounts.adclients.list", + "path": "accounts/{accountId}/adclients", + "httpMethod": "GET", + "description": "List all ad clients in this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "alerts": { + "methods": { + "list": { + "id": "adexchangeseller.accounts.alerts.list", + "path": "accounts/{accountId}/alerts", + "httpMethod": "GET", + "description": "List the alerts for this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account owning the alerts.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adexchangeseller.accounts.customchannels.get", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.accounts.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "metadata": { + "resources": { + "dimensions": { + "methods": { + "list": { + "id": "adexchangeseller.accounts.metadata.dimensions.list", + "path": "accounts/{accountId}/metadata/dimensions", + "httpMethod": "GET", + "description": "List the metadata for the dimensions available to this AdExchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account with visibility to the dimensions.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "metrics": { + "methods": { + "list": { + "id": "adexchangeseller.accounts.metadata.metrics.list", + "path": "accounts/{accountId}/metadata/metrics", + "httpMethod": "GET", + "description": "List the metadata for the metrics available to this AdExchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account with visibility to the metrics.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "preferreddeals": { + "methods": { + "get": { + "id": "adexchangeseller.accounts.preferreddeals.get", + "path": "accounts/{accountId}/preferreddeals/{dealId}", + "httpMethod": "GET", + "description": "Get information about the selected Ad Exchange Preferred Deal.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account owning the deal.", + "required": true, + "location": "path" + }, + "dealId": { + "type": "string", + "description": "Preferred deal to get information about.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "dealId" + ], + "response": { + "$ref": "PreferredDeal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.accounts.preferreddeals.list", + "path": "accounts/{accountId}/preferreddeals", + "httpMethod": "GET", + "description": "List the preferred deals for this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account owning the deals.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "PreferredDeals" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adexchangeseller.accounts.reports.generate", + "path": "accounts/{accountId}/reports", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which owns the generated report.", + "required": true, + "location": "path" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "startDate", + "endDate" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adexchangeseller.accounts.reports.saved.generate", + "path": "accounts/{accountId}/reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an Ad Exchange report based on the saved report ID sent in the query parameters.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account owning the saved report.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "savedReportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + }, + "list": { + "id": "adexchangeseller.accounts.reports.saved.list", + "path": "accounts/{accountId}/reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account owning the saved reports.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adexchangeseller.accounts.urlchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this Ad Exchange account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.seller", + "https://www.googleapis.com/auth/adexchange.seller.readonly" + ] + } + } + } + } + } + } +} diff --git a/etc/api/admin/directory_v1/admin-api.json b/etc/api/admin/directory_v1/admin-api.json new file mode 100644 index 0000000000..dc20c08680 --- /dev/null +++ b/etc/api/admin/directory_v1/admin-api.json @@ -0,0 +1,4148 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/kiEe27ASVaXFaTazonTUuT5jr1o\"", + "discoveryVersion": "v1", + "id": "admin:directory_v1", + "name": "admin", + "canonicalName": "directory", + "version": "directory_v1", + "revision": "20150123", + "title": "Admin Directory API", + "description": "The Admin SDK Directory API lets you view and manage enterprise resources such as users and groups, administrative notifications, security features, and more.", + "ownerDomain": "google.com", + "ownerName": "Google", + "packagePath": "admin", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/admin-sdk/directory/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/admin/directory/v1/", + "basePath": "/admin/directory/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "admin/directory/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/admin.directory.device.chromeos": { + "description": "View and manage your Chrome OS devices' metadata" + }, + "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly": { + "description": "View your Chrome OS devices' metadata" + }, + "https://www.googleapis.com/auth/admin.directory.device.mobile": { + "description": "View and manage your mobile devices' metadata" + }, + "https://www.googleapis.com/auth/admin.directory.device.mobile.action": { + "description": "Manage your mobile devices by performing administrative tasks" + }, + "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly": { + "description": "View your mobile devices' metadata" + }, + "https://www.googleapis.com/auth/admin.directory.group": { + "description": "View and manage the provisioning of groups on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.group.member": { + "description": "View and manage group subscriptions on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.group.member.readonly": { + "description": "View group subscriptions on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.group.readonly": { + "description": "View groups on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.notifications": { + "description": "View and manage notifications received on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.orgunit": { + "description": "View and manage organization units on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.orgunit.readonly": { + "description": "View organization units on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user": { + "description": "View and manage the provisioning of users on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user.alias": { + "description": "View and manage user aliases on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user.alias.readonly": { + "description": "View user aliases on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user.readonly": { + "description": "View users on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.user.security": { + "description": "Manage data access permissions for users on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.userschema": { + "description": "View and manage the provisioning of user schemas on your domain" + }, + "https://www.googleapis.com/auth/admin.directory.userschema.readonly": { + "description": "View user schemas on your domain" + } + } + } + }, + "schemas": { + "Alias": { + "id": "Alias", + "type": "object", + "description": "JSON template for Alias object in Directory API.", + "properties": { + "alias": { + "type": "string", + "description": "A alias email" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Unique id of the group (Read-only) Unique id of the user (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#alias" + }, + "primaryEmail": { + "type": "string", + "description": "Group's primary email (Read-only) User's primary email (Read-only)" + } + } + }, + "Aliases": { + "id": "Aliases", + "type": "object", + "description": "JSON response template to list aliases in Directory API.", + "properties": { + "aliases": { + "type": "array", + "description": "List of alias objects.", + "items": { + "$ref": "Alias" + } + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#aliases" + } + } + }, + "Asp": { + "id": "Asp", + "type": "object", + "description": "The template that returns individual ASP (Access Code) data.", + "properties": { + "codeId": { + "type": "integer", + "description": "The unique ID of the ASP.", + "format": "int32" + }, + "creationTime": { + "type": "string", + "description": "The time when the ASP was created. Expressed in Unix time format.", + "format": "int64" + }, + "etag": { + "type": "string", + "description": "ETag of the ASP." + }, + "kind": { + "type": "string", + "description": "The type of the API resource. This is always admin#directory#asp.", + "default": "admin#directory#asp" + }, + "lastTimeUsed": { + "type": "string", + "description": "The time when the ASP was last used. Expressed in Unix time format.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the application that the user, represented by their userId, entered when the ASP was created." + }, + "userKey": { + "type": "string", + "description": "The unique ID of the user who issued the ASP." + } + } + }, + "Asps": { + "id": "Asps", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "A list of ASP resources.", + "items": { + "$ref": "Asp" + } + }, + "kind": { + "type": "string", + "description": "The type of the API resource. This is always admin#directory#aspList.", + "default": "admin#directory#aspList" + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "An notification channel used to watch for resource changes.", + "properties": { + "address": { + "type": "string", + "description": "The address where notifications are delivered for this channel." + }, + "expiration": { + "type": "string", + "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "A UUID or similar unique string that identifies this channel." + }, + "kind": { + "type": "string", + "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".", + "default": "api#channel" + }, + "params": { + "type": "object", + "description": "Additional parameters controlling delivery channel behavior. Optional.", + "additionalProperties": { + "type": "string", + "description": "Declares a new parameter by name." + } + }, + "payload": { + "type": "boolean", + "description": "A Boolean value to indicate whether payload is wanted. Optional." + }, + "resourceId": { + "type": "string", + "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions." + }, + "resourceUri": { + "type": "string", + "description": "A version-specific identifier for the watched resource." + }, + "token": { + "type": "string", + "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional." + }, + "type": { + "type": "string", + "description": "The type of delivery mechanism used for this channel." + } + } + }, + "ChromeOsDevice": { + "id": "ChromeOsDevice", + "type": "object", + "description": "JSON template for Chrome Os Device resource in Directory API.", + "properties": { + "activeTimeRanges": { + "type": "array", + "description": "List of active time ranges (Read-only)", + "items": { + "type": "object", + "properties": { + "activeTime": { + "type": "integer", + "description": "Duration in milliseconds", + "format": "int32" + }, + "date": { + "type": "string", + "description": "Date of usage", + "format": "date" + } + } + } + }, + "annotatedLocation": { + "type": "string", + "description": "Address or location of the device as noted by the administrator" + }, + "annotatedUser": { + "type": "string", + "description": "User of the device" + }, + "bootMode": { + "type": "string", + "description": "Chromebook boot mode (Read-only)" + }, + "deviceId": { + "type": "string", + "description": "Unique identifier of Chrome OS Device (Read-only)" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "ethernetMacAddress": { + "type": "string", + "description": "Chromebook Mac Address on ethernet network interface (Read-only)" + }, + "firmwareVersion": { + "type": "string", + "description": "Chromebook firmware version (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#chromeosdevice" + }, + "lastEnrollmentTime": { + "type": "string", + "description": "Date and time the device was last enrolled (Read-only)", + "format": "date-time" + }, + "lastSync": { + "type": "string", + "description": "Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)", + "format": "date-time" + }, + "macAddress": { + "type": "string", + "description": "Chromebook Mac Address on wifi network interface (Read-only)" + }, + "meid": { + "type": "string", + "description": "Mobile Equipment identifier for the 3G mobile card in the Chromebook (Read-only)" + }, + "model": { + "type": "string", + "description": "Chromebook Model (Read-only)" + }, + "notes": { + "type": "string", + "description": "Notes added by the administrator" + }, + "orderNumber": { + "type": "string", + "description": "Chromebook order number (Read-only)" + }, + "orgUnitPath": { + "type": "string", + "description": "OrgUnit of the device" + }, + "osVersion": { + "type": "string", + "description": "Chromebook Os Version (Read-only)" + }, + "platformVersion": { + "type": "string", + "description": "Chromebook platform version (Read-only)" + }, + "recentUsers": { + "type": "array", + "description": "List of recent device users, in descending order by last login time (Read-only)", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address of the user. Present only if the user type is managed" + }, + "type": { + "type": "string", + "description": "The type of the user" + } + } + } + }, + "serialNumber": { + "type": "string", + "description": "Chromebook serial number (Read-only)" + }, + "status": { + "type": "string", + "description": "status of the device (Read-only)" + }, + "supportEndDate": { + "type": "string", + "description": "Final date the device will be supported (Read-only)", + "format": "date-time" + }, + "willAutoRenew": { + "type": "boolean", + "description": "Will Chromebook auto renew after support end date (Read-only)" + } + } + }, + "ChromeOsDevices": { + "id": "ChromeOsDevices", + "type": "object", + "description": "JSON response template for List Chrome OS Devices operation in Directory API.", + "properties": { + "chromeosdevices": { + "type": "array", + "description": "List of Chrome OS Device objects.", + "items": { + "$ref": "ChromeOsDevice" + } + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#chromeosdevices" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access next page of this result." + } + } + }, + "Group": { + "id": "Group", + "type": "object", + "description": "JSON template for Group resource in Directory API.", + "properties": { + "adminCreated": { + "type": "boolean", + "description": "Is the group created by admin (Read-only) *" + }, + "aliases": { + "type": "array", + "description": "List of aliases (Read-only)", + "items": { + "type": "string" + } + }, + "description": { + "type": "string", + "description": "Description of the group" + }, + "directMembersCount": { + "type": "string", + "description": "Group direct members count", + "format": "int64" + }, + "email": { + "type": "string", + "description": "Email of Group", + "annotations": { + "required": [ + "directory.groups.insert" + ] + } + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier of Group (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#group" + }, + "name": { + "type": "string", + "description": "Group name" + }, + "nonEditableAliases": { + "type": "array", + "description": "List of non editable aliases (Read-only)", + "items": { + "type": "string" + } + } + } + }, + "Groups": { + "id": "Groups", + "type": "object", + "description": "JSON response template for List Groups operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "groups": { + "type": "array", + "description": "List of group objects.", + "items": { + "$ref": "Group" + } + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#groups" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access next page of this result." + } + } + }, + "Member": { + "id": "Member", + "type": "object", + "description": "JSON template for Member resource in Directory API.", + "properties": { + "email": { + "type": "string", + "description": "Email of member (Read-only)" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier of customer member (Read-only) Unique identifier of group (Read-only) Unique identifier of member (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#member" + }, + "role": { + "type": "string", + "description": "Role of member" + }, + "type": { + "type": "string", + "description": "Type of member (Immutable)" + } + } + }, + "Members": { + "id": "Members", + "type": "object", + "description": "JSON response template for List Members operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#members" + }, + "members": { + "type": "array", + "description": "List of member objects.", + "items": { + "$ref": "Member" + } + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access next page of this result." + } + } + }, + "MobileDevice": { + "id": "MobileDevice", + "type": "object", + "description": "JSON template for Mobile Device resource in Directory API.", + "properties": { + "applications": { + "type": "array", + "description": "List of applications installed on Mobile Device", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of application" + }, + "packageName": { + "type": "string", + "description": "Package name of application" + }, + "permission": { + "type": "array", + "description": "List of Permissions for application", + "items": { + "type": "string" + } + }, + "versionCode": { + "type": "integer", + "description": "Version code of application", + "format": "int32" + }, + "versionName": { + "type": "string", + "description": "Version name of application" + } + } + } + }, + "basebandVersion": { + "type": "string", + "description": "Mobile Device Baseband version (Read-only)" + }, + "buildNumber": { + "type": "string", + "description": "Mobile Device Build number (Read-only)" + }, + "defaultLanguage": { + "type": "string", + "description": "The default locale used on the Mobile Device (Read-only)" + }, + "deviceCompromisedStatus": { + "type": "string", + "description": "Mobile Device compromised status (Read-only)" + }, + "deviceId": { + "type": "string", + "description": "Mobile Device serial number (Read-only)" + }, + "email": { + "type": "array", + "description": "List of owner user's email addresses (Read-only)", + "items": { + "type": "string" + } + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "firstSync": { + "type": "string", + "description": "Date and time the device was first synchronized with the policy settings in the Google Apps administrator control panel (Read-only)", + "format": "date-time" + }, + "hardwareId": { + "type": "string", + "description": "Mobile Device Hardware Id (Read-only)" + }, + "imei": { + "type": "string", + "description": "Mobile Device IMEI number (Read-only)" + }, + "kernelVersion": { + "type": "string", + "description": "Mobile Device Kernel version (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#mobiledevice" + }, + "lastSync": { + "type": "string", + "description": "Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)", + "format": "date-time" + }, + "managedAccountIsOnOwnerProfile": { + "type": "boolean", + "description": "Boolean indicating if this account is on owner/primary profile or not (Read-only)" + }, + "meid": { + "type": "string", + "description": "Mobile Device MEID number (Read-only)" + }, + "model": { + "type": "string", + "description": "Name of the model of the device" + }, + "name": { + "type": "array", + "description": "List of owner user's names (Read-only)", + "items": { + "type": "string" + } + }, + "networkOperator": { + "type": "string", + "description": "Mobile Device mobile or network operator (if available) (Read-only)" + }, + "os": { + "type": "string", + "description": "Name of the mobile operating system" + }, + "resourceId": { + "type": "string", + "description": "Unique identifier of Mobile Device (Read-only)" + }, + "serialNumber": { + "type": "string", + "description": "Mobile Device SSN or Serial Number (Read-only)" + }, + "status": { + "type": "string", + "description": "Status of the device (Read-only)" + }, + "type": { + "type": "string", + "description": "The type of device (Read-only)" + }, + "userAgent": { + "type": "string", + "description": "Mobile Device user agent" + }, + "wifiMacAddress": { + "type": "string", + "description": "Mobile Device WiFi MAC address (Read-only)" + } + } + }, + "MobileDeviceAction": { + "id": "MobileDeviceAction", + "type": "object", + "description": "JSON request template for firing commands on Mobile Device in Directory Devices API.", + "properties": { + "action": { + "type": "string", + "description": "Action to be taken on the Mobile Device", + "annotations": { + "required": [ + "directory.mobiledevices.action" + ] + } + } + } + }, + "MobileDevices": { + "id": "MobileDevices", + "type": "object", + "description": "JSON response template for List Mobile Devices operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#mobiledevices" + }, + "mobiledevices": { + "type": "array", + "description": "List of Mobile Device objects.", + "items": { + "$ref": "MobileDevice" + } + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access next page of this result." + } + } + }, + "Notification": { + "id": "Notification", + "type": "object", + "description": "Template for a notification resource.", + "properties": { + "body": { + "type": "string", + "description": "Body of the notification (Read-only)" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "fromAddress": { + "type": "string", + "description": "Address from which the notification is received (Read-only)" + }, + "isUnread": { + "type": "boolean", + "description": "Boolean indicating whether the notification is unread or not.", + "annotations": { + "required": [ + "directory.notifications.patch", + "directory.notifications.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The type of the resource.", + "default": "admin#directory#notification" + }, + "notificationId": { + "type": "string" + }, + "sendTime": { + "type": "string", + "description": "Time at which notification was sent (Read-only)", + "format": "date-time" + }, + "subject": { + "type": "string", + "description": "Subject of the notification (Read-only)" + } + } + }, + "Notifications": { + "id": "Notifications", + "type": "object", + "description": "Template for notifications list response.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "List of notifications in this page.", + "items": { + "$ref": "Notification" + } + }, + "kind": { + "type": "string", + "description": "The type of the resource.", + "default": "admin#directory#notifications" + }, + "nextPageToken": { + "type": "string", + "description": "Token for fetching the next page of notifications." + }, + "unreadNotificationsCount": { + "type": "integer", + "description": "Number of unread notification for the domain.", + "format": "int32" + } + } + }, + "OrgUnit": { + "id": "OrgUnit", + "type": "object", + "description": "JSON template for Org Unit resource in Directory API.", + "properties": { + "blockInheritance": { + "type": "boolean", + "description": "Should block inheritance" + }, + "description": { + "type": "string", + "description": "Description of OrgUnit" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#orgUnit" + }, + "name": { + "type": "string", + "description": "Name of OrgUnit", + "annotations": { + "required": [ + "directory.orgunits.insert" + ] + } + }, + "orgUnitPath": { + "type": "string", + "description": "Path of OrgUnit" + }, + "parentOrgUnitPath": { + "type": "string", + "description": "Path of parent OrgUnit", + "annotations": { + "required": [ + "directory.orgunits.insert" + ] + } + } + } + }, + "OrgUnits": { + "id": "OrgUnits", + "type": "object", + "description": "JSON response template for List Organization Units operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#orgUnits" + }, + "organizationUnits": { + "type": "array", + "description": "List of user objects.", + "items": { + "$ref": "OrgUnit" + } + } + } + }, + "Schema": { + "id": "Schema", + "type": "object", + "description": "JSON template for Schema resource in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "fields": { + "type": "array", + "description": "Fields of Schema", + "items": { + "$ref": "SchemaFieldSpec" + }, + "annotations": { + "required": [ + "directory.schemas.insert", + "directory.schemas.update" + ] + } + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#schema" + }, + "schemaId": { + "type": "string", + "description": "Unique identifier of Schema (Read-only)" + }, + "schemaName": { + "type": "string", + "description": "Schema name", + "annotations": { + "required": [ + "directory.schemas.insert" + ] + } + } + } + }, + "SchemaFieldSpec": { + "id": "SchemaFieldSpec", + "type": "object", + "description": "JSON template for FieldSpec resource for Schemas in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "fieldId": { + "type": "string", + "description": "Unique identifier of Field (Read-only)" + }, + "fieldName": { + "type": "string", + "description": "Name of the field.", + "annotations": { + "required": [ + "directory.schemas.insert", + "directory.schemas.update" + ] + } + }, + "fieldType": { + "type": "string", + "description": "Type of the field.", + "annotations": { + "required": [ + "directory.schemas.insert", + "directory.schemas.update" + ] + } + }, + "indexed": { + "type": "boolean", + "description": "Boolean specifying whether the field is indexed or not.", + "default": "true" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#schema#fieldspec" + }, + "multiValued": { + "type": "boolean", + "description": "Boolean specifying whether this is a multi-valued field or not." + }, + "numericIndexingSpec": { + "type": "object", + "description": "Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.", + "properties": { + "maxValue": { + "type": "number", + "description": "Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.", + "format": "double" + }, + "minValue": { + "type": "number", + "description": "Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.", + "format": "double" + } + } + }, + "readAccessType": { + "type": "string", + "description": "Read ACLs on the field specifying who can view values of this field. Valid values are \"ALL_DOMAIN_USERS\" and \"ADMINS_AND_SELF\".", + "default": "ALL_DOMAIN_USERS" + } + } + }, + "Schemas": { + "id": "Schemas", + "type": "object", + "description": "JSON response template for List Schema operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#schemas" + }, + "schemas": { + "type": "array", + "description": "List of UserSchema objects.", + "items": { + "$ref": "Schema" + } + } + } + }, + "Token": { + "id": "Token", + "type": "object", + "description": "JSON template for token resource in Directory API.", + "properties": { + "anonymous": { + "type": "boolean", + "description": "Whether the application is registered with Google. The value is true if the application has an anonymous Client ID." + }, + "clientId": { + "type": "string", + "description": "The Client ID of the application the token is issued to." + }, + "displayText": { + "type": "string", + "description": "The displayable name of the application the token is issued to." + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "The type of the API resource. This is always admin#directory#token.", + "default": "admin#directory#token" + }, + "nativeApp": { + "type": "boolean", + "description": "Whether the token is issued to an installed application. The value is true if the application is installed to a desktop or mobile device." + }, + "scopes": { + "type": "array", + "description": "A list of authorization scopes the application is granted.", + "items": { + "type": "string" + } + }, + "userKey": { + "type": "string", + "description": "The unique ID of the user that issued the token." + } + } + }, + "Tokens": { + "id": "Tokens", + "type": "object", + "description": "JSON response template for List tokens operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "A list of Token resources.", + "items": { + "$ref": "Token" + } + }, + "kind": { + "type": "string", + "description": "The type of the API resource. This is always admin#directory#tokenList.", + "default": "admin#directory#tokenList" + } + } + }, + "User": { + "id": "User", + "type": "object", + "description": "JSON template for User object in Directory API.", + "properties": { + "addresses": { + "type": "any" + }, + "agreedToTerms": { + "type": "boolean", + "description": "Indicates if user has agreed to terms (Read-only)" + }, + "aliases": { + "type": "array", + "description": "List of aliases (Read-only)", + "items": { + "type": "string" + } + }, + "changePasswordAtNextLogin": { + "type": "boolean", + "description": "Boolean indicating if the user should change password in next login" + }, + "creationTime": { + "type": "string", + "description": "User's Google account creation time. (Read-only)", + "format": "date-time" + }, + "customSchemas": { + "type": "object", + "description": "Custom fields of the user.", + "additionalProperties": { + "$ref": "UserCustomProperties" + } + }, + "customerId": { + "type": "string", + "description": "CustomerId of User (Read-only)" + }, + "deletionTime": { + "type": "string", + "format": "date-time" + }, + "emails": { + "type": "any" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "externalIds": { + "type": "any" + }, + "hashFunction": { + "type": "string", + "description": "Hash function name for password. Supported are MD5, SHA-1 and crypt" + }, + "id": { + "type": "string", + "description": "Unique identifier of User (Read-only)" + }, + "ims": { + "type": "any" + }, + "includeInGlobalAddressList": { + "type": "boolean", + "description": "Boolean indicating if user is included in Global Address List" + }, + "ipWhitelisted": { + "type": "boolean", + "description": "Boolean indicating if ip is whitelisted" + }, + "isAdmin": { + "type": "boolean", + "description": "Boolean indicating if the user is admin (Read-only)" + }, + "isDelegatedAdmin": { + "type": "boolean", + "description": "Boolean indicating if the user is delegated admin (Read-only)" + }, + "isMailboxSetup": { + "type": "boolean", + "description": "Is mailbox setup (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#user" + }, + "lastLoginTime": { + "type": "string", + "description": "User's last login time. (Read-only)", + "format": "date-time" + }, + "name": { + "$ref": "UserName", + "description": "User's name", + "annotations": { + "required": [ + "directory.users.insert" + ] + } + }, + "nonEditableAliases": { + "type": "array", + "description": "List of non editable aliases (Read-only)", + "items": { + "type": "string" + } + }, + "notes": { + "type": "any" + }, + "orgUnitPath": { + "type": "string", + "description": "OrgUnit of User" + }, + "organizations": { + "type": "any" + }, + "password": { + "type": "string", + "description": "User's password", + "annotations": { + "required": [ + "directory.users.insert" + ] + } + }, + "phones": { + "type": "any" + }, + "primaryEmail": { + "type": "string", + "description": "username of User", + "annotations": { + "required": [ + "directory.users.insert" + ] + } + }, + "relations": { + "type": "any" + }, + "suspended": { + "type": "boolean", + "description": "Indicates if user is suspended" + }, + "suspensionReason": { + "type": "string", + "description": "Suspension reason if user is suspended (Read-only)" + }, + "thumbnailPhotoUrl": { + "type": "string", + "description": "Photo Url of the user (Read-only)" + }, + "websites": { + "type": "any" + } + } + }, + "UserAbout": { + "id": "UserAbout", + "type": "object", + "description": "JSON template for About (notes) of a user in Directory API.", + "properties": { + "contentType": { + "type": "string", + "description": "About entry can have a type which indicates the content type. It can either be plain or html. By default, notes contents are assumed to contain plain text." + }, + "value": { + "type": "string", + "description": "Actual value of notes." + } + } + }, + "UserAddress": { + "id": "UserAddress", + "type": "object", + "description": "JSON template for address.", + "properties": { + "country": { + "type": "string", + "description": "Country." + }, + "countryCode": { + "type": "string", + "description": "Country code." + }, + "customType": { + "type": "string", + "description": "Custom type." + }, + "extendedAddress": { + "type": "string", + "description": "Extended Address." + }, + "formatted": { + "type": "string", + "description": "Formatted address." + }, + "locality": { + "type": "string", + "description": "Locality." + }, + "poBox": { + "type": "string", + "description": "Other parts of address." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "primary": { + "type": "boolean", + "description": "If this is user's primary address. Only one entry could be marked as primary." + }, + "region": { + "type": "string", + "description": "Region." + }, + "sourceIsStructured": { + "type": "boolean", + "description": "User supplied address was structured. Structured addresses are NOT supported at this time. You might be able to write structured addresses, but any values will eventually be clobbered." + }, + "streetAddress": { + "type": "string", + "description": "Street." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard values of that entry. For example address could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value. Such type should have the CUSTOM value as type and also have a customType value." + } + } + }, + "UserCustomProperties": { + "id": "UserCustomProperties", + "type": "object", + "description": "JSON template for a set of custom properties (i.e. all fields in a particular schema)", + "additionalProperties": { + "type": "any" + } + }, + "UserEmail": { + "id": "UserEmail", + "type": "object", + "description": "JSON template for an email.", + "properties": { + "address": { + "type": "string", + "description": "Email id of the user." + }, + "customType": { + "type": "string", + "description": "Custom Type." + }, + "primary": { + "type": "boolean", + "description": "If this is user's primary email. Only one entry could be marked as primary." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard types of that entry. For example email could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value Such types should have the CUSTOM value as type and also have a customType value." + } + } + }, + "UserExternalId": { + "id": "UserExternalId", + "type": "object", + "description": "JSON template for an externalId entry.", + "properties": { + "customType": { + "type": "string", + "description": "Custom type." + }, + "type": { + "type": "string", + "description": "The type of the Id." + }, + "value": { + "type": "string", + "description": "The value of the id." + } + } + }, + "UserIm": { + "id": "UserIm", + "type": "object", + "description": "JSON template for instant messenger of an user.", + "properties": { + "customProtocol": { + "type": "string", + "description": "Custom protocol." + }, + "customType": { + "type": "string", + "description": "Custom type." + }, + "im": { + "type": "string", + "description": "Instant messenger id." + }, + "primary": { + "type": "boolean", + "description": "If this is user's primary im. Only one entry could be marked as primary." + }, + "protocol": { + "type": "string", + "description": "Protocol used in the instant messenger. It should be one of the values from ImProtocolTypes map. Similar to type, it can take a CUSTOM value and specify the custom name in customProtocol field." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard types of that entry. For example instant messengers could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value. Such types should have the CUSTOM value as type and also have a customType value." + } + } + }, + "UserMakeAdmin": { + "id": "UserMakeAdmin", + "type": "object", + "description": "JSON request template for setting/revoking admin status of a user in Directory API.", + "properties": { + "status": { + "type": "boolean", + "description": "Boolean indicating new admin status of the user", + "annotations": { + "required": [ + "directory.users.makeAdmin" + ] + } + } + } + }, + "UserName": { + "id": "UserName", + "type": "object", + "description": "JSON template for name of a user in Directory API.", + "properties": { + "familyName": { + "type": "string", + "description": "Last Name", + "annotations": { + "required": [ + "directory.users.insert" + ] + } + }, + "fullName": { + "type": "string", + "description": "Full Name" + }, + "givenName": { + "type": "string", + "description": "First Name", + "annotations": { + "required": [ + "directory.users.insert" + ] + } + } + } + }, + "UserOrganization": { + "id": "UserOrganization", + "type": "object", + "description": "JSON template for an organization entry.", + "properties": { + "costCenter": { + "type": "string", + "description": "The cost center of the users department." + }, + "customType": { + "type": "string", + "description": "Custom type." + }, + "department": { + "type": "string", + "description": "Department within the organization." + }, + "description": { + "type": "string", + "description": "Description of the organization." + }, + "domain": { + "type": "string", + "description": "The domain to which the organization belongs to." + }, + "location": { + "type": "string", + "description": "Location of the organization. This need not be fully qualified address." + }, + "name": { + "type": "string", + "description": "Name of the organization" + }, + "primary": { + "type": "boolean", + "description": "If it user's primary organization." + }, + "symbol": { + "type": "string", + "description": "Symbol of the organization." + }, + "title": { + "type": "string", + "description": "Title (designation) of the user in the organization." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard types of that entry. For example organization could be of school, work etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a CustomType value." + } + } + }, + "UserPhone": { + "id": "UserPhone", + "type": "object", + "description": "JSON template for a phone entry.", + "properties": { + "customType": { + "type": "string", + "description": "Custom Type." + }, + "primary": { + "type": "boolean", + "description": "If this is user's primary phone or not." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard types of that entry. For example phone could be of home_fax, work, mobile etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value." + }, + "value": { + "type": "string", + "description": "Phone number." + } + } + }, + "UserPhoto": { + "id": "UserPhoto", + "type": "object", + "description": "JSON template for Photo object in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "height": { + "type": "integer", + "description": "Height in pixels of the photo", + "format": "int32" + }, + "id": { + "type": "string", + "description": "Unique identifier of User (Read-only)" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#user#photo" + }, + "mimeType": { + "type": "string", + "description": "Mime Type of the photo" + }, + "photoData": { + "type": "string", + "description": "Base64 encoded photo data", + "format": "byte", + "annotations": { + "required": [ + "directory.users.photos.update" + ] + } + }, + "primaryEmail": { + "type": "string", + "description": "Primary email of User (Read-only)" + }, + "width": { + "type": "integer", + "description": "Width in pixels of the photo", + "format": "int32" + } + } + }, + "UserRelation": { + "id": "UserRelation", + "type": "object", + "description": "JSON template for a relation entry.", + "properties": { + "customType": { + "type": "string", + "description": "Custom Type." + }, + "type": { + "type": "string", + "description": "The relation of the user. Some of the possible values are mother, father, sister, brother, manager, assistant, partner." + }, + "value": { + "type": "string", + "description": "The name of the relation." + } + } + }, + "UserUndelete": { + "id": "UserUndelete", + "type": "object", + "description": "JSON request template to undelete a user in Directory API.", + "properties": { + "orgUnitPath": { + "type": "string", + "description": "OrgUnit of User" + } + } + }, + "UserWebsite": { + "id": "UserWebsite", + "type": "object", + "description": "JSON template for a website entry.", + "properties": { + "customType": { + "type": "string", + "description": "Custom Type." + }, + "primary": { + "type": "boolean", + "description": "If this is user's primary website or not." + }, + "type": { + "type": "string", + "description": "Each entry can have a type which indicates standard types of that entry. For example website could be of home, work, blog etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value." + }, + "value": { + "type": "string", + "description": "Website." + } + } + }, + "Users": { + "id": "Users", + "type": "object", + "description": "JSON response template for List Users operation in Apps Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#directory#users" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access next page of this result." + }, + "trigger_event": { + "type": "string", + "description": "Event that triggered this response (only used in case of Push Response)" + }, + "users": { + "type": "array", + "description": "List of user objects.", + "items": { + "$ref": "User" + } + } + } + }, + "VerificationCode": { + "id": "VerificationCode", + "type": "object", + "description": "JSON template for verification codes in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "The type of the resource. This is always admin#directory#verificationCode.", + "default": "admin#directory#verificationCode" + }, + "userId": { + "type": "string", + "description": "The obfuscated unique ID of the user." + }, + "verificationCode": { + "type": "string", + "description": "A current verification code for the user. Invalidated or used verification codes are not returned as part of the result." + } + } + }, + "VerificationCodes": { + "id": "VerificationCodes", + "type": "object", + "description": "JSON response template for List verification codes operation in Directory API.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "A list of verification code resources.", + "items": { + "$ref": "VerificationCode" + } + }, + "kind": { + "type": "string", + "description": "The type of the resource. This is always admin#directory#verificationCodesList.", + "default": "admin#directory#verificationCodesList" + } + } + } + }, + "resources": { + "asps": { + "methods": { + "delete": { + "id": "directory.asps.delete", + "path": "users/{userKey}/asps/{codeId}", + "httpMethod": "DELETE", + "description": "Delete an ASP issued by a user.", + "parameters": { + "codeId": { + "type": "integer", + "description": "The unique ID of the ASP to be deleted.", + "required": true, + "format": "int32", + "location": "path" + }, + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "codeId" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "get": { + "id": "directory.asps.get", + "path": "users/{userKey}/asps/{codeId}", + "httpMethod": "GET", + "description": "Get information about an ASP issued by a user.", + "parameters": { + "codeId": { + "type": "integer", + "description": "The unique ID of the ASP.", + "required": true, + "format": "int32", + "location": "path" + }, + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "codeId" + ], + "response": { + "$ref": "Asp" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "list": { + "id": "directory.asps.list", + "path": "users/{userKey}/asps", + "httpMethod": "GET", + "description": "List the ASPs issued by a user.", + "parameters": { + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "Asps" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + } + } + }, + "channels": { + "methods": { + "stop": { + "id": "admin.channels.stop", + "path": "/admin/directory_v1/channels/stop", + "httpMethod": "POST", + "description": "Stop watching resources through this channel", + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.alias", + "https://www.googleapis.com/auth/admin.directory.user.alias.readonly", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ] + } + } + }, + "chromeosdevices": { + "methods": { + "get": { + "id": "directory.chromeosdevices.get", + "path": "customer/{customerId}/devices/chromeos/{deviceId}", + "httpMethod": "GET", + "description": "Retrieve Chrome OS Device", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "deviceId": { + "type": "string", + "description": "Immutable id of Chrome OS Device", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, serialNumber, status, and user)", + "Includes all metadata fields" + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId", + "deviceId" + ], + "response": { + "$ref": "ChromeOsDevice" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.chromeos", + "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly" + ] + }, + "list": { + "id": "directory.chromeosdevices.list", + "path": "customer/{customerId}/devices/chromeos", + "httpMethod": "GET", + "description": "Retrieve all Chrome OS Devices of a customer (paginated)", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 100", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Column to use for sorting results", + "enum": [ + "annotatedLocation", + "annotatedUser", + "lastSync", + "notes", + "serialNumber", + "status", + "supportEndDate" + ], + "enumDescriptions": [ + "Chromebook location as annotated by the administrator.", + "Chromebook user as annotated by administrator.", + "Chromebook last sync.", + "Chromebook notes as annotated by the administrator.", + "Chromebook Serial Number.", + "Chromebook status.", + "Chromebook support end date." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, serialNumber, status, and user)", + "Includes all metadata fields" + ], + "location": "query" + }, + "query": { + "type": "string", + "description": "Search string in the format given at http://support.google.com/chromeos/a/bin/answer.py?hl=en&answer=1698333", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Whether to return results in ascending or descending order. Only of use when orderBy is also used", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "ChromeOsDevices" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.chromeos", + "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly" + ] + }, + "patch": { + "id": "directory.chromeosdevices.patch", + "path": "customer/{customerId}/devices/chromeos/{deviceId}", + "httpMethod": "PATCH", + "description": "Update Chrome OS Device. This method supports patch semantics.", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "deviceId": { + "type": "string", + "description": "Immutable id of Chrome OS Device", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, serialNumber, status, and user)", + "Includes all metadata fields" + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId", + "deviceId" + ], + "request": { + "$ref": "ChromeOsDevice" + }, + "response": { + "$ref": "ChromeOsDevice" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.chromeos" + ] + }, + "update": { + "id": "directory.chromeosdevices.update", + "path": "customer/{customerId}/devices/chromeos/{deviceId}", + "httpMethod": "PUT", + "description": "Update Chrome OS Device", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "deviceId": { + "type": "string", + "description": "Immutable id of Chrome OS Device", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, serialNumber, status, and user)", + "Includes all metadata fields" + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId", + "deviceId" + ], + "request": { + "$ref": "ChromeOsDevice" + }, + "response": { + "$ref": "ChromeOsDevice" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.chromeos" + ] + } + } + }, + "groups": { + "methods": { + "delete": { + "id": "directory.groups.delete", + "path": "groups/{groupKey}", + "httpMethod": "DELETE", + "description": "Delete Group", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + }, + "get": { + "id": "directory.groups.get", + "path": "groups/{groupKey}", + "httpMethod": "GET", + "description": "Retrieve Group", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.readonly" + ] + }, + "insert": { + "id": "directory.groups.insert", + "path": "groups", + "httpMethod": "POST", + "description": "Create Group", + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + }, + "list": { + "id": "directory.groups.list", + "path": "groups", + "httpMethod": "GET", + "description": "Retrieve all groups in a domain (paginated)", + "parameters": { + "customer": { + "type": "string", + "description": "Immutable id of the Google Apps account. In case of multi-domain, to fetch all groups for a customer, fill this field instead of domain.", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Name of the domain. Fill this field to get groups from only this domain. To return all groups in a multi-domain fill customer field instead.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 200", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user if only those groups are to be listed, the given user is a member of. If Id, it should match with id of user object", + "location": "query" + } + }, + "response": { + "$ref": "Groups" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.readonly" + ] + }, + "patch": { + "id": "directory.groups.patch", + "path": "groups/{groupKey}", + "httpMethod": "PATCH", + "description": "Update Group. This method supports patch semantics.", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group. If Id, it should match with id of group object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + }, + "update": { + "id": "directory.groups.update", + "path": "groups/{groupKey}", + "httpMethod": "PUT", + "description": "Update Group", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group. If Id, it should match with id of group object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + } + }, + "resources": { + "aliases": { + "methods": { + "delete": { + "id": "directory.groups.aliases.delete", + "path": "groups/{groupKey}/aliases/{alias}", + "httpMethod": "DELETE", + "description": "Remove a alias for the group", + "parameters": { + "alias": { + "type": "string", + "description": "The alias to be removed", + "required": true, + "location": "path" + }, + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey", + "alias" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + }, + "insert": { + "id": "directory.groups.aliases.insert", + "path": "groups/{groupKey}/aliases", + "httpMethod": "POST", + "description": "Add a alias for the group", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "request": { + "$ref": "Alias" + }, + "response": { + "$ref": "Alias" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group" + ] + }, + "list": { + "id": "directory.groups.aliases.list", + "path": "groups/{groupKey}/aliases", + "httpMethod": "GET", + "description": "List all aliases for a group", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "response": { + "$ref": "Aliases" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.readonly" + ], + "supportsSubscription": true + } + } + } + } + }, + "members": { + "methods": { + "delete": { + "id": "directory.members.delete", + "path": "groups/{groupKey}/members/{memberKey}", + "httpMethod": "DELETE", + "description": "Remove membership.", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + }, + "memberKey": { + "type": "string", + "description": "Email or immutable Id of the member", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey", + "memberKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member" + ] + }, + "get": { + "id": "directory.members.get", + "path": "groups/{groupKey}/members/{memberKey}", + "httpMethod": "GET", + "description": "Retrieve Group Member", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + }, + "memberKey": { + "type": "string", + "description": "Email or immutable Id of the member", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey", + "memberKey" + ], + "response": { + "$ref": "Member" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member", + "https://www.googleapis.com/auth/admin.directory.group.member.readonly", + "https://www.googleapis.com/auth/admin.directory.group.readonly" + ] + }, + "insert": { + "id": "directory.members.insert", + "path": "groups/{groupKey}/members", + "httpMethod": "POST", + "description": "Add user to the specified group.", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey" + ], + "request": { + "$ref": "Member" + }, + "response": { + "$ref": "Member" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member" + ] + }, + "list": { + "id": "directory.members.list", + "path": "groups/{groupKey}/members", + "httpMethod": "GET", + "description": "Retrieve all members in a group (paginated)", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 200", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "roles": { + "type": "string", + "description": "Comma separated role values to filter list results on.", + "location": "query" + } + }, + "parameterOrder": [ + "groupKey" + ], + "response": { + "$ref": "Members" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member", + "https://www.googleapis.com/auth/admin.directory.group.member.readonly", + "https://www.googleapis.com/auth/admin.directory.group.readonly" + ] + }, + "patch": { + "id": "directory.members.patch", + "path": "groups/{groupKey}/members/{memberKey}", + "httpMethod": "PATCH", + "description": "Update membership of a user in the specified group. This method supports patch semantics.", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group. If Id, it should match with id of group object", + "required": true, + "location": "path" + }, + "memberKey": { + "type": "string", + "description": "Email or immutable Id of the user. If Id, it should match with id of member object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey", + "memberKey" + ], + "request": { + "$ref": "Member" + }, + "response": { + "$ref": "Member" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member" + ] + }, + "update": { + "id": "directory.members.update", + "path": "groups/{groupKey}/members/{memberKey}", + "httpMethod": "PUT", + "description": "Update membership of a user in the specified group.", + "parameters": { + "groupKey": { + "type": "string", + "description": "Email or immutable Id of the group. If Id, it should match with id of group object", + "required": true, + "location": "path" + }, + "memberKey": { + "type": "string", + "description": "Email or immutable Id of the user. If Id, it should match with id of member object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupKey", + "memberKey" + ], + "request": { + "$ref": "Member" + }, + "response": { + "$ref": "Member" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.group", + "https://www.googleapis.com/auth/admin.directory.group.member" + ] + } + } + }, + "mobiledevices": { + "methods": { + "action": { + "id": "directory.mobiledevices.action", + "path": "customer/{customerId}/devices/mobile/{resourceId}/action", + "httpMethod": "POST", + "description": "Take action on Mobile Device", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "resourceId": { + "type": "string", + "description": "Immutable id of Mobile Device", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "resourceId" + ], + "request": { + "$ref": "MobileDeviceAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.mobile", + "https://www.googleapis.com/auth/admin.directory.device.mobile.action" + ] + }, + "delete": { + "id": "directory.mobiledevices.delete", + "path": "customer/{customerId}/devices/mobile/{resourceId}", + "httpMethod": "DELETE", + "description": "Delete Mobile Device", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "resourceId": { + "type": "string", + "description": "Immutable id of Mobile Device", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "resourceId" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.mobile" + ] + }, + "get": { + "id": "directory.mobiledevices.get", + "path": "customer/{customerId}/devices/mobile/{resourceId}", + "httpMethod": "GET", + "description": "Retrieve Mobile Device", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, model, status, type, and status)", + "Includes all metadata fields" + ], + "location": "query" + }, + "resourceId": { + "type": "string", + "description": "Immutable id of Mobile Device", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "resourceId" + ], + "response": { + "$ref": "MobileDevice" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.mobile", + "https://www.googleapis.com/auth/admin.directory.device.mobile.action", + "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly" + ] + }, + "list": { + "id": "directory.mobiledevices.list", + "path": "customer/{customerId}/devices/mobile", + "httpMethod": "GET", + "description": "Retrieve all Mobile Devices of a customer (paginated)", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 100", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Column to use for sorting results", + "enum": [ + "deviceId", + "email", + "lastSync", + "model", + "name", + "os", + "status", + "type" + ], + "enumDescriptions": [ + "Mobile Device serial number.", + "Owner user email.", + "Last policy settings sync date time of the device.", + "Mobile Device model.", + "Owner user name.", + "Mobile operating system.", + "Status of the device.", + "Type of the device." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Includes only the basic metadata fields (e.g., deviceId, model, status, type, and status)", + "Includes all metadata fields" + ], + "location": "query" + }, + "query": { + "type": "string", + "description": "Search string in the format given at http://support.google.com/a/bin/answer.py?hl=en&answer=1408863#search", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Whether to return results in ascending or descending order. Only of use when orderBy is also used", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "MobileDevices" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.mobile", + "https://www.googleapis.com/auth/admin.directory.device.mobile.action", + "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly" + ] + } + } + }, + "notifications": { + "methods": { + "delete": { + "id": "directory.notifications.delete", + "path": "customer/{customer}/notifications/{notificationId}", + "httpMethod": "DELETE", + "description": "Deletes a notification", + "parameters": { + "customer": { + "type": "string", + "description": "The unique ID for the customer's Google account. The customerId is also returned as part of the Users resource.", + "required": true, + "location": "path" + }, + "notificationId": { + "type": "string", + "description": "The unique ID of the notification.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customer", + "notificationId" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.notifications" + ] + }, + "get": { + "id": "directory.notifications.get", + "path": "customer/{customer}/notifications/{notificationId}", + "httpMethod": "GET", + "description": "Retrieves a notification.", + "parameters": { + "customer": { + "type": "string", + "description": "The unique ID for the customer's Google account. The customerId is also returned as part of the Users resource.", + "required": true, + "location": "path" + }, + "notificationId": { + "type": "string", + "description": "The unique ID of the notification.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customer", + "notificationId" + ], + "response": { + "$ref": "Notification" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.notifications" + ] + }, + "list": { + "id": "directory.notifications.list", + "path": "customer/{customer}/notifications", + "httpMethod": "GET", + "description": "Retrieves a list of notifications.", + "parameters": { + "customer": { + "type": "string", + "description": "The unique ID for the customer's Google account.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The ISO 639-1 code of the language notifications are returned in. The default is English (en).", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of notifications to return per page. The default is 100.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token to specify the page of results to retrieve.", + "location": "query" + } + }, + "parameterOrder": [ + "customer" + ], + "response": { + "$ref": "Notifications" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.notifications" + ] + }, + "patch": { + "id": "directory.notifications.patch", + "path": "customer/{customer}/notifications/{notificationId}", + "httpMethod": "PATCH", + "description": "Updates a notification. This method supports patch semantics.", + "parameters": { + "customer": { + "type": "string", + "description": "The unique ID for the customer's Google account.", + "required": true, + "location": "path" + }, + "notificationId": { + "type": "string", + "description": "The unique ID of the notification.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customer", + "notificationId" + ], + "request": { + "$ref": "Notification" + }, + "response": { + "$ref": "Notification" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.notifications" + ] + }, + "update": { + "id": "directory.notifications.update", + "path": "customer/{customer}/notifications/{notificationId}", + "httpMethod": "PUT", + "description": "Updates a notification.", + "parameters": { + "customer": { + "type": "string", + "description": "The unique ID for the customer's Google account.", + "required": true, + "location": "path" + }, + "notificationId": { + "type": "string", + "description": "The unique ID of the notification.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customer", + "notificationId" + ], + "request": { + "$ref": "Notification" + }, + "response": { + "$ref": "Notification" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.notifications" + ] + } + } + }, + "orgunits": { + "methods": { + "delete": { + "id": "directory.orgunits.delete", + "path": "customer/{customerId}/orgunits{/orgUnitPath*}", + "httpMethod": "DELETE", + "description": "Remove Organization Unit", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "orgUnitPath": { + "type": "string", + "description": "Full path of the organization unit", + "required": true, + "repeated": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "orgUnitPath" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit" + ] + }, + "get": { + "id": "directory.orgunits.get", + "path": "customer/{customerId}/orgunits{/orgUnitPath*}", + "httpMethod": "GET", + "description": "Retrieve Organization Unit", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "orgUnitPath": { + "type": "string", + "description": "Full path of the organization unit", + "required": true, + "repeated": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "orgUnitPath" + ], + "response": { + "$ref": "OrgUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit", + "https://www.googleapis.com/auth/admin.directory.orgunit.readonly" + ] + }, + "insert": { + "id": "directory.orgunits.insert", + "path": "customer/{customerId}/orgunits", + "httpMethod": "POST", + "description": "Add Organization Unit", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "OrgUnit" + }, + "response": { + "$ref": "OrgUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit" + ] + }, + "list": { + "id": "directory.orgunits.list", + "path": "customer/{customerId}/orgunits", + "httpMethod": "GET", + "description": "Retrieve all Organization Units", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "orgUnitPath": { + "type": "string", + "description": "the URL-encoded organization unit", + "default": "", + "location": "query" + }, + "type": { + "type": "string", + "description": "Whether to return all sub-organizations or just immediate children", + "enum": [ + "all", + "children" + ], + "enumDescriptions": [ + "All sub-organization units.", + "Immediate children only (default)." + ], + "location": "query" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "OrgUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit", + "https://www.googleapis.com/auth/admin.directory.orgunit.readonly" + ] + }, + "patch": { + "id": "directory.orgunits.patch", + "path": "customer/{customerId}/orgunits{/orgUnitPath*}", + "httpMethod": "PATCH", + "description": "Update Organization Unit. This method supports patch semantics.", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "orgUnitPath": { + "type": "string", + "description": "Full path of the organization unit", + "required": true, + "repeated": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "orgUnitPath" + ], + "request": { + "$ref": "OrgUnit" + }, + "response": { + "$ref": "OrgUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit" + ] + }, + "update": { + "id": "directory.orgunits.update", + "path": "customer/{customerId}/orgunits{/orgUnitPath*}", + "httpMethod": "PUT", + "description": "Update Organization Unit", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "orgUnitPath": { + "type": "string", + "description": "Full path of the organization unit", + "required": true, + "repeated": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "orgUnitPath" + ], + "request": { + "$ref": "OrgUnit" + }, + "response": { + "$ref": "OrgUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.orgunit" + ] + } + } + }, + "schemas": { + "methods": { + "delete": { + "id": "directory.schemas.delete", + "path": "customer/{customerId}/schemas/{schemaKey}", + "httpMethod": "DELETE", + "description": "Delete schema", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "schemaKey": { + "type": "string", + "description": "Name or immutable Id of the schema", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "schemaKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema" + ] + }, + "get": { + "id": "directory.schemas.get", + "path": "customer/{customerId}/schemas/{schemaKey}", + "httpMethod": "GET", + "description": "Retrieve schema", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "schemaKey": { + "type": "string", + "description": "Name or immutable Id of the schema", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "schemaKey" + ], + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema", + "https://www.googleapis.com/auth/admin.directory.userschema.readonly" + ] + }, + "insert": { + "id": "directory.schemas.insert", + "path": "customer/{customerId}/schemas", + "httpMethod": "POST", + "description": "Create schema.", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Schema" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema" + ] + }, + "list": { + "id": "directory.schemas.list", + "path": "customer/{customerId}/schemas", + "httpMethod": "GET", + "description": "Retrieve all schemas for a customer", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "Schemas" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema", + "https://www.googleapis.com/auth/admin.directory.userschema.readonly" + ] + }, + "patch": { + "id": "directory.schemas.patch", + "path": "customer/{customerId}/schemas/{schemaKey}", + "httpMethod": "PATCH", + "description": "Update schema. This method supports patch semantics.", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "schemaKey": { + "type": "string", + "description": "Name or immutable Id of the schema.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "schemaKey" + ], + "request": { + "$ref": "Schema" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema" + ] + }, + "update": { + "id": "directory.schemas.update", + "path": "customer/{customerId}/schemas/{schemaKey}", + "httpMethod": "PUT", + "description": "Update schema", + "parameters": { + "customerId": { + "type": "string", + "description": "Immutable id of the Google Apps account", + "required": true, + "location": "path" + }, + "schemaKey": { + "type": "string", + "description": "Name or immutable Id of the schema.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "schemaKey" + ], + "request": { + "$ref": "Schema" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.userschema" + ] + } + } + }, + "tokens": { + "methods": { + "delete": { + "id": "directory.tokens.delete", + "path": "users/{userKey}/tokens/{clientId}", + "httpMethod": "DELETE", + "description": "Delete all access tokens issued by a user for an application.", + "parameters": { + "clientId": { + "type": "string", + "description": "The Client ID of the application the token is issued to.", + "required": true, + "location": "path" + }, + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "clientId" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "get": { + "id": "directory.tokens.get", + "path": "users/{userKey}/tokens/{clientId}", + "httpMethod": "GET", + "description": "Get information about an access token issued by a user.", + "parameters": { + "clientId": { + "type": "string", + "description": "The Client ID of the application the token is issued to.", + "required": true, + "location": "path" + }, + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "clientId" + ], + "response": { + "$ref": "Token" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "list": { + "id": "directory.tokens.list", + "path": "users/{userKey}/tokens", + "httpMethod": "GET", + "description": "Returns the set of tokens specified user has issued to 3rd party applications.", + "parameters": { + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "Tokens" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + } + } + }, + "users": { + "methods": { + "delete": { + "id": "directory.users.delete", + "path": "users/{userKey}", + "httpMethod": "DELETE", + "description": "Delete user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "get": { + "id": "directory.users.get", + "path": "users/{userKey}", + "httpMethod": "GET", + "description": "retrieve user", + "parameters": { + "customFieldMask": { + "type": "string", + "description": "Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "What subset of fields to fetch for this user.", + "default": "basic", + "enum": [ + "basic", + "custom", + "full" + ], + "enumDescriptions": [ + "Do not include any custom fields for the user.", + "Include custom fields from schemas mentioned in customFieldMask.", + "Include all fields associated with this user." + ], + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + }, + "viewType": { + "type": "string", + "description": "Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.", + "default": "admin_view", + "enum": [ + "admin_view", + "domain_public" + ], + "enumDescriptions": [ + "Fetches the ADMIN_VIEW of the user.", + "Fetches the DOMAIN_PUBLIC view of the user." + ], + "location": "query" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ] + }, + "insert": { + "id": "directory.users.insert", + "path": "users", + "httpMethod": "POST", + "description": "create user.", + "request": { + "$ref": "User" + }, + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "list": { + "id": "directory.users.list", + "path": "users", + "httpMethod": "GET", + "description": "Retrieve either deleted users or all users in a domain (paginated)", + "parameters": { + "customFieldMask": { + "type": "string", + "description": "Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.", + "location": "query" + }, + "customer": { + "type": "string", + "description": "Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Name of the domain. Fill this field to get users from only this domain. To return all users in a multi-domain fill customer field instead.", + "location": "query" + }, + "event": { + "type": "string", + "description": "Event on which subscription is intended (if subscribing)", + "enum": [ + "add", + "delete", + "makeAdmin", + "undelete", + "update" + ], + "enumDescriptions": [ + "User Created Event", + "User Deleted Event", + "User Admin Status Change Event", + "User Undeleted Event", + "User Updated Event" + ], + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 100. Max allowed is 500", + "format": "int32", + "minimum": "1", + "maximum": "500", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Column to use for sorting results", + "enum": [ + "email", + "familyName", + "givenName" + ], + "enumDescriptions": [ + "Primary email of the user.", + "User's family name.", + "User's given name." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "projection": { + "type": "string", + "description": "What subset of fields to fetch for this user.", + "default": "basic", + "enum": [ + "basic", + "custom", + "full" + ], + "enumDescriptions": [ + "Do not include any custom fields for the user.", + "Include custom fields from schemas mentioned in customFieldMask.", + "Include all fields associated with this user." + ], + "location": "query" + }, + "query": { + "type": "string", + "description": "Query string search. Should be of the form \"\". Complete documentation is at https://developers.google.com/admin-sdk/directory/v1/guides/search-users", + "location": "query" + }, + "showDeleted": { + "type": "string", + "description": "If set to true retrieves the list of deleted users. Default is false", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Whether to return results in ascending or descending order.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + }, + "viewType": { + "type": "string", + "description": "Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.", + "default": "admin_view", + "enum": [ + "admin_view", + "domain_public" + ], + "enumDescriptions": [ + "Fetches the ADMIN_VIEW of the user.", + "Fetches the DOMAIN_PUBLIC view of the user." + ], + "location": "query" + } + }, + "response": { + "$ref": "Users" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ], + "supportsSubscription": true + }, + "makeAdmin": { + "id": "directory.users.makeAdmin", + "path": "users/{userKey}/makeAdmin", + "httpMethod": "POST", + "description": "change admin status of a user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user as admin", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "UserMakeAdmin" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "patch": { + "id": "directory.users.patch", + "path": "users/{userKey}", + "httpMethod": "PATCH", + "description": "update user. This method supports patch semantics.", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user. If Id, it should match with id of user object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "User" + }, + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "undelete": { + "id": "directory.users.undelete", + "path": "users/{userKey}/undelete", + "httpMethod": "POST", + "description": "Undelete a deleted user", + "parameters": { + "userKey": { + "type": "string", + "description": "The immutable id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "UserUndelete" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "update": { + "id": "directory.users.update", + "path": "users/{userKey}", + "httpMethod": "PUT", + "description": "update user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user. If Id, it should match with id of user object", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "User" + }, + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "watch": { + "id": "directory.users.watch", + "path": "users/watch", + "httpMethod": "POST", + "description": "Watch for changes in users list", + "parameters": { + "customFieldMask": { + "type": "string", + "description": "Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.", + "location": "query" + }, + "customer": { + "type": "string", + "description": "Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Name of the domain. Fill this field to get users from only this domain. To return all users in a multi-domain fill customer field instead.", + "location": "query" + }, + "event": { + "type": "string", + "description": "Event on which subscription is intended (if subscribing)", + "enum": [ + "add", + "delete", + "makeAdmin", + "undelete", + "update" + ], + "enumDescriptions": [ + "User Created Event", + "User Deleted Event", + "User Admin Status Change Event", + "User Undeleted Event", + "User Updated Event" + ], + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Default is 100. Max allowed is 500", + "format": "int32", + "minimum": "1", + "maximum": "500", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Column to use for sorting results", + "enum": [ + "email", + "familyName", + "givenName" + ], + "enumDescriptions": [ + "Primary email of the user.", + "User's family name.", + "User's given name." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + }, + "projection": { + "type": "string", + "description": "What subset of fields to fetch for this user.", + "default": "basic", + "enum": [ + "basic", + "custom", + "full" + ], + "enumDescriptions": [ + "Do not include any custom fields for the user.", + "Include custom fields from schemas mentioned in customFieldMask.", + "Include all fields associated with this user." + ], + "location": "query" + }, + "query": { + "type": "string", + "description": "Query string search. Should be of the form \"\". Complete documentation is at https://developers.google.com/admin-sdk/directory/v1/guides/search-users", + "location": "query" + }, + "showDeleted": { + "type": "string", + "description": "If set to true retrieves the list of deleted users. Default is false", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Whether to return results in ascending or descending order.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + }, + "viewType": { + "type": "string", + "description": "Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.", + "default": "admin_view", + "enum": [ + "admin_view", + "domain_public" + ], + "enumDescriptions": [ + "Fetches the ADMIN_VIEW of the user.", + "Fetches the DOMAIN_PUBLIC view of the user." + ], + "location": "query" + } + }, + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ], + "supportsSubscription": true + } + }, + "resources": { + "aliases": { + "methods": { + "delete": { + "id": "directory.users.aliases.delete", + "path": "users/{userKey}/aliases/{alias}", + "httpMethod": "DELETE", + "description": "Remove a alias for the user", + "parameters": { + "alias": { + "type": "string", + "description": "The alias to be removed", + "required": true, + "location": "path" + }, + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "alias" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.alias" + ] + }, + "insert": { + "id": "directory.users.aliases.insert", + "path": "users/{userKey}/aliases", + "httpMethod": "POST", + "description": "Add a alias for the user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "Alias" + }, + "response": { + "$ref": "Alias" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.alias" + ] + }, + "list": { + "id": "directory.users.aliases.list", + "path": "users/{userKey}/aliases", + "httpMethod": "GET", + "description": "List all aliases for a user", + "parameters": { + "event": { + "type": "string", + "description": "Event on which subscription is intended (if subscribing)", + "enum": [ + "add", + "delete" + ], + "enumDescriptions": [ + "Alias Created Event", + "Alias Deleted Event" + ], + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "Aliases" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.alias", + "https://www.googleapis.com/auth/admin.directory.user.alias.readonly", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ], + "supportsSubscription": true + }, + "watch": { + "id": "directory.users.aliases.watch", + "path": "users/{userKey}/aliases/watch", + "httpMethod": "POST", + "description": "Watch for changes in user aliases list", + "parameters": { + "event": { + "type": "string", + "description": "Event on which subscription is intended (if subscribing)", + "enum": [ + "add", + "delete" + ], + "enumDescriptions": [ + "Alias Created Event", + "Alias Deleted Event" + ], + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.alias", + "https://www.googleapis.com/auth/admin.directory.user.alias.readonly", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ], + "supportsSubscription": true + } + } + }, + "photos": { + "methods": { + "delete": { + "id": "directory.users.photos.delete", + "path": "users/{userKey}/photos/thumbnail", + "httpMethod": "DELETE", + "description": "Remove photos for the user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "get": { + "id": "directory.users.photos.get", + "path": "users/{userKey}/photos/thumbnail", + "httpMethod": "GET", + "description": "Retrieve photo of a user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "UserPhoto" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.user.readonly" + ] + }, + "patch": { + "id": "directory.users.photos.patch", + "path": "users/{userKey}/photos/thumbnail", + "httpMethod": "PATCH", + "description": "Add a photo for the user. This method supports patch semantics.", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "UserPhoto" + }, + "response": { + "$ref": "UserPhoto" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + }, + "update": { + "id": "directory.users.photos.update", + "path": "users/{userKey}/photos/thumbnail", + "httpMethod": "PUT", + "description": "Add a photo for the user", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "UserPhoto" + }, + "response": { + "$ref": "UserPhoto" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user" + ] + } + } + } + } + }, + "verificationCodes": { + "methods": { + "generate": { + "id": "directory.verificationCodes.generate", + "path": "users/{userKey}/verificationCodes/generate", + "httpMethod": "POST", + "description": "Generate new backup verification codes for the user.", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "invalidate": { + "id": "directory.verificationCodes.invalidate", + "path": "users/{userKey}/verificationCodes/invalidate", + "httpMethod": "POST", + "description": "Invalidate the current backup verification codes for the user.", + "parameters": { + "userKey": { + "type": "string", + "description": "Email or immutable Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + }, + "list": { + "id": "directory.verificationCodes.list", + "path": "users/{userKey}/verificationCodes", + "httpMethod": "GET", + "description": "Returns the current set of valid backup verification codes for the specified user.", + "parameters": { + "userKey": { + "type": "string", + "description": "Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "response": { + "$ref": "VerificationCodes" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.user.security" + ] + } + } + } + } +} diff --git a/etc/api/admin/email_migration_v2/admin-api.json b/etc/api/admin/email_migration_v2/admin-api.json new file mode 100644 index 0000000000..209ab8f238 --- /dev/null +++ b/etc/api/admin/email_migration_v2/admin-api.json @@ -0,0 +1,173 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/Dam2iHq0kOgu8qnsdYB9fhgy5SY\"", + "discoveryVersion": "v1", + "id": "admin:email_migration_v2", + "name": "admin", + "version": "email_migration_v2", + "revision": "20140903", + "title": "Email Migration API v2", + "description": "Email Migration API lets you migrate emails of users to Google backends.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/googlemail-16.png", + "x32": "https://www.google.com/images/icons/product/googlemail-32.png" + }, + "documentationLink": "https://developers.google.com/admin-sdk/email-migration/v2/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/email/v2/users/", + "basePath": "/email/v2/users/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "email/v2/users/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/email.migration": { + "description": "Manage email messages of users on your domain" + } + } + } + }, + "schemas": { + "MailItem": { + "id": "MailItem", + "type": "object", + "description": "JSON template for MailItem object in Email Migration API.", + "properties": { + "isDeleted": { + "type": "boolean", + "description": "Boolean indicating if the mail is deleted (used in Vault)" + }, + "isDraft": { + "type": "boolean", + "description": "Boolean indicating if the mail is draft" + }, + "isInbox": { + "type": "boolean", + "description": "Boolean indicating if the mail is in inbox" + }, + "isSent": { + "type": "boolean", + "description": "Boolean indicating if the mail is in 'sent mails'" + }, + "isStarred": { + "type": "boolean", + "description": "Boolean indicating if the mail is starred" + }, + "isTrash": { + "type": "boolean", + "description": "Boolean indicating if the mail is in trash" + }, + "isUnread": { + "type": "boolean", + "description": "Boolean indicating if the mail is unread" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "mailItem" + }, + "labels": { + "type": "array", + "description": "List of labels (strings)", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "mail": { + "methods": { + "insert": { + "id": "emailMigration.mail.insert", + "path": "{userKey}/mail", + "httpMethod": "POST", + "description": "Insert Mail into Google's Gmail backends", + "parameters": { + "userKey": { + "type": "string", + "description": "The email or immutable id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey" + ], + "request": { + "$ref": "MailItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/email.migration" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/email/v2/users/{userKey}/mail" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/email/v2/users/{userKey}/mail" + } + } + } + } + } + } + } +} diff --git a/etc/api/admin/reports_v1/admin-api.json b/etc/api/admin/reports_v1/admin-api.json new file mode 100644 index 0000000000..00cda983f4 --- /dev/null +++ b/etc/api/admin/reports_v1/admin-api.json @@ -0,0 +1,744 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/njJ20axdk4gjPFCACIGtkJPulr8\"", + "discoveryVersion": "v1", + "id": "admin:reports_v1", + "name": "admin", + "canonicalName": "reports", + "version": "reports_v1", + "revision": "20150115", + "title": "Admin Reports API", + "description": "Allows the administrators of Google Apps customers to fetch reports about the usage, collaboration, security and risk for their users.", + "ownerDomain": "google.com", + "ownerName": "Google", + "packagePath": "admin", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/admin-sdk/reports/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/admin/reports/v1/", + "basePath": "/admin/reports/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "admin/reports/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/admin.reports.audit.readonly": { + "description": "View audit reports of Google Apps for your domain" + }, + "https://www.googleapis.com/auth/admin.reports.usage.readonly": { + "description": "View usage reports of Google Apps for your domain" + } + } + } + }, + "schemas": { + "Activities": { + "id": "Activities", + "type": "object", + "description": "JSON template for a collection of activites.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "Each record in read response.", + "items": { + "$ref": "Activity" + } + }, + "kind": { + "type": "string", + "description": "Kind of list response this is.", + "default": "admin#reports#activities" + }, + "nextPageToken": { + "type": "string", + "description": "Token for retrieving the next page" + } + } + }, + "Activity": { + "id": "Activity", + "type": "object", + "description": "JSON template for the activity resource.", + "properties": { + "actor": { + "type": "object", + "description": "User doing the action.", + "properties": { + "callerType": { + "type": "string", + "description": "User or OAuth 2LO request." + }, + "email": { + "type": "string", + "description": "Email address of the user." + }, + "key": { + "type": "string", + "description": "For OAuth 2LO API requests, consumer_key of the requestor." + }, + "profileId": { + "type": "string", + "description": "Obfuscated user id of the user." + } + } + }, + "etag": { + "type": "string", + "description": "ETag of the entry." + }, + "events": { + "type": "array", + "description": "Activity events.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of event." + }, + "parameters": { + "type": "array", + "description": "Parameter value pairs for various applications.", + "items": { + "type": "object", + "properties": { + "boolValue": { + "type": "boolean", + "description": "Boolean value of the parameter." + }, + "intValue": { + "type": "string", + "description": "Integral value of the parameter.", + "format": "int64" + }, + "multiIntValue": { + "type": "array", + "description": "Multi-int value of the parameter.", + "items": { + "type": "string", + "format": "int64" + } + }, + "multiValue": { + "type": "array", + "description": "Multi-string value of the parameter.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "value": { + "type": "string", + "description": "String value of the parameter." + } + } + } + }, + "type": { + "type": "string", + "description": "Type of event." + } + } + } + }, + "id": { + "type": "object", + "description": "Unique identifier for each activity record.", + "properties": { + "applicationName": { + "type": "string", + "description": "Application name to which the event belongs." + }, + "customerId": { + "type": "string", + "description": "Obfuscated customer ID of the source customer." + }, + "time": { + "type": "string", + "description": "Time of occurrence of the activity.", + "format": "date-time" + }, + "uniqueQualifier": { + "type": "string", + "description": "Unique qualifier if multiple events have the same time.", + "format": "int64" + } + } + }, + "ipAddress": { + "type": "string", + "description": "IP Address of the user doing the action." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "admin#reports#activity" + }, + "ownerDomain": { + "type": "string", + "description": "Domain of source customer." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "An notification channel used to watch for resource changes.", + "properties": { + "address": { + "type": "string", + "description": "The address where notifications are delivered for this channel." + }, + "expiration": { + "type": "string", + "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "A UUID or similar unique string that identifies this channel." + }, + "kind": { + "type": "string", + "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".", + "default": "api#channel" + }, + "params": { + "type": "object", + "description": "Additional parameters controlling delivery channel behavior. Optional.", + "additionalProperties": { + "type": "string", + "description": "Declares a new parameter by name." + } + }, + "payload": { + "type": "boolean", + "description": "A Boolean value to indicate whether payload is wanted. Optional." + }, + "resourceId": { + "type": "string", + "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions." + }, + "resourceUri": { + "type": "string", + "description": "A version-specific identifier for the watched resource." + }, + "token": { + "type": "string", + "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional." + }, + "type": { + "type": "string", + "description": "The type of delivery mechanism used for this channel." + } + } + }, + "UsageReport": { + "id": "UsageReport", + "type": "object", + "description": "JSON template for a usage report.", + "properties": { + "date": { + "type": "string", + "description": "The date to which the record belongs.", + "readOnly": true + }, + "entity": { + "type": "object", + "description": "Information about the type of the item.", + "readOnly": true, + "properties": { + "customerId": { + "type": "string", + "description": "Obfuscated customer id for the record.", + "readOnly": true + }, + "profileId": { + "type": "string", + "description": "Obfuscated user id for the record.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of item, can be a customer or user.", + "readOnly": true + }, + "userEmail": { + "type": "string", + "description": "user's email.", + "readOnly": true + } + } + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "The kind of object.", + "default": "admin#reports#usageReport" + }, + "parameters": { + "type": "array", + "description": "Parameter value pairs for various applications.", + "readOnly": true, + "items": { + "type": "object", + "properties": { + "boolValue": { + "type": "boolean", + "description": "Boolean value of the parameter.", + "readOnly": true + }, + "datetimeValue": { + "type": "string", + "description": "RFC 3339 formatted value of the parameter.", + "format": "date-time", + "readOnly": true + }, + "intValue": { + "type": "string", + "description": "Integral value of the parameter.", + "format": "int64", + "readOnly": true + }, + "msgValue": { + "type": "array", + "description": "Nested message value of the parameter.", + "readOnly": true, + "items": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + }, + "name": { + "type": "string", + "description": "The name of the parameter." + }, + "stringValue": { + "type": "string", + "description": "String value of the parameter.", + "readOnly": true + } + } + } + } + } + }, + "UsageReports": { + "id": "UsageReports", + "type": "object", + "description": "JSON template for a collection of usage reports.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "The kind of object.", + "default": "admin#reports#usageReports" + }, + "nextPageToken": { + "type": "string", + "description": "Token for retrieving the next page" + }, + "usageReports": { + "type": "array", + "description": "Various application parameter records.", + "items": { + "$ref": "UsageReport" + } + }, + "warnings": { + "type": "array", + "description": "Warnings if any.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Machine readable code / warning type." + }, + "data": { + "type": "array", + "description": "Key-Value pairs to give detailed information on the warning.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key associated with a key-value pair to give detailed information on the warning." + }, + "value": { + "type": "string", + "description": "Value associated with a key-value pair to give detailed information on the warning." + } + } + } + }, + "message": { + "type": "string", + "description": "Human readable message for the warning." + } + } + } + } + } + } + }, + "resources": { + "activities": { + "methods": { + "list": { + "id": "reports.activities.list", + "path": "activity/users/{userKey}/applications/{applicationName}", + "httpMethod": "GET", + "description": "Retrieves a list of activities for a specific customer and application.", + "parameters": { + "actorIpAddress": { + "type": "string", + "description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.", + "location": "query" + }, + "applicationName": { + "type": "string", + "description": "Application name for which the events are to be retrieved.", + "required": true, + "pattern": "(admin)|(calendar)|(docs)|(drive)|(login)|(token)", + "location": "path" + }, + "customerId": { + "type": "string", + "description": "Represents the customer for which the data is to be fetched.", + "pattern": "C.+", + "location": "query" + }, + "endTime": { + "type": "string", + "description": "Return events which occured at or before this time.", + "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", + "location": "query" + }, + "eventName": { + "type": "string", + "description": "Name of the event being queried.", + "location": "query" + }, + "filters": { + "type": "string", + "description": "Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...", + "pattern": "(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+,)*(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+)", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Number of activity records to be shown in each page.", + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page.", + "location": "query" + }, + "startTime": { + "type": "string", + "description": "Return events which occured at or after this time.", + "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "applicationName" + ], + "response": { + "$ref": "Activities" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.reports.audit.readonly" + ], + "supportsSubscription": true + }, + "watch": { + "id": "reports.activities.watch", + "path": "activity/users/{userKey}/applications/{applicationName}/watch", + "httpMethod": "POST", + "description": "Push changes to activities", + "parameters": { + "actorIpAddress": { + "type": "string", + "description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.", + "location": "query" + }, + "applicationName": { + "type": "string", + "description": "Application name for which the events are to be retrieved.", + "required": true, + "pattern": "(admin)|(calendar)|(docs)|(drive)|(login)|(token)", + "location": "path" + }, + "customerId": { + "type": "string", + "description": "Represents the customer for which the data is to be fetched.", + "pattern": "C.+", + "location": "query" + }, + "endTime": { + "type": "string", + "description": "Return events which occured at or before this time.", + "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", + "location": "query" + }, + "eventName": { + "type": "string", + "description": "Name of the event being queried.", + "location": "query" + }, + "filters": { + "type": "string", + "description": "Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...", + "pattern": "(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+,)*(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+)", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Number of activity records to be shown in each page.", + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page.", + "location": "query" + }, + "startTime": { + "type": "string", + "description": "Return events which occured at or after this time.", + "pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))", + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "applicationName" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.reports.audit.readonly" + ], + "supportsSubscription": true + } + } + }, + "channels": { + "methods": { + "stop": { + "id": "admin.channels.stop", + "path": "/admin/reports_v1/channels/stop", + "httpMethod": "POST", + "description": "Stop watching resources through this channel", + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.reports.audit.readonly" + ] + } + } + }, + "customerUsageReports": { + "methods": { + "get": { + "id": "reports.customerUsageReports.get", + "path": "usage/dates/{date}", + "httpMethod": "GET", + "description": "Retrieves a report which is a collection of properties / statistics for a specific customer.", + "parameters": { + "customerId": { + "type": "string", + "description": "Represents the customer for which the data is to be fetched.", + "pattern": "C.+", + "location": "query" + }, + "date": { + "type": "string", + "description": "Represents the date in yyyy-mm-dd format for which the data is to be fetched.", + "required": true, + "pattern": "(\\d){4}-(\\d){2}-(\\d){2}", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page.", + "location": "query" + }, + "parameters": { + "type": "string", + "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.", + "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)", + "location": "query" + } + }, + "parameterOrder": [ + "date" + ], + "response": { + "$ref": "UsageReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.reports.usage.readonly" + ] + } + } + }, + "userUsageReport": { + "methods": { + "get": { + "id": "reports.userUsageReport.get", + "path": "usage/users/{userKey}/dates/{date}", + "httpMethod": "GET", + "description": "Retrieves a report which is a collection of properties / statistics for a set of users.", + "parameters": { + "customerId": { + "type": "string", + "description": "Represents the customer for which the data is to be fetched.", + "pattern": "C.+", + "location": "query" + }, + "date": { + "type": "string", + "description": "Represents the date in yyyy-mm-dd format for which the data is to be fetched.", + "required": true, + "pattern": "(\\d){4}-(\\d){2}-(\\d){2}", + "location": "path" + }, + "filters": { + "type": "string", + "description": "Represents the set of filters including parameter operator value.", + "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+[\u003c,\u003c=,==,\u003e=,\u003e,!=].+)", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return. Maximum allowed is 1000", + "format": "uint32", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page.", + "location": "query" + }, + "parameters": { + "type": "string", + "description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.", + "pattern": "(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+,)*(((accounts)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)):.+)", + "location": "query" + }, + "userKey": { + "type": "string", + "description": "Represents the profile id or the user email for which the data should be filtered.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userKey", + "date" + ], + "response": { + "$ref": "UsageReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.reports.usage.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adsense/v1.2/adsense-api.json b/etc/api/adsense/v1.2/adsense-api.json new file mode 100644 index 0000000000..5e8ef7c8f4 --- /dev/null +++ b/etc/api/adsense/v1.2/adsense-api.json @@ -0,0 +1,1949 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/4sbh2CScTU4USzSvCohsjZ1YVxQ\"", + "discoveryVersion": "v1", + "id": "adsense:v1.2", + "name": "adsense", + "canonicalName": "AdSense", + "version": "v1.2", + "revision": "20141218", + "title": "AdSense Management API", + "description": "Gives AdSense publishers access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/adsense-16.png", + "x32": "https://www.google.com/images/icons/product/adsense-32.png" + }, + "documentationLink": "https://developers.google.com/adsense/management/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adsense/v1.2/", + "basePath": "/adsense/v1.2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adsense/v1.2/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adsense": { + "description": "View and manage your AdSense data" + }, + "https://www.googleapis.com/auth/adsense.readonly": { + "description": "View your AdSense data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#account.", + "default": "adsense#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + }, + "premium": { + "type": "boolean", + "description": "Whether this account is premium." + }, + "subAccounts": { + "type": "array", + "description": "Sub accounts of the this account.", + "items": { + "$ref": "Account" + } + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The accounts returned in this list response.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#accounts.", + "default": "adsense#accounts" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through accounts. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adClient.", + "default": "adsense#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adClients.", + "default": "adsense#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdStyle": { + "id": "AdStyle", + "type": "object", + "properties": { + "colors": { + "type": "object", + "description": "The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.", + "properties": { + "background": { + "type": "string", + "description": "The color of the ad background." + }, + "border": { + "type": "string", + "description": "The color of the ad border." + }, + "text": { + "type": "string", + "description": "The color of the ad text." + }, + "title": { + "type": "string", + "description": "The color of the ad title." + }, + "url": { + "type": "string", + "description": "The color of the ad url." + } + } + }, + "corners": { + "type": "string", + "description": "The style of the corners in the ad." + }, + "font": { + "type": "object", + "description": "The font which is included in the style.", + "properties": { + "family": { + "type": "string", + "description": "The family of the font." + }, + "size": { + "type": "string", + "description": "The size of the font." + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#adStyle.", + "default": "adsense#adStyle" + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "contentAdsSettings": { + "type": "object", + "description": "Settings specific to content ads (AFC) and highend mobile content ads (AFMC).", + "properties": { + "backupOption": { + "type": "object", + "description": "The backup option to be used in instances where no ad is available.", + "properties": { + "color": { + "type": "string", + "description": "Color to use when type is set to COLOR." + }, + "type": { + "type": "string", + "description": "Type of the backup option. Possible values are BLANK, COLOR and URL." + }, + "url": { + "type": "string", + "description": "URL to use when type is set to URL." + } + } + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "customStyle": { + "$ref": "AdStyle", + "description": "Custom style information specific to this ad unit." + }, + "feedAdsSettings": { + "type": "object", + "description": "Settings specific to feed ads (AFF).", + "properties": { + "adPosition": { + "type": "string", + "description": "The position of the ads relative to the feed entries." + }, + "frequency": { + "type": "integer", + "description": "The frequency at which ads should appear in the feed (i.e. every N entries).", + "format": "int32" + }, + "minimumWordCount": { + "type": "integer", + "description": "The minimum length an entry should be in order to have attached ads.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of ads which should appear." + } + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adUnit.", + "default": "adsense#adUnit" + }, + "mobileContentAdsSettings": { + "type": "object", + "description": "Settings specific to WAP mobile content ads (AFMC).", + "properties": { + "markupLanguage": { + "type": "string", + "description": "The markup language to use for this ad unit." + }, + "scriptingLanguage": { + "type": "string", + "description": "The scripting language to use for this ad unit." + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "savedStyleId": { + "type": "string", + "description": "ID of the saved ad style which holds this ad unit's style information." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adUnits.", + "default": "adsense#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdsenseReportsGenerateResponse": { + "id": "AdsenseReportsGenerateResponse", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#report.", + "default": "adsense#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#customChannel.", + "default": "adsense#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#customChannels.", + "default": "adsense#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "SavedAdStyle": { + "id": "SavedAdStyle", + "type": "object", + "properties": { + "adStyle": { + "$ref": "AdStyle", + "description": "The AdStyle itself." + }, + "id": { + "type": "string", + "description": "Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedAdStyle.", + "default": "adsense#savedAdStyle" + }, + "name": { + "type": "string", + "description": "The user selected name of this SavedAdStyle." + } + } + }, + "SavedAdStyles": { + "id": "SavedAdStyles", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved ad styles returned in this list response.", + "items": { + "$ref": "SavedAdStyle" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedAdStyles.", + "default": "adsense#savedAdStyles" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedReport.", + "default": "adsense#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedReports.", + "default": "adsense#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#urlChannel.", + "default": "adsense#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#urlChannels.", + "default": "adsense#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adsense.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about.", + "required": true, + "location": "path" + }, + "tree": { + "type": "boolean", + "description": "Whether the tree of sub accounts should be returned.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "List all accounts available to this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of accounts to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adclients": { + "methods": { + "list": { + "id": "adsense.accounts.adclients.list", + "path": "accounts/{accountId}/adclients", + "httpMethod": "GET", + "description": "List all ad clients in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list ad clients.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.accounts.adunits.get", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.accounts.adunits.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.accounts.customchannels.get", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.accounts.customchannels.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.generate", + "path": "accounts/{accountId}/reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account upon which to report.", + "required": true, + "location": "path" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.saved.generate", + "path": "accounts/{accountId}/reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.reports.saved.list", + "path": "accounts/{accountId}/reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.accounts.savedadstyles.get", + "path": "accounts/{accountId}/savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "List a specific saved ad style for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to get the saved ad style.", + "required": true, + "location": "path" + }, + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.savedadstyles.list", + "path": "accounts/{accountId}/savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list saved ad styles.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.accounts.urlchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "adclients": { + "methods": { + "list": { + "id": "adsense.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all ad clients in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.adunits.get", + "path": "adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.adunits.list", + "path": "adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.adunits.customchannels.list", + "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.customchannels.adunits.list", + "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Accounts upon which to report.", + "repeated": true, + "location": "query" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.reports.saved.generate", + "path": "reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.reports.saved.list", + "path": "reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.savedadstyles.get", + "path": "savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "Get a specific saved ad style from the user's account.", + "parameters": { + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.savedadstyles.list", + "path": "savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the user's account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adsense/v1.3/adsense-api.json b/etc/api/adsense/v1.3/adsense-api.json new file mode 100644 index 0000000000..1bcbaef886 --- /dev/null +++ b/etc/api/adsense/v1.3/adsense-api.json @@ -0,0 +1,2250 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/gTf3J_Tcqy5jzBteF-x9VlOxF-c\"", + "discoveryVersion": "v1", + "id": "adsense:v1.3", + "name": "adsense", + "canonicalName": "AdSense", + "version": "v1.3", + "revision": "20141218", + "title": "AdSense Management API", + "description": "Gives AdSense publishers access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/adsense-16.png", + "x32": "https://www.google.com/images/icons/product/adsense-32.png" + }, + "documentationLink": "https://developers.google.com/adsense/management/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adsense/v1.3/", + "basePath": "/adsense/v1.3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adsense/v1.3/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adsense": { + "description": "View and manage your AdSense data" + }, + "https://www.googleapis.com/auth/adsense.readonly": { + "description": "View your AdSense data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#account.", + "default": "adsense#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + }, + "premium": { + "type": "boolean", + "description": "Whether this account is premium." + }, + "subAccounts": { + "type": "array", + "description": "Sub accounts of the this account.", + "items": { + "$ref": "Account" + } + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The accounts returned in this list response.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#accounts.", + "default": "adsense#accounts" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through accounts. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adClient.", + "default": "adsense#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adClients.", + "default": "adsense#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdCode": { + "id": "AdCode", + "type": "object", + "properties": { + "adCode": { + "type": "string", + "description": "The ad code snippet." + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#adCode.", + "default": "adsense#adCode" + } + } + }, + "AdStyle": { + "id": "AdStyle", + "type": "object", + "properties": { + "colors": { + "type": "object", + "description": "The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.", + "properties": { + "background": { + "type": "string", + "description": "The color of the ad background." + }, + "border": { + "type": "string", + "description": "The color of the ad border." + }, + "text": { + "type": "string", + "description": "The color of the ad text." + }, + "title": { + "type": "string", + "description": "The color of the ad title." + }, + "url": { + "type": "string", + "description": "The color of the ad url." + } + } + }, + "corners": { + "type": "string", + "description": "The style of the corners in the ad." + }, + "font": { + "type": "object", + "description": "The font which is included in the style.", + "properties": { + "family": { + "type": "string", + "description": "The family of the font." + }, + "size": { + "type": "string", + "description": "The size of the font." + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#adStyle.", + "default": "adsense#adStyle" + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "contentAdsSettings": { + "type": "object", + "description": "Settings specific to content ads (AFC) and highend mobile content ads (AFMC).", + "properties": { + "backupOption": { + "type": "object", + "description": "The backup option to be used in instances where no ad is available.", + "properties": { + "color": { + "type": "string", + "description": "Color to use when type is set to COLOR." + }, + "type": { + "type": "string", + "description": "Type of the backup option. Possible values are BLANK, COLOR and URL." + }, + "url": { + "type": "string", + "description": "URL to use when type is set to URL." + } + } + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "customStyle": { + "$ref": "AdStyle", + "description": "Custom style information specific to this ad unit." + }, + "feedAdsSettings": { + "type": "object", + "description": "Settings specific to feed ads (AFF).", + "properties": { + "adPosition": { + "type": "string", + "description": "The position of the ads relative to the feed entries." + }, + "frequency": { + "type": "integer", + "description": "The frequency at which ads should appear in the feed (i.e. every N entries).", + "format": "int32" + }, + "minimumWordCount": { + "type": "integer", + "description": "The minimum length an entry should be in order to have attached ads.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of ads which should appear." + } + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adUnit.", + "default": "adsense#adUnit" + }, + "mobileContentAdsSettings": { + "type": "object", + "description": "Settings specific to WAP mobile content ads (AFMC).", + "properties": { + "markupLanguage": { + "type": "string", + "description": "The markup language to use for this ad unit." + }, + "scriptingLanguage": { + "type": "string", + "description": "The scripting language to use for this ad unit." + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "savedStyleId": { + "type": "string", + "description": "ID of the saved ad style which holds this ad unit's style information." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adUnits.", + "default": "adsense#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdsenseReportsGenerateResponse": { + "id": "AdsenseReportsGenerateResponse", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#report.", + "default": "adsense#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "Alert": { + "id": "Alert", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#alert.", + "default": "adsense#alert" + }, + "message": { + "type": "string", + "description": "The localized alert message." + }, + "severity": { + "type": "string", + "description": "Severity of this alert. Possible values: INFO, WARNING, SEVERE." + }, + "type": { + "type": "string", + "description": "Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD." + } + } + }, + "Alerts": { + "id": "Alerts", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The alerts returned in this list response.", + "items": { + "$ref": "Alert" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#alerts.", + "default": "adsense#alerts" + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#customChannel.", + "default": "adsense#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#customChannels.", + "default": "adsense#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "ReportingMetadataEntry" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#metadata.", + "default": "adsense#metadata" + } + } + }, + "ReportingMetadataEntry": { + "id": "ReportingMetadataEntry", + "type": "object", + "properties": { + "compatibleDimensions": { + "type": "array", + "description": "For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.", + "items": { + "type": "string" + } + }, + "compatibleMetrics": { + "type": "array", + "description": "The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#reportingMetadataEntry.", + "default": "adsense#reportingMetadataEntry" + }, + "requiredDimensions": { + "type": "array", + "description": "The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "requiredMetrics": { + "type": "array", + "description": "The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "supportedProducts": { + "type": "array", + "description": "The codes of the projects supported by the dimension or metric this reporting metadata entry describes.", + "items": { + "type": "string" + } + } + } + }, + "SavedAdStyle": { + "id": "SavedAdStyle", + "type": "object", + "properties": { + "adStyle": { + "$ref": "AdStyle", + "description": "The AdStyle itself." + }, + "id": { + "type": "string", + "description": "Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedAdStyle.", + "default": "adsense#savedAdStyle" + }, + "name": { + "type": "string", + "description": "The user selected name of this SavedAdStyle." + } + } + }, + "SavedAdStyles": { + "id": "SavedAdStyles", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved ad styles returned in this list response.", + "items": { + "$ref": "SavedAdStyle" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedAdStyles.", + "default": "adsense#savedAdStyles" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedReport.", + "default": "adsense#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedReports.", + "default": "adsense#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#urlChannel.", + "default": "adsense#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#urlChannels.", + "default": "adsense#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adsense.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about.", + "required": true, + "location": "path" + }, + "tree": { + "type": "boolean", + "description": "Whether the tree of sub accounts should be returned.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "List all accounts available to this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of accounts to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adclients": { + "methods": { + "list": { + "id": "adsense.accounts.adclients.list", + "path": "accounts/{accountId}/adclients", + "httpMethod": "GET", + "description": "List all ad clients in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list ad clients.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.accounts.adunits.get", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "getAdCode": { + "id": "adsense.accounts.adunits.getAdCode", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode", + "httpMethod": "GET", + "description": "Get ad code for the specified ad unit.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client with contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get the code for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.accounts.adunits.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "alerts": { + "methods": { + "list": { + "id": "adsense.accounts.alerts.list", + "path": "accounts/{accountId}/alerts", + "httpMethod": "GET", + "description": "List the alerts for the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to retrieve the alerts.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.accounts.customchannels.get", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.accounts.customchannels.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.generate", + "path": "accounts/{accountId}/reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account upon which to report.", + "required": true, + "location": "path" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "useTimezoneReporting": { + "type": "boolean", + "description": "Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.saved.generate", + "path": "accounts/{accountId}/reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.reports.saved.list", + "path": "accounts/{accountId}/reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.accounts.savedadstyles.get", + "path": "accounts/{accountId}/savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "List a specific saved ad style for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to get the saved ad style.", + "required": true, + "location": "path" + }, + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.savedadstyles.list", + "path": "accounts/{accountId}/savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list saved ad styles.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.accounts.urlchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "adclients": { + "methods": { + "list": { + "id": "adsense.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all ad clients in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.adunits.get", + "path": "adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "getAdCode": { + "id": "adsense.adunits.getAdCode", + "path": "adclients/{adClientId}/adunits/{adUnitId}/adcode", + "httpMethod": "GET", + "description": "Get ad code for the specified ad unit.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client with contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get the code for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.adunits.list", + "path": "adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.adunits.customchannels.list", + "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "alerts": { + "methods": { + "list": { + "id": "adsense.alerts.list", + "path": "alerts", + "httpMethod": "GET", + "description": "List the alerts for this AdSense account.", + "parameters": { + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.customchannels.adunits.list", + "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "metadata": { + "resources": { + "dimensions": { + "methods": { + "list": { + "id": "adsense.metadata.dimensions.list", + "path": "metadata/dimensions", + "httpMethod": "GET", + "description": "List the metadata for the dimensions available to this AdSense account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "metrics": { + "methods": { + "list": { + "id": "adsense.metadata.metrics.list", + "path": "metadata/metrics", + "httpMethod": "GET", + "description": "List the metadata for the metrics available to this AdSense account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Accounts upon which to report.", + "repeated": true, + "location": "query" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "useTimezoneReporting": { + "type": "boolean", + "description": "Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.reports.saved.generate", + "path": "reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.reports.saved.list", + "path": "reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.savedadstyles.get", + "path": "savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "Get a specific saved ad style from the user's account.", + "parameters": { + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.savedadstyles.list", + "path": "savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the user's account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adsense/v1.4/adsense-api.json b/etc/api/adsense/v1.4/adsense-api.json new file mode 100644 index 0000000000..f7d6f49d87 --- /dev/null +++ b/etc/api/adsense/v1.4/adsense-api.json @@ -0,0 +1,2407 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/wiZb5dkU0x3zrMckXzFKcTNAp8w\"", + "discoveryVersion": "v1", + "id": "adsense:v1.4", + "name": "adsense", + "canonicalName": "AdSense", + "version": "v1.4", + "revision": "20141218", + "title": "AdSense Management API", + "description": "Gives AdSense publishers access to their inventory and the ability to generate reports", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/adsense-16.png", + "x32": "https://www.google.com/images/icons/product/adsense-32.png" + }, + "documentationLink": "https://developers.google.com/adsense/management/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adsense/v1.4/", + "basePath": "/adsense/v1.4/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adsense/v1.4/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adsense": { + "description": "View and manage your AdSense data" + }, + "https://www.googleapis.com/auth/adsense.readonly": { + "description": "View your AdSense data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#account.", + "default": "adsense#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + }, + "premium": { + "type": "boolean", + "description": "Whether this account is premium." + }, + "subAccounts": { + "type": "array", + "description": "Sub accounts of the this account.", + "items": { + "$ref": "Account" + } + }, + "timezone": { + "type": "string", + "description": "AdSense timezone of this account." + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The accounts returned in this list response.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#accounts.", + "default": "adsense#accounts" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through accounts. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "arcReviewMode": { + "type": "string", + "description": "ARC review mode this ad client is in. Empty if the client is not opted in to ARC. Possible values: POST_REVIEW, AUTOMATIC_PRE_REVIEW." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adClient.", + "default": "adsense#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adClients.", + "default": "adsense#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdCode": { + "id": "AdCode", + "type": "object", + "properties": { + "adCode": { + "type": "string", + "description": "The ad code snippet." + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#adCode.", + "default": "adsense#adCode" + } + } + }, + "AdStyle": { + "id": "AdStyle", + "type": "object", + "properties": { + "colors": { + "type": "object", + "description": "The colors which are included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.", + "properties": { + "background": { + "type": "string", + "description": "The color of the ad background." + }, + "border": { + "type": "string", + "description": "The color of the ad border." + }, + "text": { + "type": "string", + "description": "The color of the ad text." + }, + "title": { + "type": "string", + "description": "The color of the ad title." + }, + "url": { + "type": "string", + "description": "The color of the ad url." + } + } + }, + "corners": { + "type": "string", + "description": "The style of the corners in the ad." + }, + "font": { + "type": "object", + "description": "The font which is included in the style.", + "properties": { + "family": { + "type": "string", + "description": "The family of the font." + }, + "size": { + "type": "string", + "description": "The size of the font." + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#adStyle.", + "default": "adsense#adStyle" + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "contentAdsSettings": { + "type": "object", + "description": "Settings specific to content ads (AFC) and highend mobile content ads (AFMC).", + "properties": { + "backupOption": { + "type": "object", + "description": "The backup option to be used in instances where no ad is available.", + "properties": { + "color": { + "type": "string", + "description": "Color to use when type is set to COLOR." + }, + "type": { + "type": "string", + "description": "Type of the backup option. Possible values are BLANK, COLOR and URL." + }, + "url": { + "type": "string", + "description": "URL to use when type is set to URL." + } + } + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "customStyle": { + "$ref": "AdStyle", + "description": "Custom style information specific to this ad unit." + }, + "feedAdsSettings": { + "type": "object", + "description": "Settings specific to feed ads (AFF).", + "properties": { + "adPosition": { + "type": "string", + "description": "The position of the ads relative to the feed entries." + }, + "frequency": { + "type": "integer", + "description": "The frequency at which ads should appear in the feed (i.e. every N entries).", + "format": "int32" + }, + "minimumWordCount": { + "type": "integer", + "description": "The minimum length an entry should be in order to have attached ads.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of ads which should appear." + } + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#adUnit.", + "default": "adsense#adUnit" + }, + "mobileContentAdsSettings": { + "type": "object", + "description": "Settings specific to WAP mobile content ads (AFMC).", + "properties": { + "markupLanguage": { + "type": "string", + "description": "The markup language to use for this ad unit." + }, + "scriptingLanguage": { + "type": "string", + "description": "The scripting language to use for this ad unit." + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "savedStyleId": { + "type": "string", + "description": "ID of the saved ad style which holds this ad unit's style information." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#adUnits.", + "default": "adsense#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdsenseReportsGenerateResponse": { + "id": "AdsenseReportsGenerateResponse", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "endDate": { + "type": "string", + "description": "The requested end date in yyyy-mm-dd format." + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsense#report.", + "default": "adsense#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "startDate": { + "type": "string", + "description": "The requested start date in yyyy-mm-dd format." + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "Alert": { + "id": "Alert", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this alert. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "isDismissible": { + "type": "boolean", + "description": "Whether this alert can be dismissed." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#alert.", + "default": "adsense#alert" + }, + "message": { + "type": "string", + "description": "The localized alert message." + }, + "severity": { + "type": "string", + "description": "Severity of this alert. Possible values: INFO, WARNING, SEVERE." + }, + "type": { + "type": "string", + "description": "Type of this alert. Possible values: SELF_HOLD, MIGRATED_TO_BILLING3, ADDRESS_PIN_VERIFICATION, PHONE_PIN_VERIFICATION, CORPORATE_ENTITY, GRAYLISTED_PUBLISHER, API_HOLD." + } + } + }, + "Alerts": { + "id": "Alerts", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The alerts returned in this list response.", + "items": { + "$ref": "Alert" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#alerts.", + "default": "adsense#alerts" + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#customChannel.", + "default": "adsense#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + }, + "targetingInfo": { + "type": "object", + "description": "The targeting information of this custom channel, if activated.", + "properties": { + "adsAppearOn": { + "type": "string", + "description": "The name used to describe this channel externally." + }, + "description": { + "type": "string", + "description": "The external description of the channel." + }, + "location": { + "type": "string", + "description": "The locations in which ads appear. (Only valid for content and mobile content ads). Acceptable values for content ads are: TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, MULTIPLE_LOCATIONS. Acceptable values for mobile content ads are: TOP, MIDDLE, BOTTOM, MULTIPLE_LOCATIONS." + }, + "siteLanguage": { + "type": "string", + "description": "The language of the sites ads will be displayed on." + } + } + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#customChannels.", + "default": "adsense#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "ReportingMetadataEntry" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#metadata.", + "default": "adsense#metadata" + } + } + }, + "Payment": { + "id": "Payment", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this Payment." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#payment.", + "default": "adsense#payment" + }, + "paymentAmount": { + "type": "string", + "description": "The amount to be paid." + }, + "paymentAmountCurrencyCode": { + "type": "string", + "description": "The currency code for the amount to be paid." + }, + "paymentDate": { + "type": "string", + "description": "The date this payment was/will be credited to the user, or none if the payment threshold has not been met." + } + } + }, + "Payments": { + "id": "Payments", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Payments for the account. One or both of a) the account's most recent payment; and b) the account's upcoming payment.", + "items": { + "$ref": "Payment" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#payments.", + "default": "adsense#payments" + } + } + }, + "ReportingMetadataEntry": { + "id": "ReportingMetadataEntry", + "type": "object", + "properties": { + "compatibleDimensions": { + "type": "array", + "description": "For metrics this is a list of dimension IDs which the metric is compatible with, for dimensions it is a list of compatibility groups the dimension belongs to.", + "items": { + "type": "string" + } + }, + "compatibleMetrics": { + "type": "array", + "description": "The names of the metrics the dimension or metric this reporting metadata entry describes is compatible with.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier of this reporting metadata entry, corresponding to the name of the appropriate dimension or metric." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#reportingMetadataEntry.", + "default": "adsense#reportingMetadataEntry" + }, + "requiredDimensions": { + "type": "array", + "description": "The names of the dimensions which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "requiredMetrics": { + "type": "array", + "description": "The names of the metrics which the dimension or metric this reporting metadata entry describes requires to also be present in order for the report to be valid. Omitting these will not cause an error or warning, but may result in data which cannot be correctly interpreted.", + "items": { + "type": "string" + } + }, + "supportedProducts": { + "type": "array", + "description": "The codes of the projects supported by the dimension or metric this reporting metadata entry describes.", + "items": { + "type": "string" + } + } + } + }, + "SavedAdStyle": { + "id": "SavedAdStyle", + "type": "object", + "properties": { + "adStyle": { + "$ref": "AdStyle", + "description": "The AdStyle itself." + }, + "id": { + "type": "string", + "description": "Unique identifier of this saved ad style. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedAdStyle.", + "default": "adsense#savedAdStyle" + }, + "name": { + "type": "string", + "description": "The user selected name of this SavedAdStyle." + } + } + }, + "SavedAdStyles": { + "id": "SavedAdStyles", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved ad styles returned in this list response.", + "items": { + "$ref": "SavedAdStyle" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedAdStyles.", + "default": "adsense#savedAdStyles" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "SavedReport": { + "id": "SavedReport", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this saved report." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#savedReport.", + "default": "adsense#savedReport" + }, + "name": { + "type": "string", + "description": "This saved report's name." + } + } + }, + "SavedReports": { + "id": "SavedReports", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The saved reports returned in this list response.", + "items": { + "$ref": "SavedReport" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#savedReports.", + "default": "adsense#savedReports" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through saved reports. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsense#urlChannel.", + "default": "adsense#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsense#urlChannels.", + "default": "adsense#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adsense.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about.", + "required": true, + "location": "path" + }, + "tree": { + "type": "boolean", + "description": "Whether the tree of sub accounts should be returned.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "List all accounts available to this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of accounts to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adclients": { + "methods": { + "list": { + "id": "adsense.accounts.adclients.list", + "path": "accounts/{accountId}/adclients", + "httpMethod": "GET", + "description": "List all ad clients in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list ad clients.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.accounts.adunits.get", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "getAdCode": { + "id": "adsense.accounts.adunits.getAdCode", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode", + "httpMethod": "GET", + "description": "Get ad code for the specified ad unit.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client with contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get the code for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.accounts.adunits.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "alerts": { + "methods": { + "delete": { + "id": "adsense.accounts.alerts.delete", + "path": "accounts/{accountId}/alerts/{alertId}", + "httpMethod": "DELETE", + "description": "Dismiss (delete) the specified alert from the specified publisher AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad unit.", + "required": true, + "location": "path" + }, + "alertId": { + "type": "string", + "description": "Alert to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "alertId" + ], + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] + }, + "list": { + "id": "adsense.accounts.alerts.list", + "path": "accounts/{accountId}/alerts", + "httpMethod": "GET", + "description": "List the alerts for the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to retrieve the alerts.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.accounts.customchannels.get", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.customchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.accounts.customchannels.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "payments": { + "methods": { + "list": { + "id": "adsense.accounts.payments.list", + "path": "accounts/{accountId}/payments", + "httpMethod": "GET", + "description": "List the payments for the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to retrieve the payments.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Payments" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.generate", + "path": "accounts/{accountId}/reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account upon which to report.", + "required": true, + "location": "path" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)|(latest-(\\d{2})-(\\d{2})(-\\d+y)?)|(latest-latest-(\\d{2})(-\\d+m)?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)|(latest-(\\d{2})-(\\d{2})(-\\d+y)?)|(latest-latest-(\\d{2})(-\\d+m)?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "useTimezoneReporting": { + "type": "boolean", + "description": "Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.accounts.reports.saved.generate", + "path": "accounts/{accountId}/reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.reports.saved.list", + "path": "accounts/{accountId}/reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in the specified AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the saved reports belong.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.accounts.savedadstyles.get", + "path": "accounts/{accountId}/savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "List a specific saved ad style for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to get the saved ad style.", + "required": true, + "location": "path" + }, + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.accounts.savedadstyles.list", + "path": "accounts/{accountId}/savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list saved ad styles.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.accounts.urlchannels.list", + "path": "accounts/{accountId}/adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for the specified account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to which the ad client belongs.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "adclients": { + "methods": { + "list": { + "id": "adsense.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all ad clients in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "adunits": { + "methods": { + "get": { + "id": "adsense.adunits.get", + "path": "adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Gets the specified ad unit in the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to get the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "getAdCode": { + "id": "adsense.adunits.getAdCode", + "path": "adclients/{adClientId}/adunits/{adUnitId}/adcode", + "httpMethod": "GET", + "description": "Get ad code for the specified ad unit.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client with contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get the code for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.adunits.list", + "path": "adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "customchannels": { + "methods": { + "list": { + "id": "adsense.adunits.customchannels.list", + "path": "adclients/{adClientId}/adunits/{adUnitId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels which the specified ad unit belongs to.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "alerts": { + "methods": { + "delete": { + "id": "adsense.alerts.delete", + "path": "alerts/{alertId}", + "httpMethod": "DELETE", + "description": "Dismiss (delete) the specified alert from the publisher's AdSense account.", + "parameters": { + "alertId": { + "type": "string", + "description": "Alert to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "alertId" + ], + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] + }, + "list": { + "id": "adsense.alerts.list", + "path": "alerts", + "httpMethod": "GET", + "description": "List the alerts for this AdSense account.", + "parameters": { + "locale": { + "type": "string", + "description": "The locale to use for translating alert messages. The account locale will be used if this is not supplied. The AdSense default (English) will be used if the supplied locale is invalid or unsupported.", + "location": "query" + } + }, + "response": { + "$ref": "Alerts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "customchannels": { + "methods": { + "get": { + "id": "adsense.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get the specified custom channel from the specified ad client.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all custom channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + }, + "resources": { + "adunits": { + "methods": { + "list": { + "id": "adsense.customchannels.adunits.list", + "path": "adclients/{adClientId}/customchannels/{customChannelId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified custom channel.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client which contains the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "metadata": { + "resources": { + "dimensions": { + "methods": { + "list": { + "id": "adsense.metadata.dimensions.list", + "path": "metadata/dimensions", + "httpMethod": "GET", + "description": "List the metadata for the dimensions available to this AdSense account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "metrics": { + "methods": { + "list": { + "id": "adsense.metadata.metrics.list", + "path": "metadata/metrics", + "httpMethod": "GET", + "description": "List the metadata for the metrics available to this AdSense account.", + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "payments": { + "methods": { + "list": { + "id": "adsense.payments.list", + "path": "payments", + "httpMethod": "GET", + "description": "List the payments for this AdSense account.", + "response": { + "$ref": "Payments" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsense.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Accounts upon which to report.", + "repeated": true, + "location": "query" + }, + "currency": { + "type": "string", + "description": "Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.", + "pattern": "[a-zA-Z]+", + "location": "query" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)|(latest-(\\d{2})-(\\d{2})(-\\d+y)?)|(latest-latest-(\\d{2})(-\\d+m)?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)|(latest-(\\d{2})-(\\d{2})(-\\d+y)?)|(latest-latest-(\\d{2})(-\\d+m)?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "useTimezoneReporting": { + "type": "boolean", + "description": "Whether the report should be generated in the AdSense account's local timezone. If false default PST/PDT timezone will be used.", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ], + "supportsMediaDownload": true + } + }, + "resources": { + "saved": { + "methods": { + "generate": { + "id": "adsense.reports.saved.generate", + "path": "reports/{savedReportId}", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the saved report ID sent in the query parameters.", + "parameters": { + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "savedReportId": { + "type": "string", + "description": "The saved report to retrieve.", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "savedReportId" + ], + "response": { + "$ref": "AdsenseReportsGenerateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.reports.saved.list", + "path": "reports/saved", + "httpMethod": "GET", + "description": "List all saved reports in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved reports to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } + }, + "savedadstyles": { + "methods": { + "get": { + "id": "adsense.savedadstyles.get", + "path": "savedadstyles/{savedAdStyleId}", + "httpMethod": "GET", + "description": "Get a specific saved ad style from the user's account.", + "parameters": { + "savedAdStyleId": { + "type": "string", + "description": "Saved ad style to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "savedAdStyleId" + ], + "response": { + "$ref": "SavedAdStyle" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "id": "adsense.savedadstyles.list", + "path": "savedadstyles", + "httpMethod": "GET", + "description": "List all saved ad styles in the user's account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of saved ad styles to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through saved ad styles. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "SavedAdStyles" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, + "urlchannels": { + "methods": { + "list": { + "id": "adsense.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all URL channels in the specified ad client for this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + } + } +} diff --git a/etc/api/adsensehost/v4.1/adsensehost-api.json b/etc/api/adsensehost/v4.1/adsensehost-api.json new file mode 100644 index 0000000000..e4979b1d3a --- /dev/null +++ b/etc/api/adsensehost/v4.1/adsensehost-api.json @@ -0,0 +1,1569 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/yoGXlEwGPLEAr1fmq3U4dFpyoyQ\"", + "discoveryVersion": "v1", + "id": "adsensehost:v4.1", + "name": "adsensehost", + "canonicalName": "AdSense Host", + "version": "v4.1", + "revision": "20141229", + "title": "AdSense Host API", + "description": "Gives AdSense Hosts access to report generation, ad code generation, and publisher management capabilities.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/adsense-16.png", + "x32": "https://www.google.com/images/icons/product/adsense-32.png" + }, + "documentationLink": "https://developers.google.com/adsense/host/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/adsensehost/v4.1/", + "basePath": "/adsensehost/v4.1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "adsensehost/v4.1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adsensehost": { + "description": "View and manage your AdSense host data and associated accounts" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this account." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#account.", + "default": "adsensehost#account" + }, + "name": { + "type": "string", + "description": "Name of this account." + }, + "status": { + "type": "string", + "description": "Approval status of this account. One of: PENDING, APPROVED, DISABLED." + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The accounts returned in this list response.", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsensehost#accounts.", + "default": "adsensehost#accounts" + } + } + }, + "AdClient": { + "id": "AdClient", + "type": "object", + "properties": { + "arcOptIn": { + "type": "boolean", + "description": "Whether this ad client is opted in to ARC." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad client." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#adClient.", + "default": "adsensehost#adClient" + }, + "productCode": { + "type": "string", + "description": "This ad client's product code, which corresponds to the PRODUCT_CODE report dimension." + }, + "supportsReporting": { + "type": "boolean", + "description": "Whether this ad client supports being reported on." + } + } + }, + "AdClients": { + "id": "AdClients", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad clients returned in this list response.", + "items": { + "$ref": "AdClient" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsensehost#adClients.", + "default": "adsensehost#adClients" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad clients. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AdCode": { + "id": "AdCode", + "type": "object", + "properties": { + "adCode": { + "type": "string", + "description": "The ad code snippet." + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsensehost#adCode.", + "default": "adsensehost#adCode" + } + } + }, + "AdStyle": { + "id": "AdStyle", + "type": "object", + "properties": { + "colors": { + "type": "object", + "description": "The colors included in the style. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash.", + "properties": { + "background": { + "type": "string", + "description": "The color of the ad background." + }, + "border": { + "type": "string", + "description": "The color of the ad border." + }, + "text": { + "type": "string", + "description": "The color of the ad text." + }, + "title": { + "type": "string", + "description": "The color of the ad title." + }, + "url": { + "type": "string", + "description": "The color of the ad url." + } + } + }, + "corners": { + "type": "string", + "description": "The style of the corners in the ad. Possible values are SQUARE, SLIGHTLY_ROUNDED and VERY_ROUNDED." + }, + "font": { + "type": "object", + "description": "The font which is included in the style.", + "properties": { + "family": { + "type": "string", + "description": "The family of the font. Possible values are: ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and VERDANA." + }, + "size": { + "type": "string", + "description": "The size of the font. Possible values are: ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE." + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsensehost#adStyle.", + "default": "adsensehost#adStyle" + } + } + }, + "AdUnit": { + "id": "AdUnit", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Identity code of this ad unit, not necessarily unique across ad clients." + }, + "contentAdsSettings": { + "type": "object", + "description": "Settings specific to content ads (AFC) and highend mobile content ads (AFMC).", + "properties": { + "backupOption": { + "type": "object", + "description": "The backup option to be used in instances where no ad is available.", + "properties": { + "color": { + "type": "string", + "description": "Color to use when type is set to COLOR. These are represented as six hexadecimal characters, similar to HTML color codes, but without the leading hash." + }, + "type": { + "type": "string", + "description": "Type of the backup option. Possible values are BLANK, COLOR and URL." + }, + "url": { + "type": "string", + "description": "URL to use when type is set to URL." + } + } + }, + "size": { + "type": "string", + "description": "Size of this ad unit. Size values are in the form SIZE_{width}_{height}." + }, + "type": { + "type": "string", + "description": "Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, IMAGE and LINK." + } + } + }, + "customStyle": { + "$ref": "AdStyle", + "description": "Custom style information specific to this ad unit." + }, + "id": { + "type": "string", + "description": "Unique identifier of this ad unit. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#adUnit.", + "default": "adsensehost#adUnit" + }, + "mobileContentAdsSettings": { + "type": "object", + "description": "Settings specific to WAP mobile content ads (AFMC).", + "properties": { + "markupLanguage": { + "type": "string", + "description": "The markup language to use for this ad unit." + }, + "scriptingLanguage": { + "type": "string", + "description": "The scripting language to use for this ad unit." + }, + "size": { + "type": "string", + "description": "Size of this ad unit." + }, + "type": { + "type": "string", + "description": "Type of this ad unit." + } + } + }, + "name": { + "type": "string", + "description": "Name of this ad unit." + }, + "status": { + "type": "string", + "description": "Status of this ad unit. Possible values are:\nNEW: Indicates that the ad unit was created within the last seven days and does not yet have any activity associated with it.\n\nACTIVE: Indicates that there has been activity on this ad unit in the last seven days.\n\nINACTIVE: Indicates that there has been no activity on this ad unit in the last seven days." + } + } + }, + "AdUnits": { + "id": "AdUnits", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The ad units returned in this list response.", + "items": { + "$ref": "AdUnit" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsensehost#adUnits.", + "default": "adsensehost#adUnits" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through ad units. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "AssociationSession": { + "id": "AssociationSession", + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Hosted account id of the associated publisher after association. Present if status is ACCEPTED." + }, + "id": { + "type": "string", + "description": "Unique identifier of this association session." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#associationSession.", + "default": "adsensehost#associationSession" + }, + "productCodes": { + "type": "array", + "description": "The products to associate with the user. Options: AFC, AFF, AFS, AFMC", + "items": { + "type": "string" + } + }, + "redirectUrl": { + "type": "string", + "description": "Redirect URL of this association session. Used to redirect users into the AdSense association flow." + }, + "status": { + "type": "string", + "description": "Status of the completed association, available once the association callback token has been verified. One of ACCEPTED, REJECTED, or ERROR." + }, + "userLocale": { + "type": "string", + "description": "The preferred locale of the user themselves when going through the AdSense association flow." + }, + "websiteLocale": { + "type": "string", + "description": "The locale of the user's hosted website." + }, + "websiteUrl": { + "type": "string", + "description": "The URL of the user's hosted website." + } + } + }, + "CustomChannel": { + "id": "CustomChannel", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code of this custom channel, not necessarily unique across ad clients." + }, + "id": { + "type": "string", + "description": "Unique identifier of this custom channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#customChannel.", + "default": "adsensehost#customChannel" + }, + "name": { + "type": "string", + "description": "Name of this custom channel." + } + } + }, + "CustomChannels": { + "id": "CustomChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The custom channels returned in this list response.", + "items": { + "$ref": "CustomChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsensehost#customChannels.", + "default": "adsensehost#customChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through custom channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "properties": { + "averages": { + "type": "array", + "description": "The averages of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "headers": { + "type": "array", + "description": "The header information of the columns requested in the report. This is a list of headers; one for each dimension in the request, followed by one for each metric in the request.", + "items": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of this column. Only present if the header type is METRIC_CURRENCY." + }, + "name": { + "type": "string", + "description": "The name of the header." + }, + "type": { + "type": "string", + "description": "The type of the header; one of DIMENSION, METRIC_TALLY, METRIC_RATIO, or METRIC_CURRENCY." + } + } + } + }, + "kind": { + "type": "string", + "description": "Kind this is, in this case adsensehost#report.", + "default": "adsensehost#report" + }, + "rows": { + "type": "array", + "description": "The output rows of the report. Each row is a list of cells; one for each dimension in the request, followed by one for each metric in the request. The dimension cells contain strings, and the metric cells contain numbers.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "totalMatchedRows": { + "type": "string", + "description": "The total number of rows matched by the report request. Fewer rows may be returned in the response due to being limited by the row count requested or the report row limit.", + "format": "int64" + }, + "totals": { + "type": "array", + "description": "The totals of the report. This is the same length as any other row in the report; cells corresponding to dimension columns are empty.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Any warnings associated with generation of the report.", + "items": { + "type": "string" + } + } + } + }, + "UrlChannel": { + "id": "UrlChannel", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of this URL channel. This should be considered an opaque identifier; it is not safe to rely on it being in any particular format." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case adsensehost#urlChannel.", + "default": "adsensehost#urlChannel" + }, + "urlPattern": { + "type": "string", + "description": "URL Pattern of this URL channel. Does not include \"http://\" or \"https://\". Example: www.example.com/home" + } + } + }, + "UrlChannels": { + "id": "UrlChannels", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The URL channels returned in this list response.", + "items": { + "$ref": "UrlChannel" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case adsensehost#urlChannels.", + "default": "adsensehost#urlChannels" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through URL channels. To retrieve the next page of results, set the next request's \"pageToken\" value to this." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "adsensehost.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Get information about the selected associated AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account to get information about.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "List hosted accounts associated with this AdSense account by ad client id.", + "parameters": { + "filterAdClientId": { + "type": "string", + "description": "Ad clients to list accounts for.", + "required": true, + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "filterAdClientId" + ], + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + }, + "resources": { + "adclients": { + "methods": { + "get": { + "id": "adsensehost.accounts.adclients.get", + "path": "accounts/{accountId}/adclients/{adClientId}", + "httpMethod": "GET", + "description": "Get information about one of the ad clients in the specified publisher's AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "AdClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.accounts.adclients.list", + "path": "accounts/{accountId}/adclients", + "httpMethod": "GET", + "description": "List all hosted ad clients in the specified hosted account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account for which to list ad clients.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "adunits": { + "methods": { + "delete": { + "id": "adsensehost.accounts.adunits.delete", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "DELETE", + "description": "Delete the specified ad unit from the specified publisher AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad unit.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to get ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "get": { + "id": "adsensehost.accounts.adunits.get", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", + "httpMethod": "GET", + "description": "Get the specified host ad unit in this AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad unit.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to get ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "getAdCode": { + "id": "adsensehost.accounts.adunits.getAdCode", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode", + "httpMethod": "GET", + "description": "Get ad code for the specified ad unit, attaching the specified host custom channels.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client with contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get the code for.", + "required": true, + "location": "path" + }, + "hostCustomChannelId": { + "type": "string", + "description": "Host custom channel to attach to the ad code.", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "response": { + "$ref": "AdCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "insert": { + "id": "adsensehost.accounts.adunits.insert", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "POST", + "description": "Insert the supplied ad unit into the specified publisher AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which will contain the ad unit.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client into which to insert the ad unit.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.accounts.adunits.list", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "GET", + "description": "List all ad units in the specified publisher's AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client for which to list ad units.", + "required": true, + "location": "path" + }, + "includeInactive": { + "type": "boolean", + "description": "Whether to include inactive ad units. Default: true.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of ad units to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "response": { + "$ref": "AdUnits" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "patch": { + "id": "adsensehost.accounts.adunits.patch", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "PATCH", + "description": "Update the supplied ad unit in the specified publisher AdSense account. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + }, + "adUnitId": { + "type": "string", + "description": "Ad unit to get.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "adClientId", + "adUnitId" + ], + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "update": { + "id": "adsensehost.accounts.adunits.update", + "path": "accounts/{accountId}/adclients/{adClientId}/adunits", + "httpMethod": "PUT", + "description": "Update the supplied ad unit in the specified publisher AdSense account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account which contains the ad client.", + "required": true, + "location": "path" + }, + "adClientId": { + "type": "string", + "description": "Ad client which contains the ad unit.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "adClientId" + ], + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsensehost.accounts.reports.generate", + "path": "accounts/{accountId}/reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Hosted account upon which to report.", + "required": true, + "location": "path" + }, + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "startDate", + "endDate" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + } + } + }, + "adclients": { + "methods": { + "get": { + "id": "adsensehost.adclients.get", + "path": "adclients/{adClientId}", + "httpMethod": "GET", + "description": "Get information about one of the ad clients in the Host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "AdClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.adclients.list", + "path": "adclients", + "httpMethod": "GET", + "description": "List all host ad clients in this AdSense account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of ad clients to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "response": { + "$ref": "AdClients" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "associationsessions": { + "methods": { + "start": { + "id": "adsensehost.associationsessions.start", + "path": "associationsessions/start", + "httpMethod": "GET", + "description": "Create an association session for initiating an association with an AdSense user.", + "parameters": { + "productCode": { + "type": "string", + "description": "Products to associate with the user.", + "required": true, + "enum": [ + "AFC", + "AFG", + "AFMC", + "AFS", + "AFV" + ], + "enumDescriptions": [ + "AdSense For Content", + "AdSense For Games", + "AdSense For Mobile Content", + "AdSense For Search", + "AdSense For Video" + ], + "repeated": true, + "location": "query" + }, + "userLocale": { + "type": "string", + "description": "The preferred locale of the user.", + "location": "query" + }, + "websiteLocale": { + "type": "string", + "description": "The locale of the user's hosted website.", + "location": "query" + }, + "websiteUrl": { + "type": "string", + "description": "The URL of the user's hosted website.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "productCode", + "websiteUrl" + ], + "response": { + "$ref": "AssociationSession" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "verify": { + "id": "adsensehost.associationsessions.verify", + "path": "associationsessions/verify", + "httpMethod": "GET", + "description": "Verify an association session after the association callback returns from AdSense signup.", + "parameters": { + "token": { + "type": "string", + "description": "The token returned to the association callback URL.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "token" + ], + "response": { + "$ref": "AssociationSession" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "customchannels": { + "methods": { + "delete": { + "id": "adsensehost.customchannels.delete", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "DELETE", + "description": "Delete a specific custom channel from the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client from which to delete the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "get": { + "id": "adsensehost.customchannels.get", + "path": "adclients/{adClientId}/customchannels/{customChannelId}", + "httpMethod": "GET", + "description": "Get a specific custom channel from the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client from which to get the custom channel.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "insert": { + "id": "adsensehost.customchannels.insert", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "POST", + "description": "Add a new custom channel to the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client to which the new custom channel will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId" + ], + "request": { + "$ref": "CustomChannel" + }, + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.customchannels.list", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "GET", + "description": "List all host custom channels in this AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list custom channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of custom channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "CustomChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "patch": { + "id": "adsensehost.customchannels.patch", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "PATCH", + "description": "Update a custom channel in the host AdSense account. This method supports patch semantics.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client in which the custom channel will be updated.", + "required": true, + "location": "path" + }, + "customChannelId": { + "type": "string", + "description": "Custom channel to get.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "adClientId", + "customChannelId" + ], + "request": { + "$ref": "CustomChannel" + }, + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "update": { + "id": "adsensehost.customchannels.update", + "path": "adclients/{adClientId}/customchannels", + "httpMethod": "PUT", + "description": "Update a custom channel in the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client in which the custom channel will be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId" + ], + "request": { + "$ref": "CustomChannel" + }, + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "adsensehost.reports.generate", + "path": "reports", + "httpMethod": "GET", + "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", + "parameters": { + "dimension": { + "type": "string", + "description": "Dimensions to base the report on.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "endDate": { + "type": "string", + "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filters to be run on the report.", + "pattern": "[a-zA-Z_]+(==|=@).+", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", + "pattern": "[a-zA-Z_]+", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rows of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "50000", + "location": "query" + }, + "metric": { + "type": "string", + "description": "Numeric columns to include in the report.", + "pattern": "[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "sort": { + "type": "string", + "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", + "pattern": "(\\+|-)?[a-zA-Z_]+", + "repeated": true, + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", + "required": true, + "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first row of report data to return.", + "format": "uint32", + "minimum": "0", + "maximum": "5000", + "location": "query" + } + }, + "parameterOrder": [ + "startDate", + "endDate" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + }, + "urlchannels": { + "methods": { + "delete": { + "id": "adsensehost.urlchannels.delete", + "path": "adclients/{adClientId}/urlchannels/{urlChannelId}", + "httpMethod": "DELETE", + "description": "Delete a URL channel from the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client from which to delete the URL channel.", + "required": true, + "location": "path" + }, + "urlChannelId": { + "type": "string", + "description": "URL channel to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId", + "urlChannelId" + ], + "response": { + "$ref": "UrlChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "insert": { + "id": "adsensehost.urlchannels.insert", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "POST", + "description": "Add a new URL channel to the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client to which the new URL channel will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "adClientId" + ], + "request": { + "$ref": "UrlChannel" + }, + "response": { + "$ref": "UrlChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + }, + "list": { + "id": "adsensehost.urlchannels.list", + "path": "adclients/{adClientId}/urlchannels", + "httpMethod": "GET", + "description": "List all host URL channels in the host AdSense account.", + "parameters": { + "adClientId": { + "type": "string", + "description": "Ad client for which to list URL channels.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of URL channels to include in the response, used for paging.", + "format": "uint32", + "minimum": "0", + "maximum": "10000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "adClientId" + ], + "response": { + "$ref": "UrlChannels" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsensehost" + ] + } + } + } + } +} diff --git a/etc/api/analytics/v2.4/analytics-api.json b/etc/api/analytics/v2.4/analytics-api.json new file mode 100644 index 0000000000..384b7a374b --- /dev/null +++ b/etc/api/analytics/v2.4/analytics-api.json @@ -0,0 +1,366 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/deWKWLiFywg1_Xne7G92xyJt8HA\"", + "discoveryVersion": "v1", + "id": "analytics:v2.4", + "name": "analytics", + "version": "v2.4", + "revision": "20150115", + "title": "Google Analytics API", + "description": "View and manage your Google Analytics data", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/analytics-16.png", + "x32": "https://www.google.com/images/icons/product/analytics-32.png" + }, + "documentationLink": "https://developers.google.com/analytics/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/analytics/v2.4/", + "basePath": "/analytics/v2.4/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "analytics/v2.4/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "atom", + "enum": [ + "atom" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/atom+xml" + ], + "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": "false", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/analytics": { + "description": "View and manage your Google Analytics data" + }, + "https://www.googleapis.com/auth/analytics.readonly": { + "description": "View your Google Analytics data" + } + } + } + }, + "resources": { + "data": { + "methods": { + "get": { + "id": "analytics.data.get", + "path": "data", + "httpMethod": "GET", + "description": "Returns Analytics report data for a view (profile).", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.", + "pattern": "(ga:.+)?", + "location": "query" + }, + "end-date": { + "type": "string", + "description": "End date for fetching report data. All requests should specify an end date formatted as YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A comma-separated list of dimension or metric filters to be applied to the report data.", + "pattern": "ga:.+", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Unique table ID for retrieving report data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.", + "required": true, + "pattern": "ga:[0-9]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of entries to include in this feed.", + "format": "int32", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of Analytics metrics. E.g., 'ga:sessions,ga:pageviews'. At least one metric must be specified to retrieve a valid Analytics report.", + "required": true, + "pattern": "ga:.+", + "location": "query" + }, + "segment": { + "type": "string", + "description": "An Analytics advanced segment to be applied to the report data.", + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for the report data.", + "pattern": "(-)?ga:.+", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "Start date for fetching report data. All requests should specify a start date formatted as YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "start-date", + "end-date", + "metrics" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "management": { + "resources": { + "accounts": { + "methods": { + "list": { + "id": "analytics.management.accounts.list", + "path": "management/accounts", + "httpMethod": "GET", + "description": "Lists all accounts to which the user has access.", + "parameters": { + "max-results": { + "type": "integer", + "description": "The maximum number of accounts to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first account to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "goals": { + "methods": { + "list": { + "id": "analytics.management.goals.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals", + "httpMethod": "GET", + "description": "Lists goals to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of goals to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve goals for. Can either be a specific view (profile) ID or '~all', which refers to all the views (profiles) that user has access to.", + "required": true, + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "profiles": { + "methods": { + "list": { + "id": "analytics.management.profiles.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles", + "httpMethod": "GET", + "description": "Lists views (profiles) to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the views (profiles) to retrieve. Can either be a specific account ID or '~all', which refers to all the accounts to which the user has access.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of views (profiles) to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties to which the user has access.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "segments": { + "methods": { + "list": { + "id": "analytics.management.segments.list", + "path": "management/segments", + "httpMethod": "GET", + "description": "Lists advanced segments to which the user has access.", + "parameters": { + "max-results": { + "type": "integer", + "description": "The maximum number of advanced segments to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first advanced segment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "webproperties": { + "methods": { + "list": { + "id": "analytics.management.webproperties.list", + "path": "management/accounts/{accountId}/webproperties", + "httpMethod": "GET", + "description": "Lists web properties to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of web properties to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + } + } + } + } +} diff --git a/etc/api/analytics/v3/analytics-api.json b/etc/api/analytics/v3/analytics-api.json new file mode 100644 index 0000000000..04a5cb3a67 --- /dev/null +++ b/etc/api/analytics/v3/analytics-api.json @@ -0,0 +1,7067 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/A7O3agkh7yC4B7ApdQ5Stb69Ofk\"", + "discoveryVersion": "v1", + "id": "analytics:v3", + "name": "analytics", + "version": "v3", + "revision": "20150115", + "title": "Google Analytics API", + "description": "View and manage your Google Analytics data", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/analytics-16.png", + "x32": "https://www.google.com/images/icons/product/analytics-32.png" + }, + "documentationLink": "https://developers.google.com/analytics/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/analytics/v3/", + "basePath": "/analytics/v3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "analytics/v3/", + "batchPath": "batch", + "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": "false", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/analytics": { + "description": "View and manage your Google Analytics data" + }, + "https://www.googleapis.com/auth/analytics.edit": { + "description": "Edit Google Analytics management entities" + }, + "https://www.googleapis.com/auth/analytics.manage.users": { + "description": "Manage Google Analytics Account users by email address" + }, + "https://www.googleapis.com/auth/analytics.manage.users.readonly": { + "description": "View Google Analytics user permissions" + }, + "https://www.googleapis.com/auth/analytics.provision": { + "description": "Create a new Google Analytics account along with its default property and view" + }, + "https://www.googleapis.com/auth/analytics.readonly": { + "description": "View your Google Analytics data" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "JSON template for Analytics account entry.", + "properties": { + "childLink": { + "type": "object", + "description": "Child link for an account entry. Points to the list of web properties for this account.", + "properties": { + "href": { + "type": "string", + "description": "Link to the list of web properties for this account." + }, + "type": { + "type": "string", + "description": "Type of the child link. Its value is \"analytics#webproperties\".", + "default": "analytics#webproperties" + } + } + }, + "created": { + "type": "string", + "description": "Time the account was created.", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Account ID." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics account.", + "default": "analytics#account" + }, + "name": { + "type": "string", + "description": "Account name." + }, + "permissions": { + "type": "object", + "description": "Permissions the user has for this account.", + "properties": { + "effective": { + "type": "array", + "description": "All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "Link for this account." + }, + "updated": { + "type": "string", + "description": "Time the account was last modified.", + "format": "date-time" + } + } + }, + "AccountRef": { + "id": "AccountRef", + "type": "object", + "description": "JSON template for a linked account.", + "properties": { + "href": { + "type": "string", + "description": "Link for this account." + }, + "id": { + "type": "string", + "description": "Account ID." + }, + "kind": { + "type": "string", + "description": "Analytics account reference.", + "default": "analytics#accountRef" + }, + "name": { + "type": "string", + "description": "Account name." + } + } + }, + "AccountSummaries": { + "id": "AccountSummaries", + "type": "object", + "description": "An AccountSummary collection lists a summary of accounts, properties and views (profiles) to which the user has access. Each resource in the collection corresponds to a single AccountSummary.", + "properties": { + "items": { + "type": "array", + "description": "A list of AccountSummaries.", + "items": { + "$ref": "AccountSummary" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#accountSummaries" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this AccountSummary collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this AccountSummary collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "AccountSummary": { + "id": "AccountSummary", + "type": "object", + "description": "JSON template for an Analytics AccountSummary. An AccountSummary is a lightweight tree comprised of properties/profiles.", + "properties": { + "id": { + "type": "string", + "description": "Account ID." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics AccountSummary.", + "default": "analytics#accountSummary" + }, + "name": { + "type": "string", + "description": "Account name." + }, + "webProperties": { + "type": "array", + "description": "List of web properties under this account.", + "items": { + "$ref": "WebPropertySummary" + } + } + } + }, + "AccountTicket": { + "id": "AccountTicket", + "type": "object", + "description": "JSON template for an Analytics account ticket. The account ticket consists of the ticket ID and the basic information for the account, property and profile.", + "properties": { + "account": { + "$ref": "Account", + "description": "Account for this ticket." + }, + "id": { + "type": "string", + "description": "Account ticket ID used to access the account ticket." + }, + "kind": { + "type": "string", + "description": "Resource type for account ticket.", + "default": "analytics#accountTicket" + }, + "profile": { + "$ref": "Profile", + "description": "View (Profile) for the account." + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL." + }, + "webproperty": { + "$ref": "Webproperty", + "description": "Web property for the account." + } + } + }, + "Accounts": { + "id": "Accounts", + "type": "object", + "description": "An account collection provides a list of Analytics accounts to which a user has access. The account collection is the entry point to all management information. Each resource in the collection corresponds to a single Analytics account.", + "properties": { + "items": { + "type": "array", + "description": "A list of accounts.", + "items": { + "$ref": "Account" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#accounts" + }, + "nextLink": { + "type": "string", + "description": "Next link for this account collection." + }, + "previousLink": { + "type": "string", + "description": "Previous link for this account collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "AdWordsAccount": { + "id": "AdWordsAccount", + "type": "object", + "description": "JSON template for an AdWords account.", + "properties": { + "autoTaggingEnabled": { + "type": "boolean", + "description": "True if auto-tagging is enabled on the AdWords account. Read-only after the insert operation." + }, + "customerId": { + "type": "string", + "description": "Customer ID. This field is required when creating an AdWords link.", + "annotations": { + "required": [ + "analytics.management.webPropertyAdWordsLinks.insert", + "analytics.management.webPropertyAdWordsLinks.update" + ] + } + }, + "kind": { + "type": "string", + "description": "Resource type for AdWords account.", + "default": "analytics#adWordsAccount" + } + } + }, + "AnalyticsDataimportDeleteUploadDataRequest": { + "id": "AnalyticsDataimportDeleteUploadDataRequest", + "type": "object", + "description": "Request template for the delete upload data request.", + "properties": { + "customDataImportUids": { + "type": "array", + "description": "A list of upload UIDs.", + "items": { + "type": "string" + } + } + } + }, + "Column": { + "id": "Column", + "type": "object", + "description": "JSON template for a metadata column.", + "properties": { + "attributes": { + "type": "object", + "description": "Map of attribute name and value for this column.", + "additionalProperties": { + "type": "string", + "description": "The name of the attribute." + } + }, + "id": { + "type": "string", + "description": "Column id." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics column.", + "default": "analytics#column" + } + } + }, + "Columns": { + "id": "Columns", + "type": "object", + "description": "Lists columns (dimensions and metrics) for a particular report type.", + "properties": { + "attributeNames": { + "type": "array", + "description": "List of attributes names returned by columns.", + "items": { + "type": "string" + } + }, + "etag": { + "type": "string", + "description": "Etag of collection. This etag can be compared with the last response etag to check if response has changed." + }, + "items": { + "type": "array", + "description": "List of columns for a report type.", + "items": { + "$ref": "Column" + } + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#columns" + }, + "totalResults": { + "type": "integer", + "description": "Total number of columns returned in the response.", + "format": "int32" + } + } + }, + "CustomDataSource": { + "id": "CustomDataSource", + "type": "object", + "description": "JSON template for an Analytics custom data source.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this custom data source belongs." + }, + "childLink": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Link to the list of daily uploads for this custom data source. Link to the list of uploads for this custom data source." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#dailyUploads\". Value is \"analytics#uploads\"." + } + } + }, + "created": { + "type": "string", + "description": "Time this custom data source was created.", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "Description of custom data source." + }, + "id": { + "type": "string", + "description": "Custom data source ID." + }, + "importBehavior": { + "type": "string" + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics custom data source.", + "default": "analytics#customDataSource" + }, + "name": { + "type": "string", + "description": "Name of this custom data source." + }, + "parentLink": { + "type": "object", + "description": "Parent link for this custom data source. Points to the web property to which this custom data source belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the web property to which this custom data source belongs." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#webproperty\".", + "default": "analytics#webproperty" + } + } + }, + "profilesLinked": { + "type": "array", + "description": "IDs of views (profiles) linked to the custom data source.", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "Link for this Analytics custom data source." + }, + "type": { + "type": "string", + "description": "Type of the custom data source." + }, + "updated": { + "type": "string", + "description": "Time this custom data source was last modified.", + "format": "date-time" + }, + "uploadType": { + "type": "string" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY to which this custom data source belongs." + } + } + }, + "CustomDataSources": { + "id": "CustomDataSources", + "type": "object", + "description": "Lists Analytics custom data sources to which the user has access. Each resource in the collection corresponds to a single Analytics custom data source.", + "properties": { + "items": { + "type": "array", + "description": "Collection of custom data sources.", + "items": { + "$ref": "CustomDataSource" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#customDataSources" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this custom data source collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this custom data source collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "CustomDimension": { + "id": "CustomDimension", + "type": "object", + "description": "JSON template for Analytics Custom Dimension.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID." + }, + "active": { + "type": "boolean", + "description": "Boolean indicating whether the custom dimension is active." + }, + "created": { + "type": "string", + "description": "Time the custom dimension was created.", + "format": "date-time", + "readOnly": true + }, + "id": { + "type": "string", + "description": "Custom dimension ID." + }, + "index": { + "type": "integer", + "description": "Index of the custom dimension.", + "format": "int32", + "readOnly": true + }, + "kind": { + "type": "string", + "description": "Kind value for a custom dimension. Set to \"analytics#customDimension\". It is a read-only field.", + "default": "analytics#customDimension", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of the custom dimension." + }, + "parentLink": { + "type": "object", + "description": "Parent link for the custom dimension. Points to the property to which the custom dimension belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the property to which the custom dimension belongs." + }, + "type": { + "type": "string", + "description": "Type of the parent link. Set to \"analytics#webproperty\".", + "default": "analytics#webproperty" + } + } + }, + "scope": { + "type": "string", + "description": "Scope of the custom dimension: HIT, SESSION, USER or PRODUCT." + }, + "selfLink": { + "type": "string", + "description": "Link for the custom dimension", + "readOnly": true + }, + "updated": { + "type": "string", + "description": "Time the custom dimension was last modified.", + "format": "date-time", + "readOnly": true + }, + "webPropertyId": { + "type": "string", + "description": "Property ID." + } + } + }, + "CustomDimensions": { + "id": "CustomDimensions", + "type": "object", + "description": "A custom dimension collection lists Analytics custom dimensions to which the user has access. Each resource in the collection corresponds to a single Analytics custom dimension.", + "properties": { + "items": { + "type": "array", + "description": "Collection of custom dimensions.", + "items": { + "$ref": "CustomDimension" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#customDimensions" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this custom dimension collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this custom dimension collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "CustomMetric": { + "id": "CustomMetric", + "type": "object", + "description": "JSON template for Analytics Custom Metric.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID." + }, + "active": { + "type": "boolean", + "description": "Boolean indicating whether the custom metric is active." + }, + "created": { + "type": "string", + "description": "Time the custom metric was created.", + "format": "date-time", + "readOnly": true + }, + "id": { + "type": "string", + "description": "Custom metric ID." + }, + "index": { + "type": "integer", + "description": "Index of the custom metric.", + "format": "int32", + "readOnly": true + }, + "kind": { + "type": "string", + "description": "Kind value for a custom metric. Set to \"analytics#customMetric\". It is a read-only field.", + "default": "analytics#customMetric", + "readOnly": true + }, + "max_value": { + "type": "string", + "description": "Max value of custom metric." + }, + "min_value": { + "type": "string", + "description": "Min value of custom metric." + }, + "name": { + "type": "string", + "description": "Name of the custom metric." + }, + "parentLink": { + "type": "object", + "description": "Parent link for the custom metric. Points to the property to which the custom metric belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the property to which the custom metric belongs." + }, + "type": { + "type": "string", + "description": "Type of the parent link. Set to \"analytics#webproperty\".", + "default": "analytics#webproperty" + } + } + }, + "scope": { + "type": "string", + "description": "Scope of the custom metric: HIT or PRODUCT." + }, + "selfLink": { + "type": "string", + "description": "Link for the custom metric", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Data type of custom metric." + }, + "updated": { + "type": "string", + "description": "Time the custom metric was last modified.", + "format": "date-time", + "readOnly": true + }, + "webPropertyId": { + "type": "string", + "description": "Property ID." + } + } + }, + "CustomMetrics": { + "id": "CustomMetrics", + "type": "object", + "description": "A custom metric collection lists Analytics custom metrics to which the user has access. Each resource in the collection corresponds to a single Analytics custom metric.", + "properties": { + "items": { + "type": "array", + "description": "Collection of custom metrics.", + "items": { + "$ref": "CustomMetric" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#customMetrics" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this custom metric collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this custom metric collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "DailyUpload": { + "id": "DailyUpload", + "type": "object", + "description": "Metadata for daily upload entity.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this daily upload belongs." + }, + "appendCount": { + "type": "integer", + "description": "Number of appends for this date.", + "format": "int32" + }, + "createdTime": { + "type": "string", + "description": "Time this daily upload was created.", + "format": "date-time" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source ID to which this daily upload belongs." + }, + "date": { + "type": "string", + "description": "Date associated with daily upload." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics daily upload.", + "default": "analytics#dailyUpload" + }, + "modifiedTime": { + "type": "string", + "description": "Time this daily upload was last modified.", + "format": "date-time" + }, + "parentLink": { + "type": "object", + "description": "Parent link for a daily upload. Points to the custom data source to which this daily upload belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the custom data source to which this daily upload belongs." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#customDataSource\".", + "default": "analytics#customDataSource" + } + } + }, + "recentChanges": { + "type": "array", + "description": "Change log for last 10 changes in chronological order.", + "items": { + "type": "object", + "properties": { + "change": { + "type": "string", + "description": "The type of change: APPEND, RESET, or DELETE." + }, + "time": { + "type": "string", + "description": "The time when the change occurred.", + "format": "date-time" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "Link for this daily upload." + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY to which this daily upload belongs." + } + } + }, + "DailyUploadAppend": { + "id": "DailyUploadAppend", + "type": "object", + "description": "Metadata returned for a successful append operation.", + "properties": { + "accountId": { + "type": "string", + "description": "Account Id to which this daily upload append belongs." + }, + "appendNumber": { + "type": "integer", + "description": "Append number.", + "format": "int32" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id to which this daily upload append belongs." + }, + "date": { + "type": "string", + "description": "Date associated with daily upload append." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics daily upload append.", + "default": "analytics#dailyUploadAppend" + }, + "nextAppendLink": { + "type": "string" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id of the form UA-XXXXX-YY to which this daily upload append belongs." + } + } + }, + "DailyUploads": { + "id": "DailyUploads", + "type": "object", + "description": "A daily upload collection lists Analytics daily uploads to which the user has access. Each resource in the collection corresponds to a single Analytics daily upload.", + "properties": { + "items": { + "type": "array", + "description": "A collection of daily uploads.", + "items": { + "$ref": "DailyUpload" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type. Value is analytics#dailyUploads.", + "default": "analytics#dailyUploads" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this daily upload collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this daily upload collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "EntityAdWordsLink": { + "id": "EntityAdWordsLink", + "type": "object", + "description": "JSON template for Analytics Entity AdWords Link.", + "properties": { + "adWordsAccounts": { + "type": "array", + "description": "A list of AdWords client accounts. These cannot be MCC accounts. This field is required when creating an AdWords link. It cannot be empty.", + "items": { + "$ref": "AdWordsAccount" + }, + "annotations": { + "required": [ + "analytics.management.webPropertyAdWordsLinks.insert", + "analytics.management.webPropertyAdWordsLinks.update" + ] + } + }, + "entity": { + "type": "object", + "description": "Web property being linked.", + "properties": { + "webPropertyRef": { + "$ref": "WebPropertyRef" + } + } + }, + "id": { + "type": "string", + "description": "Entity AdWords link ID" + }, + "kind": { + "type": "string", + "description": "Resource type for entity AdWords link.", + "default": "analytics#entityAdWordsLink" + }, + "name": { + "type": "string", + "description": "Name of the link. This field is required when creating an AdWords link.", + "annotations": { + "required": [ + "analytics.management.webPropertyAdWordsLinks.insert", + "analytics.management.webPropertyAdWordsLinks.update" + ] + } + }, + "profileIds": { + "type": "array", + "description": "IDs of linked Views (Profiles) represented as strings.", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "URL link for this Google Analytics - Google AdWords link." + } + } + }, + "EntityAdWordsLinks": { + "id": "EntityAdWordsLinks", + "type": "object", + "description": "An entity AdWords link collection provides a list of GA-AdWords links Each resource in this collection corresponds to a single link.", + "properties": { + "items": { + "type": "array", + "description": "A list of entity AdWords links.", + "items": { + "$ref": "EntityAdWordsLink" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#entityAdWordsLinks" + }, + "nextLink": { + "type": "string", + "description": "Next link for this AdWords link collection." + }, + "previousLink": { + "type": "string", + "description": "Previous link for this AdWords link collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + } + } + }, + "EntityUserLink": { + "id": "EntityUserLink", + "type": "object", + "description": "JSON template for an Analytics Entity-User Link. Returns permissions that a user has for an entity.", + "properties": { + "entity": { + "type": "object", + "description": "Entity for this link. It can be an account, a web property, or a view (profile).", + "properties": { + "accountRef": { + "$ref": "AccountRef", + "description": "Account for this link." + }, + "profileRef": { + "$ref": "ProfileRef", + "description": "View (Profile) for this link." + }, + "webPropertyRef": { + "$ref": "WebPropertyRef", + "description": "Web property for this link." + } + } + }, + "id": { + "type": "string", + "description": "Entity user link ID" + }, + "kind": { + "type": "string", + "description": "Resource type for entity user link.", + "default": "analytics#entityUserLink" + }, + "permissions": { + "type": "object", + "description": "Permissions the user has for this entity.", + "properties": { + "effective": { + "type": "array", + "description": "Effective permissions represent all the permissions that a user has for this entity. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent entity. Effective permissions are read-only.", + "readOnly": true, + "items": { + "type": "string" + } + }, + "local": { + "type": "array", + "description": "Permissions that a user has been assigned at this very level. Does not include any implied or inherited permissions. Local permissions are modifiable.", + "items": { + "type": "string" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "Self link for this resource." + }, + "userRef": { + "$ref": "UserRef", + "description": "User reference." + } + } + }, + "EntityUserLinks": { + "id": "EntityUserLinks", + "type": "object", + "description": "An entity user link collection provides a list of Analytics ACL links Each resource in this collection corresponds to a single link.", + "properties": { + "items": { + "type": "array", + "description": "A list of entity user links.", + "items": { + "$ref": "EntityUserLink" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#entityUserLinks" + }, + "nextLink": { + "type": "string", + "description": "Next link for this account collection." + }, + "previousLink": { + "type": "string", + "description": "Previous link for this account collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + } + } + }, + "Experiment": { + "id": "Experiment", + "type": "object", + "description": "JSON template for Analytics experiment resource.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this experiment belongs. This field is read-only." + }, + "created": { + "type": "string", + "description": "Time the experiment was created. This field is read-only.", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "Notes about this experiment." + }, + "editableInGaUi": { + "type": "boolean", + "description": "If true, the end user will be able to edit the experiment via the Google Analytics user interface." + }, + "endTime": { + "type": "string", + "description": "The ending time of the experiment (the time the status changed from RUNNING to ENDED). This field is present only if the experiment has ended. This field is read-only.", + "format": "date-time" + }, + "equalWeighting": { + "type": "boolean", + "description": "Boolean specifying whether to distribute traffic evenly across all variations. If the value is False, content experiments follows the default behavior of adjusting traffic dynamically based on variation performance. Optional -- defaults to False. This field may not be changed for an experiment whose status is ENDED." + }, + "id": { + "type": "string", + "description": "Experiment ID. Required for patch and update. Disallowed for create.", + "annotations": { + "required": [ + "analytics.management.experiments.patch", + "analytics.management.experiments.update" + ] + } + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this experiment belongs. This field is read-only." + }, + "kind": { + "type": "string", + "description": "Resource type for an Analytics experiment. This field is read-only.", + "default": "analytics#experiment" + }, + "minimumExperimentLengthInDays": { + "type": "integer", + "description": "An integer number in [3, 90]. Specifies the minimum length of the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "Experiment name. This field may not be changed for an experiment whose status is ENDED. This field is required when creating an experiment.", + "annotations": { + "required": [ + "analytics.management.experiments.insert", + "analytics.management.experiments.update" + ] + } + }, + "objectiveMetric": { + "type": "string", + "description": "The metric that the experiment is optimizing. Valid values: \"ga:goal(n)Completions\", \"ga:adsenseAdsClicks\", \"ga:adsenseAdsViewed\", \"ga:adsenseRevenue\", \"ga:bounces\", \"ga:pageviews\", \"ga:sessionDuration\", \"ga:transactions\", \"ga:transactionRevenue\". This field is required if status is \"RUNNING\" and servingFramework is one of \"REDIRECT\" or \"API\"." + }, + "optimizationType": { + "type": "string", + "description": "Whether the objectiveMetric should be minimized or maximized. Possible values: \"MAXIMUM\", \"MINIMUM\". Optional--defaults to \"MAXIMUM\". Cannot be specified without objectiveMetric. Cannot be modified when status is \"RUNNING\" or \"ENDED\"." + }, + "parentLink": { + "type": "object", + "description": "Parent link for an experiment. Points to the view (profile) to which this experiment belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the view (profile) to which this experiment belongs. This field is read-only." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#profile\". This field is read-only.", + "default": "analytics#profile" + } + } + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to which this experiment belongs. This field is read-only." + }, + "reasonExperimentEnded": { + "type": "string", + "description": "Why the experiment ended. Possible values: \"STOPPED_BY_USER\", \"WINNER_FOUND\", \"EXPERIMENT_EXPIRED\", \"ENDED_WITH_NO_WINNER\", \"GOAL_OBJECTIVE_CHANGED\". \"ENDED_WITH_NO_WINNER\" means that the experiment didn't expire but no winner was projected to be found. If the experiment status is changed via the API to ENDED this field is set to STOPPED_BY_USER. This field is read-only." + }, + "rewriteVariationUrlsAsOriginal": { + "type": "boolean", + "description": "Boolean specifying whether variations URLS are rewritten to match those of the original. This field may not be changed for an experiments whose status is ENDED." + }, + "selfLink": { + "type": "string", + "description": "Link for this experiment. This field is read-only." + }, + "servingFramework": { + "type": "string", + "description": "The framework used to serve the experiment variations and evaluate the results. One of: \n- REDIRECT: Google Analytics redirects traffic to different variation pages, reports the chosen variation and evaluates the results.\n- API: Google Analytics chooses and reports the variation to serve and evaluates the results; the caller is responsible for serving the selected variation.\n- EXTERNAL: The variations will be served externally and the chosen variation reported to Google Analytics. The caller is responsible for serving the selected variation and evaluating the results." + }, + "snippet": { + "type": "string", + "description": "The snippet of code to include on the control page(s). This field is read-only." + }, + "startTime": { + "type": "string", + "description": "The starting time of the experiment (the time the status changed from READY_TO_RUN to RUNNING). This field is present only if the experiment has started. This field is read-only.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "Experiment status. Possible values: \"DRAFT\", \"READY_TO_RUN\", \"RUNNING\", \"ENDED\". Experiments can be created in the \"DRAFT\", \"READY_TO_RUN\" or \"RUNNING\" state. This field is required when creating an experiment.", + "annotations": { + "required": [ + "analytics.management.experiments.insert", + "analytics.management.experiments.update" + ] + } + }, + "trafficCoverage": { + "type": "number", + "description": "A floating-point number between 0 and 1. Specifies the fraction of the traffic that participates in the experiment. Can be changed for a running experiment. This field may not be changed for an experiments whose status is ENDED.", + "format": "double" + }, + "updated": { + "type": "string", + "description": "Time the experiment was last modified. This field is read-only.", + "format": "date-time" + }, + "variations": { + "type": "array", + "description": "Array of variations. The first variation in the array is the original. The number of variations may not change once an experiment is in the RUNNING state. At least two variations are required before status can be set to RUNNING.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the variation. This field is required when creating an experiment. This field may not be changed for an experiment whose status is ENDED.", + "annotations": { + "required": [ + "analytics.management.experiments.insert", + "analytics.management.experiments.update" + ] + } + }, + "status": { + "type": "string", + "description": "Status of the variation. Possible values: \"ACTIVE\", \"INACTIVE\". INACTIVE variations are not served. This field may not be changed for an experiment whose status is ENDED." + }, + "url": { + "type": "string", + "description": "The URL of the variation. This field may not be changed for an experiment whose status is RUNNING or ENDED." + }, + "weight": { + "type": "number", + "description": "Weight that this variation should receive. Only present if the experiment is running. This field is read-only.", + "format": "double" + }, + "won": { + "type": "boolean", + "description": "True if the experiment has ended and this variation performed (statistically) significantly better than the original. This field is read-only." + } + } + } + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which this experiment belongs. The web property ID is of the form UA-XXXXX-YY. This field is read-only." + }, + "winnerConfidenceLevel": { + "type": "number", + "description": "A floating-point number between 0 and 1. Specifies the necessary confidence level to choose a winner. This field may not be changed for an experiments whose status is ENDED.", + "format": "double" + }, + "winnerFound": { + "type": "boolean", + "description": "Boolean specifying whether a winner has been found for this experiment. This field is read-only." + } + } + }, + "Experiments": { + "id": "Experiments", + "type": "object", + "description": "An experiment collection lists Analytics experiments to which the user has access. Each view (profile) can have a set of experiments. Each resource in the Experiment collection corresponds to a single Analytics experiment.", + "properties": { + "items": { + "type": "array", + "description": "A list of experiments.", + "items": { + "$ref": "Experiment" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#experiments" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this experiment collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this experiment collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of resources in the result.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "Filter": { + "id": "Filter", + "type": "object", + "description": "JSON template for an Analytics account filter.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this filter belongs." + }, + "advancedDetails": { + "type": "object", + "description": "Details for the filter of the type ADVANCED.", + "properties": { + "caseSensitive": { + "type": "boolean", + "description": "Indicates if the filter expressions are case sensitive." + }, + "extractA": { + "type": "string", + "description": "Expression to extract from field A." + }, + "extractB": { + "type": "string", + "description": "Expression to extract from field B." + }, + "fieldA": { + "type": "string", + "description": "Field A." + }, + "fieldARequired": { + "type": "boolean", + "description": "Indicates if field A is required to match." + }, + "fieldB": { + "type": "string", + "description": "Field B." + }, + "fieldBRequired": { + "type": "boolean", + "description": "Indicates if field B is required to match." + }, + "outputConstructor": { + "type": "string", + "description": "Expression used to construct the output value." + }, + "outputToField": { + "type": "string", + "description": "Output field." + }, + "overrideOutputField": { + "type": "boolean", + "description": "Indicates if the existing value of the output field, if any, should be overridden by the output expression." + } + } + }, + "created": { + "type": "string", + "description": "Time this filter was created.", + "format": "date-time", + "readOnly": true + }, + "excludeDetails": { + "$ref": "FilterExpression", + "description": "Details for the filter of the type EXCLUDE." + }, + "id": { + "type": "string", + "description": "Filter ID." + }, + "includeDetails": { + "$ref": "FilterExpression", + "description": "Details for the filter of the type INCLUDE." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics filter.", + "default": "analytics#filter", + "readOnly": true + }, + "lowercaseDetails": { + "type": "object", + "description": "Details for the filter of the type LOWER.", + "properties": { + "field": { + "type": "string", + "description": "Field to use in the filter." + } + } + }, + "name": { + "type": "string", + "description": "Name of this filter.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.filters.update" + ] + } + }, + "parentLink": { + "type": "object", + "description": "Parent link for this filter. Points to the account to which this filter belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the account to which this filter belongs." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#account\".", + "default": "analytics#account" + } + } + }, + "searchAndReplaceDetails": { + "type": "object", + "description": "Details for the filter of the type SEARCH_AND_REPLACE.", + "properties": { + "caseSensitive": { + "type": "boolean", + "description": "Determines if the filter is case sensitive." + }, + "field": { + "type": "string", + "description": "Field to use in the filter." + }, + "replaceString": { + "type": "string", + "description": "Term to replace the search term with." + }, + "searchString": { + "type": "string", + "description": "Term to search." + } + } + }, + "selfLink": { + "type": "string", + "description": "Link for this filter.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of this filter. Possible values are INCLUDE, EXCLUDE, LOWERCASE, UPPERCASE, SEARCH_AND_REPLACE and ADVANCED.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.filters.update" + ] + } + }, + "updated": { + "type": "string", + "description": "Time this filter was last modified.", + "format": "date-time", + "readOnly": true + }, + "uppercaseDetails": { + "type": "object", + "description": "Details for the filter of the type UPPER.", + "properties": { + "field": { + "type": "string", + "description": "Field to use in the filter." + } + } + } + } + }, + "FilterExpression": { + "id": "FilterExpression", + "type": "object", + "description": "JSON template for an Analytics filter expression.", + "properties": { + "caseSensitive": { + "type": "boolean", + "description": "Determines if the filter is case sensitive." + }, + "expressionValue": { + "type": "string", + "description": "Filter expression value" + }, + "field": { + "type": "string", + "description": "Field to filter. Possible values: \n- Content and Traffic \n- PAGE_REQUEST_URI, \n- PAGE_HOSTNAME, \n- PAGE_TITLE, \n- REFERRAL, \n- COST_DATA_URI (Campaign target URL), \n- HIT_TYPE, \n- INTERNAL_SEARCH_TERM, \n- INTERNAL_SEARCH_TYPE, \n- SOURCE_PROPERTY_TRACKING_ID, \n- Campaign or AdGroup \n- CAMPAIGN_SOURCE, \n- CAMPAIGN_MEDIUM, \n- CAMPAIGN_NAME, \n- CAMPAIGN_AD_GROUP, \n- CAMPAIGN_TERM, \n- CAMPAIGN_CONTENT, \n- CAMPAIGN_CODE, \n- CAMPAIGN_REFERRAL_PATH, \n- E-Commerce \n- TRANSACTION_COUNTRY, \n- TRANSACTION_REGION, \n- TRANSACTION_CITY, \n- TRANSACTION_AFFILIATION (Store or order location), \n- ITEM_NAME, \n- ITEM_CODE, \n- ITEM_VARIATION, \n- TRANSACTION_ID, \n- TRANSACTION_CURRENCY_CODE, \n- PRODUCT_ACTION_TYPE, \n- Audience/Users \n- BROWSER, \n- BROWSER_VERSION, \n- BROWSER_SIZE, \n- PLATFORM, \n- PLATFORM_VERSION, \n- LANGUAGE, \n- SCREEN_RESOLUTION, \n- SCREEN_COLORS, \n- JAVA_ENABLED (Boolean Field), \n- FLASH_VERSION, \n- GEO_SPEED (Connection speed), \n- VISITOR_TYPE, \n- GEO_ORGANIZATION (ISP organization), \n- GEO_DOMAIN, \n- GEO_IP_ADDRESS, \n- GEO_IP_VERSION, \n- Location \n- GEO_COUNTRY, \n- GEO_REGION, \n- GEO_CITY, \n- Event \n- EVENT_CATEGORY, \n- EVENT_ACTION, \n- EVENT_LABEL, \n- Other \n- CUSTOM_FIELD_1, \n- CUSTOM_FIELD_2, \n- USER_DEFINED_VALUE, \n- Application \n- APP_ID, \n- APP_INSTALLER_ID, \n- APP_NAME, \n- APP_VERSION, \n- SCREEN, \n- IS_APP (Boolean Field), \n- IS_FATAL_EXCEPTION (Boolean Field), \n- EXCEPTION_DESCRIPTION, \n- Mobile device \n- IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile), \n- IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet), \n- DEVICE_CATEGORY, \n- MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field), \n- MOBILE_HAS_NFC_SUPPORT (Boolean Field), \n- MOBILE_HAS_CELLULAR_RADIO (Boolean Field), \n- MOBILE_HAS_WIFI_SUPPORT (Boolean Field), \n- MOBILE_BRAND_NAME, \n- MOBILE_MODEL_NAME, \n- MOBILE_MARKETING_NAME, \n- MOBILE_POINTING_METHOD, \n- Social \n- SOCIAL_NETWORK, \n- SOCIAL_ACTION, \n- SOCIAL_ACTION_TARGET," + }, + "kind": { + "type": "string", + "description": "Kind value for filter expression", + "default": "analytics#filterExpression" + }, + "matchType": { + "type": "string", + "description": "Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters." + } + } + }, + "FilterRef": { + "id": "FilterRef", + "type": "object", + "description": "JSON template for a profile filter link.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this filter belongs.", + "readOnly": true + }, + "href": { + "type": "string", + "description": "Link for this filter." + }, + "id": { + "type": "string", + "description": "Filter ID.", + "annotations": { + "required": [ + "analytics.management.profileFilterLinks.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "Kind value for filter reference.", + "default": "analytics#filterRef" + }, + "name": { + "type": "string", + "description": "Name of this filter.", + "readOnly": true + } + } + }, + "Filters": { + "id": "Filters", + "type": "object", + "description": "A filter collection lists filters created by users in an Analytics account. Each resource in the collection corresponds to a filter.", + "properties": { + "items": { + "type": "array", + "description": "A list of filters.", + "items": { + "$ref": "Filter" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#filters" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this filter collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this filter collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "GaData": { + "id": "GaData", + "type": "object", + "description": "Analytics data for a given view (profile).", + "properties": { + "columnHeaders": { + "type": "array", + "description": "Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "object", + "properties": { + "columnType": { + "type": "string", + "description": "Column Type. Either DIMENSION or METRIC." + }, + "dataType": { + "type": "string", + "description": "Data type. Dimension column headers have only STRING as the data type. Metric column headers have data types for metric values such as INTEGER, DOUBLE, CURRENCY etc." + }, + "name": { + "type": "string", + "description": "Column name." + } + } + } + }, + "containsSampledData": { + "type": "boolean", + "description": "Determines if Analytics data contains samples." + }, + "dataTable": { + "type": "object", + "properties": { + "cols": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "type": { + "type": "string" + } + } + } + }, + "rows": { + "type": "array", + "items": { + "type": "object", + "properties": { + "c": { + "type": "array", + "items": { + "type": "object", + "properties": { + "v": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "id": { + "type": "string", + "description": "Unique ID for this data response." + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "analytics#gaData" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this Analytics data query." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this Analytics data query." + }, + "profileInfo": { + "type": "object", + "description": "Information for the view (profile), for which the Analytics data was requested.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this view (profile) belongs." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this view (profile) belongs." + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID." + }, + "profileName": { + "type": "string", + "description": "View (Profile) name." + }, + "tableId": { + "type": "string", + "description": "Table ID for view (profile)." + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to which this view (profile) belongs." + } + } + }, + "query": { + "type": "object", + "description": "Analytics data request query parameters.", + "properties": { + "dimensions": { + "type": "string", + "description": "List of analytics dimensions." + }, + "end-date": { + "type": "string", + "description": "End date." + }, + "filters": { + "type": "string", + "description": "Comma-separated list of dimension or metric filters." + }, + "ids": { + "type": "string", + "description": "Unique table ID." + }, + "max-results": { + "type": "integer", + "description": "Maximum results per page.", + "format": "int32" + }, + "metrics": { + "type": "array", + "description": "List of analytics metrics.", + "items": { + "type": "string" + } + }, + "samplingLevel": { + "type": "string", + "description": "Desired sampling level" + }, + "segment": { + "type": "string", + "description": "Analytics advanced segment." + }, + "sort": { + "type": "array", + "description": "List of dimensions or metrics based on which Analytics data is sorted.", + "items": { + "type": "string" + } + }, + "start-date": { + "type": "string", + "description": "Start date." + }, + "start-index": { + "type": "integer", + "description": "Start index.", + "format": "int32" + } + } + }, + "rows": { + "type": "array", + "description": "Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "sampleSize": { + "type": "string", + "description": "The number of samples used to calculate the result.", + "format": "int64" + }, + "sampleSpace": { + "type": "string", + "description": "Total size of the sample space from which the samples were selected.", + "format": "int64" + }, + "selfLink": { + "type": "string", + "description": "Link to this page." + }, + "totalResults": { + "type": "integer", + "description": "The total number of rows for the query, regardless of the number of rows in the response.", + "format": "int32" + }, + "totalsForAllResults": { + "type": "object", + "description": "Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.", + "additionalProperties": { + "type": "string", + "description": "Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric." + } + } + } + }, + "Goal": { + "id": "Goal", + "type": "object", + "description": "JSON template for Analytics goal resource.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this goal belongs." + }, + "active": { + "type": "boolean", + "description": "Determines whether this goal is active." + }, + "created": { + "type": "string", + "description": "Time this goal was created.", + "format": "date-time" + }, + "eventDetails": { + "type": "object", + "description": "Details for the goal of the type EVENT.", + "properties": { + "eventConditions": { + "type": "array", + "description": "List of event conditions.", + "items": { + "type": "object", + "properties": { + "comparisonType": { + "type": "string", + "description": "Type of comparison. Possible values are LESS_THAN, GREATER_THAN or EQUAL." + }, + "comparisonValue": { + "type": "string", + "description": "Value used for this comparison.", + "format": "int64" + }, + "expression": { + "type": "string", + "description": "Expression used for this match." + }, + "matchType": { + "type": "string", + "description": "Type of the match to be performed. Possible values are REGEXP, BEGINS_WITH, or EXACT." + }, + "type": { + "type": "string", + "description": "Type of this event condition. Possible values are CATEGORY, ACTION, LABEL, or VALUE." + } + } + } + }, + "useEventValue": { + "type": "boolean", + "description": "Determines if the event value should be used as the value for this goal." + } + } + }, + "id": { + "type": "string", + "description": "Goal ID." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this goal belongs." + }, + "kind": { + "type": "string", + "description": "Resource type for an Analytics goal.", + "default": "analytics#goal" + }, + "name": { + "type": "string", + "description": "Goal name." + }, + "parentLink": { + "type": "object", + "description": "Parent link for a goal. Points to the view (profile) to which this goal belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the view (profile) to which this goal belongs." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#profile\".", + "default": "analytics#profile" + } + } + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to which this goal belongs." + }, + "selfLink": { + "type": "string", + "description": "Link for this goal." + }, + "type": { + "type": "string", + "description": "Goal type. Possible values are URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT." + }, + "updated": { + "type": "string", + "description": "Time this goal was last modified.", + "format": "date-time" + }, + "urlDestinationDetails": { + "type": "object", + "description": "Details for the goal of the type URL_DESTINATION.", + "properties": { + "caseSensitive": { + "type": "boolean", + "description": "Determines if the goal URL must exactly match the capitalization of visited URLs." + }, + "firstStepRequired": { + "type": "boolean", + "description": "Determines if the first step in this goal is required." + }, + "matchType": { + "type": "string", + "description": "Match type for the goal URL. Possible values are HEAD, EXACT, or REGEX." + }, + "steps": { + "type": "array", + "description": "List of steps configured for this goal funnel.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Step name." + }, + "number": { + "type": "integer", + "description": "Step number.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "URL for this step." + } + } + } + }, + "url": { + "type": "string", + "description": "URL for this goal." + } + } + }, + "value": { + "type": "number", + "description": "Goal value.", + "format": "float" + }, + "visitNumPagesDetails": { + "type": "object", + "description": "Details for the goal of the type VISIT_NUM_PAGES.", + "properties": { + "comparisonType": { + "type": "string", + "description": "Type of comparison. Possible values are LESS_THAN, GREATER_THAN, or EQUAL." + }, + "comparisonValue": { + "type": "string", + "description": "Value used for this comparison.", + "format": "int64" + } + } + }, + "visitTimeOnSiteDetails": { + "type": "object", + "description": "Details for the goal of the type VISIT_TIME_ON_SITE.", + "properties": { + "comparisonType": { + "type": "string", + "description": "Type of comparison. Possible values are LESS_THAN or GREATER_THAN." + }, + "comparisonValue": { + "type": "string", + "description": "Value used for this comparison.", + "format": "int64" + } + } + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which this goal belongs. The web property ID is of the form UA-XXXXX-YY." + } + } + }, + "Goals": { + "id": "Goals", + "type": "object", + "description": "A goal collection lists Analytics goals to which the user has access. Each view (profile) can have a set of goals. Each resource in the Goal collection corresponds to a single Analytics goal.", + "properties": { + "items": { + "type": "array", + "description": "A list of goals.", + "items": { + "$ref": "Goal" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#goals" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this goal collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this goal collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of resources in the result.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "McfData": { + "id": "McfData", + "type": "object", + "description": "Multi-Channel Funnels data for a given view (profile).", + "properties": { + "columnHeaders": { + "type": "array", + "description": "Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "object", + "properties": { + "columnType": { + "type": "string", + "description": "Column Type. Either DIMENSION or METRIC." + }, + "dataType": { + "type": "string", + "description": "Data type. Dimension and metric values data types such as INTEGER, DOUBLE, CURRENCY, MCF_SEQUENCE etc." + }, + "name": { + "type": "string", + "description": "Column name." + } + } + } + }, + "containsSampledData": { + "type": "boolean", + "description": "Determines if the Analytics data contains sampled data." + }, + "id": { + "type": "string", + "description": "Unique ID for this data response." + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "analytics#mcfData" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this Analytics data query." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this Analytics data query." + }, + "profileInfo": { + "type": "object", + "description": "Information for the view (profile), for which the Analytics data was requested.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this view (profile) belongs." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this view (profile) belongs." + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID." + }, + "profileName": { + "type": "string", + "description": "View (Profile) name." + }, + "tableId": { + "type": "string", + "description": "Table ID for view (profile)." + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to which this view (profile) belongs." + } + } + }, + "query": { + "type": "object", + "description": "Analytics data request query parameters.", + "properties": { + "dimensions": { + "type": "string", + "description": "List of analytics dimensions." + }, + "end-date": { + "type": "string", + "description": "End date." + }, + "filters": { + "type": "string", + "description": "Comma-separated list of dimension or metric filters." + }, + "ids": { + "type": "string", + "description": "Unique table ID." + }, + "max-results": { + "type": "integer", + "description": "Maximum results per page.", + "format": "int32" + }, + "metrics": { + "type": "array", + "description": "List of analytics metrics.", + "items": { + "type": "string" + } + }, + "samplingLevel": { + "type": "string", + "description": "Desired sampling level" + }, + "segment": { + "type": "string", + "description": "Analytics advanced segment." + }, + "sort": { + "type": "array", + "description": "List of dimensions or metrics based on which Analytics data is sorted.", + "items": { + "type": "string" + } + }, + "start-date": { + "type": "string", + "description": "Start date." + }, + "start-index": { + "type": "integer", + "description": "Start index.", + "format": "int32" + } + } + }, + "rows": { + "type": "array", + "description": "Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "array", + "items": { + "type": "object", + "description": "A union object representing a dimension or metric value. Only one of \"primitiveValue\" or \"conversionPathValue\" attribute will be populated.", + "properties": { + "conversionPathValue": { + "type": "array", + "description": "A conversion path dimension value, containing a list of interactions with their attributes.", + "items": { + "type": "object", + "properties": { + "interactionType": { + "type": "string", + "description": "Type of an interaction on conversion path. Such as CLICK, IMPRESSION etc." + }, + "nodeValue": { + "type": "string", + "description": "Node value of an interaction on conversion path. Such as source, medium etc." + } + } + } + }, + "primitiveValue": { + "type": "string", + "description": "A primitive dimension value. A primitive metric value." + } + } + } + } + }, + "sampleSize": { + "type": "string", + "description": "The number of samples used to calculate the result.", + "format": "int64" + }, + "sampleSpace": { + "type": "string", + "description": "Total size of the sample space from which the samples were selected.", + "format": "int64" + }, + "selfLink": { + "type": "string", + "description": "Link to this page." + }, + "totalResults": { + "type": "integer", + "description": "The total number of rows for the query, regardless of the number of rows in the response.", + "format": "int32" + }, + "totalsForAllResults": { + "type": "object", + "description": "Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.", + "additionalProperties": { + "type": "string", + "description": "Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric." + } + } + } + }, + "Profile": { + "id": "Profile", + "type": "object", + "description": "JSON template for an Analytics view (profile).", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this view (profile) belongs." + }, + "childLink": { + "type": "object", + "description": "Child link for this view (profile). Points to the list of goals for this view (profile).", + "properties": { + "href": { + "type": "string", + "description": "Link to the list of goals for this view (profile)." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#goals\".", + "default": "analytics#goals" + } + } + }, + "created": { + "type": "string", + "description": "Time this view (profile) was created.", + "format": "date-time", + "readOnly": true + }, + "currency": { + "type": "string", + "description": "The currency type associated with this view (profile). The supported values are:\nARS, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, INR, JPY, KRW, LTL, MXN, NOK, NZD, PHP, PLN, RUB, SEK, THB, TRY, TWD, USD, VND, ZAR" + }, + "defaultPage": { + "type": "string", + "description": "Default page for this view (profile)." + }, + "eCommerceTracking": { + "type": "boolean", + "description": "Indicates whether ecommerce tracking is enabled for this view (profile)." + }, + "enhancedECommerceTracking": { + "type": "boolean", + "description": "Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled." + }, + "excludeQueryParameters": { + "type": "string", + "description": "The query parameters that are excluded from this view (profile)." + }, + "id": { + "type": "string", + "description": "View (Profile) ID." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this view (profile) belongs.", + "readOnly": true + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics view (profile).", + "default": "analytics#profile", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of this view (profile)." + }, + "parentLink": { + "type": "object", + "description": "Parent link for this view (profile). Points to the web property to which this view (profile) belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the web property to which this view (profile) belongs." + }, + "type": { + "type": "string", + "description": "Value is \"analytics#webproperty\".", + "default": "analytics#webproperty" + } + } + }, + "permissions": { + "type": "object", + "description": "Permissions the user has for this view (profile).", + "properties": { + "effective": { + "type": "array", + "description": "All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "Link for this view (profile).", + "readOnly": true + }, + "siteSearchCategoryParameters": { + "type": "string", + "description": "Site search category parameters for this view (profile)." + }, + "siteSearchQueryParameters": { + "type": "string", + "description": "The site search query parameters for this view (profile)." + }, + "stripSiteSearchCategoryParameters": { + "type": "boolean", + "description": "Whether or not Analytics will strip search category parameters from the URLs in your reports." + }, + "stripSiteSearchQueryParameters": { + "type": "boolean", + "description": "Whether or not Analytics will strip search query parameters from the URLs in your reports." + }, + "timezone": { + "type": "string", + "description": "Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database." + }, + "type": { + "type": "string", + "description": "View (Profile) type. Supported types: WEB or APP." + }, + "updated": { + "type": "string", + "description": "Time this view (profile) was last modified.", + "format": "date-time", + "readOnly": true + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.", + "readOnly": true + }, + "websiteUrl": { + "type": "string", + "description": "Website URL for this view (profile)." + } + } + }, + "ProfileFilterLink": { + "id": "ProfileFilterLink", + "type": "object", + "description": "JSON template for an Analytics profile filter link.", + "properties": { + "filterRef": { + "$ref": "FilterRef", + "description": "Filter for this link." + }, + "id": { + "type": "string", + "description": "Profile filter link ID." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics filter.", + "default": "analytics#profileFilterLink", + "readOnly": true + }, + "profileRef": { + "$ref": "ProfileRef", + "description": "View (Profile) for this link." + }, + "rank": { + "type": "integer", + "description": "The rank of this profile filter link relative to the other filters linked to the same profile.\nFor readonly (i.e., list and get) operations, the rank always starts at 1.\nFor write (i.e., create, update, or delete) operations, you may specify a value between 0 and 255 inclusively, [0, 255]. In order to insert a link at the end of the list, either don't specify a rank or set a rank to a number greater than the largest rank in the list. In order to insert a link to the beginning of the list specify a rank that is less than or equal to 1. The new link will move all existing filters with the same or lower rank down the list. After the link is inserted/updated/deleted all profile filter links will be renumbered starting at 1.", + "format": "int32" + }, + "selfLink": { + "type": "string", + "description": "Link for this profile filter link.", + "readOnly": true + } + } + }, + "ProfileFilterLinks": { + "id": "ProfileFilterLinks", + "type": "object", + "description": "A profile filter link collection lists profile filter links between profiles and filters. Each resource in the collection corresponds to a profile filter link.", + "properties": { + "items": { + "type": "array", + "description": "A list of profile filter links.", + "items": { + "$ref": "ProfileFilterLink" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#profileFilterLinks" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this profile filter link collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this profile filter link collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "ProfileRef": { + "id": "ProfileRef", + "type": "object", + "description": "JSON template for a linked view (profile).", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this view (profile) belongs." + }, + "href": { + "type": "string", + "description": "Link for this view (profile)." + }, + "id": { + "type": "string", + "description": "View (Profile) ID." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this view (profile) belongs." + }, + "kind": { + "type": "string", + "description": "Analytics view (profile) reference.", + "default": "analytics#profileRef" + }, + "name": { + "type": "string", + "description": "Name of this view (profile)." + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs." + } + } + }, + "ProfileSummary": { + "id": "ProfileSummary", + "type": "object", + "description": "JSON template for an Analytics ProfileSummary. ProfileSummary returns basic information (i.e., summary) for a profile.", + "properties": { + "id": { + "type": "string", + "description": "View (profile) ID." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics ProfileSummary.", + "default": "analytics#profileSummary" + }, + "name": { + "type": "string", + "description": "View (profile) name." + }, + "type": { + "type": "string", + "description": "View (Profile) type. Supported types: WEB or APP." + } + } + }, + "Profiles": { + "id": "Profiles", + "type": "object", + "description": "A view (profile) collection lists Analytics views (profiles) to which the user has access. Each resource in the collection corresponds to a single Analytics view (profile).", + "properties": { + "items": { + "type": "array", + "description": "A list of views (profiles).", + "items": { + "$ref": "Profile" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#profiles" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this view (profile) collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this view (profile) collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "RealtimeData": { + "id": "RealtimeData", + "type": "object", + "description": "Real time data for a given view (profile).", + "properties": { + "columnHeaders": { + "type": "array", + "description": "Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "object", + "properties": { + "columnType": { + "type": "string", + "description": "Column Type. Either DIMENSION or METRIC." + }, + "dataType": { + "type": "string", + "description": "Data type. Dimension column headers have only STRING as the data type. Metric column headers have data types for metric values such as INTEGER, DOUBLE, CURRENCY etc." + }, + "name": { + "type": "string", + "description": "Column name." + } + } + } + }, + "id": { + "type": "string", + "description": "Unique ID for this data response." + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "analytics#realtimeData" + }, + "profileInfo": { + "type": "object", + "description": "Information for the view (profile), for which the real time data was requested.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this view (profile) belongs." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for the web property to which this view (profile) belongs." + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID." + }, + "profileName": { + "type": "string", + "description": "View (Profile) name." + }, + "tableId": { + "type": "string", + "description": "Table ID for view (profile)." + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to which this view (profile) belongs." + } + } + }, + "query": { + "type": "object", + "description": "Real time data request query parameters.", + "properties": { + "dimensions": { + "type": "string", + "description": "List of real time dimensions." + }, + "filters": { + "type": "string", + "description": "Comma-separated list of dimension or metric filters." + }, + "ids": { + "type": "string", + "description": "Unique table ID." + }, + "max-results": { + "type": "integer", + "description": "Maximum results per page.", + "format": "int32" + }, + "metrics": { + "type": "array", + "description": "List of real time metrics.", + "items": { + "type": "string" + } + }, + "sort": { + "type": "array", + "description": "List of dimensions or metrics based on which real time data is sorted.", + "items": { + "type": "string" + } + } + } + }, + "rows": { + "type": "array", + "description": "Real time data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "selfLink": { + "type": "string", + "description": "Link to this page." + }, + "totalResults": { + "type": "integer", + "description": "The total number of rows for the query, regardless of the number of rows in the response.", + "format": "int32" + }, + "totalsForAllResults": { + "type": "object", + "description": "Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.", + "additionalProperties": { + "type": "string", + "description": "Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric." + } + } + } + }, + "Segment": { + "id": "Segment", + "type": "object", + "description": "JSON template for an Analytics segment.", + "properties": { + "created": { + "type": "string", + "description": "Time the segment was created.", + "format": "date-time" + }, + "definition": { + "type": "string", + "description": "Segment definition." + }, + "id": { + "type": "string", + "description": "Segment ID." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics segment.", + "default": "analytics#segment" + }, + "name": { + "type": "string", + "description": "Segment name." + }, + "segmentId": { + "type": "string", + "description": "Segment ID. Can be used with the 'segment' parameter in Core Reporting API." + }, + "selfLink": { + "type": "string", + "description": "Link for this segment." + }, + "type": { + "type": "string", + "description": "Type for a segment. Possible values are \"BUILT_IN\" or \"CUSTOM\"." + }, + "updated": { + "type": "string", + "description": "Time the segment was last modified.", + "format": "date-time" + } + } + }, + "Segments": { + "id": "Segments", + "type": "object", + "description": "An segment collection lists Analytics segments that the user has access to. Each resource in the collection corresponds to a single Analytics segment.", + "properties": { + "items": { + "type": "array", + "description": "A list of segments.", + "items": { + "$ref": "Segment" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type for segments.", + "default": "analytics#segments" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this segment collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this segment collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "UnsampledReport": { + "id": "UnsampledReport", + "type": "object", + "description": "JSON template for Analytics unsampled report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this unsampled report belongs." + }, + "cloudStorageDownloadDetails": { + "type": "object", + "description": "Download details for a file stored in Google Cloud Storage.", + "readOnly": true, + "properties": { + "bucketId": { + "type": "string", + "description": "Id of the bucket the file object is stored in." + }, + "objectId": { + "type": "string", + "description": "Id of the file object containing the report data." + } + } + }, + "created": { + "type": "string", + "description": "Time this unsampled report was created.", + "format": "date-time", + "readOnly": true + }, + "dimensions": { + "type": "string", + "description": "The dimensions for the unsampled report." + }, + "downloadType": { + "type": "string", + "description": "The type of download you need to use for the report data file.", + "readOnly": true + }, + "driveDownloadDetails": { + "type": "object", + "description": "Download details for a file stored in Google Drive.", + "readOnly": true, + "properties": { + "documentId": { + "type": "string", + "description": "Id of the document/file containing the report data." + } + } + }, + "end-date": { + "type": "string", + "description": "The end date for the unsampled report.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.unsampledReports.insert" + ] + } + }, + "filters": { + "type": "string", + "description": "The filters for the unsampled report." + }, + "id": { + "type": "string", + "description": "Unsampled report ID." + }, + "kind": { + "type": "string", + "description": "Resource type for an Analytics unsampled report.", + "default": "analytics#unsampledReport", + "readOnly": true + }, + "metrics": { + "type": "string", + "description": "The metrics for the unsampled report.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.unsampledReports.insert" + ] + } + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to which this unsampled report belongs." + }, + "segment": { + "type": "string", + "description": "The segment for the unsampled report." + }, + "selfLink": { + "type": "string", + "description": "Link for this unsampled report.", + "readOnly": true + }, + "start-date": { + "type": "string", + "description": "The start date for the unsampled report.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.unsampledReports.insert" + ] + } + }, + "status": { + "type": "string", + "description": "Status of this unsampled report. Possible values are PENDING, COMPLETED, or FAILED.", + "readOnly": true + }, + "title": { + "type": "string", + "description": "Title of the unsampled report.", + "annotations": { + "required": [ + "analytics.management.filters.insert", + "analytics.management.unsampledReports.insert" + ] + } + }, + "updated": { + "type": "string", + "description": "Time this unsampled report was last modified.", + "format": "date-time", + "readOnly": true + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which this unsampled report belongs. The web property ID is of the form UA-XXXXX-YY." + } + } + }, + "UnsampledReports": { + "id": "UnsampledReports", + "type": "object", + "description": "An unsampled report collection lists Analytics unsampled reports to which the user has access. Each view (profile) can have a set of unsampled reports. Each resource in the unsampled report collection corresponds to a single Analytics unsampled report.", + "properties": { + "items": { + "type": "array", + "description": "A list of unsampled reports.", + "items": { + "$ref": "UnsampledReport" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#unsampledReports" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this unsampled report collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this unsampled report collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of resources in the result.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "Upload": { + "id": "Upload", + "type": "object", + "description": "Metadata returned for an upload operation.", + "properties": { + "accountId": { + "type": "string", + "description": "Account Id to which this upload belongs.", + "format": "int64" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id to which this data import belongs." + }, + "errors": { + "type": "array", + "description": "Data import errors collection.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "A unique ID for this upload." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics upload.", + "default": "analytics#upload" + }, + "status": { + "type": "string", + "description": "Upload status. Possible values: PENDING, COMPLETED, FAILED, DELETING, DELETED." + } + } + }, + "Uploads": { + "id": "Uploads", + "type": "object", + "description": "Upload collection lists Analytics uploads to which the user has access. Each custom data source can have a set of uploads. Each resource in the upload collection corresponds to a single Analytics data upload.", + "properties": { + "items": { + "type": "array", + "description": "A list of uploads.", + "items": { + "$ref": "Upload" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#uploads" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this upload collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this upload collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of resources in the result.", + "format": "int32" + } + } + }, + "UserRef": { + "id": "UserRef", + "type": "object", + "description": "JSON template for a user reference.", + "properties": { + "email": { + "type": "string", + "description": "Email ID of this user." + }, + "id": { + "type": "string", + "description": "User ID." + }, + "kind": { + "type": "string", + "default": "analytics#userRef" + } + } + }, + "WebPropertyRef": { + "id": "WebPropertyRef", + "type": "object", + "description": "JSON template for a web property reference.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this web property belongs." + }, + "href": { + "type": "string", + "description": "Link for this web property." + }, + "id": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for this web property." + }, + "kind": { + "type": "string", + "description": "Analytics web property reference.", + "default": "analytics#webPropertyRef" + }, + "name": { + "type": "string", + "description": "Name of this web property." + } + } + }, + "WebPropertySummary": { + "id": "WebPropertySummary", + "type": "object", + "description": "JSON template for an Analytics WebPropertySummary. WebPropertySummary returns basic information (i.e., summary) for a web property.", + "properties": { + "id": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for this web property." + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics WebPropertySummary.", + "default": "analytics#webPropertySummary" + }, + "level": { + "type": "string", + "description": "Level for this web property. Possible values are STANDARD or PREMIUM." + }, + "name": { + "type": "string", + "description": "Web property name." + }, + "profiles": { + "type": "array", + "description": "List of profiles under this web property.", + "items": { + "$ref": "ProfileSummary" + } + }, + "websiteUrl": { + "type": "string", + "description": "Website url for this web property." + } + } + }, + "Webproperties": { + "id": "Webproperties", + "type": "object", + "description": "A web property collection lists Analytics web properties to which the user has access. Each resource in the collection corresponds to a single Analytics web property.", + "properties": { + "items": { + "type": "array", + "description": "A list of web properties.", + "items": { + "$ref": "Webproperty" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Collection type.", + "default": "analytics#webproperties" + }, + "nextLink": { + "type": "string", + "description": "Link to next page for this web property collection." + }, + "previousLink": { + "type": "string", + "description": "Link to previous page for this web property collection." + }, + "startIndex": { + "type": "integer", + "description": "The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "description": "The total number of results for the query, regardless of the number of results in the response.", + "format": "int32" + }, + "username": { + "type": "string", + "description": "Email ID of the authenticated user" + } + } + }, + "Webproperty": { + "id": "Webproperty", + "type": "object", + "description": "JSON template for an Analytics web property.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID to which this web property belongs." + }, + "childLink": { + "type": "object", + "description": "Child link for this web property. Points to the list of views (profiles) for this web property.", + "properties": { + "href": { + "type": "string", + "description": "Link to the list of views (profiles) for this web property." + }, + "type": { + "type": "string", + "description": "Type of the parent link. Its value is \"analytics#profiles\".", + "default": "analytics#profiles" + } + } + }, + "created": { + "type": "string", + "description": "Time this web property was created.", + "format": "date-time", + "readOnly": true + }, + "defaultProfileId": { + "type": "string", + "description": "Default view (profile) ID.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Web property ID of the form UA-XXXXX-YY." + }, + "industryVertical": { + "type": "string", + "description": "The industry vertical/category selected for this web property." + }, + "internalWebPropertyId": { + "type": "string", + "description": "Internal ID for this web property.", + "readOnly": true + }, + "kind": { + "type": "string", + "description": "Resource type for Analytics WebProperty.", + "default": "analytics#webproperty", + "readOnly": true + }, + "level": { + "type": "string", + "description": "Level for this web property. Possible values are STANDARD or PREMIUM.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Name of this web property." + }, + "parentLink": { + "type": "object", + "description": "Parent link for this web property. Points to the account to which this web property belongs.", + "properties": { + "href": { + "type": "string", + "description": "Link to the account for this web property." + }, + "type": { + "type": "string", + "description": "Type of the parent link. Its value is \"analytics#account\".", + "default": "analytics#account" + } + } + }, + "permissions": { + "type": "object", + "description": "Permissions the user has for this web property.", + "properties": { + "effective": { + "type": "array", + "description": "All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.", + "readOnly": true, + "items": { + "type": "string" + } + } + } + }, + "profileCount": { + "type": "integer", + "description": "View (Profile) count for this web property.", + "format": "int32", + "readOnly": true + }, + "selfLink": { + "type": "string", + "description": "Link for this web property.", + "readOnly": true + }, + "updated": { + "type": "string", + "description": "Time this web property was last modified.", + "format": "date-time", + "readOnly": true + }, + "websiteUrl": { + "type": "string", + "description": "Website url for this web property." + } + } + } + }, + "resources": { + "data": { + "resources": { + "ga": { + "methods": { + "get": { + "id": "analytics.data.ga.get", + "path": "data/ga", + "httpMethod": "GET", + "description": "Returns Analytics data for a view (profile).", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.", + "pattern": "(ga:.+)?", + "location": "query" + }, + "end-date": { + "type": "string", + "description": "End date for fetching Analytics data. Request can should specify an end date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is yesterday.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo)", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A comma-separated list of dimension or metric filters to be applied to Analytics data.", + "pattern": "ga:.+", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.", + "required": true, + "pattern": "ga:[0-9]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of entries to include in this feed.", + "format": "int32", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of Analytics metrics. E.g., 'ga:sessions,ga:pageviews'. At least one metric must be specified.", + "required": true, + "pattern": "ga:.+", + "location": "query" + }, + "output": { + "type": "string", + "description": "The selected format for the response. Default format is JSON.", + "enum": [ + "dataTable", + "json" + ], + "enumDescriptions": [ + "Returns the response in Google Charts Data Table format. This is useful in creating visualization using Google Charts.", + "Returns the response in standard JSON format." + ], + "location": "query" + }, + "samplingLevel": { + "type": "string", + "description": "The desired sampling level.", + "enum": [ + "DEFAULT", + "FASTER", + "HIGHER_PRECISION" + ], + "enumDescriptions": [ + "Returns response with a sample size that balances speed and accuracy.", + "Returns a fast response with a smaller sample size.", + "Returns a more accurate response using a large sample size, but this may result in the response being slower." + ], + "location": "query" + }, + "segment": { + "type": "string", + "description": "An Analytics segment to be applied to data.", + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for Analytics data.", + "pattern": "(-)?ga:.+", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo)", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "start-date", + "end-date", + "metrics" + ], + "response": { + "$ref": "GaData" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "mcf": { + "methods": { + "get": { + "id": "analytics.data.mcf.get", + "path": "data/mcf", + "httpMethod": "GET", + "description": "Returns Analytics Multi-Channel Funnels data for a view (profile).", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of Multi-Channel Funnels dimensions. E.g., 'mcf:source,mcf:medium'.", + "pattern": "(mcf:.+)?", + "location": "query" + }, + "end-date": { + "type": "string", + "description": "End date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo)", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A comma-separated list of dimension or metric filters to be applied to the Analytics data.", + "pattern": "mcf:.+", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.", + "required": true, + "pattern": "ga:[0-9]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of entries to include in this feed.", + "format": "int32", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of Multi-Channel Funnels metrics. E.g., 'mcf:totalConversions,mcf:totalConversionValue'. At least one metric must be specified.", + "required": true, + "pattern": "mcf:.+", + "location": "query" + }, + "samplingLevel": { + "type": "string", + "description": "The desired sampling level.", + "enum": [ + "DEFAULT", + "FASTER", + "HIGHER_PRECISION" + ], + "enumDescriptions": [ + "Returns response with a sample size that balances speed and accuracy.", + "Returns a fast response with a smaller sample size.", + "Returns a more accurate response using a large sample size, but this may result in the response being slower." + ], + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for the Analytics data.", + "pattern": "(-)?mcf:.+", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo)", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "start-date", + "end-date", + "metrics" + ], + "response": { + "$ref": "McfData" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "realtime": { + "methods": { + "get": { + "id": "analytics.data.realtime.get", + "path": "data/realtime", + "httpMethod": "GET", + "description": "Returns real time data for a view (profile).", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of real time dimensions. E.g., 'rt:medium,rt:city'.", + "pattern": "(ga:.+)|(rt:.+)", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A comma-separated list of dimension or metric filters to be applied to real time data.", + "pattern": "(ga:.+)|(rt:.+)", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Unique table ID for retrieving real time data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID.", + "required": true, + "pattern": "ga:[0-9]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of entries to include in this feed.", + "format": "int32", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of real time metrics. E.g., 'rt:activeUsers'. At least one metric must be specified.", + "required": true, + "pattern": "(ga:.+)|(rt:.+)", + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for real time data.", + "pattern": "(-)?((ga:.+)|(rt:.+))", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "metrics" + ], + "response": { + "$ref": "RealtimeData" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + } + } + }, + "management": { + "resources": { + "accountSummaries": { + "methods": { + "list": { + "id": "analytics.management.accountSummaries.list", + "path": "management/accountSummaries", + "httpMethod": "GET", + "description": "Lists account summaries (lightweight tree comprised of accounts/properties/profiles) to which the user has access.", + "parameters": { + "max-results": { + "type": "integer", + "description": "The maximum number of account summaries to include in this response, where the largest acceptable value is 1000.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "response": { + "$ref": "AccountSummaries" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "accountUserLinks": { + "methods": { + "delete": { + "id": "analytics.management.accountUserLinks.delete", + "path": "management/accounts/{accountId}/entityUserLinks/{linkId}", + "httpMethod": "DELETE", + "description": "Removes a user from the given account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to delete the user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to delete the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "linkId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "insert": { + "id": "analytics.management.accountUserLinks.insert", + "path": "management/accounts/{accountId}/entityUserLinks", + "httpMethod": "POST", + "description": "Adds a new user to the given account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "list": { + "id": "analytics.management.accountUserLinks.list", + "path": "management/accounts/{accountId}/entityUserLinks", + "httpMethod": "GET", + "description": "Lists account-user links for a given account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve the user links for.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of account-user links to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first account-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "EntityUserLinks" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "update": { + "id": "analytics.management.accountUserLinks.update", + "path": "management/accounts/{accountId}/entityUserLinks/{linkId}", + "httpMethod": "PUT", + "description": "Updates permissions for an existing user on the given account.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to update the account-user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to update the account-user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "linkId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + } + } + }, + "accounts": { + "methods": { + "list": { + "id": "analytics.management.accounts.list", + "path": "management/accounts", + "httpMethod": "GET", + "description": "Lists all accounts to which the user has access.", + "parameters": { + "max-results": { + "type": "integer", + "description": "The maximum number of accounts to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first account to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "response": { + "$ref": "Accounts" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "customDataSources": { + "methods": { + "list": { + "id": "analytics.management.customDataSources.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources", + "httpMethod": "GET", + "description": "List custom data sources to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for the custom data sources to retrieve.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of custom data sources to include in this response.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "A 1-based index of the first custom data source to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for the custom data sources to retrieve.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "CustomDataSources" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "customDimensions": { + "methods": { + "get": { + "id": "analytics.management.customDimensions.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}", + "httpMethod": "GET", + "description": "Get a custom dimension to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom dimension to retrieve.", + "required": true, + "location": "path" + }, + "customDimensionId": { + "type": "string", + "description": "The ID of the custom dimension to retrieve.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimension to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDimensionId" + ], + "response": { + "$ref": "CustomDimension" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.customDimensions.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions", + "httpMethod": "POST", + "description": "Create a new custom dimension.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom dimension to create.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimension to create.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "CustomDimension" + }, + "response": { + "$ref": "CustomDimension" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.customDimensions.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions", + "httpMethod": "GET", + "description": "Lists custom dimensions to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom dimensions to retrieve.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of custom dimensions to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimensions to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "CustomDimensions" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.customDimensions.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}", + "httpMethod": "PATCH", + "description": "Updates an existing custom dimension. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom dimension to update.", + "required": true, + "location": "path" + }, + "customDimensionId": { + "type": "string", + "description": "Custom dimension ID for the custom dimension to update.", + "required": true, + "location": "path" + }, + "ignoreCustomDataSourceLinks": { + "type": "boolean", + "description": "Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.", + "default": "false", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimension to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDimensionId" + ], + "request": { + "$ref": "CustomDimension" + }, + "response": { + "$ref": "CustomDimension" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.customDimensions.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDimensions/{customDimensionId}", + "httpMethod": "PUT", + "description": "Updates an existing custom dimension.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom dimension to update.", + "required": true, + "location": "path" + }, + "customDimensionId": { + "type": "string", + "description": "Custom dimension ID for the custom dimension to update.", + "required": true, + "location": "path" + }, + "ignoreCustomDataSourceLinks": { + "type": "boolean", + "description": "Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.", + "default": "false", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimension to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDimensionId" + ], + "request": { + "$ref": "CustomDimension" + }, + "response": { + "$ref": "CustomDimension" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "customMetrics": { + "methods": { + "get": { + "id": "analytics.management.customMetrics.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}", + "httpMethod": "GET", + "description": "Get a custom metric to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom metric to retrieve.", + "required": true, + "location": "path" + }, + "customMetricId": { + "type": "string", + "description": "The ID of the custom metric to retrieve.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom metric to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customMetricId" + ], + "response": { + "$ref": "CustomMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.customMetrics.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics", + "httpMethod": "POST", + "description": "Create a new custom metric.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom metric to create.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom dimension to create.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "CustomMetric" + }, + "response": { + "$ref": "CustomMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.customMetrics.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics", + "httpMethod": "GET", + "description": "Lists custom metrics to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom metrics to retrieve.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of custom metrics to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom metrics to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "CustomMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.customMetrics.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}", + "httpMethod": "PATCH", + "description": "Updates an existing custom metric. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom metric to update.", + "required": true, + "location": "path" + }, + "customMetricId": { + "type": "string", + "description": "Custom metric ID for the custom metric to update.", + "required": true, + "location": "path" + }, + "ignoreCustomDataSourceLinks": { + "type": "boolean", + "description": "Force the update and ignore any warnings related to the custom metric being linked to a custom data source / data set.", + "default": "false", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom metric to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customMetricId" + ], + "request": { + "$ref": "CustomMetric" + }, + "response": { + "$ref": "CustomMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.customMetrics.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customMetrics/{customMetricId}", + "httpMethod": "PUT", + "description": "Updates an existing custom metric.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the custom metric to update.", + "required": true, + "location": "path" + }, + "customMetricId": { + "type": "string", + "description": "Custom metric ID for the custom metric to update.", + "required": true, + "location": "path" + }, + "ignoreCustomDataSourceLinks": { + "type": "boolean", + "description": "Force the update and ignore any warnings related to the custom metric being linked to a custom data source / data set.", + "default": "false", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the custom metric to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customMetricId" + ], + "request": { + "$ref": "CustomMetric" + }, + "response": { + "$ref": "CustomMetric" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "dailyUploads": { + "methods": { + "delete": { + "id": "analytics.management.dailyUploads.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}", + "httpMethod": "DELETE", + "description": "Delete uploaded data for the given date.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id associated with daily upload delete.", + "required": true, + "pattern": "[0-9]+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id associated with daily upload delete.", + "required": true, + "location": "path" + }, + "date": { + "type": "string", + "description": "Date for which data is to be deleted. Date should be formatted as YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "path" + }, + "type": { + "type": "string", + "description": "Type of data for this delete.", + "required": true, + "enum": [ + "cost" + ], + "enumDescriptions": [ + "Value for specifying cost data upload." + ], + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id associated with daily upload delete.", + "required": true, + "pattern": "UA-[0-9]+-[0-9]+", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId", + "date", + "type" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.dailyUploads.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads", + "httpMethod": "GET", + "description": "List daily uploads to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for the daily uploads to retrieve.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id for daily uploads to retrieve.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "end-date": { + "type": "string", + "description": "End date of the form YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of custom data sources to include in this response.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "Start date of the form YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "A 1-based index of the first daily upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for the daily uploads to retrieve.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId", + "start-date", + "end-date" + ], + "response": { + "$ref": "DailyUploads" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "upload": { + "id": "analytics.management.dailyUploads.upload", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads", + "httpMethod": "POST", + "description": "Update/Overwrite data for a custom data source.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id associated with daily upload.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "appendNumber": { + "type": "integer", + "description": "Append number for this upload indexed from 1.", + "required": true, + "format": "int32", + "minimum": "1", + "maximum": "20", + "location": "query" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id to which the data being uploaded belongs.", + "required": true, + "location": "path" + }, + "date": { + "type": "string", + "description": "Date for which data is uploaded. Date should be formatted as YYYY-MM-DD.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "path" + }, + "reset": { + "type": "boolean", + "description": "Reset/Overwrite all previous appends for this date and start over with this file as the first upload.", + "default": "false", + "location": "query" + }, + "type": { + "type": "string", + "description": "Type of data for this upload.", + "required": true, + "enum": [ + "cost" + ], + "enumDescriptions": [ + "Value for specifying cost data upload." + ], + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id associated with daily upload.", + "required": true, + "pattern": "UA-\\d+-\\d+", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId", + "date", + "appendNumber", + "type" + ], + "response": { + "$ref": "DailyUploadAppend" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "application/octet-stream" + ], + "maxSize": "5MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/dailyUploads/{date}/uploads" + } + } + } + } + } + }, + "experiments": { + "methods": { + "delete": { + "id": "analytics.management.experiments.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", + "httpMethod": "DELETE", + "description": "Delete an experiment.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the experiment belongs", + "required": true, + "location": "path" + }, + "experimentId": { + "type": "string", + "description": "ID of the experiment to delete", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to which the experiment belongs", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which the experiment belongs", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "experimentId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.experiments.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", + "httpMethod": "GET", + "description": "Returns an experiment to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve the experiment for.", + "required": true, + "location": "path" + }, + "experimentId": { + "type": "string", + "description": "Experiment ID to retrieve the experiment for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve the experiment for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the experiment for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "experimentId" + ], + "response": { + "$ref": "Experiment" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.experiments.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments", + "httpMethod": "POST", + "description": "Create a new experiment.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the experiment for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to create the experiment for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to create the experiment for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "Experiment" + }, + "response": { + "$ref": "Experiment" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.experiments.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments", + "httpMethod": "GET", + "description": "Lists experiments to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve experiments for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of experiments to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve experiments for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first experiment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve experiments for.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "Experiments" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.experiments.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", + "httpMethod": "PATCH", + "description": "Update an existing experiment. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID of the experiment to update.", + "required": true, + "location": "path" + }, + "experimentId": { + "type": "string", + "description": "Experiment ID of the experiment to update.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID of the experiment to update.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the experiment to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "experimentId" + ], + "request": { + "$ref": "Experiment" + }, + "response": { + "$ref": "Experiment" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.experiments.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/experiments/{experimentId}", + "httpMethod": "PUT", + "description": "Update an existing experiment.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID of the experiment to update.", + "required": true, + "location": "path" + }, + "experimentId": { + "type": "string", + "description": "Experiment ID of the experiment to update.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID of the experiment to update.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID of the experiment to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "experimentId" + ], + "request": { + "$ref": "Experiment" + }, + "response": { + "$ref": "Experiment" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "filters": { + "methods": { + "delete": { + "id": "analytics.management.filters.delete", + "path": "management/accounts/{accountId}/filters/{filterId}", + "httpMethod": "DELETE", + "description": "Delete a filter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to delete the filter for.", + "required": true, + "location": "path" + }, + "filterId": { + "type": "string", + "description": "ID of the filter to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "filterId" + ], + "response": { + "$ref": "Filter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.filters.get", + "path": "management/accounts/{accountId}/filters/{filterId}", + "httpMethod": "GET", + "description": "Returns a filters to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve filters for.", + "required": true, + "location": "path" + }, + "filterId": { + "type": "string", + "description": "Filter ID to retrieve filters for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "filterId" + ], + "response": { + "$ref": "Filter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.filters.insert", + "path": "management/accounts/{accountId}/filters", + "httpMethod": "POST", + "description": "Create a new filter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create filter for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "Filter" + }, + "response": { + "$ref": "Filter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.filters.list", + "path": "management/accounts/{accountId}/filters", + "httpMethod": "GET", + "description": "Lists all filters for an account", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve filters for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of filters to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Filters" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.filters.patch", + "path": "management/accounts/{accountId}/filters/{filterId}", + "httpMethod": "PATCH", + "description": "Updates an existing filter. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the filter belongs.", + "required": true, + "location": "path" + }, + "filterId": { + "type": "string", + "description": "ID of the filter to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "filterId" + ], + "request": { + "$ref": "Filter" + }, + "response": { + "$ref": "Filter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.filters.update", + "path": "management/accounts/{accountId}/filters/{filterId}", + "httpMethod": "PUT", + "description": "Updates an existing filter.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the filter belongs.", + "required": true, + "location": "path" + }, + "filterId": { + "type": "string", + "description": "ID of the filter to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "filterId" + ], + "request": { + "$ref": "Filter" + }, + "response": { + "$ref": "Filter" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "goals": { + "methods": { + "get": { + "id": "analytics.management.goals.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", + "httpMethod": "GET", + "description": "Gets a goal to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve the goal for.", + "required": true, + "location": "path" + }, + "goalId": { + "type": "string", + "description": "Goal ID to retrieve the goal for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve the goal for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the goal for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "goalId" + ], + "response": { + "$ref": "Goal" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.goals.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals", + "httpMethod": "POST", + "description": "Create a new goal.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the goal for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to create the goal for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to create the goal for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "Goal" + }, + "response": { + "$ref": "Goal" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.goals.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals", + "httpMethod": "GET", + "description": "Lists goals to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of goals to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve goals for. Can either be a specific view (profile) ID or '~all', which refers to all the views (profiles) that user has access to.", + "required": true, + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "Goals" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.goals.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", + "httpMethod": "PATCH", + "description": "Updates an existing view (profile). This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to update the goal.", + "required": true, + "location": "path" + }, + "goalId": { + "type": "string", + "description": "Index of the goal to be updated.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to update the goal.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to update the goal.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "goalId" + ], + "request": { + "$ref": "Goal" + }, + "response": { + "$ref": "Goal" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.goals.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/goals/{goalId}", + "httpMethod": "PUT", + "description": "Updates an existing view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to update the goal.", + "required": true, + "location": "path" + }, + "goalId": { + "type": "string", + "description": "Index of the goal to be updated.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to update the goal.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to update the goal.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "goalId" + ], + "request": { + "$ref": "Goal" + }, + "response": { + "$ref": "Goal" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "profileFilterLinks": { + "methods": { + "delete": { + "id": "analytics.management.profileFilterLinks.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}", + "httpMethod": "DELETE", + "description": "Delete a profile filter link.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the profile filter link belongs.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "linkId": { + "type": "string", + "description": "ID of the profile filter link to delete.", + "required": true, + "pattern": "\\d+:\\d+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "Profile ID to which the filter link belongs.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id to which the profile filter link belongs.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.profileFilterLinks.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}", + "httpMethod": "GET", + "description": "Returns a single profile filter link.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve profile filter link for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "linkId": { + "type": "string", + "description": "ID of the profile filter link.", + "required": true, + "pattern": "\\d+:\\d+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "Profile ID to retrieve filter link for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id to retrieve profile filter link for.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "response": { + "$ref": "ProfileFilterLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.profileFilterLinks.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks", + "httpMethod": "POST", + "description": "Create a new profile filter link.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create profile filter link for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "Profile ID to create filter link for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id to create profile filter link for.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "ProfileFilterLink" + }, + "response": { + "$ref": "ProfileFilterLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.profileFilterLinks.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks", + "httpMethod": "GET", + "description": "Lists all profile filter links for a profile.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve profile filter links for.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of profile filter links to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "Profile ID to retrieve filter links for. Can either be a specific profile ID or '~all', which refers to all the profiles that user has access to.", + "required": true, + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for profile filter links for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "ProfileFilterLinks" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.profileFilterLinks.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}", + "httpMethod": "PATCH", + "description": "Update an existing profile filter link. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which profile filter link belongs.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "linkId": { + "type": "string", + "description": "ID of the profile filter link to be updated.", + "required": true, + "pattern": "\\d+:\\d+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "Profile ID to which filter link belongs", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id to which profile filter link belongs", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "request": { + "$ref": "ProfileFilterLink" + }, + "response": { + "$ref": "ProfileFilterLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.profileFilterLinks.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/profileFilterLinks/{linkId}", + "httpMethod": "PUT", + "description": "Update an existing profile filter link.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which profile filter link belongs.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "linkId": { + "type": "string", + "description": "ID of the profile filter link to be updated.", + "required": true, + "pattern": "\\d+:\\d+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "Profile ID to which filter link belongs", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id to which profile filter link belongs", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "request": { + "$ref": "ProfileFilterLink" + }, + "response": { + "$ref": "ProfileFilterLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "profileUserLinks": { + "methods": { + "delete": { + "id": "analytics.management.profileUserLinks.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}", + "httpMethod": "DELETE", + "description": "Removes a user from the given view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to delete the user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to delete the user link for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to delete the user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to delete the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "insert": { + "id": "analytics.management.profileUserLinks.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks", + "httpMethod": "POST", + "description": "Adds a new user to the given view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the user link for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to create the user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to create the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "list": { + "id": "analytics.management.profileUserLinks.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks", + "httpMethod": "GET", + "description": "Lists profile-user links for a given view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID which the given view (profile) belongs to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of profile-user links to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve the profile-user links for. Can either be a specific profile ID or '~all', which refers to all the profiles that user has access to.", + "required": true, + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first profile-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID which the given view (profile) belongs to. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "EntityUserLinks" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "update": { + "id": "analytics.management.profileUserLinks.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/entityUserLinks/{linkId}", + "httpMethod": "PUT", + "description": "Updates permissions for an existing user on the given view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to update the user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to update the user link for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile ID) to update the user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to update the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "linkId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + } + } + }, + "profiles": { + "methods": { + "delete": { + "id": "analytics.management.profiles.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", + "httpMethod": "DELETE", + "description": "Deletes a view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to delete the view (profile) for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "ID of the view (profile) to be deleted.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to delete the view (profile) for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.profiles.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", + "httpMethod": "GET", + "description": "Gets a view (profile) to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve the goal for.", + "required": true, + "pattern": "[0-9]+", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve the goal for.", + "required": true, + "pattern": "[0-9]+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the goal for.", + "required": true, + "pattern": "UA-[0-9]+-[0-9]+", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "Profile" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.profiles.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles", + "httpMethod": "POST", + "description": "Create a new view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the view (profile) for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to create the view (profile) for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "Profile" + }, + "response": { + "$ref": "Profile" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.profiles.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles", + "httpMethod": "GET", + "description": "Lists views (profiles) to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID for the view (profiles) to retrieve. Can either be a specific account ID or '~all', which refers to all the accounts to which the user has access.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of views (profiles) to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties to which the user has access.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "Profiles" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.profiles.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", + "httpMethod": "PATCH", + "description": "Updates an existing view (profile). This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the view (profile) belongs", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "ID of the view (profile) to be updated.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which the view (profile) belongs", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "Profile" + }, + "response": { + "$ref": "Profile" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.profiles.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}", + "httpMethod": "PUT", + "description": "Updates an existing view (profile).", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the view (profile) belongs", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "ID of the view (profile) to be updated.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to which the view (profile) belongs", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "Profile" + }, + "response": { + "$ref": "Profile" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "segments": { + "methods": { + "list": { + "id": "analytics.management.segments.list", + "path": "management/segments", + "httpMethod": "GET", + "description": "Lists segments to which the user has access.", + "parameters": { + "max-results": { + "type": "integer", + "description": "The maximum number of segments to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first segment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "response": { + "$ref": "Segments" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "unsampledReports": { + "methods": { + "get": { + "id": "analytics.management.unsampledReports.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports/{unsampledReportId}", + "httpMethod": "GET", + "description": "Returns a single unsampled report.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve unsampled report for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve unsampled report for.", + "required": true, + "location": "path" + }, + "unsampledReportId": { + "type": "string", + "description": "ID of the unsampled report to retrieve.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve unsampled reports for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId", + "unsampledReportId" + ], + "response": { + "$ref": "UnsampledReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.unsampledReports.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports", + "httpMethod": "POST", + "description": "Create a new unsampled report.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the unsampled report for.", + "required": true, + "location": "path" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to create the unsampled report for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to create the unsampled report for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "request": { + "$ref": "UnsampledReport" + }, + "response": { + "$ref": "UnsampledReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.unsampledReports.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/profiles/{profileId}/unsampledReports", + "httpMethod": "GET", + "description": "Lists unsampled reports to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve unsampled reports for. Must be a specific account ID, ~all is not supported.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of unsampled reports to include in this response.", + "format": "int32", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "View (Profile) ID to retrieve unsampled reports for. Must be a specific view (profile) ID, ~all is not supported.", + "required": true, + "location": "path" + }, + "start-index": { + "type": "integer", + "description": "An index of the first unsampled report to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve unsampled reports for. Must be a specific web property ID, ~all is not supported.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "profileId" + ], + "response": { + "$ref": "UnsampledReports" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + }, + "uploads": { + "methods": { + "deleteUploadData": { + "id": "analytics.management.uploads.deleteUploadData", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/deleteUploadData", + "httpMethod": "POST", + "description": "Delete data associated with a previous upload.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for the uploads to be deleted.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id for the uploads to be deleted.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for the uploads to be deleted.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId" + ], + "request": { + "$ref": "AnalyticsDataimportDeleteUploadDataRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.uploads.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads/{uploadId}", + "httpMethod": "GET", + "description": "List uploads to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for the upload to retrieve.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id for upload to retrieve.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "uploadId": { + "type": "string", + "description": "Upload Id to retrieve.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for the upload to retrieve.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId", + "uploadId" + ], + "response": { + "$ref": "Upload" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "id": "analytics.management.uploads.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads", + "httpMethod": "GET", + "description": "List uploads to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for the uploads to retrieve.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id for uploads to retrieve.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of uploads to include in this response.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "A 1-based index of the first upload to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for the uploads to retrieve.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId" + ], + "response": { + "$ref": "Uploads" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "migrateDataImport": { + "id": "analytics.management.uploads.migrateDataImport", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/migrateDataImport", + "httpMethod": "POST", + "description": "Migrate custom data source and data imports to latest version.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id for migration.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id for migration.", + "required": true, + "pattern": ".{22}", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property Id for migration.", + "required": true, + "pattern": "UA-(\\d+)-(\\d+)", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "uploadData": { + "id": "analytics.management.uploads.uploadData", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads", + "httpMethod": "POST", + "description": "Upload data for a custom data source.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account Id associated with the upload.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "customDataSourceId": { + "type": "string", + "description": "Custom data source Id to which the data being uploaded belongs.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property UA-string associated with the upload.", + "required": true, + "pattern": "UA-\\d+-\\d+", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "customDataSourceId" + ], + "response": { + "$ref": "Upload" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "application/octet-stream" + ], + "maxSize": "1GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/analytics/v3/management/accounts/{accountId}/webproperties/{webPropertyId}/customDataSources/{customDataSourceId}/uploads" + } + } + } + } + } + }, + "webPropertyAdWordsLinks": { + "methods": { + "delete": { + "id": "analytics.management.webPropertyAdWordsLinks.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}", + "httpMethod": "DELETE", + "description": "Deletes a web property-AdWords link.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the account which the given web property belongs to.", + "required": true, + "location": "path" + }, + "webPropertyAdWordsLinkId": { + "type": "string", + "description": "Web property AdWords link ID.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to delete the AdWords link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "webPropertyAdWordsLinkId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "id": "analytics.management.webPropertyAdWordsLinks.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}", + "httpMethod": "GET", + "description": "Returns a web property-AdWords link to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the account which the given web property belongs to.", + "required": true, + "location": "path" + }, + "webPropertyAdWordsLinkId": { + "type": "string", + "description": "Web property-AdWords link ID.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the AdWords link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "webPropertyAdWordsLinkId" + ], + "response": { + "$ref": "EntityAdWordsLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.webPropertyAdWordsLinks.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks", + "httpMethod": "POST", + "description": "Creates a webProperty-AdWords link.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the Google Analytics account to create the link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to create the link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "EntityAdWordsLink" + }, + "response": { + "$ref": "EntityAdWordsLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.webPropertyAdWordsLinks.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks", + "httpMethod": "GET", + "description": "Lists webProperty-AdWords links for a given web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the account which the given web property belongs to.", + "required": true, + "pattern": "\\d+", + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of webProperty-AdWords links to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first webProperty-AdWords link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the AdWords links for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "EntityAdWordsLinks" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.webPropertyAdWordsLinks.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}", + "httpMethod": "PATCH", + "description": "Updates an existing webProperty-AdWords link. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the account which the given web property belongs to.", + "required": true, + "location": "path" + }, + "webPropertyAdWordsLinkId": { + "type": "string", + "description": "Web property-AdWords link ID.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the AdWords link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "webPropertyAdWordsLinkId" + ], + "request": { + "$ref": "EntityAdWordsLink" + }, + "response": { + "$ref": "EntityAdWordsLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.webPropertyAdWordsLinks.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityAdWordsLinks/{webPropertyAdWordsLinkId}", + "httpMethod": "PUT", + "description": "Updates an existing webProperty-AdWords link.", + "parameters": { + "accountId": { + "type": "string", + "description": "ID of the account which the given web property belongs to.", + "required": true, + "location": "path" + }, + "webPropertyAdWordsLinkId": { + "type": "string", + "description": "Web property-AdWords link ID.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to retrieve the AdWords link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "webPropertyAdWordsLinkId" + ], + "request": { + "$ref": "EntityAdWordsLink" + }, + "response": { + "$ref": "EntityAdWordsLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "webproperties": { + "methods": { + "get": { + "id": "analytics.management.webproperties.get", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", + "httpMethod": "GET", + "description": "Gets a web property to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve the web property for.", + "required": true, + "pattern": "[0-9]+", + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "ID to retrieve the web property for.", + "required": true, + "pattern": "UA-[0-9]+-[0-9]+", + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "Webproperty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "insert": { + "id": "analytics.management.webproperties.insert", + "path": "management/accounts/{accountId}/webproperties", + "httpMethod": "POST", + "description": "Create a new property if the account has fewer than 20 properties. Web properties are visible in the Google Analytics interface only if they have at least one profile.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the web property for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "Webproperty" + }, + "response": { + "$ref": "Webproperty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "list": { + "id": "analytics.management.webproperties.list", + "path": "management/accounts/{accountId}/webproperties", + "httpMethod": "GET", + "description": "Lists web properties to which the user has access.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of web properties to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Webproperties" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "id": "analytics.management.webproperties.patch", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", + "httpMethod": "PATCH", + "description": "Updates an existing web property. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the web property belongs", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "Webproperty" + }, + "response": { + "$ref": "Webproperty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "update": { + "id": "analytics.management.webproperties.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}", + "httpMethod": "PUT", + "description": "Updates an existing web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to which the web property belongs", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "Webproperty" + }, + "response": { + "$ref": "Webproperty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, + "webpropertyUserLinks": { + "methods": { + "delete": { + "id": "analytics.management.webpropertyUserLinks.delete", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}", + "httpMethod": "DELETE", + "description": "Removes a user from the given web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to delete the user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to delete the user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to delete the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "linkId" + ], + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "insert": { + "id": "analytics.management.webpropertyUserLinks.insert", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks", + "httpMethod": "POST", + "description": "Adds a new user to the given web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to create the user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID to create the user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + }, + "list": { + "id": "analytics.management.webpropertyUserLinks.list", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks", + "httpMethod": "GET", + "description": "Lists webProperty-user links for a given web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID which the given web property belongs to.", + "required": true, + "location": "path" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of webProperty-user Links to include in this response.", + "format": "int32", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first webProperty-user link to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "webPropertyId": { + "type": "string", + "description": "Web Property ID for the webProperty-user links to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId" + ], + "response": { + "$ref": "EntityUserLinks" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users", + "https://www.googleapis.com/auth/analytics.manage.users.readonly" + ] + }, + "update": { + "id": "analytics.management.webpropertyUserLinks.update", + "path": "management/accounts/{accountId}/webproperties/{webPropertyId}/entityUserLinks/{linkId}", + "httpMethod": "PUT", + "description": "Updates permissions for an existing user on the given web property.", + "parameters": { + "accountId": { + "type": "string", + "description": "Account ID to update the account-user link for.", + "required": true, + "location": "path" + }, + "linkId": { + "type": "string", + "description": "Link ID to update the account-user link for.", + "required": true, + "location": "path" + }, + "webPropertyId": { + "type": "string", + "description": "Web property ID to update the account-user link for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "webPropertyId", + "linkId" + ], + "request": { + "$ref": "EntityUserLink" + }, + "response": { + "$ref": "EntityUserLink" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.manage.users" + ] + } + } + } + } + }, + "metadata": { + "resources": { + "columns": { + "methods": { + "list": { + "id": "analytics.metadata.columns.list", + "path": "metadata/{reportType}/columns", + "httpMethod": "GET", + "description": "Lists all columns for a report type", + "parameters": { + "reportType": { + "type": "string", + "description": "Report type. Allowed Values: 'ga'. Where 'ga' corresponds to the Core Reporting API", + "required": true, + "pattern": "ga", + "location": "path" + } + }, + "parameterOrder": [ + "reportType" + ], + "response": { + "$ref": "Columns" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + } + } + }, + "provisioning": { + "methods": { + "createAccountTicket": { + "id": "analytics.provisioning.createAccountTicket", + "path": "provisioning/createAccountTicket", + "httpMethod": "POST", + "description": "Creates an account ticket.", + "request": { + "$ref": "AccountTicket" + }, + "response": { + "$ref": "AccountTicket" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.provision" + ] + } + } + } + } +} diff --git a/etc/api/androidpublisher/v1.1/androidpublisher-api.json b/etc/api/androidpublisher/v1.1/androidpublisher-api.json new file mode 100644 index 0000000000..4676a83bf6 --- /dev/null +++ b/etc/api/androidpublisher/v1.1/androidpublisher-api.json @@ -0,0 +1,256 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/IauIkntwWKfYEXJi86DWNvQ2AiM\"", + "discoveryVersion": "v1", + "id": "androidpublisher:v1.1", + "name": "androidpublisher", + "canonicalName": "Android Publisher", + "version": "v1.1", + "revision": "20141117", + "title": "Google Play Android Developer API", + "description": "Lets Android application developers access their Google Play accounts.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/android-16.png", + "x32": "https://www.google.com/images/icons/product/android-32.png" + }, + "documentationLink": "https://developers.google.com/android-publisher", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/androidpublisher/v1.1/applications/", + "basePath": "/androidpublisher/v1.1/applications/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "androidpublisher/v1.1/applications/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/androidpublisher": { + "description": "View and manage your Google Play Android Developer account" + } + } + } + }, + "schemas": { + "InappPurchase": { + "id": "InappPurchase", + "type": "object", + "description": "An InappPurchase resource indicates the status of a user's inapp product purchase.", + "properties": { + "consumptionState": { + "type": "integer", + "description": "The consumption state of the inapp product. Possible values are: \n- Yet to be consumed \n- Consumed", + "format": "int32" + }, + "developerPayload": { + "type": "string", + "description": "A developer-specified string that contains supplemental information about an order." + }, + "kind": { + "type": "string", + "description": "This kind represents an inappPurchase object in the androidpublisher service.", + "default": "androidpublisher#inappPurchase" + }, + "purchaseState": { + "type": "integer", + "description": "The purchase state of the order. Possible values are: \n- Purchased \n- Cancelled", + "format": "int32" + }, + "purchaseTime": { + "type": "string", + "description": "The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970).", + "format": "int64" + } + } + }, + "SubscriptionPurchase": { + "id": "SubscriptionPurchase", + "type": "object", + "description": "A SubscriptionPurchase resource indicates the status of a user's subscription purchase.", + "properties": { + "autoRenewing": { + "type": "boolean", + "description": "Whether the subscription will automatically be renewed when it reaches its current expiry time." + }, + "initiationTimestampMsec": { + "type": "string", + "description": "Time at which the subscription was granted, in milliseconds since Epoch.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This kind represents a subscriptionPurchase object in the androidpublisher service.", + "default": "androidpublisher#subscriptionPurchase" + }, + "validUntilTimestampMsec": { + "type": "string", + "description": "Time at which the subscription will expire, in milliseconds since Epoch.", + "format": "int64" + } + } + } + }, + "resources": { + "inapppurchases": { + "methods": { + "get": { + "id": "androidpublisher.inapppurchases.get", + "path": "{packageName}/inapp/{productId}/purchases/{token}", + "httpMethod": "GET", + "description": "Checks the purchase and consumption status of an inapp item.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "productId": { + "type": "string", + "description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the inapp product was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "productId", + "token" + ], + "response": { + "$ref": "InappPurchase" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "purchases": { + "methods": { + "cancel": { + "id": "androidpublisher.purchases.cancel", + "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}/cancel", + "httpMethod": "POST", + "description": "Cancels a user's subscription purchase. The subscription remains valid until its expiration time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.purchases.get", + "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}", + "httpMethod": "GET", + "description": "Checks whether a user's subscription purchase is valid and returns its expiry time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "response": { + "$ref": "SubscriptionPurchase" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } +} diff --git a/etc/api/androidpublisher/v1/androidpublisher-api.json b/etc/api/androidpublisher/v1/androidpublisher-api.json new file mode 100644 index 0000000000..24bb794d0a --- /dev/null +++ b/etc/api/androidpublisher/v1/androidpublisher-api.json @@ -0,0 +1,184 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/9IvWgk27pJzZedDa5uB3-hJOZ88\"", + "discoveryVersion": "v1", + "id": "androidpublisher:v1", + "name": "androidpublisher", + "canonicalName": "Android Publisher", + "version": "v1", + "revision": "20141117", + "title": "Google Play Android Developer API", + "description": "Lets Android application developers access their Google Play accounts.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/android-16.png", + "x32": "https://www.google.com/images/icons/product/android-32.png" + }, + "documentationLink": "https://developers.google.com/android-publisher", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/androidpublisher/v1/applications/", + "basePath": "/androidpublisher/v1/applications/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "androidpublisher/v1/applications/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/androidpublisher": { + "description": "View and manage your Google Play Android Developer account" + } + } + } + }, + "schemas": { + "SubscriptionPurchase": { + "id": "SubscriptionPurchase", + "type": "object", + "description": "A SubscriptionPurchase resource indicates the status of a user's subscription purchase.", + "properties": { + "autoRenewing": { + "type": "boolean", + "description": "Whether the subscription will automatically be renewed when it reaches its current expiry time." + }, + "initiationTimestampMsec": { + "type": "string", + "description": "Time at which the subscription was granted, in milliseconds since Epoch.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This kind represents a subscriptionPurchase object in the androidpublisher service.", + "default": "androidpublisher#subscriptionPurchase" + }, + "validUntilTimestampMsec": { + "type": "string", + "description": "Time at which the subscription will expire, in milliseconds since Epoch.", + "format": "int64" + } + } + } + }, + "resources": { + "purchases": { + "methods": { + "cancel": { + "id": "androidpublisher.purchases.cancel", + "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}/cancel", + "httpMethod": "POST", + "description": "Cancels a user's subscription purchase. The subscription remains valid until its expiration time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.purchases.get", + "path": "{packageName}/subscriptions/{subscriptionId}/purchases/{token}", + "httpMethod": "GET", + "description": "Checks whether a user's subscription purchase is valid and returns its expiry time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "response": { + "$ref": "SubscriptionPurchase" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } +} diff --git a/etc/api/androidpublisher/v2/androidpublisher-api.json b/etc/api/androidpublisher/v2/androidpublisher-api.json new file mode 100644 index 0000000000..5a974c1f16 --- /dev/null +++ b/etc/api/androidpublisher/v2/androidpublisher-api.json @@ -0,0 +1,2978 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/O3fRjUE0KKE4hPeemkWoVGSVyAY\"", + "discoveryVersion": "v1", + "id": "androidpublisher:v2", + "name": "androidpublisher", + "canonicalName": "Android Publisher", + "version": "v2", + "revision": "20150128", + "title": "Google Play Android Developer API", + "description": "Lets Android application developers access their Google Play accounts.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/android-16.png", + "x32": "https://www.google.com/images/icons/product/android-32.png" + }, + "documentationLink": "https://developers.google.com/android-publisher", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/androidpublisher/v2/applications/", + "basePath": "/androidpublisher/v2/applications/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "androidpublisher/v2/applications/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/androidpublisher": { + "description": "View and manage your Google Play Android Developer account" + } + } + } + }, + "schemas": { + "Apk": { + "id": "Apk", + "type": "object", + "properties": { + "binary": { + "$ref": "ApkBinary", + "description": "Information about the binary payload of this APK." + }, + "versionCode": { + "type": "integer", + "description": "The version code of the APK, as specified in the APK's manifest file.", + "format": "int32" + } + } + }, + "ApkBinary": { + "id": "ApkBinary", + "type": "object", + "description": "Represents the binary payload of an APK.", + "properties": { + "sha1": { + "type": "string", + "description": "A sha1 hash of the APK payload, encoded as a hex string and matching the output of the sha1sum command." + } + } + }, + "ApkListing": { + "id": "ApkListing", + "type": "object", + "properties": { + "language": { + "type": "string", + "description": "The language code, in BCP 47 format (eg \"en-US\")." + }, + "recentChanges": { + "type": "string", + "description": "Describe what's new in your APK." + } + } + }, + "ApkListingsListResponse": { + "id": "ApkListingsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#apkListingsListResponse\".", + "default": "androidpublisher#apkListingsListResponse" + }, + "listings": { + "type": "array", + "items": { + "$ref": "ApkListing" + } + } + } + }, + "ApksAddExternallyHostedRequest": { + "id": "ApksAddExternallyHostedRequest", + "type": "object", + "properties": { + "externallyHostedApk": { + "$ref": "ExternallyHostedApk", + "description": "The definition of the externally-hosted APK and where it is located." + } + } + }, + "ApksAddExternallyHostedResponse": { + "id": "ApksAddExternallyHostedResponse", + "type": "object", + "properties": { + "externallyHostedApk": { + "$ref": "ExternallyHostedApk", + "description": "The definition of the externally-hosted APK and where it is located." + } + } + }, + "ApksListResponse": { + "id": "ApksListResponse", + "type": "object", + "properties": { + "apks": { + "type": "array", + "items": { + "$ref": "Apk" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#apksListResponse\".", + "default": "androidpublisher#apksListResponse" + } + } + }, + "AppDetails": { + "id": "AppDetails", + "type": "object", + "properties": { + "contactEmail": { + "type": "string", + "description": "The user-visible support email for this app." + }, + "contactPhone": { + "type": "string", + "description": "The user-visible support telephone number for this app." + }, + "contactWebsite": { + "type": "string", + "description": "The user-visible website for this app." + }, + "defaultLanguage": { + "type": "string", + "description": "Default language code, in BCP 47 format (eg \"en-US\")." + } + } + }, + "AppEdit": { + "id": "AppEdit", + "type": "object", + "description": "Represents an edit of an app. An edit allows clients to make multiple changes before committing them in one operation.", + "properties": { + "expiryTimeSeconds": { + "type": "string", + "description": "The time at which the edit will expire and will be no longer valid for use in any subsequent API calls (encoded as seconds since the Epoch)." + }, + "id": { + "type": "string", + "description": "The ID of the edit that can be used in subsequent API calls." + } + } + }, + "ExpansionFile": { + "id": "ExpansionFile", + "type": "object", + "properties": { + "fileSize": { + "type": "string", + "description": "If set this field indicates that this APK has an Expansion File uploaded to it: this APK does not reference another APK's Expansion File. The field's value is the size of the uploaded Expansion File in bytes.", + "format": "int64" + }, + "referencesVersion": { + "type": "integer", + "description": "If set this APK's Expansion File references another APK's Expansion File. The file_size field will not be set.", + "format": "int32" + } + } + }, + "ExpansionFilesUploadResponse": { + "id": "ExpansionFilesUploadResponse", + "type": "object", + "properties": { + "expansionFile": { + "$ref": "ExpansionFile" + } + } + }, + "ExternallyHostedApk": { + "id": "ExternallyHostedApk", + "type": "object", + "description": "Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to enterprises who are using Android for Work, and whos application is restricted to the enterprise private channel", + "properties": { + "applicationLabel": { + "type": "string", + "description": "The application label." + }, + "certificateBase64s": { + "type": "array", + "description": "A certificate (or array of certificates if a certificate-chain is used) used to signed this APK, represented as a base64 encoded byte array.", + "items": { + "type": "string" + } + }, + "externallyHostedUrl": { + "type": "string", + "description": "The URL at which the APK is hosted. This must be an https URL." + }, + "fileSha1Base64": { + "type": "string", + "description": "The SHA1 checksum of this APK, represented as a base64 encoded byte array." + }, + "fileSha256Base64": { + "type": "string", + "description": "The SHA256 checksum of this APK, represented as a base64 encoded byte array." + }, + "fileSize": { + "type": "string", + "description": "The file size in bytes of this APK.", + "format": "int64" + }, + "iconBase64": { + "type": "string", + "description": "The icon image from the APK, as a base64 encoded byte array." + }, + "maximumSdk": { + "type": "integer", + "description": "The maximum SDK supported by this APK (optional).", + "format": "int32" + }, + "minimumSdk": { + "type": "integer", + "description": "The minimum SDK targeted by this APK.", + "format": "int32" + }, + "nativeCodes": { + "type": "array", + "description": "The native code environments supported by this APK (optional).", + "items": { + "type": "string" + } + }, + "packageName": { + "type": "string", + "description": "The package name." + }, + "usesFeatures": { + "type": "array", + "description": "The features required by this APK (optional).", + "items": { + "type": "string" + } + }, + "usesPermissions": { + "type": "array", + "description": "The permissions requested by this APK.", + "items": { + "$ref": "ExternallyHostedApkUsesPermission" + } + }, + "versionCode": { + "type": "integer", + "description": "The version code of this APK.", + "format": "int32" + }, + "versionName": { + "type": "string", + "description": "The version name of this APK." + } + } + }, + "ExternallyHostedApkUsesPermission": { + "id": "ExternallyHostedApkUsesPermission", + "type": "object", + "description": "A permission used by this APK.", + "properties": { + "maxSdkVersion": { + "type": "integer", + "description": "Optionally, the maximum SDK version for which the permission is required.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The name of the permission requested." + } + } + }, + "Image": { + "id": "Image", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique id representing this image." + }, + "sha1": { + "type": "string", + "description": "A sha1 hash of the image that was uploaded." + }, + "url": { + "type": "string", + "description": "A URL that will serve a preview of the image." + } + } + }, + "ImagesDeleteAllResponse": { + "id": "ImagesDeleteAllResponse", + "type": "object", + "properties": { + "deleted": { + "type": "array", + "items": { + "$ref": "Image" + } + } + } + }, + "ImagesListResponse": { + "id": "ImagesListResponse", + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "Image" + } + } + } + }, + "ImagesUploadResponse": { + "id": "ImagesUploadResponse", + "type": "object", + "properties": { + "image": { + "$ref": "Image" + } + } + }, + "InAppProduct": { + "id": "InAppProduct", + "type": "object", + "properties": { + "defaultLanguage": { + "type": "string", + "description": "The default language of the localized data, as defined by BCP 47. e.g. \"en-US\", \"en-GB\"." + }, + "defaultPrice": { + "$ref": "Price", + "description": "Default price cannot be zero. In-app products can never be free. Default price is always in the developer's Checkout merchant currency." + }, + "listings": { + "type": "object", + "description": "List of localized title and description data.", + "additionalProperties": { + "$ref": "InAppProductListing", + "description": "The language of the localized data, as defined by BCP 47. i.e.: \"en-US\", \"en-GB\"." + } + }, + "packageName": { + "type": "string", + "description": "The package name of the parent app." + }, + "prices": { + "type": "object", + "description": "Prices per buyer region. None of these prices should be zero. In-app products can never be free.", + "additionalProperties": { + "$ref": "Price", + "description": "Region code, as defined by ISO 3166-2." + } + }, + "purchaseType": { + "type": "string", + "description": "Purchase type enum value. Unmodifiable after creation." + }, + "season": { + "$ref": "Season", + "description": "Definition of a season for a seasonal subscription. Can be defined only for yearly subscriptions." + }, + "sku": { + "type": "string", + "description": "The stock-keeping-unit (SKU) of the product, unique within an app." + }, + "status": { + "type": "string" + }, + "subscriptionPeriod": { + "type": "string", + "description": "The period of the subscription (if any), i.e. period at which payments must happen. Defined as ISO 8601 duration, i.e. \"P1M\" for 1 month period." + }, + "trialPeriod": { + "type": "string", + "description": "Trial period, specified in ISO 8601 format. Acceptable values are anything between \"P7D\" (seven days) and \"P999D\" (999 days). Seasonal subscriptions cannot have a trial period." + } + } + }, + "InAppProductListing": { + "id": "InAppProductListing", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "InappproductsBatchRequest": { + "id": "InappproductsBatchRequest", + "type": "object", + "properties": { + "entrys": { + "type": "array", + "items": { + "$ref": "InappproductsBatchRequestEntry" + } + } + } + }, + "InappproductsBatchRequestEntry": { + "id": "InappproductsBatchRequestEntry", + "type": "object", + "properties": { + "batchId": { + "type": "integer", + "format": "uint32" + }, + "inappproductsinsertrequest": { + "$ref": "InappproductsInsertRequest" + }, + "inappproductsupdaterequest": { + "$ref": "InappproductsUpdateRequest" + }, + "methodName": { + "type": "string" + } + } + }, + "InappproductsBatchResponse": { + "id": "InappproductsBatchResponse", + "type": "object", + "properties": { + "entrys": { + "type": "array", + "items": { + "$ref": "InappproductsBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#inappproductsBatchResponse\".", + "default": "androidpublisher#inappproductsBatchResponse" + } + } + }, + "InappproductsBatchResponseEntry": { + "id": "InappproductsBatchResponseEntry", + "type": "object", + "properties": { + "batchId": { + "type": "integer", + "format": "uint32" + }, + "inappproductsinsertresponse": { + "$ref": "InappproductsInsertResponse" + }, + "inappproductsupdateresponse": { + "$ref": "InappproductsUpdateResponse" + } + } + }, + "InappproductsInsertRequest": { + "id": "InappproductsInsertRequest", + "type": "object", + "properties": { + "inappproduct": { + "$ref": "InAppProduct" + } + } + }, + "InappproductsInsertResponse": { + "id": "InappproductsInsertResponse", + "type": "object", + "properties": { + "inappproduct": { + "$ref": "InAppProduct" + } + } + }, + "InappproductsListResponse": { + "id": "InappproductsListResponse", + "type": "object", + "properties": { + "inappproduct": { + "type": "array", + "items": { + "$ref": "InAppProduct" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#inappproductsListResponse\".", + "default": "androidpublisher#inappproductsListResponse" + }, + "pageInfo": { + "$ref": "PageInfo" + }, + "tokenPagination": { + "$ref": "TokenPagination" + } + } + }, + "InappproductsUpdateRequest": { + "id": "InappproductsUpdateRequest", + "type": "object", + "properties": { + "inappproduct": { + "$ref": "InAppProduct" + } + } + }, + "InappproductsUpdateResponse": { + "id": "InappproductsUpdateResponse", + "type": "object", + "properties": { + "inappproduct": { + "$ref": "InAppProduct" + } + } + }, + "Listing": { + "id": "Listing", + "type": "object", + "properties": { + "fullDescription": { + "type": "string", + "description": "Full description of the app; this may be up to 4000 characters in length." + }, + "language": { + "type": "string", + "description": "Language localization code (for example, \"de-AT\" for Austrian German)." + }, + "shortDescription": { + "type": "string", + "description": "Short description of the app (previously known as promo text); this may be up to 80 characters in length." + }, + "title": { + "type": "string", + "description": "App's localized title." + }, + "video": { + "type": "string", + "description": "URL of a promotional YouTube video for the app." + } + } + }, + "ListingsListResponse": { + "id": "ListingsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#listingsListResponse\".", + "default": "androidpublisher#listingsListResponse" + }, + "listings": { + "type": "array", + "items": { + "$ref": "Listing" + } + } + } + }, + "MonthDay": { + "id": "MonthDay", + "type": "object", + "properties": { + "day": { + "type": "integer", + "description": "Day of a month, value in [1, 31] range. Valid range depends on the specified month.", + "format": "uint32" + }, + "month": { + "type": "integer", + "description": "Month of a year. e.g. 1 = JAN, 2 = FEB etc.", + "format": "uint32" + } + } + }, + "PageInfo": { + "id": "PageInfo", + "type": "object", + "properties": { + "resultPerPage": { + "type": "integer", + "format": "int32" + }, + "startIndex": { + "type": "integer", + "format": "int32" + }, + "totalResults": { + "type": "integer", + "format": "int32" + } + } + }, + "Price": { + "id": "Price", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "3 letter Currency code, as defined by ISO 4217." + }, + "priceMicros": { + "type": "string", + "description": "The price in millionths of the currency base unit represented as a string." + } + } + }, + "ProductPurchase": { + "id": "ProductPurchase", + "type": "object", + "description": "A ProductPurchase resource indicates the status of a user's inapp product purchase.", + "properties": { + "consumptionState": { + "type": "integer", + "description": "The consumption state of the inapp product. Possible values are: \n- Yet to be consumed \n- Consumed", + "format": "int32" + }, + "developerPayload": { + "type": "string", + "description": "A developer-specified string that contains supplemental information about an order." + }, + "kind": { + "type": "string", + "description": "This kind represents an inappPurchase object in the androidpublisher service.", + "default": "androidpublisher#productPurchase" + }, + "purchaseState": { + "type": "integer", + "description": "The purchase state of the order. Possible values are: \n- Purchased \n- Cancelled", + "format": "int32" + }, + "purchaseTimeMillis": { + "type": "string", + "description": "The time the product was purchased, in milliseconds since the epoch (Jan 1, 1970).", + "format": "int64" + } + } + }, + "Season": { + "id": "Season", + "type": "object", + "properties": { + "end": { + "$ref": "MonthDay", + "description": "Inclusive end date of the recurrence period." + }, + "start": { + "$ref": "MonthDay", + "description": "Inclusive start date of the recurrence period." + } + } + }, + "SubscriptionDeferralInfo": { + "id": "SubscriptionDeferralInfo", + "type": "object", + "description": "A SubscriptionDeferralInfo contains the data needed to defer a subscription purchase to a future expiry time.", + "properties": { + "desiredExpiryTimeMillis": { + "type": "string", + "description": "The desired next expiry time for the subscription in milliseconds since Epoch. The given time must be after the current expiry time for the subscription.", + "format": "int64" + }, + "expectedExpiryTimeMillis": { + "type": "string", + "description": "The expected expiry time for the subscription. If the current expiry time for the subscription is not the value specified here, the deferral will not occur.", + "format": "int64" + } + } + }, + "SubscriptionPurchase": { + "id": "SubscriptionPurchase", + "type": "object", + "description": "A SubscriptionPurchase resource indicates the status of a user's subscription purchase.", + "properties": { + "autoRenewing": { + "type": "boolean", + "description": "Whether the subscription will automatically be renewed when it reaches its current expiry time." + }, + "expiryTimeMillis": { + "type": "string", + "description": "Time at which the subscription will expire, in milliseconds since Epoch.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This kind represents a subscriptionPurchase object in the androidpublisher service.", + "default": "androidpublisher#subscriptionPurchase" + }, + "startTimeMillis": { + "type": "string", + "description": "Time at which the subscription was granted, in milliseconds since Epoch.", + "format": "int64" + } + } + }, + "SubscriptionPurchasesDeferRequest": { + "id": "SubscriptionPurchasesDeferRequest", + "type": "object", + "properties": { + "deferralInfo": { + "$ref": "SubscriptionDeferralInfo", + "description": "The information about the new desired expiry time for the subscription." + } + } + }, + "SubscriptionPurchasesDeferResponse": { + "id": "SubscriptionPurchasesDeferResponse", + "type": "object", + "properties": { + "newExpiryTimeMillis": { + "type": "string", + "description": "The new expiry time for the subscription in milliseconds since the Epoch.", + "format": "int64" + } + } + }, + "Testers": { + "id": "Testers", + "type": "object", + "properties": { + "googleGroups": { + "type": "array", + "items": { + "type": "string" + } + }, + "googlePlusCommunities": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TokenPagination": { + "id": "TokenPagination", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "previousPageToken": { + "type": "string" + } + } + }, + "Track": { + "id": "Track", + "type": "object", + "properties": { + "track": { + "type": "string" + }, + "userFraction": { + "type": "number", + "format": "double" + }, + "versionCodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "TracksListResponse": { + "id": "TracksListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"androidpublisher#tracksListResponse\".", + "default": "androidpublisher#tracksListResponse" + }, + "tracks": { + "type": "array", + "items": { + "$ref": "Track" + } + } + } + } + }, + "resources": { + "edits": { + "methods": { + "commit": { + "id": "androidpublisher.edits.commit", + "path": "{packageName}/edits/{editId}:commit", + "httpMethod": "POST", + "description": "Commits/applies the changes made in this edit back to the app.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "AppEdit" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "delete": { + "id": "androidpublisher.edits.delete", + "path": "{packageName}/edits/{editId}", + "httpMethod": "DELETE", + "description": "Deletes an edit for an app. Creating a new edit will automatically delete any of your previous edits so this method need only be called if you want to preemptively abandon an edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.edits.get", + "path": "{packageName}/edits/{editId}", + "httpMethod": "GET", + "description": "Returns information about the edit specified. Calls will fail if the edit is no long active (e.g. has been deleted, superseded or expired).", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "AppEdit" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "insert": { + "id": "androidpublisher.edits.insert", + "path": "{packageName}/edits", + "httpMethod": "POST", + "description": "Creates a new edit for an app, populated with the app's current state.", + "parameters": { + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName" + ], + "request": { + "$ref": "AppEdit" + }, + "response": { + "$ref": "AppEdit" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "validate": { + "id": "androidpublisher.edits.validate", + "path": "{packageName}/edits/{editId}:validate", + "httpMethod": "POST", + "description": "Checks that the edit can be successfully committed. The edit's changes are not applied to the live app.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "AppEdit" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + }, + "resources": { + "apklistings": { + "methods": { + "delete": { + "id": "androidpublisher.edits.apklistings.delete", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}", + "httpMethod": "DELETE", + "description": "Deletes the APK-specific localized listing for a specified APK and language code.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the APK-specific localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "language" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "deleteall": { + "id": "androidpublisher.edits.apklistings.deleteall", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings", + "httpMethod": "DELETE", + "description": "Deletes all the APK-specific localized listings for a specified APK.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.edits.apklistings.get", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}", + "httpMethod": "GET", + "description": "Fetches the APK-specific localized listing for a specified APK and language code.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the APK-specific localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "language" + ], + "response": { + "$ref": "ApkListing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.edits.apklistings.list", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings", + "httpMethod": "GET", + "description": "Lists all the APK-specific localized listings for a specified APK.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode" + ], + "response": { + "$ref": "ApkListingsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.apklistings.patch", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}", + "httpMethod": "PATCH", + "description": "Updates or creates the APK-specific localized listing for a specified APK and language code. This method supports patch semantics.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the APK-specific localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "language" + ], + "request": { + "$ref": "ApkListing" + }, + "response": { + "$ref": "ApkListing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.apklistings.update", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/listings/{language}", + "httpMethod": "PUT", + "description": "Updates or creates the APK-specific localized listing for a specified APK and language code.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The APK version code whose APK-specific listings should be read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the APK-specific localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "language" + ], + "request": { + "$ref": "ApkListing" + }, + "response": { + "$ref": "ApkListing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "apks": { + "methods": { + "addexternallyhosted": { + "id": "androidpublisher.edits.apks.addexternallyhosted", + "path": "{packageName}/edits/{editId}/apks/externallyHosted", + "httpMethod": "POST", + "description": "Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to enterprises using Google Play for work whose application is configured to restrict distribution to the enterprise domain.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "request": { + "$ref": "ApksAddExternallyHostedRequest" + }, + "response": { + "$ref": "ApksAddExternallyHostedResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.edits.apks.list", + "path": "{packageName}/edits/{editId}/apks", + "httpMethod": "GET", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "ApksListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "upload": { + "id": "androidpublisher.edits.apks.upload", + "path": "{packageName}/edits/{editId}/apks", + "httpMethod": "POST", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "Apk" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "application/octet-stream", + "application/vnd.android.package-archive" + ], + "maxSize": "1GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/apks" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/apks" + } + } + } + } + } + }, + "details": { + "methods": { + "get": { + "id": "androidpublisher.edits.details.get", + "path": "{packageName}/edits/{editId}/details", + "httpMethod": "GET", + "description": "Fetches app details for this edit. This includes the default language and developer support contact information.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "AppDetails" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.details.patch", + "path": "{packageName}/edits/{editId}/details", + "httpMethod": "PATCH", + "description": "Updates app details for this edit. This method supports patch semantics.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "request": { + "$ref": "AppDetails" + }, + "response": { + "$ref": "AppDetails" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.details.update", + "path": "{packageName}/edits/{editId}/details", + "httpMethod": "PUT", + "description": "Updates app details for this edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "request": { + "$ref": "AppDetails" + }, + "response": { + "$ref": "AppDetails" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "expansionfiles": { + "methods": { + "get": { + "id": "androidpublisher.edits.expansionfiles.get", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", + "httpMethod": "GET", + "description": "Fetches the Expansion File configuration for the APK specified.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The version code of the APK whose Expansion File configuration is being read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "expansionFileType": { + "type": "string", + "required": true, + "enum": [ + "main", + "patch" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "expansionFileType" + ], + "response": { + "$ref": "ExpansionFile" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.expansionfiles.patch", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", + "httpMethod": "PATCH", + "description": "Updates the APK's Expansion File configuration to reference another APK's Expansion Files. To add a new Expansion File use the Upload method. This method supports patch semantics.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The version code of the APK whose Expansion File configuration is being read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "expansionFileType": { + "type": "string", + "required": true, + "enum": [ + "main", + "patch" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "expansionFileType" + ], + "request": { + "$ref": "ExpansionFile" + }, + "response": { + "$ref": "ExpansionFile" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.expansionfiles.update", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", + "httpMethod": "PUT", + "description": "Updates the APK's Expansion File configuration to reference another APK's Expansion Files. To add a new Expansion File use the Upload method.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The version code of the APK whose Expansion File configuration is being read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "expansionFileType": { + "type": "string", + "required": true, + "enum": [ + "main", + "patch" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "expansionFileType" + ], + "request": { + "$ref": "ExpansionFile" + }, + "response": { + "$ref": "ExpansionFile" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "upload": { + "id": "androidpublisher.edits.expansionfiles.upload", + "path": "{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}", + "httpMethod": "POST", + "description": "Uploads and attaches a new Expansion File to the APK specified.", + "parameters": { + "apkVersionCode": { + "type": "integer", + "description": "The version code of the APK whose Expansion File configuration is being read or modified.", + "required": true, + "format": "int32", + "location": "path" + }, + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "expansionFileType": { + "type": "string", + "required": true, + "enum": [ + "main", + "patch" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "apkVersionCode", + "expansionFileType" + ], + "response": { + "$ref": "ExpansionFilesUploadResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "application/octet-stream" + ], + "maxSize": "2048MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}" + } + } + } + } + } + }, + "images": { + "methods": { + "delete": { + "id": "androidpublisher.edits.images.delete", + "path": "{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}", + "httpMethod": "DELETE", + "description": "Deletes the image (specified by id) from the edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "imageId": { + "type": "string", + "description": "Unique identifier an image within the set of images attached to this edit.", + "required": true, + "location": "path" + }, + "imageType": { + "type": "string", + "required": true, + "enum": [ + "featureGraphic", + "icon", + "phoneScreenshots", + "promoGraphic", + "sevenInchScreenshots", + "tenInchScreenshots", + "tvBanner", + "tvScreenshots" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing whose images are to read or modified. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language", + "imageType", + "imageId" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "deleteall": { + "id": "androidpublisher.edits.images.deleteall", + "path": "{packageName}/edits/{editId}/listings/{language}/{imageType}", + "httpMethod": "DELETE", + "description": "Deletes all images for the specified language and image type.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "imageType": { + "type": "string", + "required": true, + "enum": [ + "featureGraphic", + "icon", + "phoneScreenshots", + "promoGraphic", + "sevenInchScreenshots", + "tenInchScreenshots", + "tvBanner", + "tvScreenshots" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing whose images are to read or modified. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language", + "imageType" + ], + "response": { + "$ref": "ImagesDeleteAllResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.edits.images.list", + "path": "{packageName}/edits/{editId}/listings/{language}/{imageType}", + "httpMethod": "GET", + "description": "Lists all images for the specified language and image type.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "imageType": { + "type": "string", + "required": true, + "enum": [ + "featureGraphic", + "icon", + "phoneScreenshots", + "promoGraphic", + "sevenInchScreenshots", + "tenInchScreenshots", + "tvBanner", + "tvScreenshots" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing whose images are to read or modified. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language", + "imageType" + ], + "response": { + "$ref": "ImagesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "upload": { + "id": "androidpublisher.edits.images.upload", + "path": "{packageName}/edits/{editId}/listings/{language}/{imageType}", + "httpMethod": "POST", + "description": "Uploads a new image and adds it to the list of images for the specified language and image type.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "imageType": { + "type": "string", + "required": true, + "enum": [ + "featureGraphic", + "icon", + "phoneScreenshots", + "promoGraphic", + "sevenInchScreenshots", + "tenInchScreenshots", + "tvBanner", + "tvScreenshots" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing whose images are to read or modified. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language", + "imageType" + ], + "response": { + "$ref": "ImagesUploadResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "image/*" + ], + "maxSize": "15MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/androidpublisher/v2/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}" + } + } + } + } + } + }, + "listings": { + "methods": { + "delete": { + "id": "androidpublisher.edits.listings.delete", + "path": "{packageName}/edits/{editId}/listings/{language}", + "httpMethod": "DELETE", + "description": "Deletes the specified localized store listing from an edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "deleteall": { + "id": "androidpublisher.edits.listings.deleteall", + "path": "{packageName}/edits/{editId}/listings", + "httpMethod": "DELETE", + "description": "Deletes all localized listings from an edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.edits.listings.get", + "path": "{packageName}/edits/{editId}/listings/{language}", + "httpMethod": "GET", + "description": "Fetches information about a localized store listing.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language" + ], + "response": { + "$ref": "Listing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.edits.listings.list", + "path": "{packageName}/edits/{editId}/listings", + "httpMethod": "GET", + "description": "Returns all of the localized store listings attached to this edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "ListingsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.listings.patch", + "path": "{packageName}/edits/{editId}/listings/{language}", + "httpMethod": "PATCH", + "description": "Creates or updates a localized store listing. This method supports patch semantics.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language" + ], + "request": { + "$ref": "Listing" + }, + "response": { + "$ref": "Listing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.listings.update", + "path": "{packageName}/edits/{editId}/listings/{language}", + "httpMethod": "PUT", + "description": "Creates or updates a localized store listing.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The language code (a BCP-47 language tag) of the localized listing to read or modify. For example, to select Austrian German, pass \"de-AT\".", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "language" + ], + "request": { + "$ref": "Listing" + }, + "response": { + "$ref": "Listing" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "testers": { + "methods": { + "get": { + "id": "androidpublisher.edits.testers.get", + "path": "{packageName}/edits/{editId}/testers/{track}", + "httpMethod": "GET", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "response": { + "$ref": "Testers" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.testers.patch", + "path": "{packageName}/edits/{editId}/testers/{track}", + "httpMethod": "PATCH", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "request": { + "$ref": "Testers" + }, + "response": { + "$ref": "Testers" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.testers.update", + "path": "{packageName}/edits/{editId}/testers/{track}", + "httpMethod": "PUT", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "request": { + "$ref": "Testers" + }, + "response": { + "$ref": "Testers" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "tracks": { + "methods": { + "get": { + "id": "androidpublisher.edits.tracks.get", + "path": "{packageName}/edits/{editId}/tracks/{track}", + "httpMethod": "GET", + "description": "Fetches the track configuration for the specified track type. Includes the APK version codes that are in this track.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "description": "The track type to read or modify.", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "response": { + "$ref": "Track" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.edits.tracks.list", + "path": "{packageName}/edits/{editId}/tracks", + "httpMethod": "GET", + "description": "Lists all the track configurations for this edit.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId" + ], + "response": { + "$ref": "TracksListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.edits.tracks.patch", + "path": "{packageName}/edits/{editId}/tracks/{track}", + "httpMethod": "PATCH", + "description": "Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume. This method supports patch semantics.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "description": "The track type to read or modify.", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "request": { + "$ref": "Track" + }, + "response": { + "$ref": "Track" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.edits.tracks.update", + "path": "{packageName}/edits/{editId}/tracks/{track}", + "httpMethod": "PUT", + "description": "Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume.", + "parameters": { + "editId": { + "type": "string", + "description": "Unique identifier for this edit.", + "required": true, + "location": "path" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app that is being updated; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "track": { + "type": "string", + "description": "The track type to read or modify.", + "required": true, + "enum": [ + "alpha", + "beta", + "production", + "rollout" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "editId", + "track" + ], + "request": { + "$ref": "Track" + }, + "response": { + "$ref": "Track" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } + }, + "inappproducts": { + "methods": { + "batch": { + "id": "androidpublisher.inappproducts.batch", + "path": "inappproducts/batch", + "httpMethod": "POST", + "request": { + "$ref": "InappproductsBatchRequest" + }, + "response": { + "$ref": "InappproductsBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "delete": { + "id": "androidpublisher.inappproducts.delete", + "path": "{packageName}/inappproducts/{sku}", + "httpMethod": "DELETE", + "description": "Delete an in-app product for an app.", + "parameters": { + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app with the in-app product; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "sku": { + "type": "string", + "description": "Unique identifier for the in-app product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "sku" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.inappproducts.get", + "path": "{packageName}/inappproducts/{sku}", + "httpMethod": "GET", + "description": "Returns information about the in-app product specified.", + "parameters": { + "packageName": { + "type": "string", + "required": true, + "location": "path" + }, + "sku": { + "type": "string", + "description": "Unique identifier for the in-app product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "sku" + ], + "response": { + "$ref": "InAppProduct" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "insert": { + "id": "androidpublisher.inappproducts.insert", + "path": "{packageName}/inappproducts", + "httpMethod": "POST", + "description": "Creates a new in-app product for an app.", + "parameters": { + "autoConvertMissingPrices": { + "type": "boolean", + "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", + "location": "query" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName" + ], + "request": { + "$ref": "InAppProduct" + }, + "response": { + "$ref": "InAppProduct" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "androidpublisher.inappproducts.list", + "path": "{packageName}/inappproducts", + "httpMethod": "GET", + "description": "List all the in-app products for an Android app, both subscriptions and managed in-app products..", + "parameters": { + "maxResults": { + "type": "integer", + "format": "uint32", + "location": "query" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app with in-app products; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "integer", + "format": "uint32", + "location": "query" + }, + "token": { + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "packageName" + ], + "response": { + "$ref": "InappproductsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "androidpublisher.inappproducts.patch", + "path": "{packageName}/inappproducts/{sku}", + "httpMethod": "PATCH", + "description": "Updates the details of an in-app product. This method supports patch semantics.", + "parameters": { + "autoConvertMissingPrices": { + "type": "boolean", + "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", + "location": "query" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app with the in-app product; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "sku": { + "type": "string", + "description": "Unique identifier for the in-app product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "sku" + ], + "request": { + "$ref": "InAppProduct" + }, + "response": { + "$ref": "InAppProduct" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "androidpublisher.inappproducts.update", + "path": "{packageName}/inappproducts/{sku}", + "httpMethod": "PUT", + "description": "Updates the details of an in-app product.", + "parameters": { + "autoConvertMissingPrices": { + "type": "boolean", + "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", + "location": "query" + }, + "packageName": { + "type": "string", + "description": "Unique identifier for the Android app with the in-app product; for example, \"com.spiffygame\".", + "required": true, + "location": "path" + }, + "sku": { + "type": "string", + "description": "Unique identifier for the in-app product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "sku" + ], + "request": { + "$ref": "InAppProduct" + }, + "response": { + "$ref": "InAppProduct" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "purchases": { + "resources": { + "products": { + "methods": { + "get": { + "id": "androidpublisher.purchases.products.get", + "path": "{packageName}/purchases/products/{productId}/tokens/{token}", + "httpMethod": "GET", + "description": "Checks the purchase and consumption status of an inapp item.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "productId": { + "type": "string", + "description": "The inapp product SKU (for example, 'com.some.thing.inapp1').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the inapp product was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "productId", + "token" + ], + "response": { + "$ref": "ProductPurchase" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "subscriptions": { + "methods": { + "cancel": { + "id": "androidpublisher.purchases.subscriptions.cancel", + "path": "{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel", + "httpMethod": "POST", + "description": "Cancels a user's subscription purchase. The subscription remains valid until its expiration time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "defer": { + "id": "androidpublisher.purchases.subscriptions.defer", + "path": "{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer", + "httpMethod": "POST", + "description": "Defers a user's subscription purchase until a specified future expiration time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "request": { + "$ref": "SubscriptionPurchasesDeferRequest" + }, + "response": { + "$ref": "SubscriptionPurchasesDeferResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "androidpublisher.purchases.subscriptions.get", + "path": "{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}", + "httpMethod": "GET", + "description": "Checks whether a user's subscription purchase is valid and returns its expiry time.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "response": { + "$ref": "SubscriptionPurchase" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "refund": { + "id": "androidpublisher.purchases.subscriptions.refund", + "path": "{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund", + "httpMethod": "POST", + "description": "Refunds a user's subscription purchase, but the subscription remains valid until its expiration time and it will continue to recur.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "revoke": { + "id": "androidpublisher.purchases.subscriptions.revoke", + "path": "{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke", + "httpMethod": "POST", + "description": "Refunds and immediately revokes a user's subscription purchase. Access to the subscription will be terminated immediately and it will stop recurring.", + "parameters": { + "packageName": { + "type": "string", + "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "The purchased subscription ID (for example, 'monthly001').", + "required": true, + "location": "path" + }, + "token": { + "type": "string", + "description": "The token provided to the user's device when the subscription was purchased.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "packageName", + "subscriptionId", + "token" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } + } + } +} diff --git a/etc/api/appsactivity/v1/appsactivity-api.json b/etc/api/appsactivity/v1/appsactivity-api.json new file mode 100644 index 0000000000..a3d9f88413 --- /dev/null +++ b/etc/api/appsactivity/v1/appsactivity-api.json @@ -0,0 +1,473 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/ctDJuvwARuvWdxppTAPJ3B-E-pc\"", + "discoveryVersion": "v1", + "id": "appsactivity:v1", + "name": "appsactivity", + "version": "v1", + "revision": "20140828", + "title": "Google Apps Activity API", + "description": "Provides a historical view of activity.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/activity/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/appsactivity/v1/", + "basePath": "/appsactivity/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "appsactivity/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/activity": { + "description": "View the activity history of your Google Apps" + }, + "https://www.googleapis.com/auth/drive": { + "description": "View and manage the files in your Google Drive" + }, + "https://www.googleapis.com/auth/drive.metadata.readonly": { + "description": "View metadata for files in your Google Drive" + }, + "https://www.googleapis.com/auth/drive.readonly": { + "description": "View the files in your Google Drive" + } + } + } + }, + "schemas": { + "Activity": { + "id": "Activity", + "type": "object", + "description": "An Activity resource is a combined view of multiple events. An activity has a list of individual events and a combined view of the common fields among all events.", + "properties": { + "combinedEvent": { + "$ref": "Event", + "description": "The fields common to all of the singleEvents that make up the Activity." + }, + "singleEvents": { + "type": "array", + "description": "A list of all the Events that make up the Activity.", + "items": { + "$ref": "Event" + } + } + } + }, + "Event": { + "id": "Event", + "type": "object", + "description": "Represents the changes associated with an action taken by a user.", + "properties": { + "additionalEventTypes": { + "type": "array", + "description": "Additional event types. Some events may have multiple types when multiple actions are part of a single event. For example, creating a document, renaming it, and sharing it may be part of a single file-creation event.", + "items": { + "type": "string", + "enum": [ + "comment", + "create", + "edit", + "emptyTrash", + "move", + "permissionChange", + "rename", + "trash", + "unknown", + "untrash", + "upload" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "eventTimeMillis": { + "type": "string", + "description": "The time at which the event occurred formatted as Unix time in milliseconds.", + "format": "uint64" + }, + "fromUserDeletion": { + "type": "boolean", + "description": "Whether this event is caused by a user being deleted." + }, + "move": { + "$ref": "Move", + "description": "Extra information for move type events, such as changes in an object's parents." + }, + "permissionChanges": { + "type": "array", + "description": "Extra information for permissionChange type events, such as the user or group the new permission applies to.", + "items": { + "$ref": "PermissionChange" + } + }, + "primaryEventType": { + "type": "string", + "description": "The main type of event that occurred.", + "enum": [ + "comment", + "create", + "edit", + "emptyTrash", + "move", + "permissionChange", + "rename", + "trash", + "unknown", + "untrash", + "upload" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "rename": { + "$ref": "Rename", + "description": "Extra information for rename type events, such as the old and new names." + }, + "target": { + "$ref": "Target", + "description": "Information specific to the Target object modified by the event." + }, + "user": { + "$ref": "User", + "description": "Represents the user responsible for the event." + } + } + }, + "ListActivitiesResponse": { + "id": "ListActivitiesResponse", + "type": "object", + "description": "The response from the list request. Contains a list of activities and a token to retrieve the next page of results.", + "properties": { + "activities": { + "type": "array", + "description": "List of activities.", + "items": { + "$ref": "Activity" + } + }, + "nextPageToken": { + "type": "string", + "description": "Token for the next page of results." + } + } + }, + "Move": { + "id": "Move", + "type": "object", + "description": "Contains information about changes in an object's parents as a result of a move type event.", + "properties": { + "addedParents": { + "type": "array", + "description": "The added parent(s).", + "items": { + "$ref": "Parent" + } + }, + "removedParents": { + "type": "array", + "description": "The removed parent(s).", + "items": { + "$ref": "Parent" + } + } + } + }, + "Parent": { + "id": "Parent", + "type": "object", + "description": "Contains information about a parent object. For example, a folder in Drive is a parent for all files within it.", + "properties": { + "id": { + "type": "string", + "description": "The parent's ID." + }, + "isRoot": { + "type": "boolean", + "description": "Whether this is the root folder." + }, + "title": { + "type": "string", + "description": "The parent's title." + } + } + }, + "Permission": { + "id": "Permission", + "type": "object", + "description": "Contains information about the permissions and type of access allowed with regards to a Google Drive object. This is a subset of the fields contained in a corresponding Drive Permissions object.", + "properties": { + "name": { + "type": "string", + "description": "The name of the user or group the permission applies to." + }, + "permissionId": { + "type": "string", + "description": "The ID for this permission. Corresponds to the Drive API's permission ID returned as part of the Drive Permissions resource." + }, + "role": { + "type": "string", + "description": "Indicates the Google Drive permissions role. The role determines a user's ability to read, write, or comment on the file.", + "enum": [ + "commenter", + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "type": { + "type": "string", + "description": "Indicates how widely permissions are granted.", + "enum": [ + "anyone", + "domain", + "group", + "user" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "user": { + "$ref": "User", + "description": "The user's information if the type is USER." + }, + "withLink": { + "type": "boolean", + "description": "Whether the permission requires a link to the file." + } + } + }, + "PermissionChange": { + "id": "PermissionChange", + "type": "object", + "description": "Contains information about a Drive object's permissions that changed as a result of a permissionChange type event.", + "properties": { + "addedPermissions": { + "type": "array", + "description": "Lists all Permission objects added.", + "items": { + "$ref": "Permission" + } + }, + "removedPermissions": { + "type": "array", + "description": "Lists all Permission objects removed.", + "items": { + "$ref": "Permission" + } + } + } + }, + "Photo": { + "id": "Photo", + "type": "object", + "description": "Photo information for a user.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the photo." + } + } + }, + "Rename": { + "id": "Rename", + "type": "object", + "description": "Contains information about a renametype event.", + "properties": { + "newTitle": { + "type": "string", + "description": "The new title." + }, + "oldTitle": { + "type": "string", + "description": "The old title." + } + } + }, + "Target": { + "id": "Target", + "type": "object", + "description": "Information about the object modified by the event.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the target. For example, in Google Drive, this is the file or folder ID." + }, + "mimeType": { + "type": "string", + "description": "The MIME type of the target." + }, + "name": { + "type": "string", + "description": "The name of the target. For example, in Google Drive, this is the title of the file." + } + } + }, + "User": { + "id": "User", + "type": "object", + "description": "A representation of a user.", + "properties": { + "name": { + "type": "string", + "description": "The displayable name of the user." + }, + "photo": { + "$ref": "Photo", + "description": "The profile photo of the user." + } + } + } + }, + "resources": { + "activities": { + "methods": { + "list": { + "id": "appsactivity.activities.list", + "path": "activities", + "httpMethod": "GET", + "description": "Returns a list of activities visible to the current logged in user. Visible activities are determined by the visiblity settings of the object that was acted on, e.g. Drive files a user can see. An activity is a record of past events. Multiple events may be merged if they are similar. A request is scoped to activities from a given Google service using the source parameter.", + "parameters": { + "drive.ancestorId": { + "type": "string", + "description": "Identifies the Drive folder containing the items for which to return activities.", + "location": "query" + }, + "drive.fileId": { + "type": "string", + "description": "Identifies the Drive item to return activities for.", + "location": "query" + }, + "groupingStrategy": { + "type": "string", + "description": "Indicates the strategy to use when grouping singleEvents items in the associated combinedEvent object.", + "default": "driveUi", + "enum": [ + "driveUi", + "none" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of events to return on a page. The response includes a continuation token if there are more events.", + "default": "50", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A token to retrieve a specific page of results.", + "location": "query" + }, + "source": { + "type": "string", + "description": "The Google service from which to return activities. Possible values of source are: \n- drive.google.com", + "location": "query" + }, + "userId": { + "type": "string", + "description": "Indicates the user to return activity for. Use the special value me to indicate the currently authenticated user.", + "default": "me", + "location": "query" + } + }, + "response": { + "$ref": "ListActivitiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/activity", + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.metadata.readonly", + "https://www.googleapis.com/auth/drive.readonly" + ] + } + } + } + } +} diff --git a/etc/api/appstate/v1/appstate-api.json b/etc/api/appstate/v1/appstate-api.json new file mode 100644 index 0000000000..f46cac782d --- /dev/null +++ b/etc/api/appstate/v1/appstate-api.json @@ -0,0 +1,307 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/fq2tcHmUUpw0BqgyQT2jiNE1XgU\"", + "discoveryVersion": "v1", + "id": "appstate:v1", + "name": "appstate", + "canonicalName": "App State", + "version": "v1", + "revision": "20150119", + "title": "Google App State API", + "description": "The Google App State API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/games/services/web/api/states", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/appstate/v1/", + "basePath": "/appstate/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "appstate/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/appstate": { + "description": "View and manage your data for this application" + } + } + } + }, + "schemas": { + "GetResponse": { + "id": "GetResponse", + "type": "object", + "description": "This is a JSON template for an app state resource.", + "properties": { + "currentStateVersion": { + "type": "string", + "description": "The current app state version." + }, + "data": { + "type": "string", + "description": "The requested data." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string appstate#getResponse.", + "default": "appstate#getResponse" + }, + "stateKey": { + "type": "integer", + "description": "The key for the data.", + "format": "int32" + } + } + }, + "ListResponse": { + "id": "ListResponse", + "type": "object", + "description": "This is a JSON template to convert a list-response for app state.", + "properties": { + "items": { + "type": "array", + "description": "The app state data.", + "items": { + "$ref": "GetResponse" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string appstate#listResponse.", + "default": "appstate#listResponse" + }, + "maximumKeyCount": { + "type": "integer", + "description": "The maximum number of keys allowed for this user.", + "format": "int32" + } + } + }, + "UpdateRequest": { + "id": "UpdateRequest", + "type": "object", + "description": "This is a JSON template for a requests which update app state", + "properties": { + "data": { + "type": "string", + "description": "The new app state data that your application is trying to update with." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string appstate#updateRequest.", + "default": "appstate#updateRequest" + } + } + }, + "WriteResult": { + "id": "WriteResult", + "type": "object", + "description": "This is a JSON template for an app state write result.", + "properties": { + "currentStateVersion": { + "type": "string", + "description": "The version of the data for this key on the server." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string appstate#writeResult.", + "default": "appstate#writeResult" + }, + "stateKey": { + "type": "integer", + "description": "The written key.", + "format": "int32" + } + } + } + }, + "resources": { + "states": { + "methods": { + "clear": { + "id": "appstate.states.clear", + "path": "states/{stateKey}/clear", + "httpMethod": "POST", + "description": "Clears (sets to empty) the data for the passed key if and only if the passed version matches the currently stored version. This method results in a conflict error on version mismatch.", + "parameters": { + "currentDataVersion": { + "type": "string", + "description": "The version of the data to be cleared. Version strings are returned by the server.", + "location": "query" + }, + "stateKey": { + "type": "integer", + "description": "The key for the data to be retrieved.", + "required": true, + "format": "int32", + "minimum": "0", + "maximum": "3", + "location": "path" + } + }, + "parameterOrder": [ + "stateKey" + ], + "response": { + "$ref": "WriteResult" + }, + "scopes": [ + "https://www.googleapis.com/auth/appstate" + ] + }, + "delete": { + "id": "appstate.states.delete", + "path": "states/{stateKey}", + "httpMethod": "DELETE", + "description": "Deletes a key and the data associated with it. The key is removed and no longer counts against the key quota. Note that since this method is not safe in the face of concurrent modifications, it should only be used for development and testing purposes. Invoking this method in shipping code can result in data loss and data corruption.", + "parameters": { + "stateKey": { + "type": "integer", + "description": "The key for the data to be retrieved.", + "required": true, + "format": "int32", + "minimum": "0", + "maximum": "3", + "location": "path" + } + }, + "parameterOrder": [ + "stateKey" + ], + "scopes": [ + "https://www.googleapis.com/auth/appstate" + ] + }, + "get": { + "id": "appstate.states.get", + "path": "states/{stateKey}", + "httpMethod": "GET", + "description": "Retrieves the data corresponding to the passed key. If the key does not exist on the server, an HTTP 404 will be returned.", + "parameters": { + "stateKey": { + "type": "integer", + "description": "The key for the data to be retrieved.", + "required": true, + "format": "int32", + "minimum": "0", + "maximum": "3", + "location": "path" + } + }, + "parameterOrder": [ + "stateKey" + ], + "response": { + "$ref": "GetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appstate" + ] + }, + "list": { + "id": "appstate.states.list", + "path": "states", + "httpMethod": "GET", + "description": "Lists all the states keys, and optionally the state data.", + "parameters": { + "includeData": { + "type": "boolean", + "description": "Whether to include the full data in addition to the version number", + "default": "false", + "location": "query" + } + }, + "response": { + "$ref": "ListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appstate" + ] + }, + "update": { + "id": "appstate.states.update", + "path": "states/{stateKey}", + "httpMethod": "PUT", + "description": "Update the data associated with the input key if and only if the passed version matches the currently stored version. This method is safe in the face of concurrent writes. Maximum per-key size is 128KB.", + "parameters": { + "currentStateVersion": { + "type": "string", + "description": "The version of the app state your application is attempting to update. If this does not match the current version, this method will return a conflict error. If there is no data stored on the server for this key, the update will succeed irrespective of the value of this parameter.", + "location": "query" + }, + "stateKey": { + "type": "integer", + "description": "The key for the data to be retrieved.", + "required": true, + "format": "int32", + "minimum": "0", + "maximum": "3", + "location": "path" + } + }, + "parameterOrder": [ + "stateKey" + ], + "request": { + "$ref": "UpdateRequest" + }, + "response": { + "$ref": "WriteResult" + }, + "scopes": [ + "https://www.googleapis.com/auth/appstate" + ] + } + } + } + } +} diff --git a/etc/api/audit/v1/audit-api.json b/etc/api/audit/v1/audit-api.json new file mode 100644 index 0000000000..d7e3af16e0 --- /dev/null +++ b/etc/api/audit/v1/audit-api.json @@ -0,0 +1,288 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/WETM6oPOB_u6tVJCuBP1DDIWlEg\"", + "discoveryVersion": "v1", + "id": "audit:v1", + "name": "audit", + "version": "v1", + "revision": "20130108", + "title": "Enterprise Audit API", + "description": "Lets you access user activities in your enterprise made through various applications.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/admin-audit/get_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/apps/reporting/audit/v1/", + "basePath": "/apps/reporting/audit/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "apps/reporting/audit/v1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "atom", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/atom+xml", + "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": { + "Activities": { + "id": "Activities", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Each record in read response.", + "items": { + "$ref": "Activity" + } + }, + "kind": { + "type": "string", + "description": "Kind of list response this is.", + "default": "audit#activities" + }, + "next": { + "type": "string", + "description": "Next page URL." + } + } + }, + "Activity": { + "id": "Activity", + "type": "object", + "properties": { + "actor": { + "type": "object", + "description": "User doing the action.", + "properties": { + "applicationId": { + "type": "string", + "description": "ID of application which interacted on behalf of the user.", + "format": "int64" + }, + "callerType": { + "type": "string", + "description": "User or OAuth 2LO request." + }, + "email": { + "type": "string", + "description": "Email address of the user." + }, + "key": { + "type": "string", + "description": "For OAuth 2LO API requests, consumer_key of the requestor." + } + } + }, + "events": { + "type": "array", + "description": "Activity events.", + "items": { + "type": "object", + "properties": { + "eventType": { + "type": "string", + "description": "Type of event." + }, + "name": { + "type": "string", + "description": "Name of event." + }, + "parameters": { + "type": "array", + "description": "Event parameters.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the parameter." + }, + "value": { + "type": "string", + "description": "Value of the parameter." + } + } + } + } + } + } + }, + "id": { + "type": "object", + "description": "Unique identifier for each activity record.", + "properties": { + "applicationId": { + "type": "string", + "description": "Application ID of the source application.", + "format": "int64" + }, + "customerId": { + "type": "string", + "description": "Obfuscated customer ID of the source customer." + }, + "time": { + "type": "string", + "description": "Time of occurrence of the activity.", + "format": "date-time" + }, + "uniqQualifier": { + "type": "string", + "description": "Unique qualifier if multiple events have the same time.", + "format": "int64" + } + } + }, + "ipAddress": { + "type": "string", + "description": "IP Address of the user doing the action." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is.", + "default": "audit#activity" + }, + "ownerDomain": { + "type": "string", + "description": "Domain of source customer." + } + } + } + }, + "resources": { + "activities": { + "methods": { + "list": { + "id": "audit.activities.list", + "path": "{customerId}/{applicationId}", + "httpMethod": "GET", + "description": "Retrieves a list of activities for a specific customer and application.", + "parameters": { + "actorApplicationId": { + "type": "string", + "description": "Application ID of the application which interacted on behalf of the user while performing the event.", + "format": "int64", + "location": "query" + }, + "actorEmail": { + "type": "string", + "description": "Email address of the user who performed the action.", + "location": "query" + }, + "actorIpAddress": { + "type": "string", + "description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.", + "location": "query" + }, + "applicationId": { + "type": "string", + "description": "Application ID of the application on which the event was performed.", + "required": true, + "format": "int64", + "location": "path" + }, + "caller": { + "type": "string", + "description": "Type of the caller.", + "enum": [ + "application_owner", + "customer" + ], + "enumDescriptions": [ + "Caller is an application owner.", + "Caller is a customer." + ], + "location": "query" + }, + "continuationToken": { + "type": "string", + "description": "Next page URL.", + "location": "query" + }, + "customerId": { + "type": "string", + "description": "Represents the customer who is the owner of target object on which action was performed.", + "required": true, + "pattern": "C.+", + "location": "path" + }, + "endTime": { + "type": "string", + "description": "Return events which occured at or before this time.", + "location": "query" + }, + "eventName": { + "type": "string", + "description": "Name of the event being queried.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Number of activity records to be shown in each page.", + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "startTime": { + "type": "string", + "description": "Return events which occured at or after this time.", + "location": "query" + } + }, + "parameterOrder": [ + "customerId", + "applicationId" + ], + "response": { + "$ref": "Activities" + } + } + } + } + } +} diff --git a/etc/api/autoscaler/v1beta2/autoscaler-api.json b/etc/api/autoscaler/v1beta2/autoscaler-api.json new file mode 100644 index 0000000000..d6f1681790 --- /dev/null +++ b/etc/api/autoscaler/v1beta2/autoscaler-api.json @@ -0,0 +1,891 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/XUQeU-cuoYjCkXsmRMDCIykBSb0\"", + "discoveryVersion": "v1", + "id": "autoscaler:v1beta2", + "name": "autoscaler", + "version": "v1beta2", + "revision": "20141213", + "title": "Google Compute Engine Autoscaler API", + "description": "The Google Compute Engine Autoscaler API provides autoscaling for groups of Cloud VMs.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "http://developers.google.com/compute/docs/autoscaler", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/autoscaler/v1beta2/", + "basePath": "/autoscaler/v1beta2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "autoscaler/v1beta2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + } + } + } + }, + "schemas": { + "Autoscaler": { + "id": "Autoscaler", + "type": "object", + "description": "Cloud Autoscaler resource.", + "properties": { + "autoscalingPolicy": { + "$ref": "AutoscalingPolicy", + "description": "Configuration parameters for autoscaling algorithm." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource provided by the client." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#autoscaler" + }, + "name": { + "type": "string", + "description": "Name of the Autoscaler resource. Must be unique per project and zone." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] A self-link to the Autoscaler configuration resource." + }, + "target": { + "type": "string", + "description": "URL to the entity which will be autoscaled. Currently the only supported value is ReplicaPool?s URL. Note: it is illegal to specify multiple Autoscalers for the same target." + } + } + }, + "AutoscalerListResponse": { + "id": "AutoscalerListResponse", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Autoscaler resources.", + "items": { + "$ref": "Autoscaler" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#autoscalerList" + }, + "nextPageToken": { + "type": "string", + "description": "[Output only] A token used to continue a truncated list request." + } + } + }, + "AutoscalingPolicy": { + "id": "AutoscalingPolicy", + "type": "object", + "description": "Cloud Autoscaler policy.", + "properties": { + "coolDownPeriodSec": { + "type": "integer", + "description": "The number of seconds that the Autoscaler should wait between two succeeding changes to the number of virtual machines. You should define an interval that is at least as long as the initialization time of a virtual machine and the time it may take for replica pool to create the virtual machine. The default is 60 seconds.", + "format": "int32" + }, + "cpuUtilization": { + "$ref": "AutoscalingPolicyCpuUtilization", + "description": "Exactly one utilization policy should be provided. Configuration parameters of CPU based autoscaling policy." + }, + "customMetricUtilizations": { + "type": "array", + "description": "Configuration parameters of autoscaling based on custom metric.", + "items": { + "$ref": "AutoscalingPolicyCustomMetricUtilization" + } + }, + "loadBalancingUtilization": { + "$ref": "AutoscalingPolicyLoadBalancingUtilization", + "description": "Configuration parameters of autoscaling based on load balancer." + }, + "maxNumReplicas": { + "type": "integer", + "description": "The maximum number of replicas that the Autoscaler can scale up to.", + "format": "int32" + }, + "minNumReplicas": { + "type": "integer", + "description": "The minimum number of replicas that the Autoscaler can scale down to.", + "format": "int32" + } + } + }, + "AutoscalingPolicyCpuUtilization": { + "id": "AutoscalingPolicyCpuUtilization", + "type": "object", + "description": "CPU utilization policy.", + "properties": { + "utilizationTarget": { + "type": "number", + "description": "The target utilization that the Autoscaler should maintain. It is represented as a fraction of used cores. For example: 6 cores used in 8-core VM are represented here as 0.75. Must be a float value between (0, 1]. If not defined, the default is 0.8.", + "format": "double" + } + } + }, + "AutoscalingPolicyCustomMetricUtilization": { + "id": "AutoscalingPolicyCustomMetricUtilization", + "type": "object", + "description": "Custom utilization metric policy.", + "properties": { + "metric": { + "type": "string", + "description": "Identifier of the metric. It should be a Cloud Monitoring metric. The metric can not have negative values. The metric should be an utilization metric (increasing number of VMs handling requests x times should reduce average value of the metric roughly x times). For example you could use: compute.googleapis.com/instance/network/received_bytes_count." + }, + "utilizationTarget": { + "type": "number", + "description": "Target value of the metric which Autoscaler should maintain. Must be a positive value.", + "format": "double" + }, + "utilizationTargetType": { + "type": "string", + "description": "Defines type in which utilization_target is expressed." + } + } + }, + "AutoscalingPolicyLoadBalancingUtilization": { + "id": "AutoscalingPolicyLoadBalancingUtilization", + "type": "object", + "description": "Load balancing utilization policy.", + "properties": { + "utilizationTarget": { + "type": "number", + "description": "Fraction of backend capacity utilization (set in HTTP load balancing configuration) that Autoscaler should maintain. Must be a positive float value. If not defined, the default is 0.8. For example if your maxRatePerInstance capacity (in HTTP Load Balancing configuration) is set at 10 and you would like to keep number of instances such that each instance receives 7 QPS on average, set this to 0.7.", + "format": "double" + } + } + }, + "DeprecationStatus": { + "id": "DeprecationStatus", + "type": "object", + "properties": { + "deleted": { + "type": "string" + }, + "deprecated": { + "type": "string" + }, + "obsolete": { + "type": "string" + }, + "replacement": { + "type": "string" + }, + "state": { + "type": "string" + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "properties": { + "clientOperationId": { + "type": "string" + }, + "creationTimestamp": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "error": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "location": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string" + }, + "httpErrorStatusCode": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string", + "format": "uint64" + }, + "insertTime": { + "type": "string" + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always kind#operation for Operation resources.", + "default": "autoscaler#operation" + }, + "name": { + "type": "string" + }, + "operationType": { + "type": "string" + }, + "progress": { + "type": "integer", + "format": "int32" + }, + "region": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + }, + "statusMessage": { + "type": "string" + }, + "targetId": { + "type": "string", + "format": "uint64" + }, + "targetLink": { + "type": "string" + }, + "user": { + "type": "string" + }, + "warnings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "message": { + "type": "string" + } + } + } + }, + "zone": { + "type": "string" + } + } + }, + "OperationList": { + "id": "OperationList", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "Operation" + } + }, + "kind": { + "type": "string", + "description": "Type of resource. Always compute#operations for Operations resource.", + "default": "autoscaler#operationList" + }, + "nextPageToken": { + "type": "string" + }, + "selfLink": { + "type": "string" + } + } + }, + "Zone": { + "id": "Zone", + "type": "object", + "properties": { + "creationTimestamp": { + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "autoscaler#zone" + }, + "maintenanceWindows": { + "type": "array", + "items": { + "type": "object", + "properties": { + "beginTime": { + "type": "string" + }, + "description": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "status": { + "type": "string" + } + } + }, + "ZoneList": { + "id": "ZoneList", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "Zone" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "autoscaler#zoneList" + }, + "nextPageToken": { + "type": "string" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + } + }, + "resources": { + "autoscalers": { + "methods": { + "delete": { + "id": "autoscaler.autoscalers.delete", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "DELETE", + "description": "Deletes the specified Autoscaler resource.", + "parameters": { + "autoscaler": { + "type": "string", + "description": "Name of the Autoscaler resource.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "autoscaler.autoscalers.get", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "GET", + "description": "Gets the specified Autoscaler resource.", + "parameters": { + "autoscaler": { + "type": "string", + "description": "Name of the Autoscaler resource.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "response": { + "$ref": "Autoscaler" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "autoscaler.autoscalers.insert", + "path": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "POST", + "description": "Adds new Autoscaler resource.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "autoscaler.autoscalers.list", + "path": "projects/{project}/zones/{zone}/autoscalers", + "httpMethod": "GET", + "description": "Lists all Autoscaler resources in this zone.", + "parameters": { + "filter": { + "type": "string", + "location": "query" + }, + "maxResults": { + "type": "integer", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "AutoscalerListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "autoscaler.autoscalers.patch", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "PATCH", + "description": "Update the entire content of the Autoscaler resource. This method supports patch semantics.", + "parameters": { + "autoscaler": { + "type": "string", + "description": "Name of the Autoscaler resource.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute" + ] + }, + "update": { + "id": "autoscaler.autoscalers.update", + "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}", + "httpMethod": "PUT", + "description": "Update the entire content of the Autoscaler resource.", + "parameters": { + "autoscaler": { + "type": "string", + "description": "Name of the Autoscaler resource.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of Autoscaler resource.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "Zone name of Autoscaler resource.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "autoscaler" + ], + "request": { + "$ref": "Autoscaler" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zoneOperations": { + "methods": { + "delete": { + "id": "autoscaler.zoneOperations.delete", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "DELETE", + "description": "Deletes the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "autoscaler.zoneOperations.get", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "autoscaler.zoneOperations.list", + "path": "{project}/zones/{zone}/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "location": "query" + }, + "maxResults": { + "type": "integer", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "zones": { + "methods": { + "list": { + "id": "autoscaler.zones.list", + "path": "{project}/zones", + "httpMethod": "GET", + "description": "", + "parameters": { + "filter": { + "type": "string", + "location": "query" + }, + "maxResults": { + "type": "integer", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + } + } +} diff --git a/etc/api/bigquery/v2/bigquery-api.json b/etc/api/bigquery/v2/bigquery-api.json new file mode 100644 index 0000000000..7d3ae413e7 --- /dev/null +++ b/etc/api/bigquery/v2/bigquery-api.json @@ -0,0 +1,2116 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/obZ6DzO3dJZ3dBfZd8bmlNVgqVs\"", + "discoveryVersion": "v1", + "id": "bigquery:v2", + "name": "bigquery", + "version": "v2", + "revision": "20150209", + "title": "BigQuery API", + "description": "A data platform for customers to create, manage, share and query data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/search-16.gif", + "x32": "https://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/bigquery/docs/overview", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/bigquery/v2/", + "basePath": "/bigquery/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "bigquery/v2/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/bigquery": { + "description": "View and manage your data in Google BigQuery" + }, + "https://www.googleapis.com/auth/bigquery.insertdata": { + "description": "Insert data into Google BigQuery" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + } + } + } + }, + "schemas": { + "Dataset": { + "id": "Dataset", + "type": "object", + "properties": { + "access": { + "type": "array", + "description": "[Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;", + "items": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "[Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: \"example.com\"." + }, + "groupByEmail": { + "type": "string", + "description": "[Pick one] An email address of a Google Group to grant access to." + }, + "role": { + "type": "string", + "description": "[Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER." + }, + "specialGroup": { + "type": "string", + "description": "[Pick one] A special group to grant access to. Possible values include: projectOwners: Owners of the enclosing project. projectReaders: Readers of the enclosing project. projectWriters: Writers of the enclosing project. allAuthenticatedUsers: All authenticated BigQuery users." + }, + "userByEmail": { + "type": "string", + "description": "[Pick one] An email address of a user to grant access to. For example: fred@example.com." + }, + "view": { + "$ref": "TableReference", + "description": "[Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation." + } + } + } + }, + "creationTime": { + "type": "string", + "description": "[Output-only] The time when this dataset was created, in milliseconds since the epoch.", + "format": "int64" + }, + "datasetReference": { + "$ref": "DatasetReference", + "description": "[Required] A reference that identifies the dataset." + }, + "description": { + "type": "string", + "description": "[Optional] A user-friendly description of the dataset." + }, + "etag": { + "type": "string", + "description": "[Output-only] A hash of the resource." + }, + "friendlyName": { + "type": "string", + "description": "[Optional] A descriptive name for the dataset." + }, + "id": { + "type": "string", + "description": "[Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field." + }, + "kind": { + "type": "string", + "description": "[Output-only] The resource type.", + "default": "bigquery#dataset" + }, + "lastModifiedTime": { + "type": "string", + "description": "[Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.", + "format": "int64" + }, + "selfLink": { + "type": "string", + "description": "[Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource." + } + } + }, + "DatasetList": { + "id": "DatasetList", + "type": "object", + "properties": { + "datasets": { + "type": "array", + "description": "An array of the dataset resources in the project. Each resource contains basic information. For full information about a particular dataset resource, use the Datasets: get method. This property is omitted when there are no datasets in the project.", + "items": { + "type": "object", + "properties": { + "datasetReference": { + "$ref": "DatasetReference", + "description": "The dataset reference. Use this property to access specific parts of the dataset's ID, such as project ID or dataset ID." + }, + "friendlyName": { + "type": "string", + "description": "A descriptive name for the dataset, if one exists." + }, + "id": { + "type": "string", + "description": "The fully-qualified, unique, opaque ID of the dataset." + }, + "kind": { + "type": "string", + "description": "The resource type. This property always returns the value \"bigquery#dataset\".", + "default": "bigquery#dataset" + } + } + } + }, + "etag": { + "type": "string", + "description": "A hash value of the results page. You can use this property to determine if the page has changed since the last request." + }, + "kind": { + "type": "string", + "description": "The list type. This property always returns the value \"bigquery#datasetList\".", + "default": "bigquery#datasetList" + }, + "nextPageToken": { + "type": "string", + "description": "A token that can be used to request the next results page. This property is omitted on the final results page." + } + } + }, + "DatasetReference": { + "id": "DatasetReference", + "type": "object", + "properties": { + "datasetId": { + "type": "string", + "description": "[Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", + "annotations": { + "required": [ + "bigquery.datasets.update" + ] + } + }, + "projectId": { + "type": "string", + "description": "[Optional] The ID of the project containing this dataset.", + "annotations": { + "required": [ + "bigquery.datasets.update" + ] + } + } + } + }, + "ErrorProto": { + "id": "ErrorProto", + "type": "object", + "properties": { + "debugInfo": { + "type": "string", + "description": "Debugging information. This property is internal to Google and should not be used." + }, + "location": { + "type": "string", + "description": "Specifies where the error occurred, if present." + }, + "message": { + "type": "string", + "description": "A human-readable description of the error." + }, + "reason": { + "type": "string", + "description": "A short error code that summarizes the error." + } + } + }, + "GetQueryResultsResponse": { + "id": "GetQueryResultsResponse", + "type": "object", + "properties": { + "cacheHit": { + "type": "boolean", + "description": "Whether the query result was fetched from the query cache." + }, + "etag": { + "type": "string", + "description": "A hash of this response." + }, + "jobComplete": { + "type": "boolean", + "description": "Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available." + }, + "jobReference": { + "$ref": "JobReference", + "description": "Reference to the BigQuery Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults)." + }, + "kind": { + "type": "string", + "description": "The resource type of the response.", + "default": "bigquery#getQueryResultsResponse" + }, + "pageToken": { + "type": "string", + "description": "A token used for paging results." + }, + "rows": { + "type": "array", + "description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above. Present only when the query completes successfully.", + "items": { + "$ref": "TableRow" + } + }, + "schema": { + "$ref": "TableSchema", + "description": "The schema of the results. Present only when the query completes successfully." + }, + "totalBytesProcessed": { + "type": "string", + "description": "The total number of bytes processed for this query.", + "format": "int64" + }, + "totalRows": { + "type": "string", + "description": "The total number of rows in the complete query result set, which can be more than the number of rows in this single page of results. Present only when the query completes successfully.", + "format": "uint64" + } + } + }, + "Job": { + "id": "Job", + "type": "object", + "properties": { + "configuration": { + "$ref": "JobConfiguration", + "description": "[Required] Describes the job configuration." + }, + "etag": { + "type": "string", + "description": "[Output-only] A hash of this resource." + }, + "id": { + "type": "string", + "description": "[Output-only] Opaque ID field of the job" + }, + "jobReference": { + "$ref": "JobReference", + "description": "[Optional] Reference describing the unique-per-user name of the job." + }, + "kind": { + "type": "string", + "description": "[Output-only] The type of the resource.", + "default": "bigquery#job" + }, + "selfLink": { + "type": "string", + "description": "[Output-only] A URL that can be used to access this resource again." + }, + "statistics": { + "$ref": "JobStatistics", + "description": "[Output-only] Information about the job, including starting time and ending time of the job." + }, + "status": { + "$ref": "JobStatus", + "description": "[Output-only] The status of this job. Examine this value when polling an asynchronous job to see if the job is complete." + }, + "user_email": { + "type": "string", + "description": "[Output-only] Email address of the user who ran the job." + } + } + }, + "JobConfiguration": { + "id": "JobConfiguration", + "type": "object", + "properties": { + "copy": { + "$ref": "JobConfigurationTableCopy", + "description": "[Pick one] Copies a table." + }, + "dryRun": { + "type": "boolean", + "description": "[Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined." + }, + "extract": { + "$ref": "JobConfigurationExtract", + "description": "[Pick one] Configures an extract job." + }, + "link": { + "$ref": "JobConfigurationLink", + "description": "[Pick one] Configures a link job." + }, + "load": { + "$ref": "JobConfigurationLoad", + "description": "[Pick one] Configures a load job." + }, + "query": { + "$ref": "JobConfigurationQuery", + "description": "[Pick one] Configures a query job." + } + } + }, + "JobConfigurationExtract": { + "id": "JobConfigurationExtract", + "type": "object", + "properties": { + "compression": { + "type": "string", + "description": "[Optional] The compression type to use for exported files. Possible values include GZIP and NONE. The default value is NONE." + }, + "destinationFormat": { + "type": "string", + "description": "[Optional] The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON and AVRO. The default value is CSV. Tables with nested or repeated fields cannot be exported as CSV." + }, + "destinationUri": { + "type": "string", + "description": "[Pick one] DEPRECATED: Use destinationUris instead, passing only one URI as necessary. The fully-qualified Google Cloud Storage URI where the extracted table should be written." + }, + "destinationUris": { + "type": "array", + "description": "[Pick one] A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.", + "items": { + "type": "string" + } + }, + "fieldDelimiter": { + "type": "string", + "description": "[Optional] Delimiter to use between fields in the exported data. Default is ','" + }, + "printHeader": { + "type": "boolean", + "description": "[Optional] Whether to print out a header row in the results. Default is true." + }, + "sourceTable": { + "$ref": "TableReference", + "description": "[Required] A reference to the table being exported." + } + } + }, + "JobConfigurationLink": { + "id": "JobConfigurationLink", + "type": "object", + "properties": { + "createDisposition": { + "type": "string", + "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion." + }, + "destinationTable": { + "$ref": "TableReference", + "description": "[Required] The destination table of the link job." + }, + "sourceUri": { + "type": "array", + "description": "[Required] URI of source table to link.", + "items": { + "type": "string" + } + }, + "writeDisposition": { + "type": "string", + "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion." + } + } + }, + "JobConfigurationLoad": { + "id": "JobConfigurationLoad", + "type": "object", + "properties": { + "allowJaggedRows": { + "type": "boolean", + "description": "[Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. Default is false which treats short rows as errors. Only applicable to CSV, ignored for other formats." + }, + "allowQuotedNewlines": { + "type": "boolean", + "description": "Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false." + }, + "createDisposition": { + "type": "string", + "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion." + }, + "destinationTable": { + "$ref": "TableReference", + "description": "[Required] The destination table to load the data into." + }, + "encoding": { + "type": "string", + "description": "[Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties." + }, + "fieldDelimiter": { + "type": "string", + "description": "[Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator. The default value is a comma (',')." + }, + "ignoreUnknownValues": { + "type": "boolean", + "description": "[Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false which treats unknown values as errors. For CSV this ignores extra values at the end of a line. For JSON this ignores named values that do not match any column name." + }, + "maxBadRecords": { + "type": "integer", + "description": "[Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an 'invalid' error is returned in the job result and the job fails. The default value is 0, which requires that all records are valid.", + "format": "int32" + }, + "projectionFields": { + "type": "array", + "description": "[Experimental] Names(case-sensitive) of properties to keep when importing data. If this is populated, only the specified properties will be imported for each entity. Currently, this is only supported for DATASTORE_BACKUP imports and only top level properties are supported. If any specified property is not found in the Datastore 'Kind' being imported, that is an error. Note: This feature is experimental and can change in the future.", + "items": { + "type": "string" + } + }, + "quote": { + "type": "string", + "description": "[Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true." + }, + "schema": { + "$ref": "TableSchema", + "description": "[Optional] The schema for the destination table. The schema can be omitted if the destination table already exists or if the schema can be inferred from the loaded data." + }, + "schemaInline": { + "type": "string", + "description": "[Deprecated] The inline schema. For CSV schemas, specify as \"Field1:Type1[,Field2:Type2]*\". For example, \"foo:STRING, bar:INTEGER, baz:FLOAT\"." + }, + "schemaInlineFormat": { + "type": "string", + "description": "[Deprecated] The format of the schemaInline property." + }, + "skipLeadingRows": { + "type": "integer", + "description": "[Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.", + "format": "int32" + }, + "sourceFormat": { + "type": "string", + "description": "[Optional] The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". The default value is CSV." + }, + "sourceUris": { + "type": "array", + "description": "[Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Wildcard names are only supported when they appear at the end of the URI.", + "items": { + "type": "string" + } + }, + "writeDisposition": { + "type": "string", + "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion." + } + } + }, + "JobConfigurationQuery": { + "id": "JobConfigurationQuery", + "type": "object", + "properties": { + "allowLargeResults": { + "type": "boolean", + "description": "If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set." + }, + "createDisposition": { + "type": "string", + "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion." + }, + "defaultDataset": { + "$ref": "DatasetReference", + "description": "[Optional] Specifies the default dataset to use for unqualified table names in the query." + }, + "destinationTable": { + "$ref": "TableReference", + "description": "[Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results." + }, + "flattenResults": { + "type": "boolean", + "description": "[Experimental] Flattens all nested and repeated fields in the query results. The default value is true. allowLargeResults must be true if this is set to false." + }, + "preserveNulls": { + "type": "boolean", + "description": "[Deprecated] This property is deprecated." + }, + "priority": { + "type": "string", + "description": "[Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE." + }, + "query": { + "type": "string", + "description": "[Required] BigQuery SQL query to execute." + }, + "useQueryCache": { + "type": "boolean", + "description": "[Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified." + }, + "writeDisposition": { + "type": "string", + "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion." + } + } + }, + "JobConfigurationTableCopy": { + "id": "JobConfigurationTableCopy", + "type": "object", + "properties": { + "createDisposition": { + "type": "string", + "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion." + }, + "destinationTable": { + "$ref": "TableReference", + "description": "[Required] The destination table" + }, + "sourceTable": { + "$ref": "TableReference", + "description": "[Pick one] Source table to copy." + }, + "sourceTables": { + "type": "array", + "description": "[Pick one] Source tables to copy.", + "items": { + "$ref": "TableReference" + } + }, + "writeDisposition": { + "type": "string", + "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion." + } + } + }, + "JobList": { + "id": "JobList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "A hash of this page of results." + }, + "jobs": { + "type": "array", + "description": "List of jobs that were requested.", + "items": { + "type": "object", + "properties": { + "configuration": { + "$ref": "JobConfiguration", + "description": "[Full-projection-only] Specifies the job configuration." + }, + "errorResult": { + "$ref": "ErrorProto", + "description": "A result object that will be present only if the job has failed." + }, + "id": { + "type": "string", + "description": "Unique opaque ID of the job." + }, + "jobReference": { + "$ref": "JobReference", + "description": "Job reference uniquely identifying the job." + }, + "kind": { + "type": "string", + "description": "The resource type.", + "default": "bigquery#job" + }, + "state": { + "type": "string", + "description": "Running state of the job. When the state is DONE, errorResult can be checked to determine whether the job succeeded or failed." + }, + "statistics": { + "$ref": "JobStatistics", + "description": "[Output-only] Information about the job, including starting time and ending time of the job." + }, + "status": { + "$ref": "JobStatus", + "description": "[Full-projection-only] Describes the state of the job." + }, + "user_email": { + "type": "string", + "description": "[Full-projection-only] Email address of the user who ran the job." + } + } + } + }, + "kind": { + "type": "string", + "description": "The resource type of the response.", + "default": "bigquery#jobList" + }, + "nextPageToken": { + "type": "string", + "description": "A token to request the next page of results." + }, + "totalItems": { + "type": "integer", + "description": "Total number of jobs in this collection.", + "format": "int32" + } + } + }, + "JobReference": { + "id": "JobReference", + "type": "object", + "properties": { + "jobId": { + "type": "string", + "description": "[Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.", + "annotations": { + "required": [ + "bigquery.jobs.getQueryResults" + ] + } + }, + "projectId": { + "type": "string", + "description": "[Required] The ID of the project containing this job.", + "annotations": { + "required": [ + "bigquery.jobs.getQueryResults" + ] + } + } + } + }, + "JobStatistics": { + "id": "JobStatistics", + "type": "object", + "properties": { + "creationTime": { + "type": "string", + "description": "[Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.", + "format": "int64" + }, + "endTime": { + "type": "string", + "description": "[Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.", + "format": "int64" + }, + "extract": { + "$ref": "JobStatistics4", + "description": "[Output-only] Statistics for an extract job." + }, + "load": { + "$ref": "JobStatistics3", + "description": "[Output-only] Statistics for a load job." + }, + "query": { + "$ref": "JobStatistics2", + "description": "[Output-only] Statistics for a query job." + }, + "startTime": { + "type": "string", + "description": "[Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.", + "format": "int64" + }, + "totalBytesProcessed": { + "type": "string", + "description": "[Output-only] [Deprecated] Use the bytes processed in the query statistics instead.", + "format": "int64" + } + } + }, + "JobStatistics2": { + "id": "JobStatistics2", + "type": "object", + "properties": { + "cacheHit": { + "type": "boolean", + "description": "[Output-only] Whether the query result was fetched from the query cache." + }, + "totalBytesProcessed": { + "type": "string", + "description": "[Output-only] Total bytes processed for this job.", + "format": "int64" + } + } + }, + "JobStatistics3": { + "id": "JobStatistics3", + "type": "object", + "properties": { + "inputFileBytes": { + "type": "string", + "description": "[Output-only] Number of bytes of source data in a joad job.", + "format": "int64" + }, + "inputFiles": { + "type": "string", + "description": "[Output-only] Number of source files in a load job.", + "format": "int64" + }, + "outputBytes": { + "type": "string", + "description": "[Output-only] Size of the loaded data in bytes. Note that while an import job is in the running state, this value may change.", + "format": "int64" + }, + "outputRows": { + "type": "string", + "description": "[Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.", + "format": "int64" + } + } + }, + "JobStatistics4": { + "id": "JobStatistics4", + "type": "object", + "properties": { + "destinationUriFileCounts": { + "type": "array", + "description": "[Experimental] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.", + "items": { + "type": "string", + "format": "int64" + } + } + } + }, + "JobStatus": { + "id": "JobStatus", + "type": "object", + "properties": { + "errorResult": { + "$ref": "ErrorProto", + "description": "[Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful." + }, + "errors": { + "type": "array", + "description": "[Output-only] All errors encountered during the running of the job. Errors here do not necessarily mean that the job has completed or was unsuccessful.", + "items": { + "$ref": "ErrorProto" + } + }, + "state": { + "type": "string", + "description": "[Output-only] Running state of the job." + } + } + }, + "JsonObject": { + "id": "JsonObject", + "type": "object", + "description": "Represents a single JSON object.", + "additionalProperties": { + "$ref": "JsonValue" + } + }, + "JsonValue": { + "id": "JsonValue", + "type": "any" + }, + "ProjectList": { + "id": "ProjectList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "A hash of the page of results" + }, + "kind": { + "type": "string", + "description": "The type of list.", + "default": "bigquery#projectList" + }, + "nextPageToken": { + "type": "string", + "description": "A token to request the next page of results." + }, + "projects": { + "type": "array", + "description": "Projects to which you have at least READ access.", + "items": { + "type": "object", + "properties": { + "friendlyName": { + "type": "string", + "description": "A descriptive name for this project." + }, + "id": { + "type": "string", + "description": "An opaque ID of this project." + }, + "kind": { + "type": "string", + "description": "The resource type.", + "default": "bigquery#project" + }, + "numericId": { + "type": "string", + "description": "The numeric ID of this project.", + "format": "uint64" + }, + "projectReference": { + "$ref": "ProjectReference", + "description": "A unique reference to this project." + } + } + } + }, + "totalItems": { + "type": "integer", + "description": "The total number of projects in the list.", + "format": "int32" + } + } + }, + "ProjectReference": { + "id": "ProjectReference", + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "[Required] ID of the project. Can be either the numeric ID or the assigned ID of the project." + } + } + }, + "QueryRequest": { + "id": "QueryRequest", + "type": "object", + "properties": { + "defaultDataset": { + "$ref": "DatasetReference", + "description": "[Optional] Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'." + }, + "dryRun": { + "type": "boolean", + "description": "[Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run." + }, + "kind": { + "type": "string", + "description": "The resource type of the request.", + "default": "bigquery#queryRequest" + }, + "maxResults": { + "type": "integer", + "description": "[Optional] The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.", + "format": "uint32" + }, + "preserveNulls": { + "type": "boolean", + "description": "[Deprecated] This property is deprecated." + }, + "query": { + "type": "string", + "description": "[Required] A query string, following the BigQuery query syntax, of the query to execute. Example: \"SELECT count(f1) FROM [myProjectId:myDatasetId.myTableId]\".", + "annotations": { + "required": [ + "bigquery.jobs.query" + ] + } + }, + "timeoutMs": { + "type": "integer", + "description": "[Optional] How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds).", + "format": "uint32" + }, + "useQueryCache": { + "type": "boolean", + "description": "[Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true." + } + } + }, + "QueryResponse": { + "id": "QueryResponse", + "type": "object", + "properties": { + "cacheHit": { + "type": "boolean", + "description": "Whether the query result was fetched from the query cache." + }, + "jobComplete": { + "type": "boolean", + "description": "Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available." + }, + "jobReference": { + "$ref": "JobReference", + "description": "Reference to the Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults)." + }, + "kind": { + "type": "string", + "description": "The resource type.", + "default": "bigquery#queryResponse" + }, + "pageToken": { + "type": "string", + "description": "A token used for paging results." + }, + "rows": { + "type": "array", + "description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above.", + "items": { + "$ref": "TableRow" + } + }, + "schema": { + "$ref": "TableSchema", + "description": "The schema of the results. Present only when the query completes successfully." + }, + "totalBytesProcessed": { + "type": "string", + "description": "The total number of bytes processed for this query. If this query was a dry run, this is the number of bytes that would be processed if the query were run.", + "format": "int64" + }, + "totalRows": { + "type": "string", + "description": "The total number of rows in the complete query result set, which can be more than the number of rows in this single page of results.", + "format": "uint64" + } + } + }, + "Table": { + "id": "Table", + "type": "object", + "properties": { + "creationTime": { + "type": "string", + "description": "[Output-only] The time when this table was created, in milliseconds since the epoch.", + "format": "int64" + }, + "description": { + "type": "string", + "description": "[Optional] A user-friendly description of this table." + }, + "etag": { + "type": "string", + "description": "[Output-only] A hash of this resource." + }, + "expirationTime": { + "type": "string", + "description": "[Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.", + "format": "int64" + }, + "friendlyName": { + "type": "string", + "description": "[Optional] A descriptive name for this table." + }, + "id": { + "type": "string", + "description": "[Output-only] An opaque ID uniquely identifying the table." + }, + "kind": { + "type": "string", + "description": "[Output-only] The type of the resource.", + "default": "bigquery#table" + }, + "lastModifiedTime": { + "type": "string", + "description": "[Output-only] The time when this table was last modified, in milliseconds since the epoch.", + "format": "uint64" + }, + "numBytes": { + "type": "string", + "description": "[Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.", + "format": "int64" + }, + "numRows": { + "type": "string", + "description": "[Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.", + "format": "uint64" + }, + "schema": { + "$ref": "TableSchema", + "description": "[Optional] Describes the schema of this table." + }, + "selfLink": { + "type": "string", + "description": "[Output-only] A URL that can be used to access this resource again." + }, + "tableReference": { + "$ref": "TableReference", + "description": "[Required] Reference describing the ID of this table." + }, + "type": { + "type": "string", + "description": "[Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. The default value is TABLE." + }, + "view": { + "$ref": "ViewDefinition", + "description": "[Optional] The view definition." + } + } + }, + "TableCell": { + "id": "TableCell", + "type": "object", + "description": "Represents a single cell in the result set. Users of the java client can detect whether their value result is null by calling 'com.google.api.client.util.Data.isNull(cell.getV())'.", + "properties": { + "v": { + "type": "any" + } + } + }, + "TableDataInsertAllRequest": { + "id": "TableDataInsertAllRequest", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The resource type of the response.", + "default": "bigquery#tableDataInsertAllRequest" + }, + "rows": { + "type": "array", + "description": "The rows to insert.", + "items": { + "type": "object", + "properties": { + "insertId": { + "type": "string", + "description": "[Optional] A unique ID for each row. BigQuery uses this property to detect duplicate insertion requests on a best-effort basis." + }, + "json": { + "$ref": "JsonObject", + "description": "[Required] A JSON object that contains a row of data. The object's properties and values must match the destination table's schema." + } + } + } + } + } + }, + "TableDataInsertAllResponse": { + "id": "TableDataInsertAllResponse", + "type": "object", + "properties": { + "insertErrors": { + "type": "array", + "description": "An array of errors for rows that were not inserted.", + "items": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Error information for the row indicated by the index property.", + "items": { + "$ref": "ErrorProto" + } + }, + "index": { + "type": "integer", + "description": "The index of the row that error applies to.", + "format": "uint32" + } + } + } + }, + "kind": { + "type": "string", + "description": "The resource type of the response.", + "default": "bigquery#tableDataInsertAllResponse" + } + } + }, + "TableDataList": { + "id": "TableDataList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "A hash of this page of results." + }, + "kind": { + "type": "string", + "description": "The resource type of the response.", + "default": "bigquery#tableDataList" + }, + "pageToken": { + "type": "string", + "description": "A token used for paging results. Providing this token instead of the startIndex parameter can help you retrieve stable results when an underlying table is changing." + }, + "rows": { + "type": "array", + "description": "Rows of results.", + "items": { + "$ref": "TableRow" + } + }, + "totalRows": { + "type": "string", + "description": "The total number of rows in the complete table.", + "format": "int64" + } + } + }, + "TableFieldSchema": { + "id": "TableFieldSchema", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "[Optional] The field description. The maximum length is 16K characters." + }, + "fields": { + "type": "array", + "description": "[Optional] Describes the nested schema fields if the type property is set to RECORD.", + "items": { + "$ref": "TableFieldSchema" + } + }, + "mode": { + "type": "string", + "description": "[Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE." + }, + "name": { + "type": "string", + "description": "[Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters." + }, + "type": { + "type": "string", + "description": "[Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema)." + } + } + }, + "TableList": { + "id": "TableList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "A hash of this page of results." + }, + "kind": { + "type": "string", + "description": "The type of list.", + "default": "bigquery#tableList" + }, + "nextPageToken": { + "type": "string", + "description": "A token to request the next page of results." + }, + "tables": { + "type": "array", + "description": "Tables in the requested dataset.", + "items": { + "type": "object", + "properties": { + "friendlyName": { + "type": "string", + "description": "The user-friendly name for this table." + }, + "id": { + "type": "string", + "description": "An opaque ID of the table" + }, + "kind": { + "type": "string", + "description": "The resource type.", + "default": "bigquery#table" + }, + "tableReference": { + "$ref": "TableReference", + "description": "A reference uniquely identifying the table." + }, + "type": { + "type": "string", + "description": "The type of table. Possible values are: TABLE, VIEW." + } + } + } + }, + "totalItems": { + "type": "integer", + "description": "The total number of tables in the dataset.", + "format": "int32" + } + } + }, + "TableReference": { + "id": "TableReference", + "type": "object", + "properties": { + "datasetId": { + "type": "string", + "description": "[Required] The ID of the dataset containing this table.", + "annotations": { + "required": [ + "bigquery.tables.update" + ] + } + }, + "projectId": { + "type": "string", + "description": "[Required] The ID of the project containing this table.", + "annotations": { + "required": [ + "bigquery.tables.update" + ] + } + }, + "tableId": { + "type": "string", + "description": "[Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", + "annotations": { + "required": [ + "bigquery.tables.update" + ] + } + } + } + }, + "TableRow": { + "id": "TableRow", + "type": "object", + "description": "Represents a single row in the result set, consisting of one or more fields.", + "properties": { + "f": { + "type": "array", + "items": { + "$ref": "TableCell" + } + } + } + }, + "TableSchema": { + "id": "TableSchema", + "type": "object", + "properties": { + "fields": { + "type": "array", + "description": "Describes the fields in a table.", + "items": { + "$ref": "TableFieldSchema" + } + } + } + }, + "ViewDefinition": { + "id": "ViewDefinition", + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "[Required] A query that BigQuery executes when the view is referenced." + } + } + } + }, + "resources": { + "datasets": { + "methods": { + "delete": { + "id": "bigquery.datasets.delete", + "path": "projects/{projectId}/datasets/{datasetId}", + "httpMethod": "DELETE", + "description": "Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of dataset being deleted", + "required": true, + "location": "path" + }, + "deleteContents": { + "type": "boolean", + "description": "If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the dataset being deleted", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "bigquery.datasets.get", + "path": "projects/{projectId}/datasets/{datasetId}", + "httpMethod": "GET", + "description": "Returns the dataset specified by datasetID.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the requested dataset", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the requested dataset", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "bigquery.datasets.insert", + "path": "projects/{projectId}/datasets", + "httpMethod": "POST", + "description": "Creates a new empty dataset.", + "parameters": { + "projectId": { + "type": "string", + "description": "Project ID of the new dataset", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "id": "bigquery.datasets.list", + "path": "projects/{projectId}/datasets", + "httpMethod": "GET", + "description": "Lists all the datasets in the specified project to which the caller has read access; however, a project owner can list (but not necessarily get) all datasets in his project.", + "parameters": { + "all": { + "type": "boolean", + "description": "Whether to list all datasets, including hidden ones", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of results to return", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, to request the next page of results", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the datasets to be listed", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "DatasetList" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "id": "bigquery.datasets.patch", + "path": "projects/{projectId}/datasets/{datasetId}", + "httpMethod": "PATCH", + "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the dataset being updated", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the dataset being updated", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "id": "bigquery.datasets.update", + "path": "projects/{projectId}/datasets/{datasetId}", + "httpMethod": "PUT", + "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the dataset being updated", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the dataset being updated", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "jobs": { + "methods": { + "get": { + "id": "bigquery.jobs.get", + "path": "projects/{projectId}/jobs/{jobId}", + "httpMethod": "GET", + "description": "Retrieves the specified job by ID.", + "parameters": { + "jobId": { + "type": "string", + "description": "Job ID of the requested job", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the requested job", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getQueryResults": { + "id": "bigquery.jobs.getQueryResults", + "path": "projects/{projectId}/queries/{jobId}", + "httpMethod": "GET", + "description": "Retrieves the results of a query job.", + "parameters": { + "jobId": { + "type": "string", + "description": "Job ID of the query job", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to read", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, to request the next page of results", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the query job", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "string", + "description": "Zero-based index of the starting row", + "format": "uint64", + "location": "query" + }, + "timeoutMs": { + "type": "integer", + "description": "How long to wait for the query to complete, in milliseconds, before returning. Default is to return immediately. If the timeout passes before the job completes, the request will fail with a TIMEOUT error", + "format": "uint32", + "location": "query" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "GetQueryResultsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "bigquery.jobs.insert", + "path": "projects/{projectId}/jobs", + "httpMethod": "POST", + "description": "Starts a new asynchronous job.", + "parameters": { + "projectId": { + "type": "string", + "description": "Project ID of the project that will be billed for the job", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/bigquery/v2/projects/{projectId}/jobs" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/bigquery/v2/projects/{projectId}/jobs" + } + } + } + }, + "list": { + "id": "bigquery.jobs.list", + "path": "projects/{projectId}/jobs", + "httpMethod": "GET", + "description": "Lists all the Jobs in the specified project that were started by the user. The job list returns in reverse chronological order of when the jobs were created, starting with the most recent job created.", + "parameters": { + "allUsers": { + "type": "boolean", + "description": "Whether to display jobs owned by all users in the project. Default false", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, to request the next page of results", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the jobs to list", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields", + "enum": [ + "full", + "minimal" + ], + "enumDescriptions": [ + "Includes all job data", + "Does not include the job configuration" + ], + "location": "query" + }, + "stateFilter": { + "type": "string", + "description": "Filter for job state", + "enum": [ + "done", + "pending", + "running" + ], + "enumDescriptions": [ + "Finished jobs", + "Pending jobs", + "Running jobs" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "JobList" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "query": { + "id": "bigquery.jobs.query", + "path": "projects/{projectId}/queries", + "httpMethod": "POST", + "description": "Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.", + "parameters": { + "projectId": { + "type": "string", + "description": "Project ID of the project billed for the query", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "QueryRequest" + }, + "response": { + "$ref": "QueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "projects": { + "methods": { + "list": { + "id": "bigquery.projects.list", + "path": "projects", + "httpMethod": "GET", + "description": "Lists the projects to which you have at least read access.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, to request the next page of results", + "location": "query" + } + }, + "response": { + "$ref": "ProjectList" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "tabledata": { + "methods": { + "insertAll": { + "id": "bigquery.tabledata.insertAll", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll", + "httpMethod": "POST", + "description": "Streams data into BigQuery one record at a time without needing to run a load job.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the destination table.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the destination table.", + "required": true, + "location": "path" + }, + "tableId": { + "type": "string", + "description": "Table ID of the destination table.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "request": { + "$ref": "TableDataInsertAllRequest" + }, + "response": { + "$ref": "TableDataInsertAllResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/bigquery.insertdata", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "id": "bigquery.tabledata.list", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data", + "httpMethod": "GET", + "description": "Retrieves table data from a specified set of rows.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the table to read", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, identifying the result set", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the table to read", + "required": true, + "location": "path" + }, + "startIndex": { + "type": "string", + "description": "Zero-based index of the starting row to read", + "format": "uint64", + "location": "query" + }, + "tableId": { + "type": "string", + "description": "Table ID of the table to read", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "response": { + "$ref": "TableDataList" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "tables": { + "methods": { + "delete": { + "id": "bigquery.tables.delete", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "httpMethod": "DELETE", + "description": "Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the table to delete", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the table to delete", + "required": true, + "location": "path" + }, + "tableId": { + "type": "string", + "description": "Table ID of the table to delete", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "bigquery.tables.get", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "httpMethod": "GET", + "description": "Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the requested table", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the requested table", + "required": true, + "location": "path" + }, + "tableId": { + "type": "string", + "description": "Table ID of the requested table", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "bigquery.tables.insert", + "path": "projects/{projectId}/datasets/{datasetId}/tables", + "httpMethod": "POST", + "description": "Creates a new, empty table in the dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the new table", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the new table", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "id": "bigquery.tables.list", + "path": "projects/{projectId}/datasets/{datasetId}/tables", + "httpMethod": "GET", + "description": "Lists all tables in the specified dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the tables to list", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token, returned by a previous call, to request the next page of results", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Project ID of the tables to list", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId" + ], + "response": { + "$ref": "TableList" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "id": "bigquery.tables.patch", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "httpMethod": "PATCH", + "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the table to update", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the table to update", + "required": true, + "location": "path" + }, + "tableId": { + "type": "string", + "description": "Table ID of the table to update", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "id": "bigquery.tables.update", + "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "httpMethod": "PUT", + "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Dataset ID of the table to update", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "Project ID of the table to update", + "required": true, + "location": "path" + }, + "tableId": { + "type": "string", + "description": "Table ID of the table to update", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "datasetId", + "tableId" + ], + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } +} diff --git a/etc/api/blogger/v2/blogger-api.json b/etc/api/blogger/v2/blogger-api.json new file mode 100644 index 0000000000..d1bcc5d58c --- /dev/null +++ b/etc/api/blogger/v2/blogger-api.json @@ -0,0 +1,923 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/sAKs5msKBJR7SX4fg3Ahfyr5uno\"", + "discoveryVersion": "v1", + "id": "blogger:v2", + "name": "blogger", + "version": "v2", + "revision": "20140827", + "title": "Blogger API", + "description": "API for access to the data within Blogger.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/blogger-16.png", + "x32": "https://www.google.com/images/icons/product/blogger-32.png" + }, + "documentationLink": "https://developers.google.com/blogger/docs/2.0/json/getting_started", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/blogger/v2/", + "basePath": "/blogger/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "blogger/v2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/blogger": { + "description": "Manage your Blogger account" + } + } + } + }, + "schemas": { + "Blog": { + "id": "Blog", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of this blog. This is displayed underneath the title." + }, + "id": { + "type": "string", + "description": "The identifier for this resource.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#blog", + "default": "blogger#blog" + }, + "locale": { + "type": "object", + "description": "The locale this Blog is set to.", + "properties": { + "country": { + "type": "string", + "description": "The country this blog's locale is set to." + }, + "language": { + "type": "string", + "description": "The language this blog is authored in." + }, + "variant": { + "type": "string", + "description": "The language variant this blog is authored in." + } + } + }, + "name": { + "type": "string", + "description": "The name of this blog. This is displayed as the title." + }, + "pages": { + "type": "object", + "description": "The container of pages in this blog.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the container for pages in this blog." + }, + "totalItems": { + "type": "integer", + "description": "The count of pages in this blog.", + "format": "int32" + } + } + }, + "posts": { + "type": "object", + "description": "The container of posts in this blog.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the container for posts in this blog." + }, + "totalItems": { + "type": "integer", + "description": "The count of posts in this blog.", + "format": "int32" + } + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this blog was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this blog was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL where this blog is published." + } + } + }, + "BlogList": { + "id": "BlogList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Blogs this user has Authorship or Admin rights over.", + "items": { + "$ref": "Blog" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#blogList", + "default": "blogger#blogList" + } + } + }, + "Comment": { + "id": "Comment", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Comment.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Comment creator." + }, + "image": { + "type": "object", + "description": "The comment creator's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The comment creator's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Comment creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this comment.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the blog containing this comment.", + "format": "int64" + } + } + }, + "content": { + "type": "string", + "description": "The actual content of the comment. May include HTML markup." + }, + "id": { + "type": "string", + "description": "The identifier for this resource.", + "format": "int64" + }, + "inReplyTo": { + "type": "object", + "description": "Data about the comment this is in reply to.", + "properties": { + "id": { + "type": "string", + "description": "The identified of the parent of this comment.", + "format": "int64" + } + } + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#comment", + "default": "blogger#comment" + }, + "post": { + "type": "object", + "description": "Data about the post containing this comment.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the post containing this comment.", + "format": "int64" + } + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this comment was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this comment was last updated.", + "format": "date-time" + } + } + }, + "CommentList": { + "id": "CommentList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The List of Comments for a Post.", + "items": { + "$ref": "Comment" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#commentList", + "default": "blogger#commentList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + }, + "prevPageToken": { + "type": "string", + "description": "Pagination token to fetch the previous page, if one exists." + } + } + }, + "Page": { + "id": "Page", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Page.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Page creator." + }, + "image": { + "type": "object", + "description": "The page author's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The page author's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Page creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this Page.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the blog containing this page.", + "format": "int64" + } + } + }, + "content": { + "type": "string", + "description": "The body content of this Page, in HTML." + }, + "id": { + "type": "string", + "description": "The identifier for this resource.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#page", + "default": "blogger#page" + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this Page was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "title": { + "type": "string", + "description": "The title of this entity. This is the name displayed in the Admin user interface." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this Page was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL that this Page is displayed at." + } + } + }, + "PageList": { + "id": "PageList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Pages for a Blog.", + "items": { + "$ref": "Page" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#pageList", + "default": "blogger#pageList" + } + } + }, + "Post": { + "id": "Post", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Post.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Post creator." + }, + "image": { + "type": "object", + "description": "The Post author's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The Post author's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Post creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this Post.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the Blog that contains this Post.", + "format": "int64" + } + } + }, + "content": { + "type": "string", + "description": "The content of the Post. May contain HTML markup." + }, + "id": { + "type": "string", + "description": "The identifier of this Post.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#post", + "default": "blogger#post" + }, + "labels": { + "type": "array", + "description": "The list of labels this Post was tagged with.", + "items": { + "type": "string" + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this Post was published.", + "format": "date-time" + }, + "replies": { + "type": "object", + "description": "The container of comments on this Post.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the comments on this post." + }, + "totalItems": { + "type": "string", + "description": "The count of comments on this post.", + "format": "int64" + } + } + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "title": { + "type": "string", + "description": "The title of the Post." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this Post was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL where this Post is displayed." + } + } + }, + "PostList": { + "id": "PostList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Posts for this Blog.", + "items": { + "$ref": "Post" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#postList", + "default": "blogger#postList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + }, + "prevPageToken": { + "type": "string", + "description": "Pagination token to fetch the previous page, if one exists." + } + } + }, + "User": { + "id": "User", + "type": "object", + "properties": { + "about": { + "type": "string", + "description": "Profile summary information." + }, + "blogs": { + "type": "object", + "description": "The container of blogs for this user.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the Blogs for this user." + } + } + }, + "created": { + "type": "string", + "description": "The timestamp of when this profile was created, in seconds since epoch.", + "format": "date-time" + }, + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier for this User." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#user", + "default": "blogger#user" + }, + "locale": { + "type": "object", + "description": "This user's locale", + "properties": { + "country": { + "type": "string", + "description": "The user's country setting." + }, + "language": { + "type": "string", + "description": "The user's language setting." + }, + "variant": { + "type": "string", + "description": "The user's language variant setting." + } + } + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "url": { + "type": "string", + "description": "The user's profile page." + } + } + } + }, + "resources": { + "blogs": { + "methods": { + "get": { + "id": "blogger.blogs.get", + "path": "blogs/{blogId}", + "httpMethod": "GET", + "description": "Gets one blog by id.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "Blog" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "comments": { + "methods": { + "get": { + "id": "blogger.comments.get", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}", + "httpMethod": "GET", + "description": "Gets one comment by id.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to containing the comment.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to get.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "ID of the post to fetch posts from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "list": { + "id": "blogger.comments.list", + "path": "blogs/{blogId}/posts/{postId}/comments", + "httpMethod": "GET", + "description": "Retrieves the comments for a blog, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch comments from.", + "required": true, + "location": "path" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of the comments is included.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of comments to include in the result.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if request is paged.", + "location": "query" + }, + "postId": { + "type": "string", + "description": "ID of the post to fetch posts from.", + "required": true, + "location": "path" + }, + "startDate": { + "type": "string", + "description": "Earliest date of comment to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "CommentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "pages": { + "methods": { + "get": { + "id": "blogger.pages.get", + "path": "blogs/{blogId}/pages/{pageId}", + "httpMethod": "GET", + "description": "Gets one blog page by id.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog containing the page.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the page to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "list": { + "id": "blogger.pages.list", + "path": "blogs/{blogId}/pages", + "httpMethod": "GET", + "description": "Retrieves pages for a blog, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch pages from.", + "required": true, + "location": "path" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether to retrieve the Page bodies.", + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "PageList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "posts": { + "methods": { + "get": { + "id": "blogger.posts.get", + "path": "blogs/{blogId}/posts/{postId}", + "httpMethod": "GET", + "description": "Get a post by id.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch the post from.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the post", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "list": { + "id": "blogger.posts.list", + "path": "blogs/{blogId}/posts", + "httpMethod": "GET", + "description": "Retrieves a list of posts, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch posts from.", + "required": true, + "location": "path" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of posts is included.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of posts to fetch.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if the request is paged.", + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Earliest post date to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "PostList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "users": { + "methods": { + "get": { + "id": "blogger.users.get", + "path": "users/{userId}", + "httpMethod": "GET", + "description": "Gets one user by id.", + "parameters": { + "userId": { + "type": "string", + "description": "The ID of the user to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + }, + "resources": { + "blogs": { + "methods": { + "list": { + "id": "blogger.users.blogs.list", + "path": "users/{userId}/blogs", + "httpMethod": "GET", + "description": "Retrieves a list of blogs, possibly filtered.", + "parameters": { + "userId": { + "type": "string", + "description": "ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "BlogList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + } + } + } + } +} diff --git a/etc/api/blogger/v3/blogger-api.json b/etc/api/blogger/v3/blogger-api.json new file mode 100644 index 0000000000..7f6549bebc --- /dev/null +++ b/etc/api/blogger/v3/blogger-api.json @@ -0,0 +1,2495 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/IrFCn8z3q4ulYVZWC1SJkXJKYC0\"", + "discoveryVersion": "v1", + "id": "blogger:v3", + "name": "blogger", + "version": "v3", + "revision": "20150208", + "title": "Blogger API", + "description": "API for access to the data within Blogger.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/blogger-16.png", + "x32": "https://www.google.com/images/icons/product/blogger-32.png" + }, + "documentationLink": "https://developers.google.com/blogger/docs/3.0/getting_started", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/blogger/v3/", + "basePath": "/blogger/v3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "blogger/v3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/blogger": { + "description": "Manage your Blogger account" + }, + "https://www.googleapis.com/auth/blogger.readonly": { + "description": "View your Blogger account" + } + } + } + }, + "schemas": { + "Blog": { + "id": "Blog", + "type": "object", + "properties": { + "customMetaData": { + "type": "string", + "description": "The JSON custom meta-data for the Blog" + }, + "description": { + "type": "string", + "description": "The description of this blog. This is displayed underneath the title." + }, + "id": { + "type": "string", + "description": "The identifier for this resource." + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#blog", + "default": "blogger#blog" + }, + "locale": { + "type": "object", + "description": "The locale this Blog is set to.", + "properties": { + "country": { + "type": "string", + "description": "The country this blog's locale is set to." + }, + "language": { + "type": "string", + "description": "The language this blog is authored in." + }, + "variant": { + "type": "string", + "description": "The language variant this blog is authored in." + } + } + }, + "name": { + "type": "string", + "description": "The name of this blog. This is displayed as the title." + }, + "pages": { + "type": "object", + "description": "The container of pages in this blog.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the container for pages in this blog." + }, + "totalItems": { + "type": "integer", + "description": "The count of pages in this blog.", + "format": "int32" + } + } + }, + "posts": { + "type": "object", + "description": "The container of posts in this blog.", + "properties": { + "items": { + "type": "array", + "description": "The List of Posts for this Blog.", + "items": { + "$ref": "Post" + } + }, + "selfLink": { + "type": "string", + "description": "The URL of the container for posts in this blog." + }, + "totalItems": { + "type": "integer", + "description": "The count of posts in this blog.", + "format": "int32" + } + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this blog was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "status": { + "type": "string", + "description": "The status of the blog." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this blog was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL where this blog is published." + } + } + }, + "BlogList": { + "id": "BlogList", + "type": "object", + "properties": { + "blogUserInfos": { + "type": "array", + "description": "Admin level list of blog per-user information", + "items": { + "$ref": "BlogUserInfo" + } + }, + "items": { + "type": "array", + "description": "The list of Blogs this user has Authorship or Admin rights over.", + "items": { + "$ref": "Blog" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#blogList", + "default": "blogger#blogList" + } + } + }, + "BlogPerUserInfo": { + "id": "BlogPerUserInfo", + "type": "object", + "properties": { + "blogId": { + "type": "string", + "description": "ID of the Blog resource" + }, + "hasAdminAccess": { + "type": "boolean", + "description": "True if the user has Admin level access to the blog." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#blogPerUserInfo", + "default": "blogger#blogPerUserInfo" + }, + "photosAlbumKey": { + "type": "string", + "description": "The Photo Album Key for the user when adding photos to the blog" + }, + "role": { + "type": "string", + "description": "Access permissions that the user has for the blog (ADMIN, AUTHOR, or READER)." + }, + "userId": { + "type": "string", + "description": "ID of the User" + } + } + }, + "BlogUserInfo": { + "id": "BlogUserInfo", + "type": "object", + "properties": { + "blog": { + "$ref": "Blog", + "description": "The Blog resource." + }, + "blog_user_info": { + "$ref": "BlogPerUserInfo", + "description": "Information about a User for the Blog." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#blogUserInfo", + "default": "blogger#blogUserInfo" + } + } + }, + "Comment": { + "id": "Comment", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Comment.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Comment creator." + }, + "image": { + "type": "object", + "description": "The comment creator's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The comment creator's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Comment creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this comment.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the blog containing this comment." + } + } + }, + "content": { + "type": "string", + "description": "The actual content of the comment. May include HTML markup." + }, + "id": { + "type": "string", + "description": "The identifier for this resource." + }, + "inReplyTo": { + "type": "object", + "description": "Data about the comment this is in reply to.", + "properties": { + "id": { + "type": "string", + "description": "The identified of the parent of this comment." + } + } + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#comment", + "default": "blogger#comment" + }, + "post": { + "type": "object", + "description": "Data about the post containing this comment.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the post containing this comment." + } + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this comment was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "status": { + "type": "string", + "description": "The status of the comment (only populated for admin users)" + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this comment was last updated.", + "format": "date-time" + } + } + }, + "CommentList": { + "id": "CommentList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The List of Comments for a Post.", + "items": { + "$ref": "Comment" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#commentList", + "default": "blogger#commentList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + }, + "prevPageToken": { + "type": "string", + "description": "Pagination token to fetch the previous page, if one exists." + } + } + }, + "Page": { + "id": "Page", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Page.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Page creator." + }, + "image": { + "type": "object", + "description": "The page author's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The page author's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Page creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this Page.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the blog containing this page." + } + } + }, + "content": { + "type": "string", + "description": "The body content of this Page, in HTML." + }, + "etag": { + "type": "string", + "description": "Etag of the resource." + }, + "id": { + "type": "string", + "description": "The identifier for this resource." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#page", + "default": "blogger#page" + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this Page was published.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "status": { + "type": "string", + "description": "The status of the page for admin resources (either LIVE or DRAFT)." + }, + "title": { + "type": "string", + "description": "The title of this entity. This is the name displayed in the Admin user interface." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this Page was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL that this Page is displayed at." + } + } + }, + "PageList": { + "id": "PageList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Pages for a Blog.", + "items": { + "$ref": "Page" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#pageList", + "default": "blogger#pageList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + } + } + }, + "Pageviews": { + "id": "Pageviews", + "type": "object", + "properties": { + "blogId": { + "type": "string", + "description": "Blog Id" + }, + "counts": { + "type": "array", + "description": "The container of posts in this blog.", + "items": { + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Count of page views for the given time range", + "format": "int64" + }, + "timeRange": { + "type": "string", + "description": "Time range the given count applies to" + } + } + } + }, + "kind": { + "type": "string", + "description": "The kind of this entry. Always blogger#page_views", + "default": "blogger#page_views" + } + } + }, + "Post": { + "id": "Post", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The author of this Post.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier of the Post creator." + }, + "image": { + "type": "object", + "description": "The Post author's avatar.", + "properties": { + "url": { + "type": "string", + "description": "The Post author's avatar URL." + } + } + }, + "url": { + "type": "string", + "description": "The URL of the Post creator's Profile page." + } + } + }, + "blog": { + "type": "object", + "description": "Data about the blog containing this Post.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the Blog that contains this Post." + } + } + }, + "content": { + "type": "string", + "description": "The content of the Post. May contain HTML markup." + }, + "customMetaData": { + "type": "string", + "description": "The JSON meta-data for the Post." + }, + "etag": { + "type": "string", + "description": "Etag of the resource." + }, + "id": { + "type": "string", + "description": "The identifier of this Post." + }, + "images": { + "type": "array", + "description": "Display image for the Post.", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#post", + "default": "blogger#post" + }, + "labels": { + "type": "array", + "description": "The list of labels this Post was tagged with.", + "items": { + "type": "string" + } + }, + "location": { + "type": "object", + "description": "The location for geotagged posts.", + "properties": { + "lat": { + "type": "number", + "description": "Location's latitude.", + "format": "double" + }, + "lng": { + "type": "number", + "description": "Location's longitude.", + "format": "double" + }, + "name": { + "type": "string", + "description": "Location name." + }, + "span": { + "type": "string", + "description": "Location's viewport span. Can be used when rendering a map preview." + } + } + }, + "published": { + "type": "string", + "description": "RFC 3339 date-time when this Post was published.", + "format": "date-time" + }, + "readerComments": { + "type": "string", + "description": "Comment control and display setting for readers of this post." + }, + "replies": { + "type": "object", + "description": "The container of comments on this Post.", + "properties": { + "items": { + "type": "array", + "description": "The List of Comments for this Post.", + "items": { + "$ref": "Comment" + } + }, + "selfLink": { + "type": "string", + "description": "The URL of the comments on this post." + }, + "totalItems": { + "type": "string", + "description": "The count of comments on this post.", + "format": "int64" + } + } + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "status": { + "type": "string", + "description": "Status of the post. Only set for admin-level requests" + }, + "title": { + "type": "string", + "description": "The title of the Post." + }, + "titleLink": { + "type": "string", + "description": "The title link URL, similar to atom's related link." + }, + "updated": { + "type": "string", + "description": "RFC 3339 date-time when this Post was last updated.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL where this Post is displayed." + } + } + }, + "PostList": { + "id": "PostList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Posts for this Blog.", + "items": { + "$ref": "Post" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#postList", + "default": "blogger#postList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + } + } + }, + "PostPerUserInfo": { + "id": "PostPerUserInfo", + "type": "object", + "properties": { + "blogId": { + "type": "string", + "description": "ID of the Blog that the post resource belongs to." + }, + "hasEditAccess": { + "type": "boolean", + "description": "True if the user has Author level access to the post." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#postPerUserInfo", + "default": "blogger#postPerUserInfo" + }, + "postId": { + "type": "string", + "description": "ID of the Post resource." + }, + "userId": { + "type": "string", + "description": "ID of the User." + } + } + }, + "PostUserInfo": { + "id": "PostUserInfo", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#postUserInfo", + "default": "blogger#postUserInfo" + }, + "post": { + "$ref": "Post", + "description": "The Post resource." + }, + "post_user_info": { + "$ref": "PostPerUserInfo", + "description": "Information about a User for the Post." + } + } + }, + "PostUserInfosList": { + "id": "PostUserInfosList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of Posts with User information for the post, for this Blog.", + "items": { + "$ref": "PostUserInfo" + } + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#postList", + "default": "blogger#postUserInfosList" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + } + } + }, + "User": { + "id": "User", + "type": "object", + "properties": { + "about": { + "type": "string", + "description": "Profile summary information." + }, + "blogs": { + "type": "object", + "description": "The container of blogs for this user.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL of the Blogs for this user." + } + } + }, + "created": { + "type": "string", + "description": "The timestamp of when this profile was created, in seconds since epoch.", + "format": "date-time" + }, + "displayName": { + "type": "string", + "description": "The display name." + }, + "id": { + "type": "string", + "description": "The identifier for this User." + }, + "kind": { + "type": "string", + "description": "The kind of this entity. Always blogger#user", + "default": "blogger#user" + }, + "locale": { + "type": "object", + "description": "This user's locale", + "properties": { + "country": { + "type": "string", + "description": "The user's country setting." + }, + "language": { + "type": "string", + "description": "The user's language setting." + }, + "variant": { + "type": "string", + "description": "The user's language variant setting." + } + } + }, + "selfLink": { + "type": "string", + "description": "The API REST URL to fetch this resource from." + }, + "url": { + "type": "string", + "description": "The user's profile page." + } + } + } + }, + "resources": { + "blogUserInfos": { + "methods": { + "get": { + "id": "blogger.blogUserInfos.get", + "path": "users/{userId}/blogs/{blogId}", + "httpMethod": "GET", + "description": "Gets one blog and user info pair by blogId and userId.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog to get.", + "required": true, + "location": "path" + }, + "maxPosts": { + "type": "integer", + "description": "Maximum number of posts to pull back with the blog.", + "format": "uint32", + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "blogId" + ], + "response": { + "$ref": "BlogUserInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + } + } + }, + "blogs": { + "methods": { + "get": { + "id": "blogger.blogs.get", + "path": "blogs/{blogId}", + "httpMethod": "GET", + "description": "Gets one blog by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog to get.", + "required": true, + "location": "path" + }, + "maxPosts": { + "type": "integer", + "description": "Maximum number of posts to pull back with the blog.", + "format": "uint32", + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the blog. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail.", + "Author level detail.", + "Reader level detail." + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "Blog" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "getByUrl": { + "id": "blogger.blogs.getByUrl", + "path": "blogs/byurl", + "httpMethod": "GET", + "description": "Retrieve a Blog by URL.", + "parameters": { + "url": { + "type": "string", + "description": "The URL of the blog to retrieve.", + "required": true, + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the blog. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail.", + "Author level detail.", + "Reader level detail." + ], + "location": "query" + } + }, + "parameterOrder": [ + "url" + ], + "response": { + "$ref": "Blog" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "listByUser": { + "id": "blogger.blogs.listByUser", + "path": "users/{userId}/blogs", + "httpMethod": "GET", + "description": "Retrieves a list of blogs, possibly filtered.", + "parameters": { + "fetchUserInfo": { + "type": "boolean", + "description": "Whether the response is a list of blogs with per-user information instead of just blogs.", + "location": "query" + }, + "role": { + "type": "string", + "description": "User access types for blogs to include in the results, e.g. AUTHOR will return blogs where the user has author level access. If no roles are specified, defaults to ADMIN and AUTHOR roles.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin role - Blogs where the user has Admin level access.", + "Author role - Blogs where the user has Author level access.", + "Reader role - Blogs where the user has Reader level access (to a private blog)." + ], + "repeated": true, + "location": "query" + }, + "status": { + "type": "string", + "description": "Blog statuses to include in the result (default: Live blogs only). Note that ADMIN access is required to view deleted blogs.", + "default": "LIVE", + "enum": [ + "DELETED", + "LIVE" + ], + "enumDescriptions": [ + "Blog has been deleted by an administrator.", + "Blog is currently live." + ], + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "description": "Access level with which to view the blogs. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail.", + "Author level detail.", + "Reader level detail." + ], + "location": "query" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "BlogList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + } + } + }, + "comments": { + "methods": { + "approve": { + "id": "blogger.comments.approve", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}/approve", + "httpMethod": "POST", + "description": "Marks a comment as not spam.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to mark as not spam.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "delete": { + "id": "blogger.comments.delete", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}", + "httpMethod": "DELETE", + "description": "Delete a comment by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to delete.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "get": { + "id": "blogger.comments.get", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}", + "httpMethod": "GET", + "description": "Gets one comment by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to containing the comment.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to get.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "ID of the post to fetch posts from.", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "description": "Access level for the requested comment (default: READER). Note that some comments will require elevated permissions, for example comments where the parent posts which is in a draft state, or comments that are pending moderation.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Admin level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "list": { + "id": "blogger.comments.list", + "path": "blogs/{blogId}/posts/{postId}/comments", + "httpMethod": "GET", + "description": "Retrieves the comments for a post, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch comments from.", + "required": true, + "location": "path" + }, + "endDate": { + "type": "string", + "description": "Latest date of comment to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of the comments is included.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of comments to include in the result.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if request is paged.", + "location": "query" + }, + "postId": { + "type": "string", + "description": "ID of the post to fetch posts from.", + "required": true, + "location": "path" + }, + "startDate": { + "type": "string", + "description": "Earliest date of comment to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "status": { + "type": "string", + "enum": [ + "emptied", + "live", + "pending", + "spam" + ], + "enumDescriptions": [ + "Comments that have had their content removed", + "Comments that are publicly visible", + "Comments that are awaiting administrator approval", + "Comments marked as spam by the administrator" + ], + "repeated": true, + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "CommentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "listByBlog": { + "id": "blogger.comments.listByBlog", + "path": "blogs/{blogId}/comments", + "httpMethod": "GET", + "description": "Retrieves the comments for a blog, across all posts, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch comments from.", + "required": true, + "location": "path" + }, + "endDate": { + "type": "string", + "description": "Latest date of comment to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of the comments is included.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of comments to include in the result.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if request is paged.", + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Earliest date of comment to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "status": { + "type": "string", + "enum": [ + "emptied", + "live", + "pending", + "spam" + ], + "enumDescriptions": [ + "Comments that have had their content removed", + "Comments that are publicly visible", + "Comments that are awaiting administrator approval", + "Comments marked as spam by the administrator" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "CommentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "markAsSpam": { + "id": "blogger.comments.markAsSpam", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}/spam", + "httpMethod": "POST", + "description": "Marks a comment as spam.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to mark as spam.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "removeContent": { + "id": "blogger.comments.removeContent", + "path": "blogs/{blogId}/posts/{postId}/comments/{commentId}/removecontent", + "httpMethod": "POST", + "description": "Removes the content of a comment.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "commentId": { + "type": "string", + "description": "The ID of the comment to delete content from.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId", + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "pageViews": { + "methods": { + "get": { + "id": "blogger.pageViews.get", + "path": "blogs/{blogId}/pageviews", + "httpMethod": "GET", + "description": "Retrieve pageview stats for a Blog.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog to get.", + "required": true, + "location": "path" + }, + "range": { + "type": "string", + "enum": [ + "30DAYS", + "7DAYS", + "all" + ], + "enumDescriptions": [ + "Page view counts from the last thirty days.", + "Page view counts from the last seven days.", + "Total page view counts from all time." + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "Pageviews" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "pages": { + "methods": { + "delete": { + "id": "blogger.pages.delete", + "path": "blogs/{blogId}/pages/{pageId}", + "httpMethod": "DELETE", + "description": "Delete a page by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the Page.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "get": { + "id": "blogger.pages.get", + "path": "blogs/{blogId}/pages/{pageId}", + "httpMethod": "GET", + "description": "Gets one blog page by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog containing the page.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the page to get.", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "insert": { + "id": "blogger.pages.insert", + "path": "blogs/{blogId}/pages", + "httpMethod": "POST", + "description": "Add a page.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to add the page to.", + "required": true, + "location": "path" + }, + "isDraft": { + "type": "boolean", + "description": "Whether to create the page as a draft (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "request": { + "$ref": "Page" + }, + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "list": { + "id": "blogger.pages.list", + "path": "blogs/{blogId}/pages", + "httpMethod": "GET", + "description": "Retrieves the pages for a blog, optionally including non-LIVE statuses.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch Pages from.", + "required": true, + "location": "path" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether to retrieve the Page bodies.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of Pages to fetch.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if the request is paged.", + "location": "query" + }, + "status": { + "type": "string", + "enum": [ + "draft", + "live" + ], + "enumDescriptions": [ + "Draft (unpublished) Pages", + "Pages that are publicly visible" + ], + "repeated": true, + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "PageList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "patch": { + "id": "blogger.pages.patch", + "path": "blogs/{blogId}/pages/{pageId}", + "httpMethod": "PATCH", + "description": "Update a page. This method supports patch semantics.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the Page.", + "required": true, + "location": "path" + }, + "publish": { + "type": "boolean", + "description": "Whether a publish action should be performed when the page is updated (default: false).", + "location": "query" + }, + "revert": { + "type": "boolean", + "description": "Whether a revert action should be performed when the page is updated (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "request": { + "$ref": "Page" + }, + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "publish": { + "id": "blogger.pages.publish", + "path": "blogs/{blogId}/pages/{pageId}/publish", + "httpMethod": "POST", + "description": "Publishes a draft page.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the page.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "revert": { + "id": "blogger.pages.revert", + "path": "blogs/{blogId}/pages/{pageId}/revert", + "httpMethod": "POST", + "description": "Revert a published or scheduled page to draft state.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the page.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "update": { + "id": "blogger.pages.update", + "path": "blogs/{blogId}/pages/{pageId}", + "httpMethod": "PUT", + "description": "Update a page.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "pageId": { + "type": "string", + "description": "The ID of the Page.", + "required": true, + "location": "path" + }, + "publish": { + "type": "boolean", + "description": "Whether a publish action should be performed when the page is updated (default: false).", + "location": "query" + }, + "revert": { + "type": "boolean", + "description": "Whether a revert action should be performed when the page is updated (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "pageId" + ], + "request": { + "$ref": "Page" + }, + "response": { + "$ref": "Page" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "postUserInfos": { + "methods": { + "get": { + "id": "blogger.postUserInfos.get", + "path": "users/{userId}/blogs/{blogId}/posts/{postId}", + "httpMethod": "GET", + "description": "Gets one post and user info pair, by post ID and user ID. The post user info contains per-user information about the post, such as access rights, specific to the user.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the blog.", + "required": true, + "location": "path" + }, + "maxComments": { + "type": "integer", + "description": "Maximum number of comments to pull back on a post.", + "format": "uint32", + "location": "query" + }, + "postId": { + "type": "string", + "description": "The ID of the post to get.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "blogId", + "postId" + ], + "response": { + "$ref": "PostUserInfo" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "list": { + "id": "blogger.postUserInfos.list", + "path": "users/{userId}/blogs/{blogId}/posts", + "httpMethod": "GET", + "description": "Retrieves a list of post and post user info pairs, possibly filtered. The post user info contains per-user information about the post, such as access rights, specific to the user.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch posts from.", + "required": true, + "location": "path" + }, + "endDate": { + "type": "string", + "description": "Latest post date to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of posts is included. Default is false.", + "default": "false", + "location": "query" + }, + "labels": { + "type": "string", + "description": "Comma-separated list of labels to search for.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of posts to fetch.", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sort order applied to search results. Default is published.", + "default": "PUBLISHED", + "enum": [ + "published", + "updated" + ], + "enumDescriptions": [ + "Order by the date the post was published", + "Order by the date the post was last updated" + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if the request is paged.", + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Earliest post date to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "status": { + "type": "string", + "enum": [ + "draft", + "live", + "scheduled" + ], + "enumDescriptions": [ + "Draft posts", + "Published posts", + "Posts that are scheduled to publish in future." + ], + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "userId", + "blogId" + ], + "response": { + "$ref": "PostUserInfosList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + } + } + }, + "posts": { + "methods": { + "delete": { + "id": "blogger.posts.delete", + "path": "blogs/{blogId}/posts/{postId}", + "httpMethod": "DELETE", + "description": "Delete a post by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "get": { + "id": "blogger.posts.get", + "path": "blogs/{blogId}/posts/{postId}", + "httpMethod": "GET", + "description": "Get a post by ID.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch the post from.", + "required": true, + "location": "path" + }, + "fetchBody": { + "type": "boolean", + "description": "Whether the body content of the post is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.", + "default": "true", + "location": "query" + }, + "fetchImages": { + "type": "boolean", + "description": "Whether image URL metadata for each post is included (default: false).", + "location": "query" + }, + "maxComments": { + "type": "integer", + "description": "Maximum number of comments to pull back on a post.", + "format": "uint32", + "location": "query" + }, + "postId": { + "type": "string", + "description": "The ID of the post", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "getByPath": { + "id": "blogger.posts.getByPath", + "path": "blogs/{blogId}/posts/bypath", + "httpMethod": "GET", + "description": "Retrieve a Post by Path.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch the post from.", + "required": true, + "location": "path" + }, + "maxComments": { + "type": "integer", + "description": "Maximum number of comments to pull back on a post.", + "format": "uint32", + "location": "query" + }, + "path": { + "type": "string", + "description": "Path of the Post to retrieve.", + "required": true, + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require elevated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "path" + ], + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "insert": { + "id": "blogger.posts.insert", + "path": "blogs/{blogId}/posts", + "httpMethod": "POST", + "description": "Add a post.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to add the post to.", + "required": true, + "location": "path" + }, + "fetchBody": { + "type": "boolean", + "description": "Whether the body content of the post is included with the result (default: true).", + "default": "true", + "location": "query" + }, + "fetchImages": { + "type": "boolean", + "description": "Whether image URL metadata for each post is included in the returned result (default: false).", + "location": "query" + }, + "isDraft": { + "type": "boolean", + "description": "Whether to create the post as a draft (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "request": { + "$ref": "Post" + }, + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "list": { + "id": "blogger.posts.list", + "path": "blogs/{blogId}/posts", + "httpMethod": "GET", + "description": "Retrieves a list of posts, possibly filtered.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch posts from.", + "required": true, + "location": "path" + }, + "endDate": { + "type": "string", + "description": "Latest post date to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.", + "default": "true", + "location": "query" + }, + "fetchImages": { + "type": "boolean", + "description": "Whether image URL metadata for each post is included.", + "location": "query" + }, + "labels": { + "type": "string", + "description": "Comma-separated list of labels to search for.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of posts to fetch.", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sort search results", + "default": "PUBLISHED", + "enum": [ + "published", + "updated" + ], + "enumDescriptions": [ + "Order by the date the post was published", + "Order by the date the post was last updated" + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token if the request is paged.", + "location": "query" + }, + "startDate": { + "type": "string", + "description": "Earliest post date to fetch, a date-time with RFC 3339 formatting.", + "format": "date-time", + "location": "query" + }, + "status": { + "type": "string", + "description": "Statuses to include in the results.", + "enum": [ + "draft", + "live", + "scheduled" + ], + "enumDescriptions": [ + "Draft (non-published) posts.", + "Published posts", + "Posts that are scheduled to publish in the future." + ], + "repeated": true, + "location": "query" + }, + "view": { + "type": "string", + "description": "Access level with which to view the returned result. Note that some fields require escalated access.", + "enum": [ + "ADMIN", + "AUTHOR", + "READER" + ], + "enumDescriptions": [ + "Admin level detail", + "Author level detail", + "Reader level detail" + ], + "location": "query" + } + }, + "parameterOrder": [ + "blogId" + ], + "response": { + "$ref": "PostList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "patch": { + "id": "blogger.posts.patch", + "path": "blogs/{blogId}/posts/{postId}", + "httpMethod": "PATCH", + "description": "Update a post. This method supports patch semantics.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "fetchBody": { + "type": "boolean", + "description": "Whether the body content of the post is included with the result (default: true).", + "default": "true", + "location": "query" + }, + "fetchImages": { + "type": "boolean", + "description": "Whether image URL metadata for each post is included in the returned result (default: false).", + "location": "query" + }, + "maxComments": { + "type": "integer", + "description": "Maximum number of comments to retrieve with the returned post.", + "format": "uint32", + "location": "query" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + }, + "publish": { + "type": "boolean", + "description": "Whether a publish action should be performed when the post is updated (default: false).", + "location": "query" + }, + "revert": { + "type": "boolean", + "description": "Whether a revert action should be performed when the post is updated (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "request": { + "$ref": "Post" + }, + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "publish": { + "id": "blogger.posts.publish", + "path": "blogs/{blogId}/posts/{postId}/publish", + "httpMethod": "POST", + "description": "Publishes a draft post, optionally at the specific time of the given publishDate parameter.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + }, + "publishDate": { + "type": "string", + "description": "Optional date and time to schedule the publishing of the Blog. If no publishDate parameter is given, the post is either published at the a previously saved schedule date (if present), or the current time. If a future date is given, the post will be scheduled to be published.", + "format": "date-time", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "revert": { + "id": "blogger.posts.revert", + "path": "blogs/{blogId}/posts/{postId}/revert", + "httpMethod": "POST", + "description": "Revert a published or scheduled post to draft state.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + }, + "search": { + "id": "blogger.posts.search", + "path": "blogs/{blogId}/posts/search", + "httpMethod": "GET", + "description": "Search for a post.", + "parameters": { + "blogId": { + "type": "string", + "description": "ID of the blog to fetch the post from.", + "required": true, + "location": "path" + }, + "fetchBodies": { + "type": "boolean", + "description": "Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.", + "default": "true", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sort search results", + "default": "PUBLISHED", + "enum": [ + "published", + "updated" + ], + "enumDescriptions": [ + "Order by the date the post was published", + "Order by the date the post was last updated" + ], + "location": "query" + }, + "q": { + "type": "string", + "description": "Query terms to search this blog for matching posts.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "q" + ], + "response": { + "$ref": "PostList" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + }, + "update": { + "id": "blogger.posts.update", + "path": "blogs/{blogId}/posts/{postId}", + "httpMethod": "PUT", + "description": "Update a post.", + "parameters": { + "blogId": { + "type": "string", + "description": "The ID of the Blog.", + "required": true, + "location": "path" + }, + "fetchBody": { + "type": "boolean", + "description": "Whether the body content of the post is included with the result (default: true).", + "default": "true", + "location": "query" + }, + "fetchImages": { + "type": "boolean", + "description": "Whether image URL metadata for each post is included in the returned result (default: false).", + "location": "query" + }, + "maxComments": { + "type": "integer", + "description": "Maximum number of comments to retrieve with the returned post.", + "format": "uint32", + "location": "query" + }, + "postId": { + "type": "string", + "description": "The ID of the Post.", + "required": true, + "location": "path" + }, + "publish": { + "type": "boolean", + "description": "Whether a publish action should be performed when the post is updated (default: false).", + "location": "query" + }, + "revert": { + "type": "boolean", + "description": "Whether a revert action should be performed when the post is updated (default: false).", + "location": "query" + } + }, + "parameterOrder": [ + "blogId", + "postId" + ], + "request": { + "$ref": "Post" + }, + "response": { + "$ref": "Post" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger" + ] + } + } + }, + "users": { + "methods": { + "get": { + "id": "blogger.users.get", + "path": "users/{userId}", + "httpMethod": "GET", + "description": "Gets one user by ID.", + "parameters": { + "userId": { + "type": "string", + "description": "The ID of the user to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/blogger", + "https://www.googleapis.com/auth/blogger.readonly" + ] + } + } + } + } +} diff --git a/etc/api/books/v1/books-api.json b/etc/api/books/v1/books-api.json new file mode 100644 index 0000000000..8f105fc9a4 --- /dev/null +++ b/etc/api/books/v1/books-api.json @@ -0,0 +1,4092 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/kNB4QIeM_hYb1gDtvlVUUPro4uQ\"", + "discoveryVersion": "v1", + "id": "books:v1", + "name": "books", + "version": "v1", + "revision": "20150115", + "title": "Books API", + "description": "Lets you search for books and manage your Google Books library.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/ebooks-16.png", + "x32": "https://www.google.com/images/icons/product/ebooks-32.png" + }, + "documentationLink": "https://developers.google.com/books/docs/v1/getting_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/books/v1/", + "basePath": "/books/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "books/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/books": { + "description": "Manage your books" + } + } + } + }, + "schemas": { + "Annotation": { + "id": "Annotation", + "type": "object", + "properties": { + "afterSelectedText": { + "type": "string", + "description": "Anchor text after excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty." + }, + "beforeSelectedText": { + "type": "string", + "description": "Anchor text before excerpt. For requests, if the user bookmarked a screen that has no flowing text on it, then this field should be empty." + }, + "clientVersionRanges": { + "type": "object", + "description": "Selection ranges sent from the client.", + "properties": { + "cfiRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in CFI format for this annotation sent by client." + }, + "contentVersion": { + "type": "string", + "description": "Content version the client sent in." + }, + "gbImageRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB image format for this annotation sent by client." + }, + "gbTextRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB text format for this annotation sent by client." + }, + "imageCfiRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in image CFI format for this annotation sent by client." + } + } + }, + "created": { + "type": "string", + "description": "Timestamp for the created time of this annotation.", + "format": "date-time" + }, + "currentVersionRanges": { + "type": "object", + "description": "Selection ranges for the most recent content version.", + "properties": { + "cfiRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in CFI format for this annotation for version above." + }, + "contentVersion": { + "type": "string", + "description": "Content version applicable to ranges below." + }, + "gbImageRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB image format for this annotation for version above." + }, + "gbTextRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB text format for this annotation for version above." + }, + "imageCfiRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in image CFI format for this annotation for version above." + } + } + }, + "data": { + "type": "string", + "description": "User-created data for this annotation." + }, + "deleted": { + "type": "boolean", + "description": "Indicates that this annotation is deleted." + }, + "highlightStyle": { + "type": "string", + "description": "The highlight style for this annotation." + }, + "id": { + "type": "string", + "description": "Id of this annotation, in the form of a GUID." + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#annotation" + }, + "layerId": { + "type": "string", + "description": "The layer this annotation is for." + }, + "layerSummary": { + "type": "object", + "properties": { + "allowedCharacterCount": { + "type": "integer", + "description": "Maximum allowed characters on this layer, especially for the \"copy\" layer.", + "format": "int32" + }, + "limitType": { + "type": "string", + "description": "Type of limitation on this layer. \"limited\" or \"unlimited\" for the \"copy\" layer." + }, + "remainingCharacterCount": { + "type": "integer", + "description": "Remaining allowed characters on this layer, especially for the \"copy\" layer.", + "format": "int32" + } + } + }, + "pageIds": { + "type": "array", + "description": "Pages that this annotation spans.", + "items": { + "type": "string" + } + }, + "selectedText": { + "type": "string", + "description": "Excerpt from the volume." + }, + "selfLink": { + "type": "string", + "description": "URL to this resource." + }, + "updated": { + "type": "string", + "description": "Timestamp for the last time this annotation was modified.", + "format": "date-time" + }, + "volumeId": { + "type": "string", + "description": "The volume that this annotation belongs to." + } + } + }, + "Annotationdata": { + "id": "Annotationdata", + "type": "object", + "properties": { + "annotationType": { + "type": "string", + "description": "The type of annotation this data is for." + }, + "data": { + "type": "any" + }, + "encoded_data": { + "type": "string", + "description": "Base64 encoded data for this annotation data.", + "format": "byte" + }, + "id": { + "type": "string", + "description": "Unique id for this annotation data." + }, + "kind": { + "type": "string", + "description": "Resource Type", + "default": "books#annotationdata" + }, + "layerId": { + "type": "string", + "description": "The Layer id for this data. *" + }, + "selfLink": { + "type": "string", + "description": "URL for this resource. *" + }, + "updated": { + "type": "string", + "description": "Timestamp for the last time this data was updated. (RFC 3339 UTC date-time format).", + "format": "date-time" + }, + "volumeId": { + "type": "string", + "description": "The volume id for this data. *" + } + } + }, + "Annotations": { + "id": "Annotations", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of annotations.", + "items": { + "$ref": "Annotation" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#annotations" + }, + "nextPageToken": { + "type": "string", + "description": "Token to pass in for pagination for the next page. This will not be present if this request does not have more results." + }, + "totalItems": { + "type": "integer", + "description": "Total number of annotations found. This may be greater than the number of notes returned in this response if results have been paginated.", + "format": "int32" + } + } + }, + "AnnotationsSummary": { + "id": "AnnotationsSummary", + "type": "object", + "properties": { + "kind": { + "type": "string", + "default": "books#annotationsSummary" + }, + "layers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "allowedCharacterCount": { + "type": "integer", + "format": "int32" + }, + "layerId": { + "type": "string" + }, + "limitType": { + "type": "string" + }, + "remainingCharacterCount": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "Annotationsdata": { + "id": "Annotationsdata", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of Annotation Data.", + "items": { + "$ref": "Annotationdata" + } + }, + "kind": { + "type": "string", + "description": "Resource type", + "default": "books#annotationsdata" + }, + "nextPageToken": { + "type": "string", + "description": "Token to pass in for pagination for the next page. This will not be present if this request does not have more results." + }, + "totalItems": { + "type": "integer", + "description": "The total number of volume annotations found.", + "format": "int32" + } + } + }, + "BooksAnnotationsRange": { + "id": "BooksAnnotationsRange", + "type": "object", + "properties": { + "endOffset": { + "type": "string", + "description": "The offset from the ending position." + }, + "endPosition": { + "type": "string", + "description": "The ending position for the range." + }, + "startOffset": { + "type": "string", + "description": "The offset from the starting position." + }, + "startPosition": { + "type": "string", + "description": "The starting position for the range." + } + } + }, + "BooksCloudloadingResource": { + "id": "BooksCloudloadingResource", + "type": "object", + "properties": { + "author": { + "type": "string" + }, + "processingState": { + "type": "string" + }, + "title": { + "type": "string" + }, + "volumeId": { + "type": "string" + } + } + }, + "BooksVolumesRecommendedRateResponse": { + "id": "BooksVolumesRecommendedRateResponse", + "type": "object", + "properties": { + "consistency_token": { + "type": "string" + } + } + }, + "Bookshelf": { + "id": "Bookshelf", + "type": "object", + "properties": { + "access": { + "type": "string", + "description": "Whether this bookshelf is PUBLIC or PRIVATE." + }, + "created": { + "type": "string", + "description": "Created time for this bookshelf (formatted UTC timestamp with millisecond resolution).", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "Description of this bookshelf." + }, + "id": { + "type": "integer", + "description": "Id of this bookshelf, only unique by user.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Resource type for bookshelf metadata.", + "default": "books#bookshelf" + }, + "selfLink": { + "type": "string", + "description": "URL to this resource." + }, + "title": { + "type": "string", + "description": "Title of this bookshelf." + }, + "updated": { + "type": "string", + "description": "Last modified time of this bookshelf (formatted UTC timestamp with millisecond resolution).", + "format": "date-time" + }, + "volumeCount": { + "type": "integer", + "description": "Number of volumes in this bookshelf.", + "format": "int32" + }, + "volumesLastUpdated": { + "type": "string", + "description": "Last time a volume was added or removed from this bookshelf (formatted UTC timestamp with millisecond resolution).", + "format": "date-time" + } + } + }, + "Bookshelves": { + "id": "Bookshelves", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of bookshelves.", + "items": { + "$ref": "Bookshelf" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#bookshelves" + } + } + }, + "Category": { + "id": "Category", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of onboarding categories.", + "items": { + "type": "object", + "properties": { + "badgeUrl": { + "type": "string" + }, + "categoryId": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "onboarding#category" + } + } + }, + "ConcurrentAccessRestriction": { + "id": "ConcurrentAccessRestriction", + "type": "object", + "properties": { + "deviceAllowed": { + "type": "boolean", + "description": "Whether access is granted for this (user, device, volume)." + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#concurrentAccessRestriction" + }, + "maxConcurrentDevices": { + "type": "integer", + "description": "The maximum number of concurrent access licenses for this volume.", + "format": "int32" + }, + "message": { + "type": "string", + "description": "Error/warning message." + }, + "nonce": { + "type": "string", + "description": "Client nonce for verification. Download access and client-validation only." + }, + "reasonCode": { + "type": "string", + "description": "Error/warning reason code." + }, + "restricted": { + "type": "boolean", + "description": "Whether this volume has any concurrent access restrictions." + }, + "signature": { + "type": "string", + "description": "Response signature." + }, + "source": { + "type": "string", + "description": "Client app identifier for verification. Download access and client-validation only." + }, + "timeWindowSeconds": { + "type": "integer", + "description": "Time in seconds for license auto-expiration.", + "format": "int32" + }, + "volumeId": { + "type": "string", + "description": "Identifies the volume for which this entry applies." + } + } + }, + "Dictlayerdata": { + "id": "Dictlayerdata", + "type": "object", + "properties": { + "common": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The display title and localized canonical name to use when searching for this entity on Google search." + } + } + }, + "dict": { + "type": "object", + "properties": { + "source": { + "type": "object", + "description": "The source, url and attribution for this dictionary data.", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "words": { + "type": "array", + "items": { + "type": "object", + "properties": { + "derivatives": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "text": { + "type": "string" + } + } + } + }, + "examples": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "text": { + "type": "string" + } + } + } + }, + "senses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "conjugations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "definitions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "definition": { + "type": "string" + }, + "examples": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "text": { + "type": "string" + } + } + } + } + } + } + }, + "partOfSpeech": { + "type": "string" + }, + "pronunciation": { + "type": "string" + }, + "pronunciationUrl": { + "type": "string" + }, + "source": { + "type": "object", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "syllabification": { + "type": "string" + }, + "synonyms": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "text": { + "type": "string" + } + } + } + } + } + } + }, + "source": { + "type": "object", + "description": "The words with different meanings but not related words, e.g. \"go\" (game) and \"go\" (verb).", + "properties": { + "attribution": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + } + } + } + } + }, + "kind": { + "type": "string", + "default": "books#dictlayerdata" + } + } + }, + "DownloadAccessRestriction": { + "id": "DownloadAccessRestriction", + "type": "object", + "properties": { + "deviceAllowed": { + "type": "boolean", + "description": "If restricted, whether access is granted for this (user, device, volume)." + }, + "downloadsAcquired": { + "type": "integer", + "description": "If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).", + "format": "int32" + }, + "justAcquired": { + "type": "boolean", + "description": "If deviceAllowed, whether access was just acquired with this request." + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#downloadAccessRestriction" + }, + "maxDownloadDevices": { + "type": "integer", + "description": "If restricted, the maximum number of content download licenses for this volume.", + "format": "int32" + }, + "message": { + "type": "string", + "description": "Error/warning message." + }, + "nonce": { + "type": "string", + "description": "Client nonce for verification. Download access and client-validation only." + }, + "reasonCode": { + "type": "string", + "description": "Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS" + }, + "restricted": { + "type": "boolean", + "description": "Whether this volume has any download access restrictions." + }, + "signature": { + "type": "string", + "description": "Response signature." + }, + "source": { + "type": "string", + "description": "Client app identifier for verification. Download access and client-validation only." + }, + "volumeId": { + "type": "string", + "description": "Identifies the volume for which this entry applies." + } + } + }, + "DownloadAccesses": { + "id": "DownloadAccesses", + "type": "object", + "properties": { + "downloadAccessList": { + "type": "array", + "description": "A list of download access responses.", + "items": { + "$ref": "DownloadAccessRestriction" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#downloadAccesses" + } + } + }, + "Geolayerdata": { + "id": "Geolayerdata", + "type": "object", + "properties": { + "common": { + "type": "object", + "properties": { + "lang": { + "type": "string", + "description": "The language of the information url and description." + }, + "previewImageUrl": { + "type": "string", + "description": "The URL for the preview image information." + }, + "snippet": { + "type": "string", + "description": "The description for this location." + }, + "snippetUrl": { + "type": "string", + "description": "The URL for information for this location. Ex: wikipedia link." + }, + "title": { + "type": "string", + "description": "The display title and localized canonical name to use when searching for this entity on Google search." + } + } + }, + "geo": { + "type": "object", + "properties": { + "boundary": { + "type": "array", + "description": "The boundary of the location as a set of loops containing pairs of latitude, longitude coordinates.", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "latitude": { + "type": "integer", + "format": "uint32" + }, + "longitude": { + "type": "integer", + "format": "uint32" + } + } + } + } + }, + "cachePolicy": { + "type": "string", + "description": "The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER" + }, + "countryCode": { + "type": "string", + "description": "The country code of the location." + }, + "latitude": { + "type": "number", + "description": "The latitude of the location.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "The longitude of the location.", + "format": "double" + }, + "mapType": { + "type": "string", + "description": "The type of map that should be used for this location. EX: HYBRID, ROADMAP, SATELLITE, TERRAIN" + }, + "viewport": { + "type": "object", + "description": "The viewport for showing this location. This is a latitude, longitude rectangle.", + "properties": { + "hi": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + } + } + }, + "lo": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "double" + }, + "longitude": { + "type": "number", + "format": "double" + } + } + } + } + }, + "zoom": { + "type": "integer", + "description": "The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom level, in which the entire world can be seen on one map) to 21+ (down to individual buildings). See: https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels", + "format": "int32" + } + } + }, + "kind": { + "type": "string", + "default": "books#geolayerdata" + } + } + }, + "Layersummaries": { + "id": "Layersummaries", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of layer summary items.", + "items": { + "$ref": "Layersummary" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#layersummaries" + }, + "totalItems": { + "type": "integer", + "description": "The total number of layer summaries found.", + "format": "int32" + } + } + }, + "Layersummary": { + "id": "Layersummary", + "type": "object", + "properties": { + "annotationCount": { + "type": "integer", + "description": "The number of annotations for this layer.", + "format": "int32" + }, + "annotationTypes": { + "type": "array", + "description": "The list of annotation types contained for this layer.", + "items": { + "type": "string" + } + }, + "annotationsDataLink": { + "type": "string", + "description": "Link to get data for this annotation." + }, + "annotationsLink": { + "type": "string", + "description": "The link to get the annotations for this layer." + }, + "contentVersion": { + "type": "string", + "description": "The content version this resource is for." + }, + "dataCount": { + "type": "integer", + "description": "The number of data items for this layer.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "Unique id of this layer summary." + }, + "kind": { + "type": "string", + "description": "Resource Type", + "default": "books#layersummary" + }, + "layerId": { + "type": "string", + "description": "The layer id for this summary." + }, + "selfLink": { + "type": "string", + "description": "URL to this resource." + }, + "updated": { + "type": "string", + "description": "Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC date-time format).", + "format": "date-time" + }, + "volumeAnnotationsVersion": { + "type": "string", + "description": "The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately." + }, + "volumeId": { + "type": "string", + "description": "The volume id this resource is for." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of offline dictionary metadata.", + "items": { + "type": "object", + "properties": { + "download_url": { + "type": "string" + }, + "encrypted_key": { + "type": "string" + }, + "language": { + "type": "string" + }, + "size": { + "type": "string", + "format": "int64" + }, + "version": { + "type": "string", + "format": "int64" + } + } + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "dictionary#metadata" + } + } + }, + "Offers": { + "id": "Offers", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of offers.", + "items": { + "type": "object", + "properties": { + "artUrl": { + "type": "string" + }, + "gservicesKey": { + "type": "string" + }, + "id": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "author": { + "type": "string" + }, + "canonicalVolumeLink": { + "type": "string" + }, + "coverUrl": { + "type": "string" + }, + "description": { + "type": "string" + }, + "title": { + "type": "string" + }, + "volumeId": { + "type": "string" + } + } + } + } + } + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "promooffer#offers" + } + } + }, + "ReadingPosition": { + "id": "ReadingPosition", + "type": "object", + "properties": { + "epubCfiPosition": { + "type": "string", + "description": "Position in an EPUB as a CFI." + }, + "gbImagePosition": { + "type": "string", + "description": "Position in a volume for image-based content." + }, + "gbTextPosition": { + "type": "string", + "description": "Position in a volume for text-based content." + }, + "kind": { + "type": "string", + "description": "Resource type for a reading position.", + "default": "books#readingPosition" + }, + "pdfPosition": { + "type": "string", + "description": "Position in a PDF file." + }, + "updated": { + "type": "string", + "description": "Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).", + "format": "date-time" + }, + "volumeId": { + "type": "string", + "description": "Volume id associated with this reading position." + } + } + }, + "RequestAccess": { + "id": "RequestAccess", + "type": "object", + "properties": { + "concurrentAccess": { + "$ref": "ConcurrentAccessRestriction", + "description": "A concurrent access response." + }, + "downloadAccess": { + "$ref": "DownloadAccessRestriction", + "description": "A download access response." + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#requestAccess" + } + } + }, + "Review": { + "id": "Review", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "Author of this review.", + "properties": { + "displayName": { + "type": "string", + "description": "Name of this person." + } + } + }, + "content": { + "type": "string", + "description": "Review text." + }, + "date": { + "type": "string", + "description": "Date of this review." + }, + "fullTextUrl": { + "type": "string", + "description": "URL for the full review text, for reviews gathered from the web." + }, + "kind": { + "type": "string", + "description": "Resource type for a review.", + "default": "books#review" + }, + "rating": { + "type": "string", + "description": "Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED." + }, + "source": { + "type": "object", + "description": "Information regarding the source of this review, when the review is not from a Google Books user.", + "properties": { + "description": { + "type": "string", + "description": "Name of the source." + }, + "extraDescription": { + "type": "string", + "description": "Extra text about the source of the review." + }, + "url": { + "type": "string", + "description": "URL of the source of the review." + } + } + }, + "title": { + "type": "string", + "description": "Title for this review." + }, + "type": { + "type": "string", + "description": "Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER." + }, + "volumeId": { + "type": "string", + "description": "Volume that this review is for." + } + } + }, + "Usersettings": { + "id": "Usersettings", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#usersettings" + }, + "notesExport": { + "type": "object", + "description": "User settings in sub-objects, each for different purposes.", + "properties": { + "folderName": { + "type": "string" + }, + "isEnabled": { + "type": "boolean" + } + } + } + } + }, + "Volume": { + "id": "Volume", + "type": "object", + "properties": { + "accessInfo": { + "type": "object", + "description": "Any information about a volume related to reading or obtaining that volume text. This information can depend on country (books may be public domain in one country but not in another, e.g.).", + "properties": { + "accessViewStatus": { + "type": "string", + "description": "Combines the access and viewability of this volume into a single status field for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE projection.)" + }, + "country": { + "type": "string", + "description": "The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)" + }, + "downloadAccess": { + "$ref": "DownloadAccessRestriction", + "description": "Information about a volume's download license access restrictions." + }, + "driveImportedContentLink": { + "type": "string", + "description": "URL to the Google Drive viewer if this volume is uploaded by the user by selecting the file from Google Drive." + }, + "embeddable": { + "type": "boolean", + "description": "Whether this volume can be embedded in a viewport using the Embedded Viewer API." + }, + "epub": { + "type": "object", + "description": "Information about epub content. (In LITE projection.)", + "properties": { + "acsTokenLink": { + "type": "string", + "description": "URL to retrieve ACS token for epub download. (In LITE projection.)" + }, + "downloadLink": { + "type": "string", + "description": "URL to download epub. (In LITE projection.)" + }, + "isAvailable": { + "type": "boolean", + "description": "Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)" + } + } + }, + "explicitOfflineLicenseManagement": { + "type": "boolean", + "description": "Whether this volume requires that the client explicitly request offline download license rather than have it done automatically when loading the content, if the client supports it." + }, + "pdf": { + "type": "object", + "description": "Information about pdf content. (In LITE projection.)", + "properties": { + "acsTokenLink": { + "type": "string", + "description": "URL to retrieve ACS token for pdf download. (In LITE projection.)" + }, + "downloadLink": { + "type": "string", + "description": "URL to download pdf. (In LITE projection.)" + }, + "isAvailable": { + "type": "boolean", + "description": "Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)" + } + } + }, + "publicDomain": { + "type": "boolean", + "description": "Whether or not this book is public domain in the country listed above." + }, + "quoteSharingAllowed": { + "type": "boolean", + "description": "Whether quote sharing is allowed for this volume." + }, + "textToSpeechPermission": { + "type": "string", + "description": "Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED." + }, + "viewOrderUrl": { + "type": "string", + "description": "For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page." + }, + "viewability": { + "type": "string", + "description": "The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the country listed above. A value of PARTIAL means that the publisher has allowed some portion of the volume to be viewed publicly, without purchase. This can apply to eBooks as well as non-eBooks. Public domain books will always have a value of ALL_PAGES." + }, + "webReaderLink": { + "type": "string", + "description": "URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes." + } + } + }, + "etag": { + "type": "string", + "description": "Opaque identifier for a specific version of a volume resource. (In LITE projection)" + }, + "id": { + "type": "string", + "description": "Unique identifier for a volume. (In LITE projection.)" + }, + "kind": { + "type": "string", + "description": "Resource type for a volume. (In LITE projection.)", + "default": "books#volume" + }, + "layerInfo": { + "type": "object", + "description": "What layers exist in this volume and high level information about them.", + "properties": { + "layers": { + "type": "array", + "description": "A layer should appear here if and only if the layer exists for this book.", + "items": { + "type": "object", + "properties": { + "layerId": { + "type": "string", + "description": "The layer id of this layer (e.g. \"geo\")." + }, + "volumeAnnotationsVersion": { + "type": "string", + "description": "The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately." + } + } + } + } + } + }, + "recommendedInfo": { + "type": "object", + "description": "Recommendation related information for this volume.", + "properties": { + "explanation": { + "type": "string", + "description": "A text explaining why this volume is recommended." + } + } + }, + "saleInfo": { + "type": "object", + "description": "Any information about a volume related to the eBookstore and/or purchaseability. This information can depend on the country where the request originates from (i.e. books may not be for sale in certain countries).", + "properties": { + "buyLink": { + "type": "string", + "description": "URL to purchase this volume on the Google Books site. (In LITE projection)" + }, + "country": { + "type": "string", + "description": "The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)" + }, + "isEbook": { + "type": "boolean", + "description": "Whether or not this volume is an eBook (can be added to the My eBooks shelf)." + }, + "listPrice": { + "type": "object", + "description": "Suggested retail price. (In LITE projection.)", + "properties": { + "amount": { + "type": "number", + "description": "Amount in the currency listed below. (In LITE projection.)", + "format": "double" + }, + "currencyCode": { + "type": "string", + "description": "An ISO 4217, three-letter currency code. (In LITE projection.)" + } + } + }, + "offers": { + "type": "array", + "description": "Offers available for this volume (sales and rentals).", + "items": { + "type": "object", + "properties": { + "finskyOfferType": { + "type": "integer", + "description": "The finsky offer type (e.g., PURCHASE=0 RENTAL=3)", + "format": "int32" + }, + "listPrice": { + "type": "object", + "description": "Offer list (=undiscounted) price in Micros.", + "properties": { + "amountInMicros": { + "type": "number", + "format": "double" + }, + "currencyCode": { + "type": "string" + } + } + }, + "rentalDuration": { + "type": "object", + "description": "The rental duration (for rental offers only).", + "properties": { + "count": { + "type": "number", + "format": "double" + }, + "unit": { + "type": "string" + } + } + }, + "retailPrice": { + "type": "object", + "description": "Offer retail (=discounted) price in Micros", + "properties": { + "amountInMicros": { + "type": "number", + "format": "double" + }, + "currencyCode": { + "type": "string" + } + } + } + } + } + }, + "onSaleDate": { + "type": "string", + "description": "The date on which this book is available for sale.", + "format": "date-time" + }, + "retailPrice": { + "type": "object", + "description": "The actual selling price of the book. This is the same as the suggested retail or list price unless there are offers or discounts on this volume. (In LITE projection.)", + "properties": { + "amount": { + "type": "number", + "description": "Amount in the currency listed below. (In LITE projection.)", + "format": "double" + }, + "currencyCode": { + "type": "string", + "description": "An ISO 4217, three-letter currency code. (In LITE projection.)" + } + } + }, + "saleability": { + "type": "string", + "description": "Whether or not this book is available for sale or offered for free in the Google eBookstore for the country listed above. Possible values are FOR_SALE, FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER." + } + } + }, + "searchInfo": { + "type": "object", + "description": "Search result information related to this volume.", + "properties": { + "textSnippet": { + "type": "string", + "description": "A text snippet containing the search query." + } + } + }, + "selfLink": { + "type": "string", + "description": "URL to this resource. (In LITE projection.)" + }, + "userInfo": { + "type": "object", + "description": "User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)", + "properties": { + "copy": { + "type": "object", + "description": "Copy/Paste accounting information.", + "properties": { + "allowedCharacterCount": { + "type": "integer", + "format": "int32" + }, + "limitType": { + "type": "string" + }, + "remainingCharacterCount": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "string", + "format": "date-time" + } + } + }, + "isInMyBooks": { + "type": "boolean", + "description": "Whether or not this volume is currently in \"my books.\"" + }, + "isPreordered": { + "type": "boolean", + "description": "Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)" + }, + "isPurchased": { + "type": "boolean", + "description": "Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)" + }, + "isUploaded": { + "type": "boolean", + "description": "Whether or not this volume was user uploaded." + }, + "readingPosition": { + "$ref": "ReadingPosition", + "description": "The user's current reading position in the volume, if one is available. (In LITE projection.)" + }, + "rentalPeriod": { + "type": "object", + "description": "Period during this book is/was a valid rental.", + "properties": { + "endUtcSec": { + "type": "string", + "format": "int64" + }, + "startUtcSec": { + "type": "string", + "format": "int64" + } + } + }, + "rentalState": { + "type": "string", + "description": "Whether this book is an active or an expired rental." + }, + "review": { + "$ref": "Review", + "description": "This user's review of this volume, if one exists." + }, + "updated": { + "type": "string", + "description": "Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (RFC 3339 UTC date-time format).", + "format": "date-time" + }, + "userUploadedVolumeInfo": { + "type": "object", + "properties": { + "processingState": { + "type": "string" + } + } + } + } + }, + "volumeInfo": { + "type": "object", + "description": "General volume information.", + "properties": { + "authors": { + "type": "array", + "description": "The names of the authors and/or editors for this volume. (In LITE projection)", + "items": { + "type": "string" + } + }, + "averageRating": { + "type": "number", + "description": "The mean review rating for this volume. (min = 1.0, max = 5.0)", + "format": "double" + }, + "canonicalVolumeLink": { + "type": "string", + "description": "Canonical URL for a volume. (In LITE projection.)" + }, + "categories": { + "type": "array", + "description": "A list of subject categories, such as \"Fiction\", \"Suspense\", etc.", + "items": { + "type": "string" + } + }, + "contentVersion": { + "type": "string", + "description": "An identifier for the version of the volume content (text & images). (In LITE projection)" + }, + "description": { + "type": "string", + "description": "A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)" + }, + "dimensions": { + "type": "object", + "description": "Physical dimensions of this volume.", + "properties": { + "height": { + "type": "string", + "description": "Height or length of this volume (in cm)." + }, + "thickness": { + "type": "string", + "description": "Thickness of this volume (in cm)." + }, + "width": { + "type": "string", + "description": "Width of this volume (in cm)." + } + } + }, + "imageLinks": { + "type": "object", + "description": "A list of image links for all the sizes that are available. (In LITE projection.)", + "properties": { + "extraLarge": { + "type": "string", + "description": "Image link for extra large size (width of ~1280 pixels). (In LITE projection)" + }, + "large": { + "type": "string", + "description": "Image link for large size (width of ~800 pixels). (In LITE projection)" + }, + "medium": { + "type": "string", + "description": "Image link for medium size (width of ~575 pixels). (In LITE projection)" + }, + "small": { + "type": "string", + "description": "Image link for small size (width of ~300 pixels). (In LITE projection)" + }, + "smallThumbnail": { + "type": "string", + "description": "Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)" + }, + "thumbnail": { + "type": "string", + "description": "Image link for thumbnail size (width of ~128 pixels). (In LITE projection)" + } + } + }, + "industryIdentifiers": { + "type": "array", + "description": "Industry standard identifiers for this volume.", + "items": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Industry specific volume identifier." + }, + "type": { + "type": "string", + "description": "Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER." + } + } + } + }, + "infoLink": { + "type": "string", + "description": "URL to view information about this volume on the Google Books site. (In LITE projection)" + }, + "language": { + "type": "string", + "description": "Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc." + }, + "mainCategory": { + "type": "string", + "description": "The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight." + }, + "pageCount": { + "type": "integer", + "description": "Total number of pages as per publisher metadata.", + "format": "int32" + }, + "previewLink": { + "type": "string", + "description": "URL to preview this volume on the Google Books site." + }, + "printType": { + "type": "string", + "description": "Type of publication of this volume. Possible values are BOOK or MAGAZINE." + }, + "printedPageCount": { + "type": "integer", + "description": "Total number of printed pages in generated pdf representation.", + "format": "int32" + }, + "publishedDate": { + "type": "string", + "description": "Date of publication. (In LITE projection.)" + }, + "publisher": { + "type": "string", + "description": "Publisher of this volume. (In LITE projection.)" + }, + "ratingsCount": { + "type": "integer", + "description": "The number of review ratings for this volume.", + "format": "int32" + }, + "readingModes": { + "type": "any", + "description": "The reading modes available for this volume." + }, + "samplePageCount": { + "type": "integer", + "description": "Total number of sample pages as per publisher metadata.", + "format": "int32" + }, + "subtitle": { + "type": "string", + "description": "Volume subtitle. (In LITE projection.)" + }, + "title": { + "type": "string", + "description": "Volume title. (In LITE projection.)" + } + } + } + } + }, + "Volume2": { + "id": "Volume2", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of volumes.", + "items": { + "$ref": "Volume" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "onboarding#volume" + }, + "nextPageToken": { + "type": "string" + } + } + }, + "Volumeannotation": { + "id": "Volumeannotation", + "type": "object", + "properties": { + "annotationDataId": { + "type": "string", + "description": "The annotation data id for this volume annotation." + }, + "annotationDataLink": { + "type": "string", + "description": "Link to get data for this annotation." + }, + "annotationType": { + "type": "string", + "description": "The type of annotation this is." + }, + "contentRanges": { + "type": "object", + "description": "The content ranges to identify the selected text.", + "properties": { + "cfiRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in CFI format for this annotation for version above." + }, + "contentVersion": { + "type": "string", + "description": "Content version applicable to ranges below." + }, + "gbImageRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB image format for this annotation for version above." + }, + "gbTextRange": { + "$ref": "BooksAnnotationsRange", + "description": "Range in GB text format for this annotation for version above." + } + } + }, + "data": { + "type": "string", + "description": "Data for this annotation." + }, + "deleted": { + "type": "boolean", + "description": "Indicates that this annotation is deleted." + }, + "id": { + "type": "string", + "description": "Unique id of this volume annotation." + }, + "kind": { + "type": "string", + "description": "Resource Type", + "default": "books#volumeannotation" + }, + "layerId": { + "type": "string", + "description": "The Layer this annotation is for." + }, + "pageIds": { + "type": "array", + "description": "Pages the annotation spans.", + "items": { + "type": "string" + } + }, + "selectedText": { + "type": "string", + "description": "Excerpt from the volume." + }, + "selfLink": { + "type": "string", + "description": "URL to this resource." + }, + "updated": { + "type": "string", + "description": "Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).", + "format": "date-time" + }, + "volumeId": { + "type": "string", + "description": "The Volume this annotation is for." + } + } + }, + "Volumeannotations": { + "id": "Volumeannotations", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of volume annotations.", + "items": { + "$ref": "Volumeannotation" + } + }, + "kind": { + "type": "string", + "description": "Resource type", + "default": "books#volumeannotations" + }, + "nextPageToken": { + "type": "string", + "description": "Token to pass in for pagination for the next page. This will not be present if this request does not have more results." + }, + "totalItems": { + "type": "integer", + "description": "The total number of volume annotations found.", + "format": "int32" + }, + "version": { + "type": "string", + "description": "The version string for all of the volume annotations in this layer (not just the ones in this response). Note: the version string doesn't apply to the annotation data, just the information in this response (e.g. the location of annotations in the book)." + } + } + }, + "Volumes": { + "id": "Volumes", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of volumes.", + "items": { + "$ref": "Volume" + } + }, + "kind": { + "type": "string", + "description": "Resource type.", + "default": "books#volumes" + }, + "totalItems": { + "type": "integer", + "description": "Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.", + "format": "int32" + } + } + } + }, + "resources": { + "bookshelves": { + "methods": { + "get": { + "id": "books.bookshelves.get", + "path": "users/{userId}/bookshelves/{shelf}", + "httpMethod": "GET", + "description": "Retrieves metadata for a specific bookshelf for the specified user.", + "parameters": { + "shelf": { + "type": "string", + "description": "ID of bookshelf to retrieve.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of user for whom to retrieve bookshelves.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "shelf" + ], + "response": { + "$ref": "Bookshelf" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.bookshelves.list", + "path": "users/{userId}/bookshelves", + "httpMethod": "GET", + "description": "Retrieves a list of public bookshelves for the specified user.", + "parameters": { + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of user for whom to retrieve bookshelves.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "Bookshelves" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + }, + "resources": { + "volumes": { + "methods": { + "list": { + "id": "books.bookshelves.volumes.list", + "path": "users/{userId}/bookshelves/{shelf}/volumes", + "httpMethod": "GET", + "description": "Retrieves volumes in a specific bookshelf for the specified user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "shelf": { + "type": "string", + "description": "ID of bookshelf to retrieve volumes.", + "required": true, + "location": "path" + }, + "showPreorders": { + "type": "boolean", + "description": "Set to true to show pre-ordered books. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first element to return (starts at 0)", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "userId": { + "type": "string", + "description": "ID of user for whom to retrieve bookshelf volumes.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "shelf" + ], + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + } + } + }, + "cloudloading": { + "methods": { + "addBook": { + "id": "books.cloudloading.addBook", + "path": "cloudloading/addBook", + "httpMethod": "POST", + "description": "", + "parameters": { + "drive_document_id": { + "type": "string", + "description": "A drive document id. The upload_client_token must not be set.", + "location": "query" + }, + "mime_type": { + "type": "string", + "description": "The document MIME type. It can be set only if the drive_document_id is set.", + "location": "query" + }, + "name": { + "type": "string", + "description": "The document name. It can be set only if the drive_document_id is set.", + "location": "query" + }, + "upload_client_token": { + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "BooksCloudloadingResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "deleteBook": { + "id": "books.cloudloading.deleteBook", + "path": "cloudloading/deleteBook", + "httpMethod": "POST", + "description": "Remove the book and its contents", + "parameters": { + "volumeId": { + "type": "string", + "description": "The id of the book to be removed.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "volumeId" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "updateBook": { + "id": "books.cloudloading.updateBook", + "path": "cloudloading/updateBook", + "httpMethod": "POST", + "description": "", + "request": { + "$ref": "BooksCloudloadingResource" + }, + "response": { + "$ref": "BooksCloudloadingResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "dictionary": { + "methods": { + "listOfflineMetadata": { + "id": "books.dictionary.listOfflineMetadata", + "path": "dictionary/listOfflineMetadata", + "httpMethod": "GET", + "description": "Returns a list of offline dictionary meatadata available", + "parameters": { + "cpksver": { + "type": "string", + "description": "The device/version ID from which to request the data.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "cpksver" + ], + "response": { + "$ref": "Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "layers": { + "methods": { + "get": { + "id": "books.layers.get", + "path": "volumes/{volumeId}/layersummary/{summaryId}", + "httpMethod": "GET", + "description": "Gets the layer summary for a volume.", + "parameters": { + "contentVersion": { + "type": "string", + "description": "The content version for the requested volume.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "summaryId": { + "type": "string", + "description": "The ID for the layer to get the summary for.", + "required": true, + "location": "path" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve layers for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId", + "summaryId" + ], + "response": { + "$ref": "Layersummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.layers.list", + "path": "volumes/{volumeId}/layersummary", + "httpMethod": "GET", + "description": "List the layer summaries for a volume.", + "parameters": { + "contentVersion": { + "type": "string", + "description": "The content version for the requested volume.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous page.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve layers for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId" + ], + "response": { + "$ref": "Layersummaries" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + }, + "resources": { + "annotationData": { + "methods": { + "get": { + "id": "books.layers.annotationData.get", + "path": "volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}", + "httpMethod": "GET", + "description": "Gets the annotation data.", + "parameters": { + "allowWebDefinitions": { + "type": "boolean", + "description": "For the dictionary layer. Whether or not to allow web definitions.", + "location": "query" + }, + "annotationDataId": { + "type": "string", + "description": "The ID of the annotation data to retrieve.", + "required": true, + "location": "path" + }, + "contentVersion": { + "type": "string", + "description": "The content version for the volume you are trying to retrieve.", + "required": true, + "location": "query" + }, + "h": { + "type": "integer", + "description": "The requested pixel height for any images. If height is provided width must also be provided.", + "format": "int32", + "location": "query" + }, + "layerId": { + "type": "string", + "description": "The ID for the layer to get the annotations.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.", + "location": "query" + }, + "scale": { + "type": "integer", + "description": "The requested scale for the image.", + "format": "int32", + "minimum": "0", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve annotations for.", + "required": true, + "location": "path" + }, + "w": { + "type": "integer", + "description": "The requested pixel width for any images. If width is provided height must also be provided.", + "format": "int32", + "location": "query" + } + }, + "parameterOrder": [ + "volumeId", + "layerId", + "annotationDataId", + "contentVersion" + ], + "response": { + "$ref": "Annotationdata" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.layers.annotationData.list", + "path": "volumes/{volumeId}/layers/{layerId}/data", + "httpMethod": "GET", + "description": "Gets the annotation data for a volume and layer.", + "parameters": { + "annotationDataId": { + "type": "string", + "description": "The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set.", + "repeated": true, + "location": "query" + }, + "contentVersion": { + "type": "string", + "description": "The content version for the requested volume.", + "required": true, + "location": "query" + }, + "h": { + "type": "integer", + "description": "The requested pixel height for any images. If height is provided width must also be provided.", + "format": "int32", + "location": "query" + }, + "layerId": { + "type": "string", + "description": "The ID for the layer to get the annotation data.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous page.", + "location": "query" + }, + "scale": { + "type": "integer", + "description": "The requested scale for the image.", + "format": "int32", + "minimum": "0", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "updatedMax": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).", + "location": "query" + }, + "updatedMin": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve annotation data for.", + "required": true, + "location": "path" + }, + "w": { + "type": "integer", + "description": "The requested pixel width for any images. If width is provided height must also be provided.", + "format": "int32", + "location": "query" + } + }, + "parameterOrder": [ + "volumeId", + "layerId", + "contentVersion" + ], + "response": { + "$ref": "Annotationsdata" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "volumeAnnotations": { + "methods": { + "get": { + "id": "books.layers.volumeAnnotations.get", + "path": "volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}", + "httpMethod": "GET", + "description": "Gets the volume annotation.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID of the volume annotation to retrieve.", + "required": true, + "location": "path" + }, + "layerId": { + "type": "string", + "description": "The ID for the layer to get the annotations.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve annotations for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId", + "layerId", + "annotationId" + ], + "response": { + "$ref": "Volumeannotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.layers.volumeAnnotations.list", + "path": "volumes/{volumeId}/layers/{layerId}", + "httpMethod": "GET", + "description": "Gets the volume annotations for a volume and layer.", + "parameters": { + "contentVersion": { + "type": "string", + "description": "The content version for the requested volume.", + "required": true, + "location": "query" + }, + "endOffset": { + "type": "string", + "description": "The end offset to end retrieving data from.", + "location": "query" + }, + "endPosition": { + "type": "string", + "description": "The end position to end retrieving data from.", + "location": "query" + }, + "layerId": { + "type": "string", + "description": "The ID for the layer to get the annotations.", + "required": true, + "location": "path" + }, + "locale": { + "type": "string", + "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous page.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startOffset": { + "type": "string", + "description": "The start offset to start retrieving data from.", + "location": "query" + }, + "startPosition": { + "type": "string", + "description": "The start position to start retrieving data from.", + "location": "query" + }, + "updatedMax": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).", + "location": "query" + }, + "updatedMin": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).", + "location": "query" + }, + "volumeAnnotationsVersion": { + "type": "string", + "description": "The version of the volume annotations that you are requesting.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to retrieve annotations for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId", + "layerId", + "contentVersion" + ], + "response": { + "$ref": "Volumeannotations" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + } + } + }, + "myconfig": { + "methods": { + "getUserSettings": { + "id": "books.myconfig.getUserSettings", + "path": "myconfig/getUserSettings", + "httpMethod": "GET", + "description": "Gets the current settings for the user.", + "response": { + "$ref": "Usersettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "releaseDownloadAccess": { + "id": "books.myconfig.releaseDownloadAccess", + "path": "myconfig/releaseDownloadAccess", + "httpMethod": "POST", + "description": "Release downloaded content access restriction.", + "parameters": { + "cpksver": { + "type": "string", + "description": "The device/version ID from which to release the restriction.", + "required": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeIds": { + "type": "string", + "description": "The volume(s) to release restrictions for.", + "required": true, + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "volumeIds", + "cpksver" + ], + "response": { + "$ref": "DownloadAccesses" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "requestAccess": { + "id": "books.myconfig.requestAccess", + "path": "myconfig/requestAccess", + "httpMethod": "POST", + "description": "Request concurrent and download access restrictions.", + "parameters": { + "cpksver": { + "type": "string", + "description": "The device/version ID from which to request the restrictions.", + "required": true, + "location": "query" + }, + "licenseTypes": { + "type": "string", + "description": "The type of access license to request. If not specified, the default is BOTH.", + "enum": [ + "BOTH", + "CONCURRENT", + "DOWNLOAD" + ], + "enumDescriptions": [ + "Both concurrent and download licenses.", + "Concurrent access license.", + "Offline download access license." + ], + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.", + "location": "query" + }, + "nonce": { + "type": "string", + "description": "The client nonce value.", + "required": true, + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "required": true, + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to request concurrent/download restrictions for.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "source", + "volumeId", + "nonce", + "cpksver" + ], + "response": { + "$ref": "RequestAccess" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "syncVolumeLicenses": { + "id": "books.myconfig.syncVolumeLicenses", + "path": "myconfig/syncVolumeLicenses", + "httpMethod": "POST", + "description": "Request downloaded content access for specified volumes on the My eBooks shelf.", + "parameters": { + "cpksver": { + "type": "string", + "description": "The device/version ID from which to release the restriction.", + "required": true, + "location": "query" + }, + "features": { + "type": "string", + "description": "List of features supported by the client, i.e., 'RENTALS'", + "enum": [ + "RENTALS" + ], + "enumDescriptions": [ + "Client supports rentals." + ], + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.", + "location": "query" + }, + "nonce": { + "type": "string", + "description": "The client nonce value.", + "required": true, + "location": "query" + }, + "showPreorders": { + "type": "boolean", + "description": "Set to true to show pre-ordered books. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "required": true, + "location": "query" + }, + "volumeIds": { + "type": "string", + "description": "The volume(s) to request download restrictions for.", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "source", + "nonce", + "cpksver" + ], + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "updateUserSettings": { + "id": "books.myconfig.updateUserSettings", + "path": "myconfig/updateUserSettings", + "httpMethod": "POST", + "description": "Sets the settings for the user. Unspecified sub-objects will retain the existing value.", + "request": { + "$ref": "Usersettings" + }, + "response": { + "$ref": "Usersettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "mylibrary": { + "resources": { + "annotations": { + "methods": { + "delete": { + "id": "books.mylibrary.annotations.delete", + "path": "mylibrary/annotations/{annotationId}", + "httpMethod": "DELETE", + "description": "Deletes an annotation.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID for the annotation to delete.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "parameterOrder": [ + "annotationId" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "get": { + "id": "books.mylibrary.annotations.get", + "path": "mylibrary/annotations/{annotationId}", + "httpMethod": "GET", + "description": "Gets an annotation by its ID.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID for the annotation to retrieve.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "parameterOrder": [ + "annotationId" + ], + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "insert": { + "id": "books.mylibrary.annotations.insert", + "path": "mylibrary/annotations", + "httpMethod": "POST", + "description": "Inserts a new annotation.", + "parameters": { + "country": { + "type": "string", + "description": "ISO-3166-1 code to override the IP-based location.", + "location": "query" + }, + "showOnlySummaryInResponse": { + "type": "boolean", + "description": "Requests that only the summary of the specified layer be provided in the response.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "request": { + "$ref": "Annotation" + }, + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.mylibrary.annotations.list", + "path": "mylibrary/annotations", + "httpMethod": "GET", + "description": "Retrieves a list of annotations, possibly filtered.", + "parameters": { + "contentVersion": { + "type": "string", + "description": "The content version for the requested volume.", + "location": "query" + }, + "layerId": { + "type": "string", + "description": "The layer ID to limit annotation by.", + "location": "query" + }, + "layerIds": { + "type": "string", + "description": "The layer ID(s) to limit annotation by.", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "maximum": "40", + "location": "query" + }, + "pageIds": { + "type": "string", + "description": "The page ID(s) for the volume that is being queried.", + "repeated": true, + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous page.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "updatedMax": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).", + "location": "query" + }, + "updatedMin": { + "type": "string", + "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The volume to restrict annotations to.", + "location": "query" + } + }, + "response": { + "$ref": "Annotations" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "summary": { + "id": "books.mylibrary.annotations.summary", + "path": "mylibrary/annotations/summary", + "httpMethod": "POST", + "description": "Gets the summary of specified layers.", + "parameters": { + "layerIds": { + "type": "string", + "description": "Array of layer IDs to get the summary for.", + "required": true, + "repeated": true, + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "Volume id to get the summary for.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "layerIds", + "volumeId" + ], + "response": { + "$ref": "AnnotationsSummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "update": { + "id": "books.mylibrary.annotations.update", + "path": "mylibrary/annotations/{annotationId}", + "httpMethod": "PUT", + "description": "Updates an existing annotation.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID for the annotation to update.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "parameterOrder": [ + "annotationId" + ], + "request": { + "$ref": "Annotation" + }, + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "bookshelves": { + "methods": { + "addVolume": { + "id": "books.mylibrary.bookshelves.addVolume", + "path": "mylibrary/bookshelves/{shelf}/addVolume", + "httpMethod": "POST", + "description": "Adds a volume to a bookshelf.", + "parameters": { + "reason": { + "type": "string", + "description": "The reason for which the book is added to the library.", + "enum": [ + "IOS_PREX", + "IOS_SEARCH", + "ONBOARDING" + ], + "enumDescriptions": [ + "Volumes added from the PREX flow on iOS.", + "Volumes added from the Search flow on iOS.", + "Volumes added from the Onboarding flow." + ], + "location": "query" + }, + "shelf": { + "type": "string", + "description": "ID of bookshelf to which to add a volume.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume to add.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "shelf", + "volumeId" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "clearVolumes": { + "id": "books.mylibrary.bookshelves.clearVolumes", + "path": "mylibrary/bookshelves/{shelf}/clearVolumes", + "httpMethod": "POST", + "description": "Clears all volumes from a bookshelf.", + "parameters": { + "shelf": { + "type": "string", + "description": "ID of bookshelf from which to remove a volume.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "parameterOrder": [ + "shelf" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "get": { + "id": "books.mylibrary.bookshelves.get", + "path": "mylibrary/bookshelves/{shelf}", + "httpMethod": "GET", + "description": "Retrieves metadata for a specific bookshelf belonging to the authenticated user.", + "parameters": { + "shelf": { + "type": "string", + "description": "ID of bookshelf to retrieve.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "parameterOrder": [ + "shelf" + ], + "response": { + "$ref": "Bookshelf" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.mylibrary.bookshelves.list", + "path": "mylibrary/bookshelves", + "httpMethod": "GET", + "description": "Retrieves a list of bookshelves belonging to the authenticated user.", + "parameters": { + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "response": { + "$ref": "Bookshelves" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "moveVolume": { + "id": "books.mylibrary.bookshelves.moveVolume", + "path": "mylibrary/bookshelves/{shelf}/moveVolume", + "httpMethod": "POST", + "description": "Moves a volume within a bookshelf.", + "parameters": { + "shelf": { + "type": "string", + "description": "ID of bookshelf with the volume.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume to move.", + "required": true, + "location": "query" + }, + "volumePosition": { + "type": "integer", + "description": "Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on.)", + "required": true, + "format": "int32", + "location": "query" + } + }, + "parameterOrder": [ + "shelf", + "volumeId", + "volumePosition" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "removeVolume": { + "id": "books.mylibrary.bookshelves.removeVolume", + "path": "mylibrary/bookshelves/{shelf}/removeVolume", + "httpMethod": "POST", + "description": "Removes a volume from a bookshelf.", + "parameters": { + "reason": { + "type": "string", + "description": "The reason for which the book is removed from the library.", + "enum": [ + "ONBOARDING" + ], + "enumDescriptions": [ + "Samples removed from the Onboarding flow." + ], + "location": "query" + }, + "shelf": { + "type": "string", + "description": "ID of bookshelf from which to remove a volume.", + "required": true, + "location": "path" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume to remove.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "shelf", + "volumeId" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + }, + "resources": { + "volumes": { + "methods": { + "list": { + "id": "books.mylibrary.bookshelves.volumes.list", + "path": "mylibrary/bookshelves/{shelf}/volumes", + "httpMethod": "GET", + "description": "Gets volume information for volumes on a bookshelf.", + "parameters": { + "country": { + "type": "string", + "description": "ISO-3166-1 code to override the IP-based location.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "full", + "lite" + ], + "enumDescriptions": [ + "Includes all volume data.", + "Includes a subset of fields in volumeInfo and accessInfo." + ], + "location": "query" + }, + "q": { + "type": "string", + "description": "Full-text search query string in this bookshelf.", + "location": "query" + }, + "shelf": { + "type": "string", + "description": "The bookshelf ID or name retrieve volumes for.", + "required": true, + "location": "path" + }, + "showPreorders": { + "type": "boolean", + "description": "Set to true to show pre-ordered books. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first element to return (starts at 0)", + "format": "uint32", + "minimum": "0", + "location": "query" + } + }, + "parameterOrder": [ + "shelf" + ], + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + } + } + }, + "readingpositions": { + "methods": { + "get": { + "id": "books.mylibrary.readingpositions.get", + "path": "mylibrary/readingpositions/{volumeId}", + "httpMethod": "GET", + "description": "Retrieves my reading position information for a volume.", + "parameters": { + "contentVersion": { + "type": "string", + "description": "Volume content version for which this reading position is requested.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume for which to retrieve a reading position.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId" + ], + "response": { + "$ref": "ReadingPosition" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "setPosition": { + "id": "books.mylibrary.readingpositions.setPosition", + "path": "mylibrary/readingpositions/{volumeId}/setPosition", + "httpMethod": "POST", + "description": "Sets my reading position information for a volume.", + "parameters": { + "action": { + "type": "string", + "description": "Action that caused this reading position to be set.", + "enum": [ + "bookmark", + "chapter", + "next-page", + "prev-page", + "scroll", + "search" + ], + "enumDescriptions": [ + "User chose bookmark within volume.", + "User selected chapter from list.", + "Next page event.", + "Previous page event.", + "User navigated to page.", + "User chose search results within volume." + ], + "location": "query" + }, + "contentVersion": { + "type": "string", + "description": "Volume content version for which this reading position applies.", + "location": "query" + }, + "deviceCookie": { + "type": "string", + "description": "Random persistent device cookie optional on set position.", + "location": "query" + }, + "position": { + "type": "string", + "description": "Position string for the new volume reading position.", + "required": true, + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "timestamp": { + "type": "string", + "description": "RFC 3339 UTC format timestamp associated with this reading position.", + "required": true, + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume for which to update the reading position.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId", + "timestamp", + "position" + ], + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + } + } + }, + "onboarding": { + "methods": { + "listCategories": { + "id": "books.onboarding.listCategories", + "path": "onboarding/listCategories", + "httpMethod": "GET", + "description": "List categories for onboarding experience.", + "parameters": { + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.", + "location": "query" + } + }, + "response": { + "$ref": "Category" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "listCategoryVolumes": { + "id": "books.onboarding.listCategoryVolumes", + "path": "onboarding/listCategoryVolumes", + "httpMethod": "GET", + "description": "List available volumes under categories for onboarding experience.", + "parameters": { + "categoryId": { + "type": "string", + "description": "List of category ids requested.", + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.", + "location": "query" + }, + "pageSize": { + "type": "integer", + "description": "Number of maximum results per page to be included in the response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous page.", + "location": "query" + } + }, + "response": { + "$ref": "Volume2" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "promooffer": { + "methods": { + "accept": { + "id": "books.promooffer.accept", + "path": "promooffer/accept", + "httpMethod": "POST", + "description": "", + "parameters": { + "androidId": { + "type": "string", + "description": "device android_id", + "location": "query" + }, + "device": { + "type": "string", + "description": "device device", + "location": "query" + }, + "manufacturer": { + "type": "string", + "description": "device manufacturer", + "location": "query" + }, + "model": { + "type": "string", + "description": "device model", + "location": "query" + }, + "offerId": { + "type": "string", + "location": "query" + }, + "product": { + "type": "string", + "description": "device product", + "location": "query" + }, + "serial": { + "type": "string", + "description": "device serial", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "Volume id to exercise the offer", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "dismiss": { + "id": "books.promooffer.dismiss", + "path": "promooffer/dismiss", + "httpMethod": "POST", + "description": "", + "parameters": { + "androidId": { + "type": "string", + "description": "device android_id", + "location": "query" + }, + "device": { + "type": "string", + "description": "device device", + "location": "query" + }, + "manufacturer": { + "type": "string", + "description": "device manufacturer", + "location": "query" + }, + "model": { + "type": "string", + "description": "device model", + "location": "query" + }, + "offerId": { + "type": "string", + "description": "Offer to dimiss", + "location": "query" + }, + "product": { + "type": "string", + "description": "device product", + "location": "query" + }, + "serial": { + "type": "string", + "description": "device serial", + "location": "query" + } + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "get": { + "id": "books.promooffer.get", + "path": "promooffer/get", + "httpMethod": "GET", + "description": "Returns a list of promo offers available to the user", + "parameters": { + "androidId": { + "type": "string", + "description": "device android_id", + "location": "query" + }, + "device": { + "type": "string", + "description": "device device", + "location": "query" + }, + "manufacturer": { + "type": "string", + "description": "device manufacturer", + "location": "query" + }, + "model": { + "type": "string", + "description": "device model", + "location": "query" + }, + "product": { + "type": "string", + "description": "device product", + "location": "query" + }, + "serial": { + "type": "string", + "description": "device serial", + "location": "query" + } + }, + "response": { + "$ref": "Offers" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "volumes": { + "methods": { + "get": { + "id": "books.volumes.get", + "path": "volumes/{volumeId}", + "httpMethod": "GET", + "description": "Gets volume information for a single volume.", + "parameters": { + "country": { + "type": "string", + "description": "ISO-3166-1 code to override the IP-based location.", + "location": "query" + }, + "partner": { + "type": "string", + "description": "Brand results for partner ID.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "full", + "lite" + ], + "enumDescriptions": [ + "Includes all volume data.", + "Includes a subset of fields in volumeInfo and accessInfo." + ], + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "user_library_consistent_read": { + "type": "boolean", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of volume to retrieve.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId" + ], + "response": { + "$ref": "Volume" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "list": { + "id": "books.volumes.list", + "path": "volumes", + "httpMethod": "GET", + "description": "Performs a book search.", + "parameters": { + "download": { + "type": "string", + "description": "Restrict to volumes by download availability.", + "enum": [ + "epub" + ], + "enumDescriptions": [ + "All volumes with epub." + ], + "location": "query" + }, + "filter": { + "type": "string", + "description": "Filter search results.", + "enum": [ + "ebooks", + "free-ebooks", + "full", + "paid-ebooks", + "partial" + ], + "enumDescriptions": [ + "All Google eBooks.", + "Google eBook with full volume text viewability.", + "Public can view entire volume text.", + "Google eBook with a price.", + "Public able to see parts of text." + ], + "location": "query" + }, + "langRestrict": { + "type": "string", + "description": "Restrict results to books with this language code.", + "location": "query" + }, + "libraryRestrict": { + "type": "string", + "description": "Restrict search to this user's library.", + "enum": [ + "my-library", + "no-restrict" + ], + "enumDescriptions": [ + "Restrict to the user's library, any shelf.", + "Do not restrict based on user's library." + ], + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "uint32", + "minimum": "0", + "maximum": "40", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Sort search results.", + "enum": [ + "newest", + "relevance" + ], + "enumDescriptions": [ + "Most recently published.", + "Relevance to search terms." + ], + "location": "query" + }, + "partner": { + "type": "string", + "description": "Restrict and brand results for partner ID.", + "location": "query" + }, + "printType": { + "type": "string", + "description": "Restrict to books or magazines.", + "enum": [ + "all", + "books", + "magazines" + ], + "enumDescriptions": [ + "All volume content types.", + "Just books.", + "Just magazines." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Restrict information returned to a set of selected fields.", + "enum": [ + "full", + "lite" + ], + "enumDescriptions": [ + "Includes all volume data.", + "Includes a subset of fields in volumeInfo and accessInfo." + ], + "location": "query" + }, + "q": { + "type": "string", + "description": "Full-text search query string.", + "required": true, + "location": "query" + }, + "showPreorders": { + "type": "boolean", + "description": "Set to true to show books available for preorder. Defaults to false.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first result to return (starts at 0)", + "format": "uint32", + "minimum": "0", + "location": "query" + } + }, + "parameterOrder": [ + "q" + ], + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + }, + "resources": { + "associated": { + "methods": { + "list": { + "id": "books.volumes.associated.list", + "path": "volumes/{volumeId}/associated", + "httpMethod": "GET", + "description": "Return a list of associated books.", + "parameters": { + "association": { + "type": "string", + "description": "Association type.", + "enum": [ + "end-of-sample", + "end-of-volume", + "related-for-play" + ], + "enumDescriptions": [ + "Recommendations for display end-of-sample.", + "Recommendations for display end-of-volume.", + "Related volumes for Play Store." + ], + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of the source volume.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "volumeId" + ], + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "mybooks": { + "methods": { + "list": { + "id": "books.volumes.mybooks.list", + "path": "volumes/mybooks", + "httpMethod": "GET", + "description": "Return a list of books in My Library.", + "parameters": { + "acquireMethod": { + "type": "string", + "description": "How the book was aquired", + "enum": [ + "PREORDERED", + "PREVIOUSLY_RENTED", + "PUBLIC_DOMAIN", + "PURCHASED", + "RENTED", + "SAMPLE", + "UPLOADED" + ], + "enumDescriptions": [ + "Preordered books (not yet available)", + "User-rented books past their expiration time", + "Public domain books", + "Purchased books", + "User-rented books", + "Sample books", + "User uploaded books" + ], + "repeated": true, + "location": "query" + }, + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for generating recommendations.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "uint32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "processingState": { + "type": "string", + "description": "The processing state of the user uploaded volumes to be returned. Applicable only if the UPLOADED is specified in the acquireMethod.", + "enum": [ + "COMPLETED_FAILED", + "COMPLETED_SUCCESS", + "RUNNING" + ], + "enumDescriptions": [ + "The volume processing hase failed.", + "The volume processing was completed.", + "The volume processing is not completed." + ], + "repeated": true, + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first result to return (starts at 0)", + "format": "uint32", + "minimum": "0", + "location": "query" + } + }, + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "recommended": { + "methods": { + "list": { + "id": "books.volumes.recommended.list", + "path": "volumes/recommended", + "httpMethod": "GET", + "description": "Return a list of recommended books for the current user.", + "parameters": { + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.", + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + } + }, + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + }, + "rate": { + "id": "books.volumes.recommended.rate", + "path": "volumes/recommended/rate", + "httpMethod": "POST", + "description": "Rate a recommended book for the current user.", + "parameters": { + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.", + "location": "query" + }, + "rating": { + "type": "string", + "description": "Rating to be given to the volume.", + "required": true, + "enum": [ + "HAVE_IT", + "NOT_INTERESTED" + ], + "enumDescriptions": [ + "Rating indicating a dismissal due to ownership.", + "Rating indicating a negative dismissal of a volume." + ], + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "ID of the source volume.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "rating", + "volumeId" + ], + "response": { + "$ref": "BooksVolumesRecommendedRateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + }, + "useruploaded": { + "methods": { + "list": { + "id": "books.volumes.useruploaded.list", + "path": "volumes/useruploaded", + "httpMethod": "GET", + "description": "Return a list of books uploaded by the current user.", + "parameters": { + "locale": { + "type": "string", + "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "uint32", + "minimum": "0", + "maximum": "40", + "location": "query" + }, + "processingState": { + "type": "string", + "description": "The processing state of the user uploaded volumes to be returned.", + "enum": [ + "COMPLETED_FAILED", + "COMPLETED_SUCCESS", + "RUNNING" + ], + "enumDescriptions": [ + "The volume processing hase failed.", + "The volume processing was completed.", + "The volume processing is not completed." + ], + "repeated": true, + "location": "query" + }, + "source": { + "type": "string", + "description": "String to identify the originator of this request.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Index of the first result to return (starts at 0)", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "volumeId": { + "type": "string", + "description": "The ids of the volumes to be returned. If not specified all that match the processingState are returned.", + "repeated": true, + "location": "query" + } + }, + "response": { + "$ref": "Volumes" + }, + "scopes": [ + "https://www.googleapis.com/auth/books" + ] + } + } + } + } + } + } +} diff --git a/etc/api/calendar/v3/calendar-api.json b/etc/api/calendar/v3/calendar-api.json new file mode 100644 index 0000000000..ffdc46771f --- /dev/null +++ b/etc/api/calendar/v3/calendar-api.json @@ -0,0 +1,2610 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/IMFldb9KK1xhvvmWpAqvvLL8wN4\"", + "discoveryVersion": "v1", + "id": "calendar:v3", + "name": "calendar", + "version": "v3", + "revision": "20141214", + "title": "Calendar API", + "description": "Lets you manipulate events and other calendar data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/calendar-16.png", + "x32": "http://www.google.com/images/icons/product/calendar-32.png" + }, + "documentationLink": "https://developers.google.com/google-apps/calendar/firstapp", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/calendar/v3/", + "basePath": "/calendar/v3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "calendar/v3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/calendar": { + "description": "Manage your calendars" + }, + "https://www.googleapis.com/auth/calendar.readonly": { + "description": "View your calendars" + } + } + } + }, + "schemas": { + "Acl": { + "id": "Acl", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the collection." + }, + "items": { + "type": "array", + "description": "List of rules on the access control list.", + "items": { + "$ref": "AclRule" + } + }, + "kind": { + "type": "string", + "description": "Type of the collection (\"calendar#acl\").", + "default": "calendar#acl" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided." + }, + "nextSyncToken": { + "type": "string", + "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided." + } + } + }, + "AclRule": { + "id": "AclRule", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Identifier of the ACL rule." + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#aclRule\").", + "default": "calendar#aclRule" + }, + "role": { + "type": "string", + "description": "The role assigned to the scope. Possible values are: \n- \"none\" - Provides no access. \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.", + "annotations": { + "required": [ + "calendar.acl.insert" + ] + } + }, + "scope": { + "type": "object", + "description": "The scope of the rule.", + "properties": { + "type": { + "type": "string", + "description": "The type of the scope. Possible values are: \n- \"default\" - The public scope. This is the default value. \n- \"user\" - Limits the scope to a single user. \n- \"group\" - Limits the scope to a group. \n- \"domain\" - Limits the scope to a domain. Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.", + "annotations": { + "required": [ + "calendar.acl.insert" + ] + } + }, + "value": { + "type": "string", + "description": "The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\"." + } + }, + "annotations": { + "required": [ + "calendar.acl.insert" + ] + } + } + } + }, + "Calendar": { + "id": "Calendar", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the calendar. Optional." + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Identifier of the calendar." + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#calendar\").", + "default": "calendar#calendar" + }, + "location": { + "type": "string", + "description": "Geographic location of the calendar as free-form text. Optional." + }, + "summary": { + "type": "string", + "description": "Title of the calendar.", + "annotations": { + "required": [ + "calendar.calendars.insert" + ] + } + }, + "timeZone": { + "type": "string", + "description": "The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) Optional." + } + } + }, + "CalendarList": { + "id": "CalendarList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the collection." + }, + "items": { + "type": "array", + "description": "Calendars that are present on the user's calendar list.", + "items": { + "$ref": "CalendarListEntry" + } + }, + "kind": { + "type": "string", + "description": "Type of the collection (\"calendar#calendarList\").", + "default": "calendar#calendarList" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided." + }, + "nextSyncToken": { + "type": "string", + "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided." + } + } + }, + "CalendarListEntry": { + "id": "CalendarListEntry", + "type": "object", + "properties": { + "accessRole": { + "type": "string", + "description": "The effective access role that the authenticated user has on the calendar. Read-only. Possible values are: \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs." + }, + "backgroundColor": { + "type": "string", + "description": "The main color of the calendar in the hexadecimal format \"#0088aa\". This property supersedes the index-based colorId property. Optional." + }, + "colorId": { + "type": "string", + "description": "The color of the calendar. This is an ID referring to an entry in the calendar section of the colors definition (see the colors endpoint). Optional." + }, + "defaultReminders": { + "type": "array", + "description": "The default reminders that the authenticated user has for this calendar.", + "items": { + "$ref": "EventReminder" + } + }, + "deleted": { + "type": "boolean", + "description": "Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.", + "default": "false" + }, + "description": { + "type": "string", + "description": "Description of the calendar. Optional. Read-only." + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "foregroundColor": { + "type": "string", + "description": "The foreground color of the calendar in the hexadecimal format \"#ffffff\". This property supersedes the index-based colorId property. Optional." + }, + "hidden": { + "type": "boolean", + "description": "Whether the calendar has been hidden from the list. Optional. The default is False.", + "default": "false" + }, + "id": { + "type": "string", + "description": "Identifier of the calendar.", + "annotations": { + "required": [ + "calendar.calendarList.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#calendarListEntry\").", + "default": "calendar#calendarListEntry" + }, + "location": { + "type": "string", + "description": "Geographic location of the calendar as free-form text. Optional. Read-only." + }, + "notificationSettings": { + "type": "object", + "description": "The notifications that the authenticated user is receiving for this calendar.", + "properties": { + "notifications": { + "type": "array", + "description": "The list of notifications set for this calendar.", + "items": { + "$ref": "CalendarNotification" + } + } + } + }, + "primary": { + "type": "boolean", + "description": "Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.", + "default": "false" + }, + "selected": { + "type": "boolean", + "description": "Whether the calendar content shows up in the calendar UI. Optional. The default is False.", + "default": "false" + }, + "summary": { + "type": "string", + "description": "Title of the calendar. Read-only." + }, + "summaryOverride": { + "type": "string", + "description": "The summary that the authenticated user has set for this calendar. Optional." + }, + "timeZone": { + "type": "string", + "description": "The time zone of the calendar. Optional. Read-only." + } + } + }, + "CalendarNotification": { + "id": "CalendarNotification", + "type": "object", + "properties": { + "method": { + "type": "string", + "description": "The method used to deliver the notification. Possible values are: \n- \"email\" - Reminders are sent via email. \n- \"sms\" - Reminders are sent via SMS. This value is read-only and is ignored on inserts and updates.", + "annotations": { + "required": [ + "calendar.calendarList.insert", + "calendar.calendarList.update" + ] + } + }, + "type": { + "type": "string", + "description": "The type of notification. Possible values are: \n- \"eventCreation\" - Notification sent when a new event is put on the calendar. \n- \"eventChange\" - Notification sent when an event is changed. \n- \"eventCancellation\" - Notification sent when an event is cancelled. \n- \"eventResponse\" - Notification sent when an event is changed. \n- \"agenda\" - An agenda with the events of the day (sent out in the morning).", + "annotations": { + "required": [ + "calendar.calendarList.insert", + "calendar.calendarList.update" + ] + } + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The address where notifications are delivered for this channel." + }, + "expiration": { + "type": "string", + "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "A UUID or similar unique string that identifies this channel." + }, + "kind": { + "type": "string", + "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".", + "default": "api#channel" + }, + "params": { + "type": "object", + "description": "Additional parameters controlling delivery channel behavior. Optional.", + "additionalProperties": { + "type": "string", + "description": "Declares a new parameter by name." + } + }, + "payload": { + "type": "boolean", + "description": "A Boolean value to indicate whether payload is wanted. Optional." + }, + "resourceId": { + "type": "string", + "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions." + }, + "resourceUri": { + "type": "string", + "description": "A version-specific identifier for the watched resource." + }, + "token": { + "type": "string", + "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional." + }, + "type": { + "type": "string", + "description": "The type of delivery mechanism used for this channel." + } + } + }, + "ColorDefinition": { + "id": "ColorDefinition", + "type": "object", + "properties": { + "background": { + "type": "string", + "description": "The background color associated with this color definition." + }, + "foreground": { + "type": "string", + "description": "The foreground color that can be used to write on top of a background with 'background' color." + } + } + }, + "Colors": { + "id": "Colors", + "type": "object", + "properties": { + "calendar": { + "type": "object", + "description": "Palette of calendar colors, mapping from the color ID to its definition. A calendarListEntry resource refers to one of these color IDs in its color field. Read-only.", + "additionalProperties": { + "$ref": "ColorDefinition", + "description": "A calendar color defintion." + } + }, + "event": { + "type": "object", + "description": "Palette of event colors, mapping from the color ID to its definition. An event resource may refer to one of these color IDs in its color field. Read-only.", + "additionalProperties": { + "$ref": "ColorDefinition", + "description": "An event color definition." + } + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#colors\").", + "default": "calendar#colors" + }, + "updated": { + "type": "string", + "description": "Last modification time of the color palette (as a RFC 3339 timestamp). Read-only.", + "format": "date-time" + } + } + }, + "Error": { + "id": "Error", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain, or broad category, of the error." + }, + "reason": { + "type": "string", + "description": "Specific reason for the error. Some of the possible values are: \n- \"groupTooBig\" - The group of users requested is too large for a single query. \n- \"tooManyCalendarsRequested\" - The number of calendars requested is too large for a single query. \n- \"notFound\" - The requested resource was not found. \n- \"internalError\" - The API service has encountered an internal error. Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list." + } + } + }, + "Event": { + "id": "Event", + "type": "object", + "properties": { + "anyoneCanAddSelf": { + "type": "boolean", + "description": "Whether anyone can invite themselves to the event. Optional. The default is False.", + "default": "false" + }, + "attendees": { + "type": "array", + "description": "The attendees of the event.", + "items": { + "$ref": "EventAttendee" + } + }, + "attendeesOmitted": { + "type": "boolean", + "description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.", + "default": "false" + }, + "colorId": { + "type": "string", + "description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the colors endpoint). Optional." + }, + "created": { + "type": "string", + "description": "Creation time of the event (as a RFC 3339 timestamp). Read-only.", + "format": "date-time" + }, + "creator": { + "type": "object", + "description": "The creator of the event. Read-only.", + "properties": { + "displayName": { + "type": "string", + "description": "The creator's name, if available." + }, + "email": { + "type": "string", + "description": "The creator's email address, if available." + }, + "id": { + "type": "string", + "description": "The creator's Profile ID, if available." + }, + "self": { + "type": "boolean", + "description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.", + "default": "false" + } + } + }, + "description": { + "type": "string", + "description": "Description of the event. Optional." + }, + "end": { + "$ref": "EventDateTime", + "description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.", + "annotations": { + "required": [ + "calendar.events.import", + "calendar.events.insert", + "calendar.events.update" + ] + } + }, + "endTimeUnspecified": { + "type": "boolean", + "description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.", + "default": "false" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "extendedProperties": { + "type": "object", + "description": "Extended properties of the event.", + "properties": { + "private": { + "type": "object", + "description": "Properties that are private to the copy of the event that appears on this calendar.", + "additionalProperties": { + "type": "string", + "description": "The name of the private property and the corresponding value." + } + }, + "shared": { + "type": "object", + "description": "Properties that are shared between copies of the event on other attendees' calendars.", + "additionalProperties": { + "type": "string", + "description": "The name of the shared property and the corresponding value." + } + } + } + }, + "gadget": { + "type": "object", + "description": "A gadget that extends this event.", + "properties": { + "display": { + "type": "string", + "description": "The gadget's display mode. Optional. Possible values are: \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked." + }, + "height": { + "type": "integer", + "description": "The gadget's height in pixels. Optional.", + "format": "int32" + }, + "iconLink": { + "type": "string", + "description": "The gadget's icon URL." + }, + "link": { + "type": "string", + "description": "The gadget's URL." + }, + "preferences": { + "type": "object", + "description": "Preferences.", + "additionalProperties": { + "type": "string", + "description": "The preference name and corresponding value." + } + }, + "title": { + "type": "string", + "description": "The gadget's title." + }, + "type": { + "type": "string", + "description": "The gadget's type." + }, + "width": { + "type": "integer", + "description": "The gadget's width in pixels. Optional.", + "format": "int32" + } + } + }, + "guestsCanInviteOthers": { + "type": "boolean", + "description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.", + "default": "true" + }, + "guestsCanModify": { + "type": "boolean", + "description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.", + "default": "false" + }, + "guestsCanSeeOtherGuests": { + "type": "boolean", + "description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.", + "default": "true" + }, + "hangoutLink": { + "type": "string", + "description": "An absolute link to the Google+ hangout associated with this event. Read-only." + }, + "htmlLink": { + "type": "string", + "description": "An absolute link to this event in the Google Calendar Web UI. Read-only." + }, + "iCalUID": { + "type": "string", + "description": "Event ID in the iCalendar format.", + "annotations": { + "required": [ + "calendar.events.import" + ] + } + }, + "id": { + "type": "string", + "description": "Identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules: \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122." + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#event\").", + "default": "calendar#event" + }, + "location": { + "type": "string", + "description": "Geographic location of the event as free-form text. Optional." + }, + "locked": { + "type": "boolean", + "description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.", + "default": "false" + }, + "organizer": { + "type": "object", + "description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.", + "properties": { + "displayName": { + "type": "string", + "description": "The organizer's name, if available." + }, + "email": { + "type": "string", + "description": "The organizer's email address, if available." + }, + "id": { + "type": "string", + "description": "The organizer's Profile ID, if available." + }, + "self": { + "type": "boolean", + "description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.", + "default": "false" + } + } + }, + "originalStartTime": { + "$ref": "EventDateTime", + "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable." + }, + "privateCopy": { + "type": "boolean", + "description": "Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable. The default is False.", + "default": "false" + }, + "recurrence": { + "type": "array", + "description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event. This field is omitted for single events or instances of recurring events.", + "items": { + "type": "string" + } + }, + "recurringEventId": { + "type": "string", + "description": "For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable." + }, + "reminders": { + "type": "object", + "description": "Information about the event's reminders for the authenticated user.", + "properties": { + "overrides": { + "type": "array", + "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event.", + "items": { + "$ref": "EventReminder" + } + }, + "useDefault": { + "type": "boolean", + "description": "Whether the default reminders of the calendar apply to the event." + } + } + }, + "sequence": { + "type": "integer", + "description": "Sequence number as per iCalendar.", + "format": "int32" + }, + "source": { + "type": "object", + "description": "Source of an event from which it was created; for example a web page, an email message or any document identifiable by an URL using HTTP/HTTPS protocol. Accessible only by the creator of the event.", + "properties": { + "title": { + "type": "string", + "description": "Title of the source; for example a title of a web page or an email subject." + }, + "url": { + "type": "string", + "description": "URL of the source pointing to a resource. URL's protocol must be HTTP or HTTPS." + } + } + }, + "start": { + "$ref": "EventDateTime", + "description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.", + "annotations": { + "required": [ + "calendar.events.import", + "calendar.events.insert", + "calendar.events.update" + ] + } + }, + "status": { + "type": "string", + "description": "Status of the event. Optional. Possible values are: \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled." + }, + "summary": { + "type": "string", + "description": "Title of the event." + }, + "transparency": { + "type": "string", + "description": "Whether the event blocks time on the calendar. Optional. Possible values are: \n- \"opaque\" - The event blocks time on the calendar. This is the default value. \n- \"transparent\" - The event does not block time on the calendar.", + "default": "opaque" + }, + "updated": { + "type": "string", + "description": "Last modification time of the event (as a RFC 3339 timestamp). Read-only.", + "format": "date-time" + }, + "visibility": { + "type": "string", + "description": "Visibility of the event. Optional. Possible values are: \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.", + "default": "default" + } + } + }, + "EventAttachment": { + "id": "EventAttachment", + "type": "object" + }, + "EventAttendee": { + "id": "EventAttendee", + "type": "object", + "properties": { + "additionalGuests": { + "type": "integer", + "description": "Number of additional guests. Optional. The default is 0.", + "default": "0", + "format": "int32" + }, + "comment": { + "type": "string", + "description": "The attendee's response comment. Optional." + }, + "displayName": { + "type": "string", + "description": "The attendee's name, if available. Optional." + }, + "email": { + "type": "string", + "description": "The attendee's email address, if available. This field must be present when adding an attendee.", + "annotations": { + "required": [ + "calendar.events.import", + "calendar.events.insert", + "calendar.events.update" + ] + } + }, + "id": { + "type": "string", + "description": "The attendee's Profile ID, if available." + }, + "optional": { + "type": "boolean", + "description": "Whether this is an optional attendee. Optional. The default is False.", + "default": "false" + }, + "organizer": { + "type": "boolean", + "description": "Whether the attendee is the organizer of the event. Read-only. The default is False." + }, + "resource": { + "type": "boolean", + "description": "Whether the attendee is a resource. Read-only. The default is False.", + "default": "false" + }, + "responseStatus": { + "type": "string", + "description": "The attendee's response status. Possible values are: \n- \"needsAction\" - The attendee has not responded to the invitation. \n- \"declined\" - The attendee has declined the invitation. \n- \"tentative\" - The attendee has tentatively accepted the invitation. \n- \"accepted\" - The attendee has accepted the invitation." + }, + "self": { + "type": "boolean", + "description": "Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.", + "default": "false" + } + } + }, + "EventDateTime": { + "id": "EventDateTime", + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "The date, in the format \"yyyy-mm-dd\", if this is an all-day event.", + "format": "date" + }, + "dateTime": { + "type": "string", + "description": "The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.", + "format": "date-time" + }, + "timeZone": { + "type": "string", + "description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end." + } + } + }, + "EventReminder": { + "id": "EventReminder", + "type": "object", + "properties": { + "method": { + "type": "string", + "description": "The method used by this reminder. Possible values are: \n- \"email\" - Reminders are sent via email. \n- \"sms\" - Reminders are sent via SMS. \n- \"popup\" - Reminders are sent via a UI popup.", + "annotations": { + "required": [ + "calendar.calendarList.insert", + "calendar.calendarList.update", + "calendar.events.import", + "calendar.events.insert", + "calendar.events.update" + ] + } + }, + "minutes": { + "type": "integer", + "description": "Number of minutes before the start of the event when the reminder should trigger.", + "format": "int32", + "annotations": { + "required": [ + "calendar.calendarList.insert", + "calendar.calendarList.update", + "calendar.events.import", + "calendar.events.insert", + "calendar.events.update" + ] + } + } + } + }, + "Events": { + "id": "Events", + "type": "object", + "properties": { + "accessRole": { + "type": "string", + "description": "The user's access role for this calendar. Read-only. Possible values are: \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs." + }, + "defaultReminders": { + "type": "array", + "description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).", + "items": { + "$ref": "EventReminder" + } + }, + "description": { + "type": "string", + "description": "Description of the calendar. Read-only." + }, + "etag": { + "type": "string", + "description": "ETag of the collection." + }, + "items": { + "type": "array", + "description": "List of events on the calendar.", + "items": { + "$ref": "Event" + } + }, + "kind": { + "type": "string", + "description": "Type of the collection (\"calendar#events\").", + "default": "calendar#events" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided." + }, + "nextSyncToken": { + "type": "string", + "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided." + }, + "summary": { + "type": "string", + "description": "Title of the calendar. Read-only." + }, + "timeZone": { + "type": "string", + "description": "The time zone of the calendar. Read-only." + }, + "updated": { + "type": "string", + "description": "Last modification time of the calendar (as a RFC 3339 timestamp). Read-only.", + "format": "date-time" + } + } + }, + "FreeBusyCalendar": { + "id": "FreeBusyCalendar", + "type": "object", + "properties": { + "busy": { + "type": "array", + "description": "List of time ranges during which this calendar should be regarded as busy.", + "items": { + "$ref": "TimePeriod" + } + }, + "errors": { + "type": "array", + "description": "Optional error(s) (if computation for the calendar failed).", + "items": { + "$ref": "Error" + } + } + } + }, + "FreeBusyGroup": { + "id": "FreeBusyGroup", + "type": "object", + "properties": { + "calendars": { + "type": "array", + "description": "List of calendars' identifiers within a group.", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "description": "Optional error(s) (if computation for the group failed).", + "items": { + "$ref": "Error" + } + } + } + }, + "FreeBusyRequest": { + "id": "FreeBusyRequest", + "type": "object", + "properties": { + "calendarExpansionMax": { + "type": "integer", + "description": "Maximal number of calendars for which FreeBusy information is to be provided. Optional.", + "format": "int32" + }, + "groupExpansionMax": { + "type": "integer", + "description": "Maximal number of calendar identifiers to be provided for a single group. Optional. An error will be returned for a group with more members than this value.", + "format": "int32" + }, + "items": { + "type": "array", + "description": "List of calendars and/or groups to query.", + "items": { + "$ref": "FreeBusyRequestItem" + } + }, + "timeMax": { + "type": "string", + "description": "The end of the interval for the query.", + "format": "date-time" + }, + "timeMin": { + "type": "string", + "description": "The start of the interval for the query.", + "format": "date-time" + }, + "timeZone": { + "type": "string", + "description": "Time zone used in the response. Optional. The default is UTC.", + "default": "UTC" + } + } + }, + "FreeBusyRequestItem": { + "id": "FreeBusyRequestItem", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of a calendar or a group." + } + } + }, + "FreeBusyResponse": { + "id": "FreeBusyResponse", + "type": "object", + "properties": { + "calendars": { + "type": "object", + "description": "List of free/busy information for calendars.", + "additionalProperties": { + "$ref": "FreeBusyCalendar", + "description": "Free/busy expansions for a single calendar." + } + }, + "groups": { + "type": "object", + "description": "Expansion of groups.", + "additionalProperties": { + "$ref": "FreeBusyGroup", + "description": "List of calendars that are members of this group." + } + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#freeBusy\").", + "default": "calendar#freeBusy" + }, + "timeMax": { + "type": "string", + "description": "The end of the interval.", + "format": "date-time" + }, + "timeMin": { + "type": "string", + "description": "The start of the interval.", + "format": "date-time" + } + } + }, + "Setting": { + "id": "Setting", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "The id of the user setting." + }, + "kind": { + "type": "string", + "description": "Type of the resource (\"calendar#setting\").", + "default": "calendar#setting" + }, + "value": { + "type": "string", + "description": "Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters." + } + } + }, + "Settings": { + "id": "Settings", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "Etag of the collection." + }, + "items": { + "type": "array", + "description": "List of user settings.", + "items": { + "$ref": "Setting" + } + }, + "kind": { + "type": "string", + "description": "Type of the collection (\"calendar#settings\").", + "default": "calendar#settings" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided." + }, + "nextSyncToken": { + "type": "string", + "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided." + } + } + }, + "TimePeriod": { + "id": "TimePeriod", + "type": "object", + "properties": { + "end": { + "type": "string", + "description": "The (exclusive) end of the time period.", + "format": "date-time" + }, + "start": { + "type": "string", + "description": "The (inclusive) start of the time period.", + "format": "date-time" + } + } + } + }, + "resources": { + "acl": { + "methods": { + "delete": { + "id": "calendar.acl.delete", + "path": "calendars/{calendarId}/acl/{ruleId}", + "httpMethod": "DELETE", + "description": "Deletes an access control rule.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "ACL rule identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId", + "ruleId" + ], + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "get": { + "id": "calendar.acl.get", + "path": "calendars/{calendarId}/acl/{ruleId}", + "httpMethod": "GET", + "description": "Returns an access control rule.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "ACL rule identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId", + "ruleId" + ], + "response": { + "$ref": "AclRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + }, + "insert": { + "id": "calendar.acl.insert", + "path": "calendars/{calendarId}/acl", + "httpMethod": "POST", + "description": "Creates an access control rule.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "AclRule" + }, + "response": { + "$ref": "AclRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "list": { + "id": "calendar.acl.list", + "path": "calendars/{calendarId}/acl", + "httpMethod": "GET", + "description": "Returns the rules in the access control list for the calendar.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "response": { + "$ref": "Acl" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ], + "supportsSubscription": true + }, + "patch": { + "id": "calendar.acl.patch", + "path": "calendars/{calendarId}/acl/{ruleId}", + "httpMethod": "PATCH", + "description": "Updates an access control rule. This method supports patch semantics.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "ACL rule identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId", + "ruleId" + ], + "request": { + "$ref": "AclRule" + }, + "response": { + "$ref": "AclRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "update": { + "id": "calendar.acl.update", + "path": "calendars/{calendarId}/acl/{ruleId}", + "httpMethod": "PUT", + "description": "Updates an access control rule.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "ACL rule identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId", + "ruleId" + ], + "request": { + "$ref": "AclRule" + }, + "response": { + "$ref": "AclRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "watch": { + "id": "calendar.acl.watch", + "path": "calendars/{calendarId}/acl/watch", + "httpMethod": "POST", + "description": "Watch for changes to ACL resources.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ], + "supportsSubscription": true + } + } + }, + "calendarList": { + "methods": { + "delete": { + "id": "calendar.calendarList.delete", + "path": "users/me/calendarList/{calendarId}", + "httpMethod": "DELETE", + "description": "Deletes an entry on the user's calendar list.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "get": { + "id": "calendar.calendarList.get", + "path": "users/me/calendarList/{calendarId}", + "httpMethod": "GET", + "description": "Returns an entry on the user's calendar list.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "response": { + "$ref": "CalendarListEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + }, + "insert": { + "id": "calendar.calendarList.insert", + "path": "users/me/calendarList", + "httpMethod": "POST", + "description": "Adds an entry to the user's calendar list.", + "parameters": { + "colorRgbFormat": { + "type": "boolean", + "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", + "location": "query" + } + }, + "request": { + "$ref": "CalendarListEntry" + }, + "response": { + "$ref": "CalendarListEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "list": { + "id": "calendar.calendarList.list", + "path": "users/me/calendarList", + "httpMethod": "GET", + "description": "Returns entries on the user's calendar list.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "minAccessRole": { + "type": "string", + "description": "The minimum access role for the user in the returned entires. Optional. The default is no restriction.", + "enum": [ + "freeBusyReader", + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read free/busy information.", + "The user can read and modify events and access control lists.", + "The user can read events that are not private.", + "The user can read and modify events." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.", + "location": "query" + }, + "showHidden": { + "type": "boolean", + "description": "Whether to show hidden entries. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "response": { + "$ref": "CalendarList" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + }, + "patch": { + "id": "calendar.calendarList.patch", + "path": "users/me/calendarList/{calendarId}", + "httpMethod": "PATCH", + "description": "Updates an entry on the user's calendar list. This method supports patch semantics.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "colorRgbFormat": { + "type": "boolean", + "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "CalendarListEntry" + }, + "response": { + "$ref": "CalendarListEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "update": { + "id": "calendar.calendarList.update", + "path": "users/me/calendarList/{calendarId}", + "httpMethod": "PUT", + "description": "Updates an entry on the user's calendar list.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "colorRgbFormat": { + "type": "boolean", + "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "CalendarListEntry" + }, + "response": { + "$ref": "CalendarListEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "watch": { + "id": "calendar.calendarList.watch", + "path": "users/me/calendarList/watch", + "httpMethod": "POST", + "description": "Watch for changes to CalendarList resources.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "minAccessRole": { + "type": "string", + "description": "The minimum access role for the user in the returned entires. Optional. The default is no restriction.", + "enum": [ + "freeBusyReader", + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read free/busy information.", + "The user can read and modify events and access control lists.", + "The user can read events that are not private.", + "The user can read and modify events." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.", + "location": "query" + }, + "showHidden": { + "type": "boolean", + "description": "Whether to show hidden entries. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + } + } + }, + "calendars": { + "methods": { + "clear": { + "id": "calendar.calendars.clear", + "path": "calendars/{calendarId}/clear", + "httpMethod": "POST", + "description": "Clears a primary calendar. This operation deletes all data associated with the primary calendar of an account and cannot be undone.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "delete": { + "id": "calendar.calendars.delete", + "path": "calendars/{calendarId}", + "httpMethod": "DELETE", + "description": "Deletes a secondary calendar.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "get": { + "id": "calendar.calendars.get", + "path": "calendars/{calendarId}", + "httpMethod": "GET", + "description": "Returns metadata for a calendar.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "response": { + "$ref": "Calendar" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + }, + "insert": { + "id": "calendar.calendars.insert", + "path": "calendars", + "httpMethod": "POST", + "description": "Creates a secondary calendar.", + "request": { + "$ref": "Calendar" + }, + "response": { + "$ref": "Calendar" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "patch": { + "id": "calendar.calendars.patch", + "path": "calendars/{calendarId}", + "httpMethod": "PATCH", + "description": "Updates metadata for a calendar. This method supports patch semantics.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Calendar" + }, + "response": { + "$ref": "Calendar" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "update": { + "id": "calendar.calendars.update", + "path": "calendars/{calendarId}", + "httpMethod": "PUT", + "description": "Updates metadata for a calendar.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Calendar" + }, + "response": { + "$ref": "Calendar" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + } + } + }, + "channels": { + "methods": { + "stop": { + "id": "calendar.channels.stop", + "path": "channels/stop", + "httpMethod": "POST", + "description": "Stop watching resources through this channel", + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + } + } + }, + "colors": { + "methods": { + "get": { + "id": "calendar.colors.get", + "path": "colors", + "httpMethod": "GET", + "description": "Returns the color definitions for calendars and events.", + "response": { + "$ref": "Colors" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + } + } + }, + "events": { + "methods": { + "delete": { + "id": "calendar.events.delete", + "path": "calendars/{calendarId}/events/{eventId}", + "httpMethod": "DELETE", + "description": "Deletes an event.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "eventId": { + "type": "string", + "description": "Event identifier.", + "required": true, + "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the deletion of the event. Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId" + ], + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "get": { + "id": "calendar.events.get", + "path": "calendars/{calendarId}/events/{eventId}", + "httpMethod": "GET", + "description": "Returns an event.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "eventId": { + "type": "string", + "description": "Event identifier.", + "required": true, + "location": "path" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "timeZone": { + "type": "string", + "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId" + ], + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + }, + "import": { + "id": "calendar.events.import", + "path": "calendars/{calendarId}/events/import", + "httpMethod": "POST", + "description": "Imports an event. This operation is used to add a private copy of an existing event to a calendar.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Event" + }, + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "insert": { + "id": "calendar.events.insert", + "path": "calendars/{calendarId}/events", + "httpMethod": "POST", + "description": "Creates an event.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the creation of the new event. Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Event" + }, + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "instances": { + "id": "calendar.events.instances", + "path": "calendars/{calendarId}/events/{eventId}/instances", + "httpMethod": "GET", + "description": "Returns instances of the specified recurring event.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "eventId": { + "type": "string", + "description": "Recurring event identifier.", + "required": true, + "location": "path" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "originalStart": { + "type": "string", + "description": "The original start time of the instance in the result. Optional.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents is False. Optional. The default is False.", + "location": "query" + }, + "timeMax": { + "type": "string", + "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.", + "format": "date-time", + "location": "query" + }, + "timeMin": { + "type": "string", + "description": "Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.", + "format": "date-time", + "location": "query" + }, + "timeZone": { + "type": "string", + "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId" + ], + "response": { + "$ref": "Events" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + }, + "list": { + "id": "calendar.events.list", + "path": "calendars/{calendarId}/events", + "httpMethod": "GET", + "description": "Returns events on the specified calendar.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "iCalUID": { + "type": "string", + "description": "Specifies event ID in the iCalendar format to be included in the response. Optional.", + "location": "query" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.", + "enum": [ + "startTime", + "updated" + ], + "enumDescriptions": [ + "Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)", + "Order by last modification time (ascending)." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "privateExtendedProperty": { + "type": "string", + "description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.", + "repeated": true, + "location": "query" + }, + "q": { + "type": "string", + "description": "Free text search terms to find events that match these terms in any field, except for extended properties. Optional.", + "location": "query" + }, + "sharedExtendedProperty": { + "type": "string", + "description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.", + "repeated": true, + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.", + "location": "query" + }, + "showHiddenInvitations": { + "type": "boolean", + "description": "Whether to include hidden invitations in the result. Optional. The default is False.", + "location": "query" + }, + "singleEvents": { + "type": "boolean", + "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + }, + "timeMax": { + "type": "string", + "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.", + "format": "date-time", + "location": "query" + }, + "timeMin": { + "type": "string", + "description": "Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.", + "format": "date-time", + "location": "query" + }, + "timeZone": { + "type": "string", + "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", + "location": "query" + }, + "updatedMin": { + "type": "string", + "description": "Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.", + "format": "date-time", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "response": { + "$ref": "Events" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + }, + "move": { + "id": "calendar.events.move", + "path": "calendars/{calendarId}/events/{eventId}/move", + "httpMethod": "POST", + "description": "Moves an event to another calendar, i.e. changes an event's organizer.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier of the source calendar where the event currently is on.", + "required": true, + "location": "path" + }, + "destination": { + "type": "string", + "description": "Calendar identifier of the target calendar where the event is to be moved to.", + "required": true, + "location": "query" + }, + "eventId": { + "type": "string", + "description": "Event identifier.", + "required": true, + "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the change of the event's organizer. Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId", + "destination" + ], + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "patch": { + "id": "calendar.events.patch", + "path": "calendars/{calendarId}/events/{eventId}", + "httpMethod": "PATCH", + "description": "Updates an event. This method supports patch semantics.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "eventId": { + "type": "string", + "description": "Event identifier.", + "required": true, + "location": "path" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId" + ], + "request": { + "$ref": "Event" + }, + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "quickAdd": { + "id": "calendar.events.quickAdd", + "path": "calendars/{calendarId}/events/quickAdd", + "httpMethod": "POST", + "description": "Creates an event based on a simple text string.", + "parameters": { + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the creation of the event. Optional. The default is False.", + "location": "query" + }, + "text": { + "type": "string", + "description": "The text describing the event to be created.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "text" + ], + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "update": { + "id": "calendar.events.update", + "path": "calendars/{calendarId}/events/{eventId}", + "httpMethod": "PUT", + "description": "Updates an event.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "eventId": { + "type": "string", + "description": "Event identifier.", + "required": true, + "location": "path" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "sendNotifications": { + "type": "boolean", + "description": "Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId", + "eventId" + ], + "request": { + "$ref": "Event" + }, + "response": { + "$ref": "Event" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar" + ] + }, + "watch": { + "id": "calendar.events.watch", + "path": "calendars/{calendarId}/events/watch", + "httpMethod": "POST", + "description": "Watch for changes to Events resources.", + "parameters": { + "alwaysIncludeEmail": { + "type": "boolean", + "description": "Whether to always include a value in the email field for the organizer, creator and attendees, even if no real email is available (i.e. a generated, non-working value will be provided). The use of this option is discouraged and should only be used by clients which cannot handle the absence of an email address value in the mentioned places. Optional. The default is False.", + "location": "query" + }, + "calendarId": { + "type": "string", + "description": "Calendar identifier.", + "required": true, + "location": "path" + }, + "iCalUID": { + "type": "string", + "description": "Specifies event ID in the iCalendar format to be included in the response. Optional.", + "location": "query" + }, + "maxAttendees": { + "type": "integer", + "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.", + "enum": [ + "startTime", + "updated" + ], + "enumDescriptions": [ + "Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)", + "Order by last modification time (ascending)." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "privateExtendedProperty": { + "type": "string", + "description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.", + "repeated": true, + "location": "query" + }, + "q": { + "type": "string", + "description": "Free text search terms to find events that match these terms in any field, except for extended properties. Optional.", + "location": "query" + }, + "sharedExtendedProperty": { + "type": "string", + "description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.", + "repeated": true, + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.", + "location": "query" + }, + "showHiddenInvitations": { + "type": "boolean", + "description": "Whether to include hidden invitations in the result. Optional. The default is False.", + "location": "query" + }, + "singleEvents": { + "type": "boolean", + "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + }, + "timeMax": { + "type": "string", + "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.", + "format": "date-time", + "location": "query" + }, + "timeMin": { + "type": "string", + "description": "Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.", + "format": "date-time", + "location": "query" + }, + "timeZone": { + "type": "string", + "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.", + "location": "query" + }, + "updatedMin": { + "type": "string", + "description": "Lower bound for an event's last modification time (as a RFC 3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.", + "format": "date-time", + "location": "query" + } + }, + "parameterOrder": [ + "calendarId" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + } + } + }, + "freebusy": { + "methods": { + "query": { + "id": "calendar.freebusy.query", + "path": "freeBusy", + "httpMethod": "POST", + "description": "Returns free/busy information for a set of calendars.", + "request": { + "$ref": "FreeBusyRequest" + }, + "response": { + "$ref": "FreeBusyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + } + } + }, + "settings": { + "methods": { + "get": { + "id": "calendar.settings.get", + "path": "users/me/settings/{setting}", + "httpMethod": "GET", + "description": "Returns a single user setting.", + "parameters": { + "setting": { + "type": "string", + "description": "The id of the user setting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "setting" + ], + "response": { + "$ref": "Setting" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ] + }, + "list": { + "id": "calendar.settings.list", + "path": "users/me/settings", + "httpMethod": "GET", + "description": "Returns all user settings for the authenticated user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "response": { + "$ref": "Settings" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + }, + "watch": { + "id": "calendar.settings.watch", + "path": "users/me/settings/watch", + "httpMethod": "POST", + "description": "Watch for changes to Settings resources.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying which result page to return. Optional.", + "location": "query" + }, + "syncToken": { + "type": "string", + "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.", + "location": "query" + } + }, + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/calendar", + "https://www.googleapis.com/auth/calendar.readonly" + ], + "supportsSubscription": true + } + } + } + } +} diff --git a/etc/api/civicinfo/us_v1/civicinfo-api.json b/etc/api/civicinfo/us_v1/civicinfo-api.json new file mode 100644 index 0000000000..944505879c --- /dev/null +++ b/etc/api/civicinfo/us_v1/civicinfo-api.json @@ -0,0 +1,874 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/ixlTlCZ6lprJQCHG1SmuBjDXiaM\"", + "discoveryVersion": "v1", + "id": "civicinfo:us_v1", + "name": "civicinfo", + "canonicalName": "Civic Info", + "version": "us_v1", + "revision": "20141023", + "title": "Google Civic Information API", + "description": "An API for accessing civic information.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/civic-information", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/civicinfo/us_v1/", + "basePath": "/civicinfo/us_v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "civicinfo/us_v1/", + "batchPath": "batch", + "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": { + "AdministrationRegion": { + "id": "AdministrationRegion", + "type": "object", + "description": "Describes information about a regional election administrative area.", + "properties": { + "electionAdministrationBody": { + "$ref": "AdministrativeBody", + "description": "The election administration body for this area." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "local_jurisdiction": { + "$ref": "AdministrationRegion", + "description": "The city or county that provides election information for this voter. This object can have the same elements as state." + }, + "name": { + "type": "string", + "description": "The name of the jurisdiction." + }, + "sources": { + "type": "array", + "description": "A list of sources for this area. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "AdministrativeBody": { + "id": "AdministrativeBody", + "type": "object", + "description": "Information about an election administrative body (e.g. County Board of Elections).", + "properties": { + "absenteeVotingInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for information on absentee voting." + }, + "ballotInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body to give contest information to the voter." + }, + "correspondenceAddress": { + "$ref": "SimpleAddressType", + "description": "The mailing address of this administrative body." + }, + "electionInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up general election information." + }, + "electionOfficials": { + "type": "array", + "description": "The election officials for this election administrative body.", + "items": { + "$ref": "ElectionOfficial" + } + }, + "electionRegistrationConfirmationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for confirming that the voter is registered to vote." + }, + "electionRegistrationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up how to register to vote." + }, + "electionRulesUrl": { + "type": "string", + "description": "A URL provided by this administrative body describing election rules to the voter." + }, + "hoursOfOperation": { + "type": "string", + "description": "A description of the hours of operation for this administrative body." + }, + "name": { + "type": "string", + "description": "The name of this election administrative body." + }, + "physicalAddress": { + "$ref": "SimpleAddressType", + "description": "The physical address of this administrative body." + }, + "voter_services": { + "type": "array", + "description": "A description of the services this administrative body may provide.", + "items": { + "type": "string" + } + }, + "votingLocationFinderUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up where to vote." + } + } + }, + "Candidate": { + "id": "Candidate", + "type": "object", + "description": "Information about a candidate running for elected office.", + "properties": { + "candidateUrl": { + "type": "string", + "description": "The URL for the candidate's campaign web site." + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this candidate.", + "items": { + "$ref": "Channel" + } + }, + "email": { + "type": "string", + "description": "The email address for the candidate's campaign." + }, + "name": { + "type": "string", + "description": "The candidate's name." + }, + "orderOnBallot": { + "type": "string", + "description": "The order the candidate appears on the ballot for this contest.", + "format": "int64" + }, + "party": { + "type": "string", + "description": "The full name of the party the candidate is a member of." + }, + "phone": { + "type": "string", + "description": "The voice phone number for the candidate's campaign office." + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the candidate." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "A social media or web channel for a candidate.", + "properties": { + "id": { + "type": "string", + "description": "The unique public identifier for the candidate's channel." + }, + "type": { + "type": "string", + "description": "The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter" + } + } + }, + "Contest": { + "id": "Contest", + "type": "object", + "description": "Information about a contest that appears on a voter's ballot.", + "properties": { + "ballotPlacement": { + "type": "string", + "description": "A number specifying the position of this contest on the voter's ballot.", + "format": "int64" + }, + "candidates": { + "type": "array", + "description": "The candidate choices for this contest.", + "items": { + "$ref": "Candidate" + } + }, + "district": { + "$ref": "ElectoralDistrict", + "description": "Information about the electoral district that this contest is in." + }, + "electorateSpecifications": { + "type": "string", + "description": "A description of any additional eligibility requirements for voting in this contest." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "level": { + "type": "string", + "description": "The level of office for this contest. One of: federal, state, county, city, other" + }, + "numberElected": { + "type": "string", + "description": "The number of candidates that will be elected to office in this contest.", + "format": "int64" + }, + "numberVotingFor": { + "type": "string", + "description": "The number of candidates that a voter may vote for in this contest.", + "format": "int64" + }, + "office": { + "type": "string", + "description": "The name of the office for this contest." + }, + "primaryParty": { + "type": "string", + "description": "If this is a partisan election, the name of the party it is for." + }, + "referendumSubtitle": { + "type": "string", + "description": "A brief description of the referendum. This field is only populated for contests of type 'Referendum'." + }, + "referendumTitle": { + "type": "string", + "description": "The title of the referendum (e.g. 'Proposition 42'). This field is only populated for contests of type 'Referendum'." + }, + "referendumUrl": { + "type": "string", + "description": "A link to the referendum. This field is only populated for contests of type 'Referendum'." + }, + "sources": { + "type": "array", + "description": "A list of sources for this contest. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "special": { + "type": "string", + "description": "\"Yes\" or \"No\" depending on whether this a contest being held outside the normal election cycle." + }, + "type": { + "type": "string", + "description": "The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'." + } + } + }, + "DivisionSearchResponse": { + "id": "DivisionSearchResponse", + "type": "object", + "description": "The result of a division search query.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#divisionSearchResponse\".", + "default": "civicinfo#divisionSearchResponse" + }, + "results": { + "type": "array", + "items": { + "$ref": "DivisionSearchResult" + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, addressUnparseable, noAddressParameter, internalLookupFailure" + } + } + }, + "DivisionSearchResult": { + "id": "DivisionSearchResult", + "type": "object", + "description": "Represents a political geographic division that matches the requested query.", + "properties": { + "aliases": { + "type": "array", + "description": "Other Open Civic Data identifiers that refer to the same division -- for example, those that refer to other political divisions whose boundaries are defined to be coterminous with this one. For example, ocd-division/country:us/state:wy will include an alias of ocd-division/country:us/state:wy/cd:1, since Wyoming has only one Congressional district.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "ocdId": { + "type": "string", + "description": "The unique Open Civic Data identifier for this division." + } + } + }, + "Election": { + "id": "Election", + "type": "object", + "description": "Information about the election that was queried.", + "properties": { + "electionDay": { + "type": "string", + "description": "Day of the election in YYYY-MM-DD format." + }, + "id": { + "type": "string", + "description": "The unique ID of this election.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "A displayable name for the election." + } + } + }, + "ElectionOfficial": { + "id": "ElectionOfficial", + "type": "object", + "description": "Information about individual election officials.", + "properties": { + "emailAddress": { + "type": "string", + "description": "The email address of the election official." + }, + "faxNumber": { + "type": "string", + "description": "The fax number of the election official." + }, + "name": { + "type": "string", + "description": "The full name of the election official." + }, + "officePhoneNumber": { + "type": "string", + "description": "The office phone number of the election official." + }, + "title": { + "type": "string", + "description": "The title of the election official." + } + } + }, + "ElectionsQueryResponse": { + "id": "ElectionsQueryResponse", + "type": "object", + "description": "The list of elections available for this version of the API.", + "properties": { + "elections": { + "type": "array", + "description": "A list of available elections", + "items": { + "$ref": "Election" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#electionsQueryResponse\".", + "default": "civicinfo#electionsQueryResponse" + } + } + }, + "ElectoralDistrict": { + "id": "ElectoralDistrict", + "type": "object", + "description": "Describes the geographic scope of a contest.", + "properties": { + "id": { + "type": "string", + "description": "An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id \"34\" and a scope of stateUpper." + }, + "name": { + "type": "string", + "description": "The name of the district." + }, + "scope": { + "type": "string", + "description": "The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special" + } + } + }, + "GeographicDivision": { + "id": "GeographicDivision", + "type": "object", + "description": "Describes a political geography.", + "properties": { + "alsoKnownAs": { + "type": "array", + "description": "Any other valid OCD IDs that refer to the same division.\n\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\n\nFor example, if this division's OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "officeIds": { + "type": "array", + "description": "List of keys in the offices object, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string", + "description": "The geographic scope of the division. If unspecified, the division's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special" + } + } + }, + "Office": { + "id": "Office", + "type": "object", + "description": "Information about an Office held by one or more Officials.", + "properties": { + "divisionId": { + "type": "string", + "description": "The OCD ID of the division with which this office is associated." + }, + "level": { + "type": "string", + "description": "The level of this elected office. One of: federal, state, county, city, other" + }, + "name": { + "type": "string", + "description": "The human-readable name of the office." + }, + "officialIds": { + "type": "array", + "description": "List of keys in the officials object of people who presently hold this office.", + "items": { + "type": "string" + } + }, + "sources": { + "type": "array", + "description": "A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "Official": { + "id": "Official", + "type": "object", + "description": "Information about a person holding an elected office.", + "properties": { + "address": { + "type": "array", + "description": "Addresses at which to contact the official.", + "items": { + "$ref": "SimpleAddressType" + } + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this official.", + "items": { + "$ref": "Channel" + } + }, + "emails": { + "type": "array", + "description": "The direct email addresses for the official.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The official's name." + }, + "party": { + "type": "string", + "description": "The full name of the party the official belongs to." + }, + "phones": { + "type": "array", + "description": "The official's public contact phone numbers.", + "items": { + "type": "string" + } + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the official." + }, + "urls": { + "type": "array", + "description": "The official's public website URLs.", + "items": { + "type": "string" + } + } + } + }, + "PollingLocation": { + "id": "PollingLocation", + "type": "object", + "description": "A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.", + "properties": { + "address": { + "$ref": "SimpleAddressType", + "description": "The address of the location." + }, + "endDate": { + "type": "string", + "description": "The last date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "name": { + "type": "string", + "description": "The name of the early vote site or drop off location. This field is not populated for polling locations." + }, + "notes": { + "type": "string", + "description": "Notes about this location (e.g. accessibility ramp or entrance to use)." + }, + "pollingHours": { + "type": "string", + "description": "A description of when this location is open." + }, + "sources": { + "type": "array", + "description": "A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "startDate": { + "type": "string", + "description": "The first date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "voterServices": { + "type": "string", + "description": "The services provided by this early vote site or drop off location. This field is not populated for polling locations." + } + } + }, + "RepresentativeInfoRequest": { + "id": "RepresentativeInfoRequest", + "type": "object", + "description": "A request for political geography and representative information for an address.", + "properties": { + "address": { + "type": "string", + "description": "The address to look up. May only be specified if the field ocdId is not given in the URL." + } + } + }, + "RepresentativeInfoResponse": { + "id": "RepresentativeInfoResponse", + "type": "object", + "description": "The result of a representative info lookup query.", + "properties": { + "divisions": { + "type": "object", + "description": "Political geographic divisions that contain the requested address.", + "additionalProperties": { + "$ref": "GeographicDivision", + "description": "The unique Open Civic Data identifier for this division." + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#representativeInfoResponse\".", + "default": "civicinfo#representativeInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "offices": { + "type": "object", + "description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", + "additionalProperties": { + "$ref": "Office", + "description": "A unique identifier for this office, within the context of this request. Identifiers are *not* long-lived: the same office may get different IDs on different requests." + } + }, + "officials": { + "type": "object", + "description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", + "additionalProperties": { + "$ref": "Official", + "description": "A unique identifier for this official, within the context of this request. Identifiers are *not* long-lived: the same official may get different IDs on different requests." + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure, RequestedBothAddressAndOcdId" + } + } + }, + "SimpleAddressType": { + "id": "SimpleAddressType", + "type": "object", + "description": "A simple representation of an address.", + "properties": { + "city": { + "type": "string", + "description": "The city or town for the address." + }, + "line1": { + "type": "string", + "description": "The street name and number of this address." + }, + "line2": { + "type": "string", + "description": "The second line the address, if needed." + }, + "line3": { + "type": "string", + "description": "The third line of the address, if needed." + }, + "locationName": { + "type": "string", + "description": "The name of the location." + }, + "state": { + "type": "string", + "description": "The US two letter state abbreviation of the address." + }, + "zip": { + "type": "string", + "description": "The US Postal Zip Code of the address." + } + } + }, + "Source": { + "id": "Source", + "type": "object", + "description": "Contains information about the data source for the element containing it.", + "properties": { + "name": { + "type": "string", + "description": "The name of the data source." + }, + "official": { + "type": "boolean", + "description": "Whether this data comes from an official government source." + } + } + }, + "VoterInfoRequest": { + "id": "VoterInfoRequest", + "type": "object", + "description": "A request for information about a voter.", + "properties": { + "address": { + "type": "string", + "description": "The registered address of the voter to look up." + } + } + }, + "VoterInfoResponse": { + "id": "VoterInfoResponse", + "type": "object", + "description": "The result of a voter info lookup query.", + "properties": { + "contests": { + "type": "array", + "description": "Contests that will appear on the voter's ballot.", + "items": { + "$ref": "Contest" + } + }, + "dropOffLocations": { + "type": "array", + "description": "Locations where a voter is eligible to drop off a completed ballot. The voter must have received and completed a ballot prior to arriving at the location. The location may not have ballots available on the premises. These locations could be open on or before election day as indicated in the pollingHours field.", + "items": { + "$ref": "PollingLocation" + } + }, + "earlyVoteSites": { + "type": "array", + "description": "Locations where the voter is eligible to vote early, prior to election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "election": { + "$ref": "Election", + "description": "The election that was queried." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#voterInfoResponse\".", + "default": "civicinfo#voterInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "pollingLocations": { + "type": "array", + "description": "Locations where the voter is eligible to vote on election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "precinctId": { + "type": "string" + }, + "state": { + "type": "array", + "description": "Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.", + "items": { + "$ref": "AdministrationRegion" + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure" + } + } + } + }, + "resources": { + "divisions": { + "methods": { + "search": { + "id": "civicinfo.divisions.search", + "path": "representatives/division_search", + "httpMethod": "GET", + "description": "Searches for political divisions by their natural name or OCD ID.", + "parameters": { + "query": { + "type": "string", + "description": "The search query. Queries can cover any parts of a OCD ID or a human readable division name. All words given in the query are treated as required patterns. In addition to that, most query operators of the Apache Lucene library are supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html", + "location": "query" + } + }, + "response": { + "$ref": "DivisionSearchResponse" + } + } + } + }, + "elections": { + "methods": { + "electionQuery": { + "id": "civicinfo.elections.electionQuery", + "path": "elections", + "httpMethod": "GET", + "description": "List of available elections to query.", + "response": { + "$ref": "ElectionsQueryResponse" + } + }, + "voterInfoQuery": { + "id": "civicinfo.elections.voterInfoQuery", + "path": "voterinfo/{electionId}/lookup", + "httpMethod": "POST", + "description": "Looks up information relevant to a voter based on the voter's registered address.", + "parameters": { + "electionId": { + "type": "string", + "description": "The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections", + "required": true, + "format": "int64", + "location": "path" + }, + "officialOnly": { + "type": "boolean", + "description": "If set to true, only data from official state sources will be returned.", + "default": "false", + "location": "query" + } + }, + "parameterOrder": [ + "electionId" + ], + "request": { + "$ref": "VoterInfoRequest" + }, + "response": { + "$ref": "VoterInfoResponse" + } + } + } + }, + "representatives": { + "methods": { + "representativeInfoQuery": { + "id": "civicinfo.representatives.representativeInfoQuery", + "path": "representatives/lookup", + "httpMethod": "POST", + "description": "Looks up political geography and representative information based on an address or Open Civic Data division identifier.", + "parameters": { + "includeOffices": { + "type": "boolean", + "description": "Whether to return information about offices and officials. If false, only the top-level district information will be returned.", + "default": "true", + "location": "query" + }, + "ocdId": { + "type": "string", + "description": "The division to look up. May only be specified if the address field is not given in the request body.", + "location": "query" + }, + "recursive": { + "type": "boolean", + "description": "When ocd_id is supplied, return all divisions which are hierarchically nested within the queried division. For example, if querying ocd-division/country:us/district:dc, this would also return all DC's wards and ANCs.", + "default": "false", + "location": "query" + } + }, + "request": { + "$ref": "RepresentativeInfoRequest" + }, + "response": { + "$ref": "RepresentativeInfoResponse" + } + } + } + } + } +} diff --git a/etc/api/civicinfo/v1/civicinfo-api.json b/etc/api/civicinfo/v1/civicinfo-api.json new file mode 100644 index 0000000000..078ecfc915 --- /dev/null +++ b/etc/api/civicinfo/v1/civicinfo-api.json @@ -0,0 +1,874 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/m-jfWpr9P6EusWc0QHxRJ5ZUj0Y\"", + "discoveryVersion": "v1", + "id": "civicinfo:v1", + "name": "civicinfo", + "canonicalName": "Civic Info", + "version": "v1", + "revision": "20141023", + "title": "Google Civic Information API", + "description": "An API for accessing civic information.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/civic-information", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/civicinfo/v1/", + "basePath": "/civicinfo/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "civicinfo/v1/", + "batchPath": "batch", + "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": { + "AdministrationRegion": { + "id": "AdministrationRegion", + "type": "object", + "description": "Describes information about a regional election administrative area.", + "properties": { + "electionAdministrationBody": { + "$ref": "AdministrativeBody", + "description": "The election administration body for this area." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "local_jurisdiction": { + "$ref": "AdministrationRegion", + "description": "The city or county that provides election information for this voter. This object can have the same elements as state." + }, + "name": { + "type": "string", + "description": "The name of the jurisdiction." + }, + "sources": { + "type": "array", + "description": "A list of sources for this area. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "AdministrativeBody": { + "id": "AdministrativeBody", + "type": "object", + "description": "Information about an election administrative body (e.g. County Board of Elections).", + "properties": { + "absenteeVotingInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for information on absentee voting." + }, + "ballotInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body to give contest information to the voter." + }, + "correspondenceAddress": { + "$ref": "SimpleAddressType", + "description": "The mailing address of this administrative body." + }, + "electionInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up general election information." + }, + "electionOfficials": { + "type": "array", + "description": "The election officials for this election administrative body.", + "items": { + "$ref": "ElectionOfficial" + } + }, + "electionRegistrationConfirmationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for confirming that the voter is registered to vote." + }, + "electionRegistrationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up how to register to vote." + }, + "electionRulesUrl": { + "type": "string", + "description": "A URL provided by this administrative body describing election rules to the voter." + }, + "hoursOfOperation": { + "type": "string", + "description": "A description of the hours of operation for this administrative body." + }, + "name": { + "type": "string", + "description": "The name of this election administrative body." + }, + "physicalAddress": { + "$ref": "SimpleAddressType", + "description": "The physical address of this administrative body." + }, + "voter_services": { + "type": "array", + "description": "A description of the services this administrative body may provide.", + "items": { + "type": "string" + } + }, + "votingLocationFinderUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up where to vote." + } + } + }, + "Candidate": { + "id": "Candidate", + "type": "object", + "description": "Information about a candidate running for elected office.", + "properties": { + "candidateUrl": { + "type": "string", + "description": "The URL for the candidate's campaign web site." + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this candidate.", + "items": { + "$ref": "Channel" + } + }, + "email": { + "type": "string", + "description": "The email address for the candidate's campaign." + }, + "name": { + "type": "string", + "description": "The candidate's name." + }, + "orderOnBallot": { + "type": "string", + "description": "The order the candidate appears on the ballot for this contest.", + "format": "int64" + }, + "party": { + "type": "string", + "description": "The full name of the party the candidate is a member of." + }, + "phone": { + "type": "string", + "description": "The voice phone number for the candidate's campaign office." + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the candidate." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "A social media or web channel for a candidate.", + "properties": { + "id": { + "type": "string", + "description": "The unique public identifier for the candidate's channel." + }, + "type": { + "type": "string", + "description": "The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter" + } + } + }, + "Contest": { + "id": "Contest", + "type": "object", + "description": "Information about a contest that appears on a voter's ballot.", + "properties": { + "ballotPlacement": { + "type": "string", + "description": "A number specifying the position of this contest on the voter's ballot.", + "format": "int64" + }, + "candidates": { + "type": "array", + "description": "The candidate choices for this contest.", + "items": { + "$ref": "Candidate" + } + }, + "district": { + "$ref": "ElectoralDistrict", + "description": "Information about the electoral district that this contest is in." + }, + "electorateSpecifications": { + "type": "string", + "description": "A description of any additional eligibility requirements for voting in this contest." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "level": { + "type": "string", + "description": "The level of office for this contest. One of: federal, state, county, city, other" + }, + "numberElected": { + "type": "string", + "description": "The number of candidates that will be elected to office in this contest.", + "format": "int64" + }, + "numberVotingFor": { + "type": "string", + "description": "The number of candidates that a voter may vote for in this contest.", + "format": "int64" + }, + "office": { + "type": "string", + "description": "The name of the office for this contest." + }, + "primaryParty": { + "type": "string", + "description": "If this is a partisan election, the name of the party it is for." + }, + "referendumSubtitle": { + "type": "string", + "description": "A brief description of the referendum. This field is only populated for contests of type 'Referendum'." + }, + "referendumTitle": { + "type": "string", + "description": "The title of the referendum (e.g. 'Proposition 42'). This field is only populated for contests of type 'Referendum'." + }, + "referendumUrl": { + "type": "string", + "description": "A link to the referendum. This field is only populated for contests of type 'Referendum'." + }, + "sources": { + "type": "array", + "description": "A list of sources for this contest. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "special": { + "type": "string", + "description": "\"Yes\" or \"No\" depending on whether this a contest being held outside the normal election cycle." + }, + "type": { + "type": "string", + "description": "The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'." + } + } + }, + "DivisionSearchResponse": { + "id": "DivisionSearchResponse", + "type": "object", + "description": "The result of a division search query.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#divisionSearchResponse\".", + "default": "civicinfo#divisionSearchResponse" + }, + "results": { + "type": "array", + "items": { + "$ref": "DivisionSearchResult" + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, addressUnparseable, noAddressParameter, internalLookupFailure" + } + } + }, + "DivisionSearchResult": { + "id": "DivisionSearchResult", + "type": "object", + "description": "Represents a political geographic division that matches the requested query.", + "properties": { + "aliases": { + "type": "array", + "description": "Other Open Civic Data identifiers that refer to the same division -- for example, those that refer to other political divisions whose boundaries are defined to be coterminous with this one. For example, ocd-division/country:us/state:wy will include an alias of ocd-division/country:us/state:wy/cd:1, since Wyoming has only one Congressional district.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "ocdId": { + "type": "string", + "description": "The unique Open Civic Data identifier for this division." + } + } + }, + "Election": { + "id": "Election", + "type": "object", + "description": "Information about the election that was queried.", + "properties": { + "electionDay": { + "type": "string", + "description": "Day of the election in YYYY-MM-DD format." + }, + "id": { + "type": "string", + "description": "The unique ID of this election.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "A displayable name for the election." + } + } + }, + "ElectionOfficial": { + "id": "ElectionOfficial", + "type": "object", + "description": "Information about individual election officials.", + "properties": { + "emailAddress": { + "type": "string", + "description": "The email address of the election official." + }, + "faxNumber": { + "type": "string", + "description": "The fax number of the election official." + }, + "name": { + "type": "string", + "description": "The full name of the election official." + }, + "officePhoneNumber": { + "type": "string", + "description": "The office phone number of the election official." + }, + "title": { + "type": "string", + "description": "The title of the election official." + } + } + }, + "ElectionsQueryResponse": { + "id": "ElectionsQueryResponse", + "type": "object", + "description": "The list of elections available for this version of the API.", + "properties": { + "elections": { + "type": "array", + "description": "A list of available elections", + "items": { + "$ref": "Election" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#electionsQueryResponse\".", + "default": "civicinfo#electionsQueryResponse" + } + } + }, + "ElectoralDistrict": { + "id": "ElectoralDistrict", + "type": "object", + "description": "Describes the geographic scope of a contest.", + "properties": { + "id": { + "type": "string", + "description": "An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id \"34\" and a scope of stateUpper." + }, + "name": { + "type": "string", + "description": "The name of the district." + }, + "scope": { + "type": "string", + "description": "The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special" + } + } + }, + "GeographicDivision": { + "id": "GeographicDivision", + "type": "object", + "description": "Describes a political geography.", + "properties": { + "alsoKnownAs": { + "type": "array", + "description": "Any other valid OCD IDs that refer to the same division.\n\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\n\nFor example, if this division's OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "officeIds": { + "type": "array", + "description": "List of keys in the offices object, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string", + "description": "The geographic scope of the division. If unspecified, the division's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special" + } + } + }, + "Office": { + "id": "Office", + "type": "object", + "description": "Information about an Office held by one or more Officials.", + "properties": { + "divisionId": { + "type": "string", + "description": "The OCD ID of the division with which this office is associated." + }, + "level": { + "type": "string", + "description": "The level of this elected office. One of: federal, state, county, city, other" + }, + "name": { + "type": "string", + "description": "The human-readable name of the office." + }, + "officialIds": { + "type": "array", + "description": "List of keys in the officials object of people who presently hold this office.", + "items": { + "type": "string" + } + }, + "sources": { + "type": "array", + "description": "A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "Official": { + "id": "Official", + "type": "object", + "description": "Information about a person holding an elected office.", + "properties": { + "address": { + "type": "array", + "description": "Addresses at which to contact the official.", + "items": { + "$ref": "SimpleAddressType" + } + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this official.", + "items": { + "$ref": "Channel" + } + }, + "emails": { + "type": "array", + "description": "The direct email addresses for the official.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The official's name." + }, + "party": { + "type": "string", + "description": "The full name of the party the official belongs to." + }, + "phones": { + "type": "array", + "description": "The official's public contact phone numbers.", + "items": { + "type": "string" + } + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the official." + }, + "urls": { + "type": "array", + "description": "The official's public website URLs.", + "items": { + "type": "string" + } + } + } + }, + "PollingLocation": { + "id": "PollingLocation", + "type": "object", + "description": "A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.", + "properties": { + "address": { + "$ref": "SimpleAddressType", + "description": "The address of the location." + }, + "endDate": { + "type": "string", + "description": "The last date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "name": { + "type": "string", + "description": "The name of the early vote site or drop off location. This field is not populated for polling locations." + }, + "notes": { + "type": "string", + "description": "Notes about this location (e.g. accessibility ramp or entrance to use)." + }, + "pollingHours": { + "type": "string", + "description": "A description of when this location is open." + }, + "sources": { + "type": "array", + "description": "A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "startDate": { + "type": "string", + "description": "The first date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "voterServices": { + "type": "string", + "description": "The services provided by this early vote site or drop off location. This field is not populated for polling locations." + } + } + }, + "RepresentativeInfoRequest": { + "id": "RepresentativeInfoRequest", + "type": "object", + "description": "A request for political geography and representative information for an address.", + "properties": { + "address": { + "type": "string", + "description": "The address to look up. May only be specified if the field ocdId is not given in the URL." + } + } + }, + "RepresentativeInfoResponse": { + "id": "RepresentativeInfoResponse", + "type": "object", + "description": "The result of a representative info lookup query.", + "properties": { + "divisions": { + "type": "object", + "description": "Political geographic divisions that contain the requested address.", + "additionalProperties": { + "$ref": "GeographicDivision", + "description": "The unique Open Civic Data identifier for this division." + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#representativeInfoResponse\".", + "default": "civicinfo#representativeInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "offices": { + "type": "object", + "description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", + "additionalProperties": { + "$ref": "Office", + "description": "A unique identifier for this office, within the context of this request. Identifiers are *not* long-lived: the same office may get different IDs on different requests." + } + }, + "officials": { + "type": "object", + "description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", + "additionalProperties": { + "$ref": "Official", + "description": "A unique identifier for this official, within the context of this request. Identifiers are *not* long-lived: the same official may get different IDs on different requests." + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure, RequestedBothAddressAndOcdId" + } + } + }, + "SimpleAddressType": { + "id": "SimpleAddressType", + "type": "object", + "description": "A simple representation of an address.", + "properties": { + "city": { + "type": "string", + "description": "The city or town for the address." + }, + "line1": { + "type": "string", + "description": "The street name and number of this address." + }, + "line2": { + "type": "string", + "description": "The second line the address, if needed." + }, + "line3": { + "type": "string", + "description": "The third line of the address, if needed." + }, + "locationName": { + "type": "string", + "description": "The name of the location." + }, + "state": { + "type": "string", + "description": "The US two letter state abbreviation of the address." + }, + "zip": { + "type": "string", + "description": "The US Postal Zip Code of the address." + } + } + }, + "Source": { + "id": "Source", + "type": "object", + "description": "Contains information about the data source for the element containing it.", + "properties": { + "name": { + "type": "string", + "description": "The name of the data source." + }, + "official": { + "type": "boolean", + "description": "Whether this data comes from an official government source." + } + } + }, + "VoterInfoRequest": { + "id": "VoterInfoRequest", + "type": "object", + "description": "A request for information about a voter.", + "properties": { + "address": { + "type": "string", + "description": "The registered address of the voter to look up." + } + } + }, + "VoterInfoResponse": { + "id": "VoterInfoResponse", + "type": "object", + "description": "The result of a voter info lookup query.", + "properties": { + "contests": { + "type": "array", + "description": "Contests that will appear on the voter's ballot.", + "items": { + "$ref": "Contest" + } + }, + "dropOffLocations": { + "type": "array", + "description": "Locations where a voter is eligible to drop off a completed ballot. The voter must have received and completed a ballot prior to arriving at the location. The location may not have ballots available on the premises. These locations could be open on or before election day as indicated in the pollingHours field.", + "items": { + "$ref": "PollingLocation" + } + }, + "earlyVoteSites": { + "type": "array", + "description": "Locations where the voter is eligible to vote early, prior to election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "election": { + "$ref": "Election", + "description": "The election that was queried." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#voterInfoResponse\".", + "default": "civicinfo#voterInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "pollingLocations": { + "type": "array", + "description": "Locations where the voter is eligible to vote on election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "precinctId": { + "type": "string" + }, + "state": { + "type": "array", + "description": "Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.", + "items": { + "$ref": "AdministrationRegion" + } + }, + "status": { + "type": "string", + "description": "The result of the request. One of: success, noStreetSegmentFound, addressUnparseable, noAddressParameter, multipleStreetSegmentsFound, electionOver, electionUnknown, internalLookupFailure" + } + } + } + }, + "resources": { + "divisions": { + "methods": { + "search": { + "id": "civicinfo.divisions.search", + "path": "representatives/division_search", + "httpMethod": "GET", + "description": "Searches for political divisions by their natural name or OCD ID.", + "parameters": { + "query": { + "type": "string", + "description": "The search query. Queries can cover any parts of a OCD ID or a human readable division name. All words given in the query are treated as required patterns. In addition to that, most query operators of the Apache Lucene library are supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html", + "location": "query" + } + }, + "response": { + "$ref": "DivisionSearchResponse" + } + } + } + }, + "elections": { + "methods": { + "electionQuery": { + "id": "civicinfo.elections.electionQuery", + "path": "elections", + "httpMethod": "GET", + "description": "List of available elections to query.", + "response": { + "$ref": "ElectionsQueryResponse" + } + }, + "voterInfoQuery": { + "id": "civicinfo.elections.voterInfoQuery", + "path": "voterinfo/{electionId}/lookup", + "httpMethod": "POST", + "description": "Looks up information relevant to a voter based on the voter's registered address.", + "parameters": { + "electionId": { + "type": "string", + "description": "The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections", + "required": true, + "format": "int64", + "location": "path" + }, + "officialOnly": { + "type": "boolean", + "description": "If set to true, only data from official state sources will be returned.", + "default": "false", + "location": "query" + } + }, + "parameterOrder": [ + "electionId" + ], + "request": { + "$ref": "VoterInfoRequest" + }, + "response": { + "$ref": "VoterInfoResponse" + } + } + } + }, + "representatives": { + "methods": { + "representativeInfoQuery": { + "id": "civicinfo.representatives.representativeInfoQuery", + "path": "representatives/lookup", + "httpMethod": "POST", + "description": "Looks up political geography and representative information based on an address or Open Civic Data division identifier.", + "parameters": { + "includeOffices": { + "type": "boolean", + "description": "Whether to return information about offices and officials. If false, only the top-level district information will be returned.", + "default": "true", + "location": "query" + }, + "ocdId": { + "type": "string", + "description": "The division to look up. May only be specified if the address field is not given in the request body.", + "location": "query" + }, + "recursive": { + "type": "boolean", + "description": "When ocd_id is supplied, return all divisions which are hierarchically nested within the queried division. For example, if querying ocd-division/country:us/district:dc, this would also return all DC's wards and ANCs.", + "default": "false", + "location": "query" + } + }, + "request": { + "$ref": "RepresentativeInfoRequest" + }, + "response": { + "$ref": "RepresentativeInfoResponse" + } + } + } + } + } +} diff --git a/etc/api/civicinfo/v2/civicinfo-api.json b/etc/api/civicinfo/v2/civicinfo-api.json new file mode 100644 index 0000000000..f3dff30963 --- /dev/null +++ b/etc/api/civicinfo/v2/civicinfo-api.json @@ -0,0 +1,1030 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/EeZdKz92LCL9J1uCQTeAts36EP0\"", + "discoveryVersion": "v1", + "id": "civicinfo:v2", + "name": "civicinfo", + "canonicalName": "Civic Info", + "version": "v2", + "revision": "20141023", + "title": "Google Civic Information API", + "description": "An API for accessing civic information.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/civic-information", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/civicinfo/v2/", + "basePath": "/civicinfo/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "civicinfo/v2/", + "batchPath": "batch", + "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": { + "AdministrationRegion": { + "id": "AdministrationRegion", + "type": "object", + "description": "Describes information about a regional election administrative area.", + "properties": { + "electionAdministrationBody": { + "$ref": "AdministrativeBody", + "description": "The election administration body for this area." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "local_jurisdiction": { + "$ref": "AdministrationRegion", + "description": "The city or county that provides election information for this voter. This object can have the same elements as state." + }, + "name": { + "type": "string", + "description": "The name of the jurisdiction." + }, + "sources": { + "type": "array", + "description": "A list of sources for this area. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "AdministrativeBody": { + "id": "AdministrativeBody", + "type": "object", + "description": "Information about an election administrative body (e.g. County Board of Elections).", + "properties": { + "absenteeVotingInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for information on absentee voting." + }, + "ballotInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body to give contest information to the voter." + }, + "correspondenceAddress": { + "$ref": "SimpleAddressType", + "description": "The mailing address of this administrative body." + }, + "electionInfoUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up general election information." + }, + "electionOfficials": { + "type": "array", + "description": "The election officials for this election administrative body.", + "items": { + "$ref": "ElectionOfficial" + } + }, + "electionRegistrationConfirmationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for confirming that the voter is registered to vote." + }, + "electionRegistrationUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up how to register to vote." + }, + "electionRulesUrl": { + "type": "string", + "description": "A URL provided by this administrative body describing election rules to the voter." + }, + "hoursOfOperation": { + "type": "string", + "description": "A description of the hours of operation for this administrative body." + }, + "name": { + "type": "string", + "description": "The name of this election administrative body." + }, + "physicalAddress": { + "$ref": "SimpleAddressType", + "description": "The physical address of this administrative body." + }, + "voter_services": { + "type": "array", + "description": "A description of the services this administrative body may provide.", + "items": { + "type": "string" + } + }, + "votingLocationFinderUrl": { + "type": "string", + "description": "A URL provided by this administrative body for looking up where to vote." + } + } + }, + "Candidate": { + "id": "Candidate", + "type": "object", + "description": "Information about a candidate running for elected office.", + "properties": { + "candidateUrl": { + "type": "string", + "description": "The URL for the candidate's campaign web site." + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this candidate.", + "items": { + "$ref": "Channel" + } + }, + "email": { + "type": "string", + "description": "The email address for the candidate's campaign." + }, + "name": { + "type": "string", + "description": "The candidate's name." + }, + "orderOnBallot": { + "type": "string", + "description": "The order the candidate appears on the ballot for this contest.", + "format": "int64" + }, + "party": { + "type": "string", + "description": "The full name of the party the candidate is a member of." + }, + "phone": { + "type": "string", + "description": "The voice phone number for the candidate's campaign office." + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the candidate." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "A social media or web channel for a candidate.", + "properties": { + "id": { + "type": "string", + "description": "The unique public identifier for the candidate's channel." + }, + "type": { + "type": "string", + "description": "The type of channel. The following is a list of types of channels, but is not exhaustive. More channel types may be added at a later time. One of: GooglePlus, YouTube, Facebook, Twitter" + } + } + }, + "Contest": { + "id": "Contest", + "type": "object", + "description": "Information about a contest that appears on a voter's ballot.", + "properties": { + "ballotPlacement": { + "type": "string", + "description": "A number specifying the position of this contest on the voter's ballot.", + "format": "int64" + }, + "candidates": { + "type": "array", + "description": "The candidate choices for this contest.", + "items": { + "$ref": "Candidate" + } + }, + "district": { + "$ref": "ElectoralDistrict", + "description": "Information about the electoral district that this contest is in." + }, + "electorateSpecifications": { + "type": "string", + "description": "A description of any additional eligibility requirements for voting in this contest." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "level": { + "type": "array", + "description": "The levels of government of the office for this contest. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at \"locality\" level, but also effectively at both \"administrative-area-2\" and \"administrative-area-1\".", + "items": { + "type": "string" + } + }, + "numberElected": { + "type": "string", + "description": "The number of candidates that will be elected to office in this contest.", + "format": "int64" + }, + "numberVotingFor": { + "type": "string", + "description": "The number of candidates that a voter may vote for in this contest.", + "format": "int64" + }, + "office": { + "type": "string", + "description": "The name of the office for this contest." + }, + "primaryParty": { + "type": "string", + "description": "If this is a partisan election, the name of the party it is for." + }, + "referendumSubtitle": { + "type": "string", + "description": "A brief description of the referendum. This field is only populated for contests of type 'Referendum'." + }, + "referendumTitle": { + "type": "string", + "description": "The title of the referendum (e.g. 'Proposition 42'). This field is only populated for contests of type 'Referendum'." + }, + "referendumUrl": { + "type": "string", + "description": "A link to the referendum. This field is only populated for contests of type 'Referendum'." + }, + "roles": { + "type": "array", + "description": "The roles which this office fulfills.", + "items": { + "type": "string" + } + }, + "sources": { + "type": "array", + "description": "A list of sources for this contest. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "special": { + "type": "string", + "description": "\"Yes\" or \"No\" depending on whether this a contest being held outside the normal election cycle." + }, + "type": { + "type": "string", + "description": "The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'." + } + } + }, + "DivisionSearchResponse": { + "id": "DivisionSearchResponse", + "type": "object", + "description": "The result of a division search query.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#divisionSearchResponse\".", + "default": "civicinfo#divisionSearchResponse" + }, + "results": { + "type": "array", + "items": { + "$ref": "DivisionSearchResult" + } + } + } + }, + "DivisionSearchResult": { + "id": "DivisionSearchResult", + "type": "object", + "description": "Represents a political geographic division that matches the requested query.", + "properties": { + "aliases": { + "type": "array", + "description": "Other Open Civic Data identifiers that refer to the same division -- for example, those that refer to other political divisions whose boundaries are defined to be coterminous with this one. For example, ocd-division/country:us/state:wy will include an alias of ocd-division/country:us/state:wy/cd:1, since Wyoming has only one Congressional district.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "ocdId": { + "type": "string", + "description": "The unique Open Civic Data identifier for this division." + } + } + }, + "Election": { + "id": "Election", + "type": "object", + "description": "Information about the election that was queried.", + "properties": { + "electionDay": { + "type": "string", + "description": "Day of the election in YYYY-MM-DD format." + }, + "id": { + "type": "string", + "description": "The unique ID of this election.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "A displayable name for the election." + } + } + }, + "ElectionOfficial": { + "id": "ElectionOfficial", + "type": "object", + "description": "Information about individual election officials.", + "properties": { + "emailAddress": { + "type": "string", + "description": "The email address of the election official." + }, + "faxNumber": { + "type": "string", + "description": "The fax number of the election official." + }, + "name": { + "type": "string", + "description": "The full name of the election official." + }, + "officePhoneNumber": { + "type": "string", + "description": "The office phone number of the election official." + }, + "title": { + "type": "string", + "description": "The title of the election official." + } + } + }, + "ElectionsQueryResponse": { + "id": "ElectionsQueryResponse", + "type": "object", + "description": "The list of elections available for this version of the API.", + "properties": { + "elections": { + "type": "array", + "description": "A list of available elections", + "items": { + "$ref": "Election" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#electionsQueryResponse\".", + "default": "civicinfo#electionsQueryResponse" + } + } + }, + "ElectoralDistrict": { + "id": "ElectoralDistrict", + "type": "object", + "description": "Describes the geographic scope of a contest.", + "properties": { + "id": { + "type": "string", + "description": "An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id \"34\" and a scope of stateUpper." + }, + "name": { + "type": "string", + "description": "The name of the district." + }, + "scope": { + "type": "string", + "description": "The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special" + } + } + }, + "GeographicDivision": { + "id": "GeographicDivision", + "type": "object", + "description": "Describes a political geography.", + "properties": { + "alsoKnownAs": { + "type": "array", + "description": "Any other valid OCD IDs that refer to the same division.\n\nBecause OCD IDs are meant to be human-readable and at least somewhat predictable, there are occasionally several identifiers for a single division. These identifiers are defined to be equivalent to one another, and one is always indicated as the primary identifier. The primary identifier will be returned in ocd_id above, and any other equivalent valid identifiers will be returned in this list.\n\nFor example, if this division's OCD ID is ocd-division/country:us/district:dc, this will contain ocd-division/country:us/state:dc.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the division." + }, + "officeIndices": { + "type": "array", + "description": "List of indices in the offices array, one for each office elected from this division. Will only be present if includeOffices was true (or absent) in the request.", + "items": { + "type": "integer", + "format": "uint32" + } + } + } + }, + "Office": { + "id": "Office", + "type": "object", + "description": "Information about an Office held by one or more Officials.", + "properties": { + "divisionId": { + "type": "string", + "description": "The OCD ID of the division with which this office is associated." + }, + "levels": { + "type": "array", + "description": "The levels of government of which this office is part. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at \"locality\" level, but also effectively at both \"administrative-area-2\" and \"administrative-area-1\".", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The human-readable name of the office." + }, + "officialIndices": { + "type": "array", + "description": "List of indices in the officials array of people who presently hold this office.", + "items": { + "type": "integer", + "format": "uint32" + } + }, + "roles": { + "type": "array", + "description": "The roles which this office fulfills. Roles are not meant to be exhaustive, or to exactly specify the entire set of responsibilities of a given office, but are meant to be rough categories that are useful for general selection from or sorting of a list of offices.", + "items": { + "type": "string" + } + }, + "sources": { + "type": "array", + "description": "A list of sources for this office. If multiple sources are listed, the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + } + } + }, + "Official": { + "id": "Official", + "type": "object", + "description": "Information about a person holding an elected office.", + "properties": { + "address": { + "type": "array", + "description": "Addresses at which to contact the official.", + "items": { + "$ref": "SimpleAddressType" + } + }, + "channels": { + "type": "array", + "description": "A list of known (social) media channels for this official.", + "items": { + "$ref": "Channel" + } + }, + "emails": { + "type": "array", + "description": "The direct email addresses for the official.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The official's name." + }, + "party": { + "type": "string", + "description": "The full name of the party the official belongs to." + }, + "phones": { + "type": "array", + "description": "The official's public contact phone numbers.", + "items": { + "type": "string" + } + }, + "photoUrl": { + "type": "string", + "description": "A URL for a photo of the official." + }, + "urls": { + "type": "array", + "description": "The official's public website URLs.", + "items": { + "type": "string" + } + } + } + }, + "PollingLocation": { + "id": "PollingLocation", + "type": "object", + "description": "A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.", + "properties": { + "address": { + "$ref": "SimpleAddressType", + "description": "The address of the location." + }, + "endDate": { + "type": "string", + "description": "The last date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "id": { + "type": "string", + "description": "An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page." + }, + "name": { + "type": "string", + "description": "The name of the early vote site or drop off location. This field is not populated for polling locations." + }, + "notes": { + "type": "string", + "description": "Notes about this location (e.g. accessibility ramp or entrance to use)." + }, + "pollingHours": { + "type": "string", + "description": "A description of when this location is open." + }, + "sources": { + "type": "array", + "description": "A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.", + "items": { + "$ref": "Source" + } + }, + "startDate": { + "type": "string", + "description": "The first date that this early vote site or drop off location may be used. This field is not populated for polling locations." + }, + "voterServices": { + "type": "string", + "description": "The services provided by this early vote site or drop off location. This field is not populated for polling locations." + } + } + }, + "RepresentativeInfoData": { + "id": "RepresentativeInfoData", + "type": "object", + "properties": { + "divisions": { + "type": "object", + "description": "Political geographic divisions that contain the requested address.", + "additionalProperties": { + "$ref": "GeographicDivision", + "description": "The unique Open Civic Data identifier for this division." + } + }, + "offices": { + "type": "array", + "description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", + "items": { + "$ref": "Office" + } + }, + "officials": { + "type": "array", + "description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", + "items": { + "$ref": "Official" + } + } + } + }, + "RepresentativeInfoResponse": { + "id": "RepresentativeInfoResponse", + "type": "object", + "description": "The result of a representative info lookup query.", + "properties": { + "divisions": { + "type": "object", + "description": "Political geographic divisions that contain the requested address.", + "additionalProperties": { + "$ref": "GeographicDivision", + "description": "The unique Open Civic Data identifier for this division." + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#representativeInfoResponse\".", + "default": "civicinfo#representativeInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "offices": { + "type": "array", + "description": "Elected offices referenced by the divisions listed above. Will only be present if includeOffices was true in the request.", + "items": { + "$ref": "Office" + } + }, + "officials": { + "type": "array", + "description": "Officials holding the offices listed above. Will only be present if includeOffices was true in the request.", + "items": { + "$ref": "Official" + } + } + } + }, + "SimpleAddressType": { + "id": "SimpleAddressType", + "type": "object", + "description": "A simple representation of an address.", + "properties": { + "city": { + "type": "string", + "description": "The city or town for the address." + }, + "line1": { + "type": "string", + "description": "The street name and number of this address." + }, + "line2": { + "type": "string", + "description": "The second line the address, if needed." + }, + "line3": { + "type": "string", + "description": "The third line of the address, if needed." + }, + "locationName": { + "type": "string", + "description": "The name of the location." + }, + "state": { + "type": "string", + "description": "The US two letter state abbreviation of the address." + }, + "zip": { + "type": "string", + "description": "The US Postal Zip Code of the address." + } + } + }, + "Source": { + "id": "Source", + "type": "object", + "description": "Contains information about the data source for the element containing it.", + "properties": { + "name": { + "type": "string", + "description": "The name of the data source." + }, + "official": { + "type": "boolean", + "description": "Whether this data comes from an official government source." + } + } + }, + "VoterInfoResponse": { + "id": "VoterInfoResponse", + "type": "object", + "description": "The result of a voter info lookup query.", + "properties": { + "contests": { + "type": "array", + "description": "Contests that will appear on the voter's ballot.", + "items": { + "$ref": "Contest" + } + }, + "dropOffLocations": { + "type": "array", + "description": "Locations where a voter is eligible to drop off a completed ballot. The voter must have received and completed a ballot prior to arriving at the location. The location may not have ballots available on the premises. These locations could be open on or before election day as indicated in the pollingHours field.", + "items": { + "$ref": "PollingLocation" + } + }, + "earlyVoteSites": { + "type": "array", + "description": "Locations where the voter is eligible to vote early, prior to election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "election": { + "$ref": "Election", + "description": "The election that was queried." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"civicinfo#voterInfoResponse\".", + "default": "civicinfo#voterInfoResponse" + }, + "normalizedInput": { + "$ref": "SimpleAddressType", + "description": "The normalized version of the requested address" + }, + "otherElections": { + "type": "array", + "description": "If no election ID was specified in the query, and there was more than one election with data for the given voter, this will contain information about the other elections that could apply.", + "items": { + "$ref": "Election" + } + }, + "pollingLocations": { + "type": "array", + "description": "Locations where the voter is eligible to vote on election day.", + "items": { + "$ref": "PollingLocation" + } + }, + "precinctId": { + "type": "string" + }, + "state": { + "type": "array", + "description": "Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.", + "items": { + "$ref": "AdministrationRegion" + } + } + } + } + }, + "resources": { + "divisions": { + "methods": { + "search": { + "id": "civicinfo.divisions.search", + "path": "divisions", + "httpMethod": "GET", + "description": "Searches for political divisions by their natural name or OCD ID.", + "parameters": { + "query": { + "type": "string", + "description": "The search query. Queries can cover any parts of a OCD ID or a human readable division name. All words given in the query are treated as required patterns. In addition to that, most query operators of the Apache Lucene library are supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html", + "location": "query" + } + }, + "response": { + "$ref": "DivisionSearchResponse" + } + } + } + }, + "elections": { + "methods": { + "electionQuery": { + "id": "civicinfo.elections.electionQuery", + "path": "elections", + "httpMethod": "GET", + "description": "List of available elections to query.", + "response": { + "$ref": "ElectionsQueryResponse" + } + }, + "voterInfoQuery": { + "id": "civicinfo.elections.voterInfoQuery", + "path": "voterinfo", + "httpMethod": "GET", + "description": "Looks up information relevant to a voter based on the voter's registered address.", + "parameters": { + "address": { + "type": "string", + "description": "The registered address of the voter to look up.", + "required": true, + "location": "query" + }, + "electionId": { + "type": "string", + "description": "The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections", + "default": "0", + "format": "int64", + "location": "query" + }, + "officialOnly": { + "type": "boolean", + "description": "If set to true, only data from official state sources will be returned.", + "default": "false", + "location": "query" + } + }, + "parameterOrder": [ + "address" + ], + "response": { + "$ref": "VoterInfoResponse" + } + } + } + }, + "representatives": { + "methods": { + "representativeInfoByAddress": { + "id": "civicinfo.representatives.representativeInfoByAddress", + "path": "representatives", + "httpMethod": "GET", + "description": "Looks up political geography and representative information for a single address.", + "parameters": { + "address": { + "type": "string", + "description": "The address to look up. May only be specified if the field ocdId is not given in the URL.", + "location": "query" + }, + "includeOffices": { + "type": "boolean", + "description": "Whether to return information about offices and officials. If false, only the top-level district information will be returned.", + "default": "true", + "location": "query" + }, + "levels": { + "type": "string", + "description": "A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don't contain a matching office will not be returned.", + "enum": [ + "administrativeArea1", + "administrativeArea2", + "country", + "international", + "locality", + "regional", + "special", + "subLocality1", + "subLocality2" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "roles": { + "type": "string", + "description": "A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don't contain a matching office will not be returned.", + "enum": [ + "deputyHeadOfGovernment", + "executiveCouncil", + "governmentOfficer", + "headOfGovernment", + "headOfState", + "highestCourtJudge", + "judge", + "legislatorLowerBody", + "legislatorUpperBody", + "schoolBoard", + "specialPurposeOfficer" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + } + }, + "response": { + "$ref": "RepresentativeInfoResponse" + } + }, + "representativeInfoByDivision": { + "id": "civicinfo.representatives.representativeInfoByDivision", + "path": "representatives/{ocdId}", + "httpMethod": "GET", + "description": "Looks up representative information for a single geographic division.", + "parameters": { + "levels": { + "type": "string", + "description": "A list of office levels to filter by. Only offices that serve at least one of these levels will be returned. Divisions that don't contain a matching office will not be returned.", + "enum": [ + "administrativeArea1", + "administrativeArea2", + "country", + "international", + "locality", + "regional", + "special", + "subLocality1", + "subLocality2" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "ocdId": { + "type": "string", + "description": "The Open Civic Data division identifier of the division to look up.", + "required": true, + "location": "path" + }, + "recursive": { + "type": "boolean", + "description": "If true, information about all divisions contained in the division requested will be included as well. For example, if querying ocd-division/country:us/district:dc, this would also return all DC's wards and ANCs.", + "location": "query" + }, + "roles": { + "type": "string", + "description": "A list of office roles to filter by. Only offices fulfilling one of these roles will be returned. Divisions that don't contain a matching office will not be returned.", + "enum": [ + "deputyHeadOfGovernment", + "executiveCouncil", + "governmentOfficer", + "headOfGovernment", + "headOfState", + "highestCourtJudge", + "judge", + "legislatorLowerBody", + "legislatorUpperBody", + "schoolBoard", + "specialPurposeOfficer" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "ocdId" + ], + "response": { + "$ref": "RepresentativeInfoData" + } + } + } + } + } +} diff --git a/etc/api/cloudlatencytest/v2/cloudlatencytest-api.json b/etc/api/cloudlatencytest/v2/cloudlatencytest-api.json new file mode 100644 index 0000000000..3f0f1a08b0 --- /dev/null +++ b/etc/api/cloudlatencytest/v2/cloudlatencytest-api.json @@ -0,0 +1,212 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/qJOZypus2JZqrrIOB0BaiZ76VFY\"", + "discoveryVersion": "v1", + "id": "cloudlatencytest:v2", + "name": "cloudlatencytest", + "version": "v2", + "revision": "20150206", + "title": "Google Cloud Network Performance Monitoring API", + "description": "A Test API to report latency data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "", + "protocol": "rest", + "baseUrl": "https://cloudlatencytest-pa.googleapis.com/v2/statscollection/", + "basePath": "/v2/statscollection/", + "rootUrl": "https://cloudlatencytest-pa.googleapis.com/", + "servicePath": "v2/statscollection/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/monitoring.readonly": { + "description": "View monitoring data for all of your Google Cloud and API projects" + } + } + } + }, + "schemas": { + "AggregatedStats": { + "id": "AggregatedStats", + "type": "object", + "properties": { + "stats": { + "type": "array", + "items": { + "$ref": "Stats" + } + } + } + }, + "AggregatedStatsReply": { + "id": "AggregatedStatsReply", + "type": "object", + "properties": { + "testValue": { + "type": "string" + } + } + }, + "DoubleValue": { + "id": "DoubleValue", + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "number", + "format": "float" + } + } + }, + "IntValue": { + "id": "IntValue", + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string", + "format": "int64" + } + } + }, + "Stats": { + "id": "Stats", + "type": "object", + "properties": { + "doubleValues": { + "type": "array", + "items": { + "$ref": "DoubleValue" + } + }, + "intValues": { + "type": "array", + "items": { + "$ref": "IntValue" + } + }, + "stringValues": { + "type": "array", + "items": { + "$ref": "StringValue" + } + }, + "time": { + "type": "number", + "format": "double" + } + } + }, + "StatsReply": { + "id": "StatsReply", + "type": "object", + "properties": { + "testValue": { + "type": "string" + } + } + }, + "StringValue": { + "id": "StringValue", + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "resources": { + "statscollection": { + "methods": { + "updateaggregatedstats": { + "id": "cloudlatencytest.statscollection.updateaggregatedstats", + "path": "updateaggregatedstats", + "httpMethod": "POST", + "description": "RPC to update the new TCP stats.", + "request": { + "$ref": "AggregatedStats" + }, + "response": { + "$ref": "AggregatedStatsReply" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring.readonly" + ] + }, + "updatestats": { + "id": "cloudlatencytest.statscollection.updatestats", + "path": "updatestats", + "httpMethod": "POST", + "description": "RPC to update the new TCP stats.", + "request": { + "$ref": "Stats" + }, + "response": { + "$ref": "StatsReply" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring.readonly" + ] + } + } + } + } +} diff --git a/etc/api/cloudmonitoring/v2beta2/cloudmonitoring-api.json b/etc/api/cloudmonitoring/v2beta2/cloudmonitoring-api.json new file mode 100644 index 0000000000..bc5a1d658d --- /dev/null +++ b/etc/api/cloudmonitoring/v2beta2/cloudmonitoring-api.json @@ -0,0 +1,830 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/W-CYad3sVi3av-L2zzzQukVGZ3g\"", + "discoveryVersion": "v1", + "id": "cloudmonitoring:v2beta2", + "name": "cloudmonitoring", + "canonicalName": "Cloud Monitoring", + "version": "v2beta2", + "revision": "20150109", + "title": "Cloud Monitoring API", + "description": "API for accessing Google Cloud and API monitoring data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://cloud.google.com/monitoring/v2beta2/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/cloudmonitoring/v2beta2/projects/", + "basePath": "/cloudmonitoring/v2beta2/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "cloudmonitoring/v2beta2/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/monitoring": { + "description": "View and write monitoring data for all of your Google and third-party Cloud and API projects" + } + } + } + }, + "schemas": { + "DeleteMetricDescriptorResponse": { + "id": "DeleteMetricDescriptorResponse", + "type": "object", + "description": "The response of cloudmonitoring.metricDescriptors.delete.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#deleteMetricDescriptorResponse\".", + "default": "cloudmonitoring#deleteMetricDescriptorResponse" + } + } + }, + "ListMetricDescriptorsRequest": { + "id": "ListMetricDescriptorsRequest", + "type": "object", + "description": "The request of cloudmonitoring.metricDescriptors.list.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listMetricDescriptorsRequest\".", + "default": "cloudmonitoring#listMetricDescriptorsRequest" + } + } + }, + "ListMetricDescriptorsResponse": { + "id": "ListMetricDescriptorsResponse", + "type": "object", + "description": "The response of cloudmonitoring.metricDescriptors.list.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listMetricDescriptorsResponse\".", + "default": "cloudmonitoring#listMetricDescriptorsResponse" + }, + "metrics": { + "type": "array", + "description": "The returned metric descriptors.", + "items": { + "$ref": "MetricDescriptor" + } + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, pass this value to the pageToken query parameter." + } + } + }, + "ListTimeseriesDescriptorsRequest": { + "id": "ListTimeseriesDescriptorsRequest", + "type": "object", + "description": "The request of cloudmonitoring.timeseriesDescriptors.list", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listTimeseriesDescriptorsRequest\".", + "default": "cloudmonitoring#listTimeseriesDescriptorsRequest" + } + } + }, + "ListTimeseriesDescriptorsResponse": { + "id": "ListTimeseriesDescriptorsResponse", + "type": "object", + "description": "The response of cloudmonitoring.timeseriesDescriptors.list", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listTimeseriesDescriptorsResponse\".", + "default": "cloudmonitoring#listTimeseriesDescriptorsResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, set this value to the pageToken query parameter." + }, + "oldest": { + "type": "string", + "description": "The oldest timestamp of the interval of this query, as an RFC 3339 string.", + "format": "date-time" + }, + "timeseries": { + "type": "array", + "description": "The returned time series descriptors.", + "items": { + "$ref": "TimeseriesDescriptor" + } + }, + "youngest": { + "type": "string", + "description": "The youngest timestamp of the interval of this query, as an RFC 3339 string.", + "format": "date-time" + } + } + }, + "ListTimeseriesRequest": { + "id": "ListTimeseriesRequest", + "type": "object", + "description": "The request of cloudmonitoring.timeseries.list", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listTimeseriesRequest\".", + "default": "cloudmonitoring#listTimeseriesRequest" + } + } + }, + "ListTimeseriesResponse": { + "id": "ListTimeseriesResponse", + "type": "object", + "description": "The response of cloudmonitoring.timeseries.list", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#listTimeseriesResponse\".", + "default": "cloudmonitoring#listTimeseriesResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, set the pageToken query parameter to this value. All of the points of a time series will be returned before returning any point of the subsequent time series." + }, + "oldest": { + "type": "string", + "description": "The oldest timestamp of the interval of this query as an RFC 3339 string.", + "format": "date-time" + }, + "timeseries": { + "type": "array", + "description": "The returned time series.", + "items": { + "$ref": "Timeseries" + } + }, + "youngest": { + "type": "string", + "description": "The youngest timestamp of the interval of this query as an RFC 3339 string.", + "format": "date-time" + } + } + }, + "MetricDescriptor": { + "id": "MetricDescriptor", + "type": "object", + "description": "A metricDescriptor defines the name, label keys, and data type of a particular metric.", + "properties": { + "description": { + "type": "string", + "description": "Description of this metric." + }, + "labels": { + "type": "array", + "description": "Labels defined for this metric.", + "items": { + "$ref": "MetricDescriptorLabelDescriptor" + } + }, + "name": { + "type": "string", + "description": "The name of this metric." + }, + "project": { + "type": "string", + "description": "The project ID to which the metric belongs." + }, + "typeDescriptor": { + "$ref": "MetricDescriptorTypeDescriptor", + "description": "Type description for this metric." + } + } + }, + "MetricDescriptorLabelDescriptor": { + "id": "MetricDescriptorLabelDescriptor", + "type": "object", + "description": "A label in a metric is a description of this metric, including the key of this description (what the description is), and the value for this description.", + "properties": { + "description": { + "type": "string", + "description": "Label description." + }, + "key": { + "type": "string", + "description": "Label key." + } + } + }, + "MetricDescriptorTypeDescriptor": { + "id": "MetricDescriptorTypeDescriptor", + "type": "object", + "description": "A type in a metric contains information about how the metric is collected and what its data points look like.", + "properties": { + "metricType": { + "type": "string", + "description": "The method of collecting data for the metric." + }, + "valueType": { + "type": "string", + "description": "The type of data that is written to a timeseries point for this metric." + } + } + }, + "Point": { + "id": "Point", + "type": "object", + "description": "Point is a single point in a time series. It consists of a start time, an end time, and a value.", + "properties": { + "boolValue": { + "type": "boolean", + "description": "The value of this data point. Either \"true\" or \"false\"." + }, + "distributionValue": { + "$ref": "PointDistribution", + "description": "The value of this data point as a distribution. A distribution value can contain a list of buckets and/or an underflowBucket and an overflowBucket. The values of these points can be used to create a histogram." + }, + "doubleValue": { + "type": "number", + "description": "The value of this data point as a double-precision floating-point number.", + "format": "double" + }, + "end": { + "type": "string", + "description": "The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.", + "format": "date-time" + }, + "int64Value": { + "type": "string", + "description": "The value of this data point as a 64-bit integer.", + "format": "int64" + }, + "start": { + "type": "string", + "description": "The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.", + "format": "date-time" + }, + "stringValue": { + "type": "string", + "description": "The value of this data point in string format." + } + } + }, + "PointDistribution": { + "id": "PointDistribution", + "type": "object", + "description": "Distribution data point value type. When writing distribution points, try to be consistent with the boundaries of your buckets. If you must modify the bucket boundaries, then do so by merging, partitioning, or appending rather than skewing them.", + "properties": { + "buckets": { + "type": "array", + "description": "The finite buckets.", + "items": { + "$ref": "PointDistributionBucket" + } + }, + "overflowBucket": { + "$ref": "PointDistributionOverflowBucket", + "description": "The overflow bucket." + }, + "underflowBucket": { + "$ref": "PointDistributionUnderflowBucket", + "description": "The underflow bucket." + } + } + }, + "PointDistributionBucket": { + "id": "PointDistributionBucket", + "type": "object", + "description": "The histogram's bucket. Buckets that form the histogram of a distribution value. If the upper bound of a bucket, say U1, does not equal the lower bound of the next bucket, say L2, this means that there is no event in [U1, L2).", + "properties": { + "count": { + "type": "string", + "description": "The number of events whose values are in the interval defined by this bucket.", + "format": "int64" + }, + "lowerBound": { + "type": "number", + "description": "The lower bound of the value interval of this bucket (inclusive).", + "format": "double" + }, + "upperBound": { + "type": "number", + "description": "The upper bound of the value interval of this bucket (exclusive).", + "format": "double" + } + } + }, + "PointDistributionOverflowBucket": { + "id": "PointDistributionOverflowBucket", + "type": "object", + "description": "The overflow bucket is a special bucket that does not have the upperBound field; it includes all of the events that are no less than its lower bound.", + "properties": { + "count": { + "type": "string", + "description": "The number of events whose values are in the interval defined by this bucket.", + "format": "int64" + }, + "lowerBound": { + "type": "number", + "description": "The lower bound of the value interval of this bucket (inclusive).", + "format": "double" + } + } + }, + "PointDistributionUnderflowBucket": { + "id": "PointDistributionUnderflowBucket", + "type": "object", + "description": "The underflow bucket is a special bucket that does not have the lowerBound field; it includes all of the events that are less than its upper bound.", + "properties": { + "count": { + "type": "string", + "description": "The number of events whose values are in the interval defined by this bucket.", + "format": "int64" + }, + "upperBound": { + "type": "number", + "description": "The upper bound of the value interval of this bucket (exclusive).", + "format": "double" + } + } + }, + "Timeseries": { + "id": "Timeseries", + "type": "object", + "description": "The monitoring data is organized as metrics and stored as data points that are recorded over time. Each data point represents information like the CPU utilization of your virtual machine. A historical record of these data points is called a time series.", + "properties": { + "points": { + "type": "array", + "description": "The data points of this time series. The points are listed in order of their end timestamp, from younger to older.", + "items": { + "$ref": "Point" + } + }, + "timeseriesDesc": { + "$ref": "TimeseriesDescriptor", + "description": "The descriptor of this time series." + } + } + }, + "TimeseriesDescriptor": { + "id": "TimeseriesDescriptor", + "type": "object", + "description": "TimeseriesDescriptor identifies a single time series.", + "properties": { + "labels": { + "type": "object", + "description": "The label's name.", + "additionalProperties": { + "type": "string", + "description": "The label's name." + } + }, + "metric": { + "type": "string", + "description": "The name of the metric." + }, + "project": { + "type": "string", + "description": "The Developers Console project number to which this time series belongs." + } + } + }, + "TimeseriesDescriptorLabel": { + "id": "TimeseriesDescriptorLabel", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The label's name." + }, + "value": { + "type": "string", + "description": "The label's value." + } + } + }, + "TimeseriesPoint": { + "id": "TimeseriesPoint", + "type": "object", + "description": "When writing time series, TimeseriesPoint should be used instead of Timeseries, to enforce single point for each time series in the timeseries.write request.", + "properties": { + "point": { + "$ref": "Point", + "description": "The data point in this time series snapshot." + }, + "timeseriesDesc": { + "$ref": "TimeseriesDescriptor", + "description": "The descriptor of this time series." + } + } + }, + "WriteTimeseriesRequest": { + "id": "WriteTimeseriesRequest", + "type": "object", + "description": "The request of cloudmonitoring.timeseries.write", + "properties": { + "commonLabels": { + "type": "object", + "description": "The label's name.", + "additionalProperties": { + "type": "string", + "description": "The label's name." + } + }, + "timeseries": { + "type": "array", + "description": "Provide time series specific labels and the data points for each time series. The labels in timeseries and the common_labels should form a complete list of labels that required by the metric.", + "items": { + "$ref": "TimeseriesPoint" + } + } + } + }, + "WriteTimeseriesResponse": { + "id": "WriteTimeseriesResponse", + "type": "object", + "description": "The response of cloudmonitoring.timeseries.write", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"cloudmonitoring#writeTimeseriesResponse\".", + "default": "cloudmonitoring#writeTimeseriesResponse" + } + } + } + }, + "resources": { + "metricDescriptors": { + "methods": { + "create": { + "id": "cloudmonitoring.metricDescriptors.create", + "path": "{project}/metricDescriptors", + "httpMethod": "POST", + "description": "Create a new metric.", + "parameters": { + "project": { + "type": "string", + "description": "The project id. The value can be the numeric project ID or string-based project name.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "MetricDescriptor" + }, + "response": { + "$ref": "MetricDescriptor" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + }, + "delete": { + "id": "cloudmonitoring.metricDescriptors.delete", + "path": "{project}/metricDescriptors/{metric}", + "httpMethod": "DELETE", + "description": "Delete an existing metric.", + "parameters": { + "metric": { + "type": "string", + "description": "Name of the metric.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID to which the metric belongs.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "metric" + ], + "response": { + "$ref": "DeleteMetricDescriptorResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + }, + "list": { + "id": "cloudmonitoring.metricDescriptors.list", + "path": "{project}/metricDescriptors", + "httpMethod": "GET", + "description": "List metric descriptors that match the query. If the query is not set, then all of the metric descriptors will be returned. Large responses will be paginated, use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.", + "parameters": { + "count": { + "type": "integer", + "description": "Maximum number of metric descriptors per page. Used for pagination. If not specified, count = 100.", + "default": "100", + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project id. The value can be the numeric project ID or string-based project name.", + "required": true, + "location": "path" + }, + "query": { + "type": "string", + "description": "The query used to search against existing metrics. Separate keywords with a space; the service joins all keywords with AND, meaning that all keywords must match for a metric to be returned. If this field is omitted, all metrics are returned. If an empty string is passed with this field, no metrics are returned.", + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ListMetricDescriptorsRequest" + }, + "response": { + "$ref": "ListMetricDescriptorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + } + } + }, + "timeseries": { + "methods": { + "list": { + "id": "cloudmonitoring.timeseries.list", + "path": "{project}/timeseries/{metric}", + "httpMethod": "GET", + "description": "List the data points of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.", + "parameters": { + "aggregator": { + "type": "string", + "description": "The aggregation function that will reduce the data points in each window to a single point. This parameter is only valid for non-cumulative metric types.", + "enum": [ + "max", + "mean", + "min", + "sum" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query" + }, + "count": { + "type": "integer", + "description": "Maximum number of data points per page, which is used for pagination of results.", + "default": "6000", + "format": "int32", + "minimum": "1", + "maximum": "12000", + "location": "query" + }, + "labels": { + "type": "string", + "description": "A collection of labels for the matching time series, which are represented as: \n- key==value: key equals the value \n- key=~value: key regex matches the value \n- key!=value: key does not equal the value \n- key!~value: key regex does not match the value For example, to list all of the time series descriptors for the region us-central1, you could specify:\nlabel=cloud.googleapis.com%2Flocation=~us-central1.*", + "pattern": "(.+?)(==|=~|!=|!~)(.+)", + "repeated": true, + "location": "query" + }, + "metric": { + "type": "string", + "description": "Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, compute.googleapis.com/instance/disk/read_ops_count.", + "required": true, + "location": "path" + }, + "oldest": { + "type": "string", + "description": "Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest]", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID to which this time series belongs. The value can be the numeric project ID or string-based project name.", + "required": true, + "location": "path" + }, + "timespan": { + "type": "string", + "description": "Length of the time interval to query, which is an alternative way to declare the interval: (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. Units: \n- s: second \n- m: minute \n- h: hour \n- d: day \n- w: week Examples: 2s, 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.\n\nIf neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest].", + "pattern": "[0-9]+[smhdw]?", + "location": "query" + }, + "window": { + "type": "string", + "description": "The sampling window. At most one data point will be returned for each window in the requested time interval. This parameter is only valid for non-cumulative metric types. Units: \n- m: minute \n- h: hour \n- d: day \n- w: week Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.", + "pattern": "[0-9]+[mhdw]?", + "location": "query" + }, + "youngest": { + "type": "string", + "description": "End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "project", + "metric", + "youngest" + ], + "request": { + "$ref": "ListTimeseriesRequest" + }, + "response": { + "$ref": "ListTimeseriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + }, + "write": { + "id": "cloudmonitoring.timeseries.write", + "path": "{project}/timeseries:write", + "httpMethod": "POST", + "description": "Put data points to one or more time series for one or more metrics. If a time series does not exist, a new time series will be created. It is not allowed to write a time series point that is older than the existing youngest point of that time series. Points that are older than the existing youngest point of that time series will be discarded silently. Therefore, users should make sure that points of a time series are written sequentially in the order of their end time.", + "parameters": { + "project": { + "type": "string", + "description": "The project ID. The value can be the numeric project ID or string-based project name.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "WriteTimeseriesRequest" + }, + "response": { + "$ref": "WriteTimeseriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + } + } + }, + "timeseriesDescriptors": { + "methods": { + "list": { + "id": "cloudmonitoring.timeseriesDescriptors.list", + "path": "{project}/timeseriesDescriptors/{metric}", + "httpMethod": "GET", + "description": "List the descriptors of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.", + "parameters": { + "aggregator": { + "type": "string", + "description": "The aggregation function that will reduce the data points in each window to a single point. This parameter is only valid for non-cumulative metric types.", + "enum": [ + "max", + "mean", + "min", + "sum" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query" + }, + "count": { + "type": "integer", + "description": "Maximum number of time series descriptors per page. Used for pagination. If not specified, count = 100.", + "default": "100", + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "labels": { + "type": "string", + "description": "A collection of labels for the matching time series, which are represented as: \n- key==value: key equals the value \n- key=~value: key regex matches the value \n- key!=value: key does not equal the value \n- key!~value: key regex does not match the value For example, to list all of the time series descriptors for the region us-central1, you could specify:\nlabel=cloud.googleapis.com%2Flocation=~us-central1.*", + "pattern": "(.+?)(==|=~|!=|!~)(.+)", + "repeated": true, + "location": "query" + }, + "metric": { + "type": "string", + "description": "Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, compute.googleapis.com/instance/disk/read_ops_count.", + "required": true, + "location": "path" + }, + "oldest": { + "type": "string", + "description": "Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest]", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID to which this time series belongs. The value can be the numeric project ID or string-based project name.", + "required": true, + "location": "path" + }, + "timespan": { + "type": "string", + "description": "Length of the time interval to query, which is an alternative way to declare the interval: (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. Units: \n- s: second \n- m: minute \n- h: hour \n- d: day \n- w: week Examples: 2s, 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.\n\nIf neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest].", + "pattern": "[0-9]+[smhdw]?", + "location": "query" + }, + "window": { + "type": "string", + "description": "The sampling window. At most one data point will be returned for each window in the requested time interval. This parameter is only valid for non-cumulative metric types. Units: \n- m: minute \n- h: hour \n- d: day \n- w: week Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.", + "pattern": "[0-9]+[mhdw]?", + "location": "query" + }, + "youngest": { + "type": "string", + "description": "End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "project", + "metric", + "youngest" + ], + "request": { + "$ref": "ListTimeseriesDescriptorsRequest" + }, + "response": { + "$ref": "ListTimeseriesDescriptorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/monitoring" + ] + } + } + } + } +} diff --git a/etc/api/compute/v1/compute-api.json b/etc/api/compute/v1/compute-api.json new file mode 100644 index 0000000000..33eb6a723a --- /dev/null +++ b/etc/api/compute/v1/compute-api.json @@ -0,0 +1,9735 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/WbG3AXMWFf0w_iF5R9bFvZ0uaXw\"", + "discoveryVersion": "v1", + "id": "compute:v1", + "name": "compute", + "version": "v1", + "revision": "20150104", + "title": "Compute Engine API", + "description": "API for the Google Compute Engine service.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "documentationLink": "https://developers.google.com/compute/docs/reference/latest/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/compute/v1/projects/", + "basePath": "/compute/v1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "compute/v1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + } + } + } + }, + "schemas": { + "AccessConfig": { + "id": "AccessConfig", + "type": "object", + "description": "An access configuration attached to an instance's network interface.", + "properties": { + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#accessConfig" + }, + "name": { + "type": "string", + "description": "Name of this access configuration." + }, + "natIP": { + "type": "string", + "description": "An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool." + }, + "type": { + "type": "string", + "description": "Type of configuration. Must be set to \"ONE_TO_ONE_NAT\". This configures port-for-port NAT to the internet.", + "default": "ONE_TO_ONE_NAT", + "enum": [ + "ONE_TO_ONE_NAT" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "Address": { + "id": "Address", + "type": "object", + "description": "A reserved address resource.", + "properties": { + "address": { + "type": "string", + "description": "The IP address represented by this resource." + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#address" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.addresses.insert" + ] + } + }, + "region": { + "type": "string", + "description": "URL of the region where the regional address resides (output only). This field is not applicable to global addresses." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "status": { + "type": "string", + "description": "The status of the address (output only).", + "enum": [ + "IN_USE", + "RESERVED" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "users": { + "type": "array", + "description": "The resources that are using this address resource.", + "items": { + "type": "string" + } + } + } + }, + "AddressAggregatedList": { + "id": "AddressAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped address lists.", + "additionalProperties": { + "$ref": "AddressesScopedList", + "description": "Name of the scope containing this set of addresses." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#addressAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "AddressList": { + "id": "AddressList", + "type": "object", + "description": "Contains a list of address resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Address resources.", + "items": { + "$ref": "Address" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#addressList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + } + } + }, + "AddressesScopedList": { + "id": "AddressesScopedList", + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "List of addresses contained in this scope.", + "items": { + "$ref": "Address" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "AttachedDisk": { + "id": "AttachedDisk", + "type": "object", + "description": "An instance-attached disk resource.", + "properties": { + "autoDelete": { + "type": "boolean", + "description": "Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance)." + }, + "boot": { + "type": "boolean", + "description": "Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem." + }, + "deviceName": { + "type": "string", + "description": "Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system." + }, + "index": { + "type": "integer", + "description": "A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).", + "format": "int32" + }, + "initializeParams": { + "$ref": "AttachedDiskInitializeParams", + "description": "Initialization parameters." + }, + "interface": { + "type": "string", + "enum": [ + "NVME", + "SCSI" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#attachedDisk" + }, + "licenses": { + "type": "array", + "description": "Public visible licenses.", + "items": { + "type": "string" + } + }, + "mode": { + "type": "string", + "description": "The mode in which to attach this disk, either \"READ_WRITE\" or \"READ_ONLY\".", + "enum": [ + "READ_ONLY", + "READ_WRITE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "source": { + "type": "string", + "description": "Persistent disk only; the URL of the persistent disk resource." + }, + "type": { + "type": "string", + "description": "Type of the disk, either \"SCRATCH\" or \"PERSISTENT\". Note that persistent disks must be created before you can specify them here.", + "enum": [ + "PERSISTENT", + "SCRATCH" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "compute.instances.insert" + ] + } + } + } + }, + "AttachedDiskInitializeParams": { + "id": "AttachedDiskInitializeParams", + "type": "object", + "description": "Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'.", + "properties": { + "diskName": { + "type": "string", + "description": "Name of the disk (when not provided defaults to the name of the instance)." + }, + "diskSizeGb": { + "type": "string", + "description": "Size of the disk in base-2 GB.", + "format": "int64" + }, + "diskType": { + "type": "string", + "description": "URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created." + }, + "sourceImage": { + "type": "string", + "description": "The source image used to create this disk." + } + } + }, + "Backend": { + "id": "Backend", + "type": "object", + "description": "Message containing information of one individual backend.", + "properties": { + "balancingMode": { + "type": "string", + "description": "The balancing mode of this backend, default is UTILIZATION.", + "enum": [ + "RATE", + "UTILIZATION" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "capacityScaler": { + "type": "number", + "description": "The multiplier (a value between 0 and 1e6) of the max capacity (CPU or RPS, depending on 'balancingMode') the group should serve up to. 0 means the group is totally drained. Default value is 1. Valid range is [0, 1e6].", + "format": "float" + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource, which is provided by the client when the resource is created." + }, + "group": { + "type": "string", + "description": "URL of a zonal Cloud Resource View resource. This resource view defines the list of instances that serve traffic. Member virtual machine instances from each resource view must live in the same zone as the resource view itself. No two backends in a backend service are allowed to use same Resource View resource." + }, + "maxRate": { + "type": "integer", + "description": "The max RPS of the group. Can be used with either balancing mode, but required if RATE mode. For RATE mode, either maxRate or maxRatePerInstance must be set.", + "format": "int32" + }, + "maxRatePerInstance": { + "type": "number", + "description": "The max RPS that a single backed instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.", + "format": "float" + }, + "maxUtilization": { + "type": "number", + "description": "Used when 'balancingMode' is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0, 1].", + "format": "float" + } + } + }, + "BackendService": { + "id": "BackendService", + "type": "object", + "description": "A BackendService resource. This resource defines a group of backend VMs together with their serving capacity.", + "properties": { + "backends": { + "type": "array", + "description": "The list of backends that serve this BackendService.", + "items": { + "$ref": "Backend" + } + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "fingerprint": { + "type": "string", + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.", + "format": "byte" + }, + "healthChecks": { + "type": "array", + "description": "The list of URLs to the HttpHealthCheck resource for health checking this BackendService. Currently at most one health check can be specified, and a health check is required.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#backendService" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "port": { + "type": "integer", + "description": "Deprecated in favor of port_name. The TCP port to connect on the backend. The default value is 80.", + "format": "int32" + }, + "portName": { + "type": "string", + "description": "Name of backend port. The same name should appear in the resource views referenced by this service. Required." + }, + "protocol": { + "type": "string", + "enum": [ + "HTTP" + ], + "enumDescriptions": [ + "" + ] + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "timeoutSec": { + "type": "integer", + "description": "How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.", + "format": "int32" + } + } + }, + "BackendServiceGroupHealth": { + "id": "BackendServiceGroupHealth", + "type": "object", + "properties": { + "healthStatus": { + "type": "array", + "items": { + "$ref": "HealthStatus" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#backendServiceGroupHealth" + } + } + }, + "BackendServiceList": { + "id": "BackendServiceList", + "type": "object", + "description": "Contains a list of BackendService resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#backendServiceList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "DeprecationStatus": { + "id": "DeprecationStatus", + "type": "object", + "description": "Deprecation status for a public resource.", + "properties": { + "deleted": { + "type": "string", + "description": "An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED." + }, + "deprecated": { + "type": "string", + "description": "An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED." + }, + "obsolete": { + "type": "string", + "description": "An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE." + }, + "replacement": { + "type": "string", + "description": "A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind." + }, + "state": { + "type": "string", + "description": "The deprecation state. Can be \"DEPRECATED\", \"OBSOLETE\", or \"DELETED\". Operations which create a new resource using a \"DEPRECATED\" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of \"OBSOLETE\" or \"DELETED\" resources will result in an error.", + "enum": [ + "DELETED", + "DEPRECATED", + "OBSOLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "Disk": { + "id": "Disk", + "type": "object", + "description": "A persistent disk resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#disk" + }, + "licenses": { + "type": "array", + "description": "Public visible licenses.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.disks.insert" + ] + } + }, + "options": { + "type": "string", + "description": "Internal use only." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "sizeGb": { + "type": "string", + "description": "Size of the persistent disk, specified in GB. This parameter is optional when creating a disk from a disk image or a snapshot, otherwise it is required.", + "format": "int64" + }, + "sourceImage": { + "type": "string", + "description": "The source image used to create this disk." + }, + "sourceImageId": { + "type": "string", + "description": "The 'id' value of the image used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given image." + }, + "sourceSnapshot": { + "type": "string", + "description": "The source snapshot used to create this disk." + }, + "sourceSnapshotId": { + "type": "string", + "description": "The 'id' value of the snapshot used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given disk snapshot." + }, + "status": { + "type": "string", + "description": "The status of disk creation (output only).", + "enum": [ + "CREATING", + "FAILED", + "READY", + "RESTORING" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "type": { + "type": "string", + "description": "URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created." + }, + "zone": { + "type": "string", + "description": "URL of the zone where the disk resides (output only)." + } + } + }, + "DiskAggregatedList": { + "id": "DiskAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped disk lists.", + "additionalProperties": { + "$ref": "DisksScopedList", + "description": "Name of the scope containing this set of disks." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#diskAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "DiskList": { + "id": "DiskList", + "type": "object", + "description": "Contains a list of persistent disk resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Disk resources.", + "items": { + "$ref": "Disk" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#diskList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "DiskType": { + "id": "DiskType", + "type": "object", + "description": "A disk type resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "defaultDiskSizeGb": { + "type": "string", + "description": "Server defined default disk size in gb (output only).", + "format": "int64" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "The deprecation status associated with this disk type." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#diskType" + }, + "name": { + "type": "string", + "description": "Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "validDiskSize": { + "type": "string", + "description": "An optional textual descroption of the valid disk size, e.g., \"10GB-10TB\"." + }, + "zone": { + "type": "string", + "description": "Url of the zone where the disk type resides (output only)." + } + } + }, + "DiskTypeAggregatedList": { + "id": "DiskTypeAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped disk type lists.", + "additionalProperties": { + "$ref": "DiskTypesScopedList", + "description": "Name of the scope containing this set of disk types." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#diskTypeAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "DiskTypeList": { + "id": "DiskTypeList", + "type": "object", + "description": "Contains a list of disk type resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of DiskType resources.", + "items": { + "$ref": "DiskType" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#diskTypeList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "DiskTypesScopedList": { + "id": "DiskTypesScopedList", + "type": "object", + "properties": { + "diskTypes": { + "type": "array", + "description": "List of disk types contained in this scope.", + "items": { + "$ref": "DiskType" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of disk types when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "DisksScopedList": { + "id": "DisksScopedList", + "type": "object", + "properties": { + "disks": { + "type": "array", + "description": "List of disks contained in this scope.", + "items": { + "$ref": "Disk" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of disks when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "Firewall": { + "id": "Firewall", + "type": "object", + "description": "A firewall resource.", + "properties": { + "allowed": { + "type": "array", + "description": "The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.", + "items": { + "type": "object", + "properties": { + "IPProtocol": { + "type": "string", + "description": "Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings [\"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"sctp\"], or the IP protocol number." + }, + "ports": { + "type": "array", + "description": "An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"] and [\"12345-12349\"].", + "items": { + "type": "string" + } + } + } + } + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#firewall" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.firewalls.insert", + "compute.firewalls.patch" + ] + } + }, + "network": { + "type": "string", + "description": "URL of the network to which this firewall is applied; provided by the client when the firewall is created." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "sourceRanges": { + "type": "array", + "description": "A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.", + "items": { + "type": "string" + } + }, + "sourceTags": { + "type": "array", + "description": "A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.", + "items": { + "type": "string" + } + }, + "targetTags": { + "type": "array", + "description": "A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", + "items": { + "type": "string" + } + } + } + }, + "FirewallList": { + "id": "FirewallList", + "type": "object", + "description": "Contains a list of firewall resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Firewall resources.", + "items": { + "$ref": "Firewall" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#firewallList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ForwardingRule": { + "id": "ForwardingRule", + "type": "object", + "description": "A ForwardingRule resource. A ForwardingRule resource specifies which pool of target VMs to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.", + "properties": { + "IPAddress": { + "type": "string", + "description": "Value of the reserved IP address that this forwarding rule is serving on behalf of. For global forwarding rules, the address must be a global IP; for regional forwarding rules, the address must live in the same region as the forwarding rule. If left empty (default value), an ephemeral IP from the same scope (global or regional) will be assigned." + }, + "IPProtocol": { + "type": "string", + "description": "The IP protocol to which this rule applies, valid options are 'TCP', 'UDP', 'ESP', 'AH' or 'SCTP'.", + "enum": [ + "AH", + "ESP", + "SCTP", + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#forwardingRule" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "portRange": { + "type": "string", + "description": "Applicable only when 'IPProtocol' is 'TCP', 'UDP' or 'SCTP', only packets addressed to ports in the specified range will be forwarded to 'target'. If 'portRange' is left empty (default value), all ports are forwarded. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges." + }, + "region": { + "type": "string", + "description": "URL of the region where the regional forwarding rule resides (output only). This field is not applicable to global forwarding rules." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "target": { + "type": "string", + "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global TargetHttpProxy resource." + } + } + }, + "ForwardingRuleAggregatedList": { + "id": "ForwardingRuleAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped forwarding rule lists.", + "additionalProperties": { + "$ref": "ForwardingRulesScopedList", + "description": "Name of the scope containing this set of addresses." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#forwardingRuleAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ForwardingRuleList": { + "id": "ForwardingRuleList", + "type": "object", + "description": "Contains a list of ForwardingRule resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of ForwardingRule resources.", + "items": { + "$ref": "ForwardingRule" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#forwardingRuleList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ForwardingRulesScopedList": { + "id": "ForwardingRulesScopedList", + "type": "object", + "properties": { + "forwardingRules": { + "type": "array", + "description": "List of forwarding rules contained in this scope.", + "items": { + "$ref": "ForwardingRule" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "HealthCheckReference": { + "id": "HealthCheckReference", + "type": "object", + "properties": { + "healthCheck": { + "type": "string" + } + } + }, + "HealthStatus": { + "id": "HealthStatus", + "type": "object", + "properties": { + "healthState": { + "type": "string", + "description": "Health state of the instance.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "instance": { + "type": "string", + "description": "URL of the instance resource." + }, + "ipAddress": { + "type": "string", + "description": "The IP address represented by this resource." + }, + "port": { + "type": "integer", + "description": "The port on the instance.", + "format": "int32" + } + } + }, + "HostRule": { + "id": "HostRule", + "type": "object", + "description": "A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", + "properties": { + "description": { + "type": "string" + }, + "hosts": { + "type": "array", + "description": "The list of host patterns to match. They must be valid hostnames except that they may start with *. or *-. The * acts like a glob and will match any string of atoms (separated by .s and -s) to the left.", + "items": { + "type": "string" + } + }, + "pathMatcher": { + "type": "string", + "description": "The name of the PathMatcher to match the path portion of the URL, if the this HostRule matches the URL's host portion." + } + } + }, + "HttpHealthCheck": { + "id": "HttpHealthCheck", + "type": "object", + "description": "An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.", + "properties": { + "checkIntervalSec": { + "type": "integer", + "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", + "format": "int32" + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "healthyThreshold": { + "type": "integer", + "description": "A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.", + "format": "int32" + }, + "host": { + "type": "string", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#httpHealthCheck" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "port": { + "type": "integer", + "description": "The TCP port number for the HTTP health check request. The default value is 80.", + "format": "int32" + }, + "requestPath": { + "type": "string", + "description": "The request path of the HTTP health check request. The default value is \"/\"." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "timeoutSec": { + "type": "integer", + "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", + "format": "int32" + }, + "unhealthyThreshold": { + "type": "integer", + "description": "A so-far healthy VM will be marked unhealthy after this many consecutive failures. The default value is 2.", + "format": "int32" + } + } + }, + "HttpHealthCheckList": { + "id": "HttpHealthCheckList", + "type": "object", + "description": "Contains a list of HttpHealthCheck resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of HttpHealthCheck resources.", + "items": { + "$ref": "HttpHealthCheck" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#httpHealthCheckList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "Image": { + "id": "Image", + "type": "object", + "description": "A disk image resource.", + "properties": { + "archiveSizeBytes": { + "type": "string", + "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", + "format": "int64" + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "The deprecation status associated with this image." + }, + "description": { + "type": "string", + "description": "Textual description of the resource; provided by the client when the resource is created." + }, + "diskSizeGb": { + "type": "string", + "description": "Size of the image when restored onto a disk (in GiB).", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#image" + }, + "licenses": { + "type": "array", + "description": "Public visible licenses.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.images.insert" + ] + } + }, + "rawDisk": { + "type": "object", + "description": "The raw disk image parameters.", + "properties": { + "containerType": { + "type": "string", + "description": "The format used to encode and transmit the block device. Should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.", + "enum": [ + "TAR" + ], + "enumDescriptions": [ + "" + ] + }, + "sha1Checksum": { + "type": "string", + "description": "An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.", + "pattern": "[a-f0-9]{40}" + }, + "source": { + "type": "string", + "description": "The full Google Cloud Storage URL where the disk image is stored; provided by the client when the disk image is created.", + "annotations": { + "required": [ + "compute.images.insert" + ] + } + } + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "sourceDisk": { + "type": "string", + "description": "The source disk used to create this image." + }, + "sourceDiskId": { + "type": "string", + "description": "The 'id' value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name." + }, + "sourceType": { + "type": "string", + "description": "Must be \"RAW\"; provided by the client when the disk image is created.", + "default": "RAW", + "enum": [ + "RAW" + ], + "enumDescriptions": [ + "" + ] + }, + "status": { + "type": "string", + "description": "Status of the image (output only). It will be one of the following READY - after image has been successfully created and is ready for use FAILED - if creating the image fails for some reason PENDING - the image creation is in progress An image can be used to create other resources suck as instances only after the image has been successfully created and the status is set to READY.", + "enum": [ + "FAILED", + "PENDING", + "READY" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "ImageList": { + "id": "ImageList", + "type": "object", + "description": "Contains a list of disk image resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Image resources.", + "items": { + "$ref": "Image" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#imageList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "Instance": { + "id": "Instance", + "type": "object", + "description": "An instance resource.", + "properties": { + "canIpForward": { + "type": "boolean", + "description": "Allows this instance to send packets with source IP addresses other than its own and receive packets with destination IP addresses other than its own. If this instance will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false." + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "disks": { + "type": "array", + "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them.", + "items": { + "$ref": "AttachedDisk" + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#instance" + }, + "machineType": { + "type": "string", + "description": "URL of the machine type resource describing which machine type to use to host the instance; provided by the client when the instance is created.", + "annotations": { + "required": [ + "compute.instances.insert" + ] + } + }, + "metadata": { + "$ref": "Metadata", + "description": "Metadata key/value pairs assigned to this instance. Consists of custom metadata or predefined keys; see Instance documentation for more information." + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instances.insert" + ] + } + }, + "networkInterfaces": { + "type": "array", + "description": "Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.", + "items": { + "$ref": "NetworkInterface" + } + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Scheduling options for this instance." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + }, + "serviceAccounts": { + "type": "array", + "description": "A list of service accounts each with specified scopes, for which access tokens are to be made available to the instance through metadata queries.", + "items": { + "$ref": "ServiceAccount" + } + }, + "status": { + "type": "string", + "description": "Instance status. One of the following values: \"PROVISIONING\", \"STAGING\", \"RUNNING\", \"STOPPING\", \"STOPPED\", \"TERMINATED\" (output only).", + "enum": [ + "PROVISIONING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "TERMINATED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "statusMessage": { + "type": "string", + "description": "An optional, human-readable explanation of the status (output only)." + }, + "tags": { + "$ref": "Tags", + "description": "A list of tags to be applied to this instance. Used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035." + }, + "zone": { + "type": "string", + "description": "URL of the zone where the instance resides (output only)." + } + } + }, + "InstanceAggregatedList": { + "id": "InstanceAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped instance lists.", + "additionalProperties": { + "$ref": "InstancesScopedList", + "description": "Name of the scope containing this set of instances." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#instanceAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "InstanceList": { + "id": "InstanceList", + "type": "object", + "description": "Contains a list of instance resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Instance resources.", + "items": { + "$ref": "Instance" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#instanceList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "InstanceProperties": { + "id": "InstanceProperties", + "type": "object", + "description": "", + "properties": { + "canIpForward": { + "type": "boolean", + "description": "Allows instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false." + }, + "description": { + "type": "string", + "description": "An optional textual description for the instances created based on the instance template resource; provided by the client when the template is created." + }, + "disks": { + "type": "array", + "description": "Array of disks associated with instance created based on this template.", + "items": { + "$ref": "AttachedDisk" + } + }, + "machineType": { + "type": "string", + "description": "Name of the machine type resource describing which machine type to use to host the instances created based on this template; provided by the client when the instance template is created.", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] + } + }, + "metadata": { + "$ref": "Metadata", + "description": "Metadata key/value pairs assigned to instances created based on this template. Consists of custom metadata or predefined keys; see Instance documentation for more information." + }, + "networkInterfaces": { + "type": "array", + "description": "Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instances created based based on this template will have no external internet access.", + "items": { + "$ref": "NetworkInterface" + } + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Scheduling options for the instances created based on this template." + }, + "serviceAccounts": { + "type": "array", + "description": "A list of service accounts each with specified scopes, for which access tokens are to be made available to the instances created based on this template, through metadata queries.", + "items": { + "$ref": "ServiceAccount" + } + }, + "tags": { + "$ref": "Tags", + "description": "A list of tags to be applied to the instances created based on this template used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035." + } + } + }, + "InstanceReference": { + "id": "InstanceReference", + "type": "object", + "properties": { + "instance": { + "type": "string" + } + } + }, + "InstanceTemplate": { + "id": "InstanceTemplate", + "type": "object", + "description": "An Instance Template resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the instance template resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#instanceTemplate" + }, + "name": { + "type": "string", + "description": "Name of the instance template resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] + } + }, + "properties": { + "$ref": "InstanceProperties", + "description": "The instance properties portion of this instance template resource." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + } + } + }, + "InstanceTemplateList": { + "id": "InstanceTemplateList", + "type": "object", + "description": "Contains a list of instance template resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of InstanceTemplate resources.", + "items": { + "$ref": "InstanceTemplate" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#instanceTemplateList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "InstancesScopedList": { + "id": "InstancesScopedList", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "List of instances contained in this scope.", + "items": { + "$ref": "Instance" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of instances when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "License": { + "id": "License", + "type": "object", + "description": "A license resource.", + "properties": { + "chargesUseFee": { + "type": "boolean", + "description": "If true, the customer will be charged license fee for running software that contains this license on an instance." + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#license" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.images.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + } + } + }, + "MachineType": { + "id": "MachineType", + "type": "object", + "description": "A machine type resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "The deprecation status associated with this machine type." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource." + }, + "guestCpus": { + "type": "integer", + "description": "Count of CPUs exposed to the instance.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "imageSpaceGb": { + "type": "integer", + "description": "Space allotted for the image, defined in GB.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#machineType" + }, + "maximumPersistentDisks": { + "type": "integer", + "description": "Maximum persistent disks allowed.", + "format": "int32" + }, + "maximumPersistentDisksSizeGb": { + "type": "string", + "description": "Maximum total persistent disks size (GB) allowed.", + "format": "int64" + }, + "memoryMb": { + "type": "integer", + "description": "Physical memory assigned to the instance, defined in MB.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "scratchDisks": { + "type": "array", + "description": "List of extended scratch disks assigned to the instance.", + "items": { + "type": "object", + "properties": { + "diskGb": { + "type": "integer", + "description": "Size of the scratch disk, defined in GB.", + "format": "int32" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server defined URL for the resource." + }, + "zone": { + "type": "string", + "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a." + } + } + }, + "MachineTypeAggregatedList": { + "id": "MachineTypeAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "object", + "description": "A map of scoped machine type lists.", + "additionalProperties": { + "$ref": "MachineTypesScopedList", + "description": "Name of the scope containing this set of machine types." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#machineTypeAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "[Output Only] A token used to continue a truncated list request." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "MachineTypeList": { + "id": "MachineTypeList", + "type": "object", + "description": "Contains a list of machine type resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of MachineType resources.", + "items": { + "$ref": "MachineType" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#machineTypeList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "MachineTypesScopedList": { + "id": "MachineTypesScopedList", + "type": "object", + "properties": { + "machineTypes": { + "type": "array", + "description": "List of machine types contained in this scope.", + "items": { + "$ref": "MachineType" + } + }, + "warning": { + "type": "object", + "description": "An informational warning that appears when the machine types list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "description": "A metadata key/value entry.", + "properties": { + "fingerprint": { + "type": "string", + "description": "Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.", + "format": "byte" + }, + "items": { + "type": "array", + "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.", + "pattern": "[a-zA-Z0-9-_]{1,128}", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + } + }, + "value": { + "type": "string", + "description": "Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.", + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + } + } + } + } + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#metadata" + } + } + }, + "Network": { + "id": "Network", + "type": "object", + "description": "A network resource.", + "properties": { + "IPv4Range": { + "type": "string", + "description": "Required; The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", + "annotations": { + "required": [ + "compute.networks.insert" + ] + } + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "gatewayIPv4": { + "type": "string", + "description": "An optional address that is used for default routing to other networks. This must be within the range specified by IPv4Range, and is typically the first usable address in that range. If not specified, the default value is the first usable address in IPv4Range.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}" + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#network" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.networks.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + } + } + }, + "NetworkInterface": { + "id": "NetworkInterface", + "type": "object", + "description": "A network interface resource attached to an instance.", + "properties": { + "accessConfigs": { + "type": "array", + "description": "Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.", + "items": { + "$ref": "AccessConfig" + } + }, + "name": { + "type": "string", + "description": "Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only)." + }, + "network": { + "type": "string", + "description": "URL of the network resource attached to this interface.", + "annotations": { + "required": [ + "compute.instances.insert" + ] + } + }, + "networkIP": { + "type": "string", + "description": "An optional IPV4 internal network address assigned to the instance for this network interface (output only)." + } + } + }, + "NetworkList": { + "id": "NetworkList", + "type": "object", + "description": "Contains a list of network resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Network resources.", + "items": { + "$ref": "Network" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#networkList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An operation resource, used to manage asynchronous API requests.", + "properties": { + "clientOperationId": { + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format (output only)." + }, + "endTime": { + "type": "string" + }, + "error": { + "type": "object", + "description": "[Output Only] If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string" + }, + "httpErrorStatusCode": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "insertTime": { + "type": "string", + "description": "[Output Only] The time that this operation was requested. This is in RFC 3339 format." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always kind#operation for Operation resources.", + "default": "compute#operation" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource (output only)." + }, + "operationType": { + "type": "string" + }, + "progress": { + "type": "integer", + "format": "int32" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the operation resides (output only)." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server defined URL for the resource." + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server. This is in RFC 3339 format." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the operation. Can be one of the following: \"PENDING\", \"RUNNING\", or \"DONE\".", + "enum": [ + "DONE", + "PENDING", + "RUNNING" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "targetId": { + "type": "string", + "description": "[Output Only] Unique target id which identifies a particular incarnation of the target.", + "format": "uint64" + }, + "targetLink": { + "type": "string", + "description": "[Output Only] URL of the resource the operation is mutating (output only)." + }, + "user": { + "type": "string" + }, + "warnings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + }, + "zone": { + "type": "string", + "description": "[Output Only] URL of the zone where the operation resides (output only)." + } + } + }, + "OperationAggregatedList": { + "id": "OperationAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "object", + "description": "[Output Only] A map of scoped operation lists.", + "additionalProperties": { + "$ref": "OperationsScopedList", + "description": "[Output Only] Name of the scope containing this set of operations." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#operationAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "[Output Only] A token used to continue a truncated list request." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server defined URL for this resource." + } + } + }, + "OperationList": { + "id": "OperationList", + "type": "object", + "description": "Contains a list of operation resources.", + "properties": { + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "items": { + "type": "array", + "description": "[Output Only] The operation resources.", + "items": { + "$ref": "Operation" + } + }, + "kind": { + "type": "string", + "description": "Type of resource. Always compute#operations for Operations resource.", + "default": "compute#operationList" + }, + "nextPageToken": { + "type": "string", + "description": "[Output Only] A token used to continue a truncate." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server defined URL for this resource." + } + } + }, + "OperationsScopedList": { + "id": "OperationsScopedList", + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "[Output Only] List of operations contained in this scope.", + "items": { + "$ref": "Operation" + } + }, + "warning": { + "type": "object", + "description": "[Output Only] Informational warning which replaces the list of operations when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "PathMatcher": { + "id": "PathMatcher", + "type": "object", + "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default_service will be used.", + "properties": { + "defaultService": { + "type": "string", + "description": "The URL to the BackendService resource. This will be used if none of the 'pathRules' defined by this PathMatcher is met by the URL's path portion." + }, + "description": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name to which this PathMatcher is referred by the HostRule." + }, + "pathRules": { + "type": "array", + "description": "The list of path rules.", + "items": { + "$ref": "PathRule" + } + } + } + }, + "PathRule": { + "id": "PathRule", + "type": "object", + "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", + "properties": { + "paths": { + "type": "array", + "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", + "items": { + "type": "string" + } + }, + "service": { + "type": "string", + "description": "The URL of the BackendService resource if this rule is matched." + } + } + }, + "Project": { + "id": "Project", + "type": "object", + "description": "A project resource. Projects can be created only in the APIs Console. Unless marked otherwise, values can only be modified in the console.", + "properties": { + "commonInstanceMetadata": { + "$ref": "Metadata", + "description": "Metadata key/value pairs available to all instances contained in this project." + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#project" + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "quotas": { + "type": "array", + "description": "Quotas assigned to this project.", + "items": { + "$ref": "Quota" + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "usageExportLocation": { + "$ref": "UsageExportLocation", + "description": "The location in Cloud Storage and naming method of the daily usage report." + } + } + }, + "Quota": { + "id": "Quota", + "type": "object", + "description": "A quotas entry.", + "properties": { + "limit": { + "type": "number", + "description": "Quota limit for this metric.", + "format": "double" + }, + "metric": { + "type": "string", + "description": "Name of the quota metric.", + "enum": [ + "BACKEND_SERVICES", + "CPUS", + "DISKS", + "DISKS_TOTAL_GB", + "EPHEMERAL_ADDRESSES", + "FIREWALLS", + "FORWARDING_RULES", + "HEALTH_CHECKS", + "IMAGES", + "IMAGES_TOTAL_GB", + "INSTANCES", + "IN_USE_ADDRESSES", + "KERNELS", + "KERNELS_TOTAL_GB", + "LOCAL_SSD_TOTAL_GB", + "NETWORKS", + "OPERATIONS", + "ROUTES", + "SNAPSHOTS", + "SSD_TOTAL_GB", + "STATIC_ADDRESSES", + "TARGET_HTTP_PROXIES", + "TARGET_INSTANCES", + "TARGET_POOLS", + "URL_MAPS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "usage": { + "type": "number", + "description": "Current usage of this metric.", + "format": "double" + } + } + }, + "Region": { + "id": "Region", + "type": "object", + "description": "Region resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "The deprecation status associated with this region." + }, + "description": { + "type": "string", + "description": "Textual description of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#region" + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "quotas": { + "type": "array", + "description": "Quotas assigned to this region.", + "items": { + "$ref": "Quota" + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "status": { + "type": "string", + "description": "Status of the region, \"UP\" or \"DOWN\".", + "enum": [ + "DOWN", + "UP" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "zones": { + "type": "array", + "description": "A list of zones homed in this region, in the form of resource URLs.", + "items": { + "type": "string" + } + } + } + }, + "RegionList": { + "id": "RegionList", + "type": "object", + "description": "Contains a list of region resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Region resources.", + "items": { + "$ref": "Region" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#regionList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ResourceGroupReference": { + "id": "ResourceGroupReference", + "type": "object", + "properties": { + "group": { + "type": "string", + "description": "A URI referencing one of the resource views listed in the backend service." + } + } + }, + "Route": { + "id": "Route", + "type": "object", + "description": "The route resource. A Route is a rule that specifies how certain packets should be handled by the virtual network. Routes are associated with VMs by tag and the set of Routes for a particular VM is called its routing table. For each packet leaving a VM, the system searches that VM's routing table for a single best matching Route. Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the Route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching Routes. The packet is then forwarded as specified by the next_hop field of the winning Route -- either to another VM destination, a VM gateway or a GCE operated gateway. Packets that do not match any Route in the sending VM's routing table will be dropped.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "destRange": { + "type": "string", + "description": "Which packets does this route apply to?", + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#route" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "network": { + "type": "string", + "description": "URL of the network to which this route is applied; provided by the client when the route is created.", + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "nextHopGateway": { + "type": "string", + "description": "The URL to a gateway that should handle matching packets." + }, + "nextHopInstance": { + "type": "string", + "description": "The URL to an instance that should handle matching packets." + }, + "nextHopIp": { + "type": "string", + "description": "The network IP address of an instance that should handle matching packets." + }, + "nextHopNetwork": { + "type": "string", + "description": "The URL of the local network if it should handle matching packets." + }, + "priority": { + "type": "integer", + "description": "Breaks ties between Routes of equal specificity. Routes with smaller values win when tied with routes with larger values.", + "format": "uint32", + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "tags": { + "type": "array", + "description": "A list of instance tags to which this route applies.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "compute.routes.insert" + ] + } + }, + "warnings": { + "type": "array", + "description": "If potential misconfigurations are detected for this route, this field will be populated with warning messages.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + } + }, + "RouteList": { + "id": "RouteList", + "type": "object", + "description": "Contains a list of route resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Route resources.", + "items": { + "$ref": "Route" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#routeList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "Scheduling": { + "id": "Scheduling", + "type": "object", + "description": "Scheduling options for an Instance.", + "properties": { + "automaticRestart": { + "type": "boolean", + "description": "Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user)." + }, + "onHostMaintenance": { + "type": "string", + "description": "How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.", + "enum": [ + "MIGRATE", + "TERMINATE" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "SerialPortOutput": { + "id": "SerialPortOutput", + "type": "object", + "description": "An instance serial console output.", + "properties": { + "contents": { + "type": "string", + "description": "The contents of the console output." + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#serialPortOutput" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + } + } + }, + "ServiceAccount": { + "id": "ServiceAccount", + "type": "object", + "description": "A service account.", + "properties": { + "email": { + "type": "string", + "description": "Email address of the service account." + }, + "scopes": { + "type": "array", + "description": "The list of scopes to be made available for this service account.", + "items": { + "type": "string" + } + } + } + }, + "Snapshot": { + "id": "Snapshot", + "type": "object", + "description": "A persistent disk snapshot resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "diskSizeGb": { + "type": "string", + "description": "Size of the persistent disk snapshot, specified in GB (output only).", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#snapshot" + }, + "licenses": { + "type": "array", + "description": "Public visible licenses.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "sourceDisk": { + "type": "string", + "description": "The source disk used to create this snapshot." + }, + "sourceDiskId": { + "type": "string", + "description": "The 'id' value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name." + }, + "status": { + "type": "string", + "description": "The status of the persistent disk snapshot (output only).", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UPLOADING" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "storageBytes": { + "type": "string", + "description": "A size of the the storage used by the snapshot. As snapshots share storage this number is expected to change with snapshot creation/deletion.", + "format": "int64" + }, + "storageBytesStatus": { + "type": "string", + "description": "An indicator whether storageBytes is in a stable state, or it is being adjusted as a result of shared storage reallocation.", + "enum": [ + "UPDATING", + "UP_TO_DATE" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "SnapshotList": { + "id": "SnapshotList", + "type": "object", + "description": "Contains a list of persistent disk snapshot resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Snapshot resources.", + "items": { + "$ref": "Snapshot" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#snapshotList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "Tags": { + "id": "Tags", + "type": "object", + "description": "A set of instance tags.", + "properties": { + "fingerprint": { + "type": "string", + "description": "Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.", + "format": "byte" + }, + "items": { + "type": "array", + "description": "An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.", + "items": { + "type": "string" + } + } + } + }, + "TargetHttpProxy": { + "id": "TargetHttpProxy", + "type": "object", + "description": "A TargetHttpProxy resource. This resource defines an HTTP proxy.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#targetHttpProxy" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "urlMap": { + "type": "string", + "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService." + } + } + }, + "TargetHttpProxyList": { + "id": "TargetHttpProxyList", + "type": "object", + "description": "Contains a list of TargetHttpProxy resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of TargetHttpProxy resources.", + "items": { + "$ref": "TargetHttpProxy" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetHttpProxyList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "TargetInstance": { + "id": "TargetInstance", + "type": "object", + "description": "A TargetInstance resource. This resource defines an endpoint VM that terminates traffic of certain protocols.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "instance": { + "type": "string", + "description": "The URL to the instance that terminates the relevant traffic." + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#targetInstance" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "natPolicy": { + "type": "string", + "description": "NAT option controlling how IPs are NAT'ed to the VM. Currently only NO_NAT (default value) is supported.", + "enum": [ + "NO_NAT" + ], + "enumDescriptions": [ + "" + ] + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "zone": { + "type": "string", + "description": "URL of the zone where the target instance resides (output only)." + } + } + }, + "TargetInstanceAggregatedList": { + "id": "TargetInstanceAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped target instance lists.", + "additionalProperties": { + "$ref": "TargetInstancesScopedList", + "description": "Name of the scope containing this set of target instances." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetInstanceAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "TargetInstanceList": { + "id": "TargetInstanceList", + "type": "object", + "description": "Contains a list of TargetInstance resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of TargetInstance resources.", + "items": { + "$ref": "TargetInstance" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetInstanceList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "TargetInstancesScopedList": { + "id": "TargetInstancesScopedList", + "type": "object", + "properties": { + "targetInstances": { + "type": "array", + "description": "List of target instances contained in this scope.", + "items": { + "$ref": "TargetInstance" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "TargetPool": { + "id": "TargetPool", + "type": "object", + "description": "A TargetPool resource. This resource defines a pool of VMs, associated HttpHealthCheck resources, and the fallback TargetPool.", + "properties": { + "backupPool": { + "type": "string", + "description": "This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its 'failoverRatio' field is properly set to a value between [0, 1].\n\n'backupPool' and 'failoverRatio' together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below 'failoverRatio', traffic arriving at the load-balanced IP will be directed to the backup pool.\n\nIn case where 'failoverRatio' and 'backupPool' are not set, or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy." + }, + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "failoverRatio": { + "type": "number", + "description": "This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool (i.e., not as a backup pool to some other target pool). The value of the field must be in [0, 1].\n\nIf set, 'backupPool' must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy VMs in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool.\n\nIn case where 'failoverRatio' is not set or all the VMs in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.", + "format": "float" + }, + "healthChecks": { + "type": "array", + "description": "A list of URLs to the HttpHealthCheck resource. A member VM in this pool is considered healthy if and only if all specified health checks pass. An empty list means all member VMs will be considered healthy at all times.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "instances": { + "type": "array", + "description": "A list of resource URLs to the member VMs serving this pool. They must live in zones contained in the same region as this pool.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#targetPool" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "region": { + "type": "string", + "description": "URL of the region where the target pool resides (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "sessionAffinity": { + "type": "string", + "description": "Sesssion affinity option, must be one of the following values: 'NONE': Connections from the same client IP may go to any VM in the pool; 'CLIENT_IP': Connections from the same client IP will go to the same VM in the pool while that VM remains healthy. 'CLIENT_IP_PROTO': Connections from the same client IP with the same IP protocol will go to the same VM in the pool while that VM remains healthy.", + "enum": [ + "CLIENT_IP", + "CLIENT_IP_PROTO", + "NONE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "TargetPoolAggregatedList": { + "id": "TargetPoolAggregatedList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "object", + "description": "A map of scoped target pool lists.", + "additionalProperties": { + "$ref": "TargetPoolsScopedList", + "description": "Name of the scope containing this set of target pools." + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetPoolAggregatedList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "TargetPoolInstanceHealth": { + "id": "TargetPoolInstanceHealth", + "type": "object", + "properties": { + "healthStatus": { + "type": "array", + "items": { + "$ref": "HealthStatus" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetPoolInstanceHealth" + } + } + }, + "TargetPoolList": { + "id": "TargetPoolList", + "type": "object", + "description": "Contains a list of TargetPool resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of TargetPool resources.", + "items": { + "$ref": "TargetPool" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#targetPoolList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "TargetPoolsAddHealthCheckRequest": { + "id": "TargetPoolsAddHealthCheckRequest", + "type": "object", + "properties": { + "healthChecks": { + "type": "array", + "description": "Health check URLs to be added to targetPool.", + "items": { + "$ref": "HealthCheckReference" + } + } + } + }, + "TargetPoolsAddInstanceRequest": { + "id": "TargetPoolsAddInstanceRequest", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "URLs of the instances to be added to targetPool.", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "TargetPoolsRemoveHealthCheckRequest": { + "id": "TargetPoolsRemoveHealthCheckRequest", + "type": "object", + "properties": { + "healthChecks": { + "type": "array", + "description": "Health check URLs to be removed from targetPool.", + "items": { + "$ref": "HealthCheckReference" + } + } + } + }, + "TargetPoolsRemoveInstanceRequest": { + "id": "TargetPoolsRemoveInstanceRequest", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "URLs of the instances to be removed from targetPool.", + "items": { + "$ref": "InstanceReference" + } + } + } + }, + "TargetPoolsScopedList": { + "id": "TargetPoolsScopedList", + "type": "object", + "properties": { + "targetPools": { + "type": "array", + "description": "List of target pools contained in this scope.", + "items": { + "$ref": "TargetPool" + } + }, + "warning": { + "type": "object", + "description": "Informational warning which replaces the list of addresses when the list is empty.", + "properties": { + "code": { + "type": "string", + "description": "The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + }, + "TargetReference": { + "id": "TargetReference", + "type": "object", + "properties": { + "target": { + "type": "string" + } + } + }, + "TestFailure": { + "id": "TestFailure", + "type": "object", + "properties": { + "actualService": { + "type": "string" + }, + "expectedService": { + "type": "string" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + } + } + }, + "UrlMap": { + "id": "UrlMap", + "type": "object", + "description": "A UrlMap resource. This resource defines the mapping from URL to the BackendService resource, based on the \"longest-match\" of the URL's host and path.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "defaultService": { + "type": "string", + "description": "The URL of the BackendService resource if none of the hostRules match." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "fingerprint": { + "type": "string", + "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a UrlMap. An up-to-date fingerprint must be provided in order to update the UrlMap.", + "format": "byte" + }, + "hostRules": { + "type": "array", + "description": "The list of HostRules to use against the URL.", + "items": { + "$ref": "HostRule" + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#urlMap" + }, + "name": { + "type": "string", + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?" + }, + "pathMatchers": { + "type": "array", + "description": "The list of named PathMatchers to use against the URL.", + "items": { + "$ref": "PathMatcher" + } + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "tests": { + "type": "array", + "description": "The list of expected URL mappings. Request to update this UrlMap will succeed only all of the test cases pass.", + "items": { + "$ref": "UrlMapTest" + } + } + } + }, + "UrlMapList": { + "id": "UrlMapList", + "type": "object", + "description": "Contains a list of UrlMap resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of UrlMap resources.", + "items": { + "$ref": "UrlMap" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#urlMapList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "UrlMapReference": { + "id": "UrlMapReference", + "type": "object", + "properties": { + "urlMap": { + "type": "string" + } + } + }, + "UrlMapTest": { + "id": "UrlMapTest", + "type": "object", + "description": "Message for the expected URL mappings.", + "properties": { + "description": { + "type": "string", + "description": "Description of this test case." + }, + "host": { + "type": "string", + "description": "Host portion of the URL." + }, + "path": { + "type": "string", + "description": "Path portion of the URL." + }, + "service": { + "type": "string", + "description": "Expected BackendService resource the given URL should be mapped to." + } + } + }, + "UrlMapValidationResult": { + "id": "UrlMapValidationResult", + "type": "object", + "description": "Message representing the validation result for a UrlMap.", + "properties": { + "loadErrors": { + "type": "array", + "items": { + "type": "string" + } + }, + "loadSucceeded": { + "type": "boolean", + "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons." + }, + "testFailures": { + "type": "array", + "items": { + "$ref": "TestFailure" + } + }, + "testPassed": { + "type": "boolean", + "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure." + } + } + }, + "UrlMapsValidateRequest": { + "id": "UrlMapsValidateRequest", + "type": "object", + "properties": { + "resource": { + "$ref": "UrlMap", + "description": "Content of the UrlMap to be validated." + } + } + }, + "UrlMapsValidateResponse": { + "id": "UrlMapsValidateResponse", + "type": "object", + "properties": { + "result": { + "$ref": "UrlMapValidationResult" + } + } + }, + "UsageExportLocation": { + "id": "UsageExportLocation", + "type": "object", + "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.", + "properties": { + "bucketName": { + "type": "string", + "description": "The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This is simply the bucket name, with no \"gs://\" or \"https://storage.googleapis.com/\" in front of it." + }, + "reportNamePrefix": { + "type": "string", + "description": "An optional prefix for the name of the usage report object stored in bucket_name. If not supplied, defaults to \"usage_\". The report is stored as a CSV file named _gce_.csv. where is the day of the usage according to Pacific Time. The prefix should conform to Cloud Storage object naming conventions." + } + } + }, + "Zone": { + "id": "Zone", + "type": "object", + "description": "A zone resource.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "Creation timestamp in RFC3339 text format (output only)." + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "The deprecation status associated with this zone." + }, + "description": { + "type": "string", + "description": "Textual description of the resource." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "compute#zone" + }, + "maintenanceWindows": { + "type": "array", + "description": "Scheduled maintenance windows for the zone. When the zone is in a maintenance window, all resources which reside in the zone will be unavailable.", + "items": { + "type": "object", + "properties": { + "beginTime": { + "type": "string", + "description": "Begin time of the maintenance window, in RFC 3339 format." + }, + "description": { + "type": "string", + "description": "Textual description of the maintenance window." + }, + "endTime": { + "type": "string", + "description": "End time of the maintenance window, in RFC 3339 format." + }, + "name": { + "type": "string", + "description": "Name of the maintenance window." + } + } + } + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "region": { + "type": "string", + "description": "Full URL reference to the region which hosts the zone (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for the resource (output only)." + }, + "status": { + "type": "string", + "description": "Status of the zone. \"UP\" or \"DOWN\".", + "enum": [ + "DOWN", + "UP" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "ZoneList": { + "id": "ZoneList", + "type": "object", + "description": "Contains a list of zone resources.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of Zone resources.", + "items": { + "$ref": "Zone" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "compute#zoneList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + } + }, + "resources": { + "addresses": { + "methods": { + "aggregatedList": { + "id": "compute.addresses.aggregatedList", + "path": "{project}/aggregated/addresses", + "httpMethod": "GET", + "description": "Retrieves the list of addresses grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "AddressAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.addresses.delete", + "path": "{project}/regions/{region}/addresses/{address}", + "httpMethod": "DELETE", + "description": "Deletes the specified address resource.", + "parameters": { + "address": { + "type": "string", + "description": "Name of the address resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "address" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.addresses.get", + "path": "{project}/regions/{region}/addresses/{address}", + "httpMethod": "GET", + "description": "Returns the specified address resource.", + "parameters": { + "address": { + "type": "string", + "description": "Name of the address resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "address" + ], + "response": { + "$ref": "Address" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.addresses.insert", + "path": "{project}/regions/{region}/addresses", + "httpMethod": "POST", + "description": "Creates an address resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "Address" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.addresses.list", + "path": "{project}/regions/{region}/addresses", + "httpMethod": "GET", + "description": "Retrieves the list of address resources contained within the specified region.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "AddressList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "backendServices": { + "methods": { + "delete": { + "id": "compute.backendServices.delete", + "path": "{project}/global/backendServices/{backendService}", + "httpMethod": "DELETE", + "description": "Deletes the specified BackendService resource.", + "parameters": { + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.backendServices.get", + "path": "{project}/global/backendServices/{backendService}", + "httpMethod": "GET", + "description": "Returns the specified BackendService resource.", + "parameters": { + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "response": { + "$ref": "BackendService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getHealth": { + "id": "compute.backendServices.getHealth", + "path": "{project}/global/backendServices/{backendService}/getHealth", + "httpMethod": "POST", + "description": "Gets the most recent health check results for this BackendService.", + "parameters": { + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to which the queried instance belongs.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "ResourceGroupReference" + }, + "response": { + "$ref": "BackendServiceGroupHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.backendServices.insert", + "path": "{project}/global/backendServices", + "httpMethod": "POST", + "description": "Creates a BackendService resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.backendServices.list", + "path": "{project}/global/backendServices", + "httpMethod": "GET", + "description": "Retrieves the list of BackendService resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "BackendServiceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.backendServices.patch", + "path": "{project}/global/backendServices/{backendService}", + "httpMethod": "PATCH", + "description": "Update the entire content of the BackendService resource. This method supports patch semantics.", + "parameters": { + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "update": { + "id": "compute.backendServices.update", + "path": "{project}/global/backendServices/{backendService}", + "httpMethod": "PUT", + "description": "Update the entire content of the BackendService resource.", + "parameters": { + "backendService": { + "type": "string", + "description": "Name of the BackendService resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "backendService" + ], + "request": { + "$ref": "BackendService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "diskTypes": { + "methods": { + "aggregatedList": { + "id": "compute.diskTypes.aggregatedList", + "path": "{project}/aggregated/diskTypes", + "httpMethod": "GET", + "description": "Retrieves the list of disk type resources grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "DiskTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "id": "compute.diskTypes.get", + "path": "{project}/zones/{zone}/diskTypes/{diskType}", + "httpMethod": "GET", + "description": "Returns the specified disk type resource.", + "parameters": { + "diskType": { + "type": "string", + "description": "Name of the disk type resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "diskType" + ], + "response": { + "$ref": "DiskType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.diskTypes.list", + "path": "{project}/zones/{zone}/diskTypes", + "httpMethod": "GET", + "description": "Retrieves the list of disk type resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "DiskTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "disks": { + "methods": { + "aggregatedList": { + "id": "compute.disks.aggregatedList", + "path": "{project}/aggregated/disks", + "httpMethod": "GET", + "description": "Retrieves the list of disks grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "DiskAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "createSnapshot": { + "id": "compute.disks.createSnapshot", + "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot", + "httpMethod": "POST", + "parameters": { + "disk": { + "type": "string", + "description": "Name of the persistent disk resource to snapshot.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "id": "compute.disks.delete", + "path": "{project}/zones/{zone}/disks/{disk}", + "httpMethod": "DELETE", + "description": "Deletes the specified persistent disk resource.", + "parameters": { + "disk": { + "type": "string", + "description": "Name of the persistent disk resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.disks.get", + "path": "{project}/zones/{zone}/disks/{disk}", + "httpMethod": "GET", + "description": "Returns the specified persistent disk resource.", + "parameters": { + "disk": { + "type": "string", + "description": "Name of the persistent disk resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "response": { + "$ref": "Disk" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.disks.insert", + "path": "{project}/zones/{zone}/disks", + "httpMethod": "POST", + "description": "Creates a persistent disk resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "sourceImage": { + "type": "string", + "description": "Optional. Source image to restore onto a disk.", + "location": "query" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.disks.list", + "path": "{project}/zones/{zone}/disks", + "httpMethod": "GET", + "description": "Retrieves the list of persistent disk resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "DiskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "firewalls": { + "methods": { + "delete": { + "id": "compute.firewalls.delete", + "path": "{project}/global/firewalls/{firewall}", + "httpMethod": "DELETE", + "description": "Deletes the specified firewall resource.", + "parameters": { + "firewall": { + "type": "string", + "description": "Name of the firewall resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.firewalls.get", + "path": "{project}/global/firewalls/{firewall}", + "httpMethod": "GET", + "description": "Returns the specified firewall resource.", + "parameters": { + "firewall": { + "type": "string", + "description": "Name of the firewall resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "response": { + "$ref": "Firewall" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.firewalls.insert", + "path": "{project}/global/firewalls", + "httpMethod": "POST", + "description": "Creates a firewall resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.firewalls.list", + "path": "{project}/global/firewalls", + "httpMethod": "GET", + "description": "Retrieves the list of firewall resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "FirewallList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.firewalls.patch", + "path": "{project}/global/firewalls/{firewall}", + "httpMethod": "PATCH", + "description": "Updates the specified firewall resource with the data included in the request. This method supports patch semantics.", + "parameters": { + "firewall": { + "type": "string", + "description": "Name of the firewall resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "update": { + "id": "compute.firewalls.update", + "path": "{project}/global/firewalls/{firewall}", + "httpMethod": "PUT", + "description": "Updates the specified firewall resource with the data included in the request.", + "parameters": { + "firewall": { + "type": "string", + "description": "Name of the firewall resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "firewall" + ], + "request": { + "$ref": "Firewall" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "forwardingRules": { + "methods": { + "aggregatedList": { + "id": "compute.forwardingRules.aggregatedList", + "path": "{project}/aggregated/forwardingRules", + "httpMethod": "GET", + "description": "Retrieves the list of forwarding rules grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ForwardingRuleAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.forwardingRules.delete", + "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "DELETE", + "description": "Deletes the specified ForwardingRule resource.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.forwardingRules.get", + "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}", + "httpMethod": "GET", + "description": "Returns the specified ForwardingRule resource.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "response": { + "$ref": "ForwardingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.forwardingRules.insert", + "path": "{project}/regions/{region}/forwardingRules", + "httpMethod": "POST", + "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.forwardingRules.list", + "path": "{project}/regions/{region}/forwardingRules", + "httpMethod": "GET", + "description": "Retrieves the list of ForwardingRule resources available to the specified project and region.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "ForwardingRuleList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setTarget": { + "id": "compute.forwardingRules.setTarget", + "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", + "httpMethod": "POST", + "description": "Changes target url for forwarding rule.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource in which target is to be set.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "forwardingRule" + ], + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "globalAddresses": { + "methods": { + "delete": { + "id": "compute.globalAddresses.delete", + "path": "{project}/global/addresses/{address}", + "httpMethod": "DELETE", + "description": "Deletes the specified address resource.", + "parameters": { + "address": { + "type": "string", + "description": "Name of the address resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "address" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.globalAddresses.get", + "path": "{project}/global/addresses/{address}", + "httpMethod": "GET", + "description": "Returns the specified address resource.", + "parameters": { + "address": { + "type": "string", + "description": "Name of the address resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "address" + ], + "response": { + "$ref": "Address" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.globalAddresses.insert", + "path": "{project}/global/addresses", + "httpMethod": "POST", + "description": "Creates an address resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Address" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.globalAddresses.list", + "path": "{project}/global/addresses", + "httpMethod": "GET", + "description": "Retrieves the list of global address resources.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "AddressList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "globalForwardingRules": { + "methods": { + "delete": { + "id": "compute.globalForwardingRules.delete", + "path": "{project}/global/forwardingRules/{forwardingRule}", + "httpMethod": "DELETE", + "description": "Deletes the specified ForwardingRule resource.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.globalForwardingRules.get", + "path": "{project}/global/forwardingRules/{forwardingRule}", + "httpMethod": "GET", + "description": "Returns the specified ForwardingRule resource.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "response": { + "$ref": "ForwardingRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.globalForwardingRules.insert", + "path": "{project}/global/forwardingRules", + "httpMethod": "POST", + "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ForwardingRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.globalForwardingRules.list", + "path": "{project}/global/forwardingRules", + "httpMethod": "GET", + "description": "Retrieves the list of ForwardingRule resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ForwardingRuleList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setTarget": { + "id": "compute.globalForwardingRules.setTarget", + "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget", + "httpMethod": "POST", + "description": "Changes target url for forwarding rule.", + "parameters": { + "forwardingRule": { + "type": "string", + "description": "Name of the ForwardingRule resource in which target is to be set.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "forwardingRule" + ], + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "globalOperations": { + "methods": { + "aggregatedList": { + "id": "compute.globalOperations.aggregatedList", + "path": "{project}/aggregated/operations", + "httpMethod": "GET", + "description": "Retrieves the list of all operations grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "OperationAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.globalOperations.delete", + "path": "{project}/global/operations/{operation}", + "httpMethod": "DELETE", + "description": "Deletes the specified operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.globalOperations.get", + "path": "{project}/global/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.globalOperations.list", + "path": "{project}/global/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "httpHealthChecks": { + "methods": { + "delete": { + "id": "compute.httpHealthChecks.delete", + "path": "{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "DELETE", + "description": "Deletes the specified HttpHealthCheck resource.", + "parameters": { + "httpHealthCheck": { + "type": "string", + "description": "Name of the HttpHealthCheck resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.httpHealthChecks.get", + "path": "{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "GET", + "description": "Returns the specified HttpHealthCheck resource.", + "parameters": { + "httpHealthCheck": { + "type": "string", + "description": "Name of the HttpHealthCheck resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "response": { + "$ref": "HttpHealthCheck" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.httpHealthChecks.insert", + "path": "{project}/global/httpHealthChecks", + "httpMethod": "POST", + "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.httpHealthChecks.list", + "path": "{project}/global/httpHealthChecks", + "httpMethod": "GET", + "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "HttpHealthCheckList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.httpHealthChecks.patch", + "path": "{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "PATCH", + "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports patch semantics.", + "parameters": { + "httpHealthCheck": { + "type": "string", + "description": "Name of the HttpHealthCheck resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "update": { + "id": "compute.httpHealthChecks.update", + "path": "{project}/global/httpHealthChecks/{httpHealthCheck}", + "httpMethod": "PUT", + "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.", + "parameters": { + "httpHealthCheck": { + "type": "string", + "description": "Name of the HttpHealthCheck resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "httpHealthCheck" + ], + "request": { + "$ref": "HttpHealthCheck" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "images": { + "methods": { + "delete": { + "id": "compute.images.delete", + "path": "{project}/global/images/{image}", + "httpMethod": "DELETE", + "description": "Deletes the specified image resource.", + "parameters": { + "image": { + "type": "string", + "description": "Name of the image resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "deprecate": { + "id": "compute.images.deprecate", + "path": "{project}/global/images/{image}/deprecate", + "httpMethod": "POST", + "description": "Sets the deprecation status of an image. If no message body is given, clears the deprecation status instead.", + "parameters": { + "image": { + "type": "string", + "description": "Image name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "request": { + "$ref": "DeprecationStatus" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.images.get", + "path": "{project}/global/images/{image}", + "httpMethod": "GET", + "description": "Returns the specified image resource.", + "parameters": { + "image": { + "type": "string", + "description": "Name of the image resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "image" + ], + "response": { + "$ref": "Image" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.images.insert", + "path": "{project}/global/images", + "httpMethod": "POST", + "description": "Creates an image resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Image" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "id": "compute.images.list", + "path": "{project}/global/images", + "httpMethod": "GET", + "description": "Retrieves the list of image resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ImageList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "instanceTemplates": { + "methods": { + "delete": { + "id": "compute.instanceTemplates.delete", + "path": "{project}/global/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "description": "Deletes the specified instance template resource.", + "parameters": { + "instanceTemplate": { + "type": "string", + "description": "Name of the instance template resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.instanceTemplates.get", + "path": "{project}/global/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "description": "Returns the specified instance template resource.", + "parameters": { + "instanceTemplate": { + "type": "string", + "description": "Name of the instance template resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instanceTemplate" + ], + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.instanceTemplates.insert", + "path": "{project}/global/instanceTemplates", + "httpMethod": "POST", + "description": "Creates an instance template resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.instanceTemplates.list", + "path": "{project}/global/instanceTemplates", + "httpMethod": "GET", + "description": "Retrieves the list of instance template resources contained within the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "instances": { + "methods": { + "addAccessConfig": { + "id": "compute.instances.addAccessConfig", + "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig", + "httpMethod": "POST", + "description": "Adds an access config to an instance's network interface.", + "parameters": { + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "networkInterface": { + "type": "string", + "description": "Network interface name.", + "required": true, + "location": "query" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterface" + ], + "request": { + "$ref": "AccessConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "aggregatedList": { + "id": "compute.instances.aggregatedList", + "path": "{project}/aggregated/instances", + "httpMethod": "GET", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstanceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "attachDisk": { + "id": "compute.instances.attachDisk", + "path": "{project}/zones/{zone}/instances/{instance}/attachDisk", + "httpMethod": "POST", + "description": "Attaches a disk resource to an instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "AttachedDisk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "id": "compute.instances.delete", + "path": "{project}/zones/{zone}/instances/{instance}", + "httpMethod": "DELETE", + "description": "Deletes the specified instance resource.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "deleteAccessConfig": { + "id": "compute.instances.deleteAccessConfig", + "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig", + "httpMethod": "POST", + "description": "Deletes an access config from an instance's network interface.", + "parameters": { + "accessConfig": { + "type": "string", + "description": "Access config name.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "networkInterface": { + "type": "string", + "description": "Network interface name.", + "required": true, + "location": "query" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "accessConfig", + "networkInterface" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "detachDisk": { + "id": "compute.instances.detachDisk", + "path": "{project}/zones/{zone}/instances/{instance}/detachDisk", + "httpMethod": "POST", + "description": "Detaches a disk from an instance.", + "parameters": { + "deviceName": { + "type": "string", + "description": "Disk device name to detach.", + "required": true, + "pattern": "\\w[\\w.-]{0,254}", + "location": "query" + }, + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "deviceName" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.instances.get", + "path": "{project}/zones/{zone}/instances/{instance}", + "httpMethod": "GET", + "description": "Returns the specified instance resource.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Instance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getSerialPortOutput": { + "id": "compute.instances.getSerialPortOutput", + "path": "{project}/zones/{zone}/instances/{instance}/serialPort", + "httpMethod": "GET", + "description": "Returns the specified instance's serial port output.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "SerialPortOutput" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.instances.insert", + "path": "{project}/zones/{zone}/instances", + "httpMethod": "POST", + "description": "Creates an instance resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "Instance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.instances.list", + "path": "{project}/zones/{zone}/instances", + "httpMethod": "GET", + "description": "Retrieves the list of instance resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "InstanceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "reset": { + "id": "compute.instances.reset", + "path": "{project}/zones/{zone}/instances/{instance}/reset", + "httpMethod": "POST", + "description": "Performs a hard reset on the instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setDiskAutoDelete": { + "id": "compute.instances.setDiskAutoDelete", + "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "httpMethod": "POST", + "description": "Sets the auto-delete flag for a disk attached to an instance", + "parameters": { + "autoDelete": { + "type": "boolean", + "description": "Whether to auto-delete the disk when the instance is deleted.", + "required": true, + "location": "query" + }, + "deviceName": { + "type": "string", + "description": "Disk device name to modify.", + "required": true, + "pattern": "\\w[\\w.-]{0,254}", + "location": "query" + }, + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance", + "autoDelete", + "deviceName" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setMetadata": { + "id": "compute.instances.setMetadata", + "path": "{project}/zones/{zone}/instances/{instance}/setMetadata", + "httpMethod": "POST", + "description": "Sets metadata for the specified instance to the data included in the request.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Metadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setScheduling": { + "id": "compute.instances.setScheduling", + "path": "{project}/zones/{zone}/instances/{instance}/setScheduling", + "httpMethod": "POST", + "description": "Sets an instance's scheduling options.", + "parameters": { + "instance": { + "type": "string", + "description": "Instance name.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Scheduling" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setTags": { + "id": "compute.instances.setTags", + "path": "{project}/zones/{zone}/instances/{instance}/setTags", + "httpMethod": "POST", + "description": "Sets tags for the specified instance to the data included in the request.", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "request": { + "$ref": "Tags" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "start": { + "id": "compute.instances.start", + "path": "{project}/zones/{zone}/instances/{instance}/start", + "httpMethod": "POST", + "description": "Starts an instance", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance resource to start.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "stop": { + "id": "compute.instances.stop", + "path": "{project}/zones/{zone}/instances/{instance}/stop", + "httpMethod": "POST", + "description": "Stops an instance", + "parameters": { + "instance": { + "type": "string", + "description": "Name of the instance resource to start.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "licenses": { + "methods": { + "get": { + "id": "compute.licenses.get", + "path": "{project}/global/licenses/{license}", + "httpMethod": "GET", + "description": "Returns the specified license resource.", + "parameters": { + "license": { + "type": "string", + "description": "Name of the license resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "license" + ], + "response": { + "$ref": "License" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "machineTypes": { + "methods": { + "aggregatedList": { + "id": "compute.machineTypes.aggregatedList", + "path": "{project}/aggregated/machineTypes", + "httpMethod": "GET", + "description": "Retrieves the list of machine type resources grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "MachineTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "id": "compute.machineTypes.get", + "path": "{project}/zones/{zone}/machineTypes/{machineType}", + "httpMethod": "GET", + "description": "Returns the specified machine type resource.", + "parameters": { + "machineType": { + "type": "string", + "description": "Name of the machine type resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "machineType" + ], + "response": { + "$ref": "MachineType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.machineTypes.list", + "path": "{project}/zones/{zone}/machineTypes", + "httpMethod": "GET", + "description": "Retrieves the list of machine type resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "MachineTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "networks": { + "methods": { + "delete": { + "id": "compute.networks.delete", + "path": "{project}/global/networks/{network}", + "httpMethod": "DELETE", + "description": "Deletes the specified network resource.", + "parameters": { + "network": { + "type": "string", + "description": "Name of the network resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.networks.get", + "path": "{project}/global/networks/{network}", + "httpMethod": "GET", + "description": "Returns the specified network resource.", + "parameters": { + "network": { + "type": "string", + "description": "Name of the network resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "network" + ], + "response": { + "$ref": "Network" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.networks.insert", + "path": "{project}/global/networks", + "httpMethod": "POST", + "description": "Creates a network resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Network" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.networks.list", + "path": "{project}/global/networks", + "httpMethod": "GET", + "description": "Retrieves the list of network resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "NetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "projects": { + "methods": { + "get": { + "id": "compute.projects.get", + "path": "{project}", + "httpMethod": "GET", + "description": "Returns the specified project resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project resource to retrieve.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setCommonInstanceMetadata": { + "id": "compute.projects.setCommonInstanceMetadata", + "path": "{project}/setCommonInstanceMetadata", + "httpMethod": "POST", + "description": "Sets metadata common to all instances within the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Metadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setUsageExportBucket": { + "id": "compute.projects.setUsageExportBucket", + "path": "{project}/setUsageExportBucket", + "httpMethod": "POST", + "description": "Sets usage export location", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "UsageExportLocation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "regionOperations": { + "methods": { + "delete": { + "id": "compute.regionOperations.delete", + "path": "{project}/regions/{region}/operations/{operation}", + "httpMethod": "DELETE", + "description": "Deletes the specified region-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.regionOperations.get", + "path": "{project}/regions/{region}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified region-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.regionOperations.list", + "path": "{project}/regions/{region}/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified region.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "regions": { + "methods": { + "get": { + "id": "compute.regions.get", + "path": "{project}/regions/{region}", + "httpMethod": "GET", + "description": "Returns the specified region resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "Region" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.regions.list", + "path": "{project}/regions", + "httpMethod": "GET", + "description": "Retrieves the list of region resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "RegionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "routes": { + "methods": { + "delete": { + "id": "compute.routes.delete", + "path": "{project}/global/routes/{route}", + "httpMethod": "DELETE", + "description": "Deletes the specified route resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "route": { + "type": "string", + "description": "Name of the route resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "route" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.routes.get", + "path": "{project}/global/routes/{route}", + "httpMethod": "GET", + "description": "Returns the specified route resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "route": { + "type": "string", + "description": "Name of the route resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "route" + ], + "response": { + "$ref": "Route" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.routes.insert", + "path": "{project}/global/routes", + "httpMethod": "POST", + "description": "Creates a route resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Route" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.routes.list", + "path": "{project}/global/routes", + "httpMethod": "GET", + "description": "Retrieves the list of route resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "RouteList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "snapshots": { + "methods": { + "delete": { + "id": "compute.snapshots.delete", + "path": "{project}/global/snapshots/{snapshot}", + "httpMethod": "DELETE", + "description": "Deletes the specified persistent disk snapshot resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "snapshot": { + "type": "string", + "description": "Name of the persistent disk snapshot resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "snapshot" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.snapshots.get", + "path": "{project}/global/snapshots/{snapshot}", + "httpMethod": "GET", + "description": "Returns the specified persistent disk snapshot resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "snapshot": { + "type": "string", + "description": "Name of the persistent disk snapshot resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "snapshot" + ], + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.snapshots.list", + "path": "{project}/global/snapshots", + "httpMethod": "GET", + "description": "Retrieves the list of persistent disk snapshot resources contained within the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "SnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetHttpProxies": { + "methods": { + "delete": { + "id": "compute.targetHttpProxies.delete", + "path": "{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "DELETE", + "description": "Deletes the specified TargetHttpProxy resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetHttpProxy": { + "type": "string", + "description": "Name of the TargetHttpProxy resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.targetHttpProxies.get", + "path": "{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "GET", + "description": "Returns the specified TargetHttpProxy resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetHttpProxy": { + "type": "string", + "description": "Name of the TargetHttpProxy resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "response": { + "$ref": "TargetHttpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.targetHttpProxies.insert", + "path": "{project}/global/targetHttpProxies", + "httpMethod": "POST", + "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.targetHttpProxies.list", + "path": "{project}/global/targetHttpProxies", + "httpMethod": "GET", + "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetHttpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setUrlMap": { + "id": "compute.targetHttpProxies.setUrlMap", + "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "description": "Changes the URL map for TargetHttpProxy.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetHttpProxy": { + "type": "string", + "description": "Name of the TargetHttpProxy resource whose URL map is to be set.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "targetInstances": { + "methods": { + "aggregatedList": { + "id": "compute.targetInstances.aggregatedList", + "path": "{project}/aggregated/targetInstances", + "httpMethod": "GET", + "description": "Retrieves the list of target instances grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetInstanceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.targetInstances.delete", + "path": "{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "DELETE", + "description": "Deletes the specified TargetInstance resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetInstance": { + "type": "string", + "description": "Name of the TargetInstance resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.targetInstances.get", + "path": "{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "GET", + "description": "Returns the specified TargetInstance resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "targetInstance": { + "type": "string", + "description": "Name of the TargetInstance resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "response": { + "$ref": "TargetInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.targetInstances.insert", + "path": "{project}/zones/{zone}/targetInstances", + "httpMethod": "POST", + "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "TargetInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.targetInstances.list", + "path": "{project}/zones/{zone}/targetInstances", + "httpMethod": "GET", + "description": "Retrieves the list of TargetInstance resources available to the specified project and zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "TargetInstanceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetPools": { + "methods": { + "addHealthCheck": { + "id": "compute.targetPools.addHealthCheck", + "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "httpMethod": "POST", + "description": "Adds health check URL to targetPool.", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to which health_check_url is to be added.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsAddHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "addInstance": { + "id": "compute.targetPools.addInstance", + "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "httpMethod": "POST", + "description": "Adds instance url to targetPool.", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to which instance_url is to be added.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsAddInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "aggregatedList": { + "id": "compute.targetPools.aggregatedList", + "path": "{project}/aggregated/targetPools", + "httpMethod": "GET", + "description": "Retrieves the list of target pools grouped by scope.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TargetPoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "id": "compute.targetPools.delete", + "path": "{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "DELETE", + "description": "Deletes the specified TargetPool resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.targetPools.get", + "path": "{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "GET", + "description": "Returns the specified TargetPool resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "response": { + "$ref": "TargetPool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getHealth": { + "id": "compute.targetPools.getHealth", + "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "httpMethod": "POST", + "description": "Gets the most recent health check results for each IP for the given instance that is referenced by given TargetPool.", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to which the queried instance belongs.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "InstanceReference" + }, + "response": { + "$ref": "TargetPoolInstanceHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.targetPools.insert", + "path": "{project}/regions/{region}/targetPools", + "httpMethod": "POST", + "description": "Creates a TargetPool resource in the specified project and region using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "request": { + "$ref": "TargetPool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.targetPools.list", + "path": "{project}/regions/{region}/targetPools", + "httpMethod": "GET", + "description": "Retrieves the list of TargetPool resources available to the specified project and region.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region" + ], + "response": { + "$ref": "TargetPoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "removeHealthCheck": { + "id": "compute.targetPools.removeHealthCheck", + "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "httpMethod": "POST", + "description": "Removes health check URL from targetPool.", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to which health_check_url is to be removed.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsRemoveHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeInstance": { + "id": "compute.targetPools.removeInstance", + "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "httpMethod": "POST", + "description": "Removes instance URL from targetPool.", + "parameters": { + "project": { + "type": "string", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource to which instance_url is to be removed.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetPoolsRemoveInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setBackup": { + "id": "compute.targetPools.setBackup", + "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "httpMethod": "POST", + "description": "Changes backup pool configurations.", + "parameters": { + "failoverRatio": { + "type": "number", + "description": "New failoverRatio value for the containing target pool.", + "format": "float", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "region": { + "type": "string", + "description": "Name of the region scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "targetPool": { + "type": "string", + "description": "Name of the TargetPool resource for which the backup is to be set.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "urlMaps": { + "methods": { + "delete": { + "id": "compute.urlMaps.delete", + "path": "{project}/global/urlMaps/{urlMap}", + "httpMethod": "DELETE", + "description": "Deletes the specified UrlMap resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "urlMap": { + "type": "string", + "description": "Name of the UrlMap resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.urlMaps.get", + "path": "{project}/global/urlMaps/{urlMap}", + "httpMethod": "GET", + "description": "Returns the specified UrlMap resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "urlMap": { + "type": "string", + "description": "Name of the UrlMap resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "response": { + "$ref": "UrlMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "compute.urlMaps.insert", + "path": "{project}/global/urlMaps", + "httpMethod": "POST", + "description": "Creates a UrlMap resource in the specified project using the data included in the request.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "compute.urlMaps.list", + "path": "{project}/global/urlMaps", + "httpMethod": "GET", + "description": "Retrieves the list of UrlMap resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "UrlMapList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "id": "compute.urlMaps.patch", + "path": "{project}/global/urlMaps/{urlMap}", + "httpMethod": "PATCH", + "description": "Update the entire content of the UrlMap resource. This method supports patch semantics.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "urlMap": { + "type": "string", + "description": "Name of the UrlMap resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "update": { + "id": "compute.urlMaps.update", + "path": "{project}/global/urlMaps/{urlMap}", + "httpMethod": "PUT", + "description": "Update the entire content of the UrlMap resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "urlMap": { + "type": "string", + "description": "Name of the UrlMap resource to update.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "validate": { + "id": "compute.urlMaps.validate", + "path": "{project}/global/urlMaps/{urlMap}/validate", + "httpMethod": "POST", + "description": "Run static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "urlMap": { + "type": "string", + "description": "Name of the UrlMap resource to be validated as.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "urlMap" + ], + "request": { + "$ref": "UrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zoneOperations": { + "methods": { + "delete": { + "id": "compute.zoneOperations.delete", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "DELETE", + "description": "Deletes the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "compute.zoneOperations.get", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.zoneOperations.list", + "path": "{project}/zones/{zone}/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "zones": { + "methods": { + "get": { + "id": "compute.zones.get", + "path": "{project}/zones/{zone}", + "httpMethod": "GET", + "description": "Returns the specified zone resource.", + "parameters": { + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "Zone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "id": "compute.zones.list", + "path": "{project}/zones", + "httpMethod": "GET", + "description": "Retrieves the list of zone resources available to the specified project.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + } + } +} diff --git a/etc/api/container/v1beta1/container-api.json b/etc/api/container/v1beta1/container-api.json new file mode 100644 index 0000000000..0c30d9b6bd --- /dev/null +++ b/etc/api/container/v1beta1/container-api.json @@ -0,0 +1,612 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/AlGO7dz3sDTBKgLgnWPYGlYVP9g\"", + "discoveryVersion": "v1", + "id": "container:v1beta1", + "name": "container", + "version": "v1beta1", + "revision": "20150113", + "title": "Google Container Engine API", + "description": "The Google Container Engine API is used for building and managing container based applications, powered by the open source Kubernetes technology.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://cloud.google.com/container-engine/docs/v1beta1/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/container/v1beta1/projects/", + "basePath": "/container/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "container/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + } + } + } + }, + "schemas": { + "Cluster": { + "id": "Cluster", + "type": "object", + "properties": { + "clusterApiVersion": { + "type": "string", + "description": "The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form \"x.y.z\". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions." + }, + "containerIpv4Cidr": { + "type": "string", + "description": "[Output only] The IP addresses of the container pods in this cluster, in CIDR notation (e.g. 1.2.3.4/29)." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output only] The time the cluster was created, in RFC3339 text format." + }, + "description": { + "type": "string", + "description": "An optional description of this cluster." + }, + "endpoint": { + "type": "string", + "description": "[Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.\n\nSee the masterAuth property of this resource for username and password information." + }, + "masterAuth": { + "$ref": "MasterAuth", + "description": "The HTTP basic authentication information for accessing the master. Because the master endpoint is open to the internet, you should create a strong password." + }, + "name": { + "type": "string", + "description": "The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: \n- Lowercase letters, numbers, and hyphens only.\n- Must start with a letter.\n- Must end with a number or a letter." + }, + "network": { + "type": "string", + "description": "The name of the Google Compute Engine network to which the cluster is connected." + }, + "nodeConfig": { + "$ref": "NodeConfig", + "description": "The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig." + }, + "nodeRoutingPrefixSize": { + "type": "integer", + "description": "[Output only] The size of the address space on each node for hosting containers.", + "format": "int32" + }, + "numNodes": { + "type": "integer", + "description": "The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.", + "format": "int32" + }, + "selfLink": { + "type": "string", + "description": "[Output only] Server-defined URL for the resource." + }, + "servicesIpv4Cidr": { + "type": "string", + "description": "[Output only] The IP addresses of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are always in the 10.0.0.0/16 range." + }, + "status": { + "type": "string", + "description": "[Output only] The current status of this cluster.", + "enum": [ + "error", + "provisioning", + "running", + "stopping" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "statusMessage": { + "type": "string", + "description": "[Output only] Additional information about the current status of this cluster, if available." + }, + "zone": { + "type": "string", + "description": "[Output only] The name of the Google Compute Engine zone in which the cluster resides." + } + } + }, + "CreateClusterRequest": { + "id": "CreateClusterRequest", + "type": "object", + "properties": { + "cluster": { + "$ref": "Cluster", + "description": "A cluster resource." + } + } + }, + "ListAggregatedClustersResponse": { + "id": "ListAggregatedClustersResponse", + "type": "object", + "properties": { + "clusters": { + "type": "array", + "description": "A list of clusters in the project, across all zones.", + "items": { + "$ref": "Cluster" + } + } + } + }, + "ListAggregatedOperationsResponse": { + "id": "ListAggregatedOperationsResponse", + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "A list of operations in the project, across all zones.", + "items": { + "$ref": "Operation" + } + } + } + }, + "ListClustersResponse": { + "id": "ListClustersResponse", + "type": "object", + "properties": { + "clusters": { + "type": "array", + "description": "A list of clusters in the project in the specified zone.", + "items": { + "$ref": "Cluster" + } + } + } + }, + "ListOperationsResponse": { + "id": "ListOperationsResponse", + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "A list of operations in the project in the specified zone.", + "items": { + "$ref": "Operation" + } + } + } + }, + "MasterAuth": { + "id": "MasterAuth", + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "The password to use when accessing the Kubernetes master endpoint." + }, + "user": { + "type": "string", + "description": "The username to use when accessing the Kubernetes master endpoint." + } + } + }, + "NodeConfig": { + "id": "NodeConfig", + "type": "object", + "properties": { + "machineType": { + "type": "string", + "description": "The name of a Google Compute Engine machine type (e.g. n1-standard-1).\n\nIf unspecified, the default machine type is n1-standard-1." + }, + "serviceAccounts": { + "type": "array", + "description": "The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the \"default\" account will always be created with the following scopes to ensure the correct functioning of the cluster: \n- https://www.googleapis.com/auth/compute,\n- https://www.googleapis.com/auth/devstorage.read_only", + "items": { + "$ref": "ServiceAccount" + } + }, + "sourceImage": { + "type": "string", + "description": "The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).\n\nIf specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "Defines the operation resource. All fields are output only.", + "properties": { + "errorMessage": { + "type": "string", + "description": "If an error has occurred, a textual description of the error." + }, + "name": { + "type": "string", + "description": "The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name." + }, + "operationType": { + "type": "string", + "description": "The operation type.", + "enum": [ + "createCluster", + "deleteCluster" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "selfLink": { + "type": "string", + "description": "Server-defined URL for the resource." + }, + "status": { + "type": "string", + "description": "The current status of the operation.", + "enum": [ + "done", + "pending", + "running" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "target": { + "type": "string", + "description": "[Optional] The URL of the cluster resource that this operation is associated with." + }, + "targetLink": { + "type": "string", + "description": "Server-defined URL for the target of the operation." + }, + "zone": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the operation is taking place." + } + } + }, + "ServiceAccount": { + "id": "ServiceAccount", + "type": "object", + "description": "A Compute Engine service account.", + "properties": { + "email": { + "type": "string", + "description": "Email address of the service account." + }, + "scopes": { + "type": "array", + "description": "The list of scopes to be made available for this service account.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "projects": { + "resources": { + "clusters": { + "methods": { + "list": { + "id": "container.projects.clusters.list", + "path": "{projectId}/clusters", + "httpMethod": "GET", + "description": "Lists all clusters owned by a project across all zones.", + "parameters": { + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "ListAggregatedClustersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "operations": { + "methods": { + "list": { + "id": "container.projects.operations.list", + "path": "{projectId}/operations", + "httpMethod": "GET", + "description": "Lists all operations in a project, across all zones.", + "parameters": { + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "ListAggregatedOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "zones": { + "resources": { + "clusters": { + "methods": { + "create": { + "id": "container.projects.zones.clusters.create", + "path": "{projectId}/zones/{zoneId}/clusters", + "httpMethod": "POST", + "description": "Creates a cluster, consisting of the specified number and type of Google Compute Engine instances, plus a Kubernetes master instance.\n\nThe cluster is created in the project's default network.\n\nA firewall is added that allows traffic into port 443 on the master, which enables HTTPS. A firewall and a route is added for each node to allow the containers on that node to communicate with all other instances in the cluster.\n\nFinally, a route named k8s-iproute-10-xx-0-0 is created to track that the cluster's 10.xx.0.0/16 CIDR has been assigned.", + "parameters": { + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the cluster resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId" + ], + "request": { + "$ref": "CreateClusterRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "id": "container.projects.zones.clusters.delete", + "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}", + "httpMethod": "DELETE", + "description": "Deletes the cluster, including the Kubernetes master and all worker nodes.\n\nFirewalls and routes that were configured at cluster creation are also deleted.", + "parameters": { + "clusterId": { + "type": "string", + "description": "The name of the cluster to delete.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the cluster resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId", + "clusterId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "container.projects.zones.clusters.get", + "path": "{projectId}/zones/{zoneId}/clusters/{clusterId}", + "httpMethod": "GET", + "description": "Gets a specific cluster.", + "parameters": { + "clusterId": { + "type": "string", + "description": "The name of the cluster to retrieve.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the cluster resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId", + "clusterId" + ], + "response": { + "$ref": "Cluster" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "id": "container.projects.zones.clusters.list", + "path": "{projectId}/zones/{zoneId}/clusters", + "httpMethod": "GET", + "description": "Lists all clusters owned by a project in the specified zone.", + "parameters": { + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the cluster resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId" + ], + "response": { + "$ref": "ListClustersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "id": "container.projects.zones.operations.get", + "path": "{projectId}/zones/{zoneId}/operations/{operationId}", + "httpMethod": "GET", + "description": "Gets the specified operation.", + "parameters": { + "operationId": { + "type": "string", + "description": "The server-assigned name of the operation.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone in which the operation resides. This is always the same zone as the cluster with which the operation is associated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId", + "operationId" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "id": "container.projects.zones.operations.list", + "path": "{projectId}/zones/{zoneId}/operations", + "httpMethod": "GET", + "description": "Lists all operations in a project in a specific zone.", + "parameters": { + "projectId": { + "type": "string", + "description": "The Google Developers Console project ID or project number.", + "required": true, + "location": "path" + }, + "zoneId": { + "type": "string", + "description": "The name of the Google Compute Engine zone to return operations for.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "zoneId" + ], + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + } + } +} diff --git a/etc/api/content/v2/content-api.json b/etc/api/content/v2/content-api.json new file mode 100644 index 0000000000..73226df6c2 --- /dev/null +++ b/etc/api/content/v2/content-api.json @@ -0,0 +1,3821 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/C8XXsPv6OQ96WhF0iGLVjduwCpc\"", + "discoveryVersion": "v1", + "id": "content:v2", + "name": "content", + "canonicalName": "Shopping Content", + "version": "v2", + "revision": "20150218", + "title": "Content API for Shopping", + "description": "Manage product items, inventory, and Merchant Center accounts for Google Shopping.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/shopping-content/v2/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/content/v2/", + "basePath": "/content/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "content/v2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/content": { + "description": "Manage your product listings and accounts for Google Shopping" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Account data.", + "properties": { + "adultContent": { + "type": "boolean", + "description": "Indicates whether the merchant sells adult content." + }, + "adwordsLinks": { + "type": "array", + "description": "List of linked AdWords accounts.", + "items": { + "$ref": "AccountAdwordsLink" + } + }, + "id": { + "type": "string", + "description": "Merchant Center account ID.", + "format": "uint64", + "annotations": { + "required": [ + "content.accounts.update" + ] + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#account\".", + "default": "content#account" + }, + "name": { + "type": "string", + "description": "Display name for the account.", + "annotations": { + "required": [ + "content.accounts.insert", + "content.accounts.update" + ] + } + }, + "reviewsUrl": { + "type": "string", + "description": "URL for individual seller reviews, i.e., reviews for each child account." + }, + "sellerId": { + "type": "string", + "description": "Client-specific, locally-unique, internal ID for the child account." + }, + "users": { + "type": "array", + "description": "Users with access to the account. Every account (except for subaccounts) must have at least one admin user.", + "items": { + "$ref": "AccountUser" + } + }, + "websiteUrl": { + "type": "string", + "description": "The merchant's website." + } + } + }, + "AccountAdwordsLink": { + "id": "AccountAdwordsLink", + "type": "object", + "properties": { + "adwordsId": { + "type": "string", + "description": "Customer ID of the AdWords account.", + "format": "uint64" + }, + "status": { + "type": "string", + "description": "Status of the link between this Merchant Center account and the AdWords account." + } + } + }, + "AccountShipping": { + "id": "AccountShipping", + "type": "object", + "description": "The shipping settings of a merchant account.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the account to which these account shipping settings belong.", + "format": "uint64", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "carrierRates": { + "type": "array", + "description": "Carrier-based shipping calculations.", + "items": { + "$ref": "AccountShippingCarrierRate" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountShipping\".", + "default": "content#accountShipping" + }, + "locationGroups": { + "type": "array", + "description": "Location groups for shipping.", + "items": { + "$ref": "AccountShippingLocationGroup" + } + }, + "rateTables": { + "type": "array", + "description": "Rate tables definitions.", + "items": { + "$ref": "AccountShippingRateTable" + } + }, + "services": { + "type": "array", + "description": "Shipping services describing shipping fees calculation.", + "items": { + "$ref": "AccountShippingShippingService" + } + } + } + }, + "AccountShippingCarrierRate": { + "id": "AccountShippingCarrierRate", + "type": "object", + "description": "A carrier-calculated shipping rate.", + "properties": { + "carrier": { + "type": "string", + "description": "The carrier that is responsible for the shipping, such as \"UPS\", \"FedEx\", or \"USPS\".", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "carrierService": { + "type": "string", + "description": "The carrier service, such as \"Ground\" or \"2Day\".", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "modifierFlatRate": { + "$ref": "Price", + "description": "Additive shipping rate modifier." + }, + "modifierPercent": { + "type": "string", + "description": "Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character." + }, + "name": { + "type": "string", + "description": "The name of the carrier rate.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "saleCountry": { + "type": "string", + "description": "Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "shippingOrigin": { + "type": "string", + "description": "Shipping origin represented as a postal code.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + }, + "AccountShippingCondition": { + "id": "AccountShippingCondition", + "type": "object", + "properties": { + "deliveryLocationGroup": { + "type": "string", + "description": "Delivery location in terms of a location group name. A location group with this name must be specified among location groups." + }, + "deliveryLocationId": { + "type": "string", + "description": "Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.", + "format": "int64" + }, + "deliveryPostalCode": { + "type": "string", + "description": "Delivery location in terms of a postal code." + }, + "deliveryPostalCodeRange": { + "$ref": "AccountShippingPostalCodeRange", + "description": "Delivery location in terms of a postal code range." + }, + "priceMax": { + "$ref": "Price", + "description": "Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive)." + }, + "shippingLabel": { + "type": "string", + "description": "Shipping label of the product. The products with the label are matched." + }, + "weightMax": { + "$ref": "Weight", + "description": "Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive)." + } + } + }, + "AccountShippingLocationGroup": { + "id": "AccountShippingLocationGroup", + "type": "object", + "description": "A user-defined locations group in a given country. All the locations of the group must be of the same type.", + "properties": { + "country": { + "type": "string", + "description": "The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "locationIds": { + "type": "array", + "description": "A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.", + "items": { + "type": "string", + "format": "int64" + } + }, + "name": { + "type": "string", + "description": "The name of the location group.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "postalCodeRanges": { + "type": "array", + "description": "A postal code range representing a city or a set of cities.", + "items": { + "$ref": "AccountShippingPostalCodeRange" + } + }, + "postalCodes": { + "type": "array", + "description": "A postal code representing a city or a set of cities. \n- A single postal code (e.g., 12345)\n- A postal code prefix followed by a star (e.g., 1234*)", + "items": { + "type": "string" + } + } + } + }, + "AccountShippingPostalCodeRange": { + "id": "AccountShippingPostalCodeRange", + "type": "object", + "description": "A postal code range, that can be either: \n- A range of postal codes (e.g., start=12340, end=12359)\n- A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).", + "properties": { + "end": { + "type": "string", + "description": "The last (inclusive) postal code or prefix of the range.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "start": { + "type": "string", + "description": "The first (inclusive) postal code or prefix of the range.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + }, + "AccountShippingRateTable": { + "id": "AccountShippingRateTable", + "type": "object", + "description": "A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.", + "properties": { + "content": { + "type": "array", + "description": "One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).", + "items": { + "$ref": "AccountShippingRateTableCell" + } + }, + "name": { + "type": "string", + "description": "The name of the rate table.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "saleCountry": { + "type": "string", + "description": "Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + }, + "AccountShippingRateTableCell": { + "id": "AccountShippingRateTableCell", + "type": "object", + "properties": { + "condition": { + "$ref": "AccountShippingCondition", + "description": "Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension." + }, + "rate": { + "$ref": "Price", + "description": "The rate applicable if the cell conditions are matched.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + }, + "AccountShippingShippingService": { + "id": "AccountShippingShippingService", + "type": "object", + "description": "Shipping services provided in a country.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the shipping service is available." + }, + "calculationMethod": { + "$ref": "AccountShippingShippingServiceCalculationMethod", + "description": "Calculation method for the \"simple\" case that needs no rules." + }, + "costRuleTree": { + "$ref": "AccountShippingShippingServiceCostRule", + "description": "Decision tree for \"complicated\" shipping cost calculation." + }, + "name": { + "type": "string", + "description": "The name of this shipping service.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "saleCountry": { + "type": "string", + "description": "Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + }, + "AccountShippingShippingServiceCalculationMethod": { + "id": "AccountShippingShippingServiceCalculationMethod", + "type": "object", + "description": "Shipping cost calculation method. Exactly one of the field is set.", + "properties": { + "carrierRate": { + "type": "string", + "description": "Name of the carrier rate to use for the calculation." + }, + "excluded": { + "type": "boolean", + "description": "Delivery is excluded. Valid only within cost rules tree." + }, + "flatRate": { + "$ref": "Price", + "description": "Fixed price shipping, represented as a floating point number associated with a currency." + }, + "percentageRate": { + "type": "string", + "description": "Percentage of the price, represented as a floating point number without the percentage character." + }, + "rateTable": { + "type": "string", + "description": "Name of the rate table to use for the calculation." + } + } + }, + "AccountShippingShippingServiceCostRule": { + "id": "AccountShippingShippingServiceCostRule", + "type": "object", + "description": "Building block of the cost calculation decision tree. \n- The tree root should have no condition and no calculation method.\n- All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.\n- The last child of an element must have no condition and matches all elements not previously matched.\n- Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.", + "properties": { + "calculationMethod": { + "$ref": "AccountShippingShippingServiceCalculationMethod", + "description": "Final calculation method to be used only in leaf nodes." + }, + "children": { + "type": "array", + "description": "Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.", + "items": { + "$ref": "AccountShippingShippingServiceCostRule" + } + }, + "condition": { + "$ref": "AccountShippingCondition", + "description": "Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all." + } + } + }, + "AccountStatus": { + "id": "AccountStatus", + "type": "object", + "description": "The status of an account, i.e., information about its products, which is computed offline and not returned immediately at insertion time.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the account for which the status is reported." + }, + "dataQualityIssues": { + "type": "array", + "description": "A list of data quality issues.", + "items": { + "$ref": "AccountStatusDataQualityIssue" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountStatus\".", + "default": "content#accountStatus" + } + } + }, + "AccountStatusDataQualityIssue": { + "id": "AccountStatusDataQualityIssue", + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "Country for which this issue is reported." + }, + "displayedValue": { + "type": "string", + "description": "Actual value displayed on the landing page." + }, + "exampleItems": { + "type": "array", + "description": "Example items featuring the issue.", + "items": { + "$ref": "AccountStatusExampleItem" + } + }, + "id": { + "type": "string", + "description": "Issue identifier." + }, + "lastChecked": { + "type": "string", + "description": "Last time the account was checked for this issue." + }, + "numItems": { + "type": "integer", + "description": "Number of items in the account found to have the said issue.", + "format": "uint32" + }, + "severity": { + "type": "string", + "description": "Severity of the problem." + }, + "submittedValue": { + "type": "string", + "description": "Submitted value that causes the issue." + } + } + }, + "AccountStatusExampleItem": { + "id": "AccountStatusExampleItem", + "type": "object", + "description": "An example of an item that has poor data quality. An item value on the landing page differs from what is submitted, or conflicts with a policy.", + "properties": { + "itemId": { + "type": "string", + "description": "Unique item ID as specified in the uploaded product data." + }, + "link": { + "type": "string", + "description": "Landing page of the item." + }, + "submittedValue": { + "type": "string", + "description": "The item value that was submitted." + }, + "title": { + "type": "string", + "description": "Title of the item." + }, + "valueOnLandingPage": { + "type": "string", + "description": "The actual value on the landing page." + } + } + }, + "AccountTax": { + "id": "AccountTax", + "type": "object", + "description": "The tax settings of a merchant account.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the account to which these account tax settings belong.", + "format": "uint64", + "annotations": { + "required": [ + "content.accounttax.update" + ] + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountTax\".", + "default": "content#accountTax" + }, + "rules": { + "type": "array", + "description": "Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.", + "items": { + "$ref": "AccountTaxTaxRule" + } + } + } + }, + "AccountTaxTaxRule": { + "id": "AccountTaxTaxRule", + "type": "object", + "description": "Tax calculation rule to apply in a state or province (USA only).", + "properties": { + "country": { + "type": "string", + "description": "Country code in which tax is applicable." + }, + "locationId": { + "type": "string", + "description": "State (or province) is which the tax is applicable, described by its location id (also called criteria id).", + "format": "uint64", + "annotations": { + "required": [ + "content.accounttax.update" + ] + } + }, + "ratePercent": { + "type": "string", + "description": "Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative." + }, + "shippingTaxed": { + "type": "boolean", + "description": "If true, shipping charges are also taxed." + }, + "useGlobalRate": { + "type": "boolean", + "description": "Whether the tax rate is taken from a global tax table or specified explicitly." + } + } + }, + "AccountUser": { + "id": "AccountUser", + "type": "object", + "properties": { + "admin": { + "type": "boolean", + "description": "Whether user is an admin." + }, + "emailAddress": { + "type": "string", + "description": "User's email address." + } + } + }, + "AccountsCustomBatchRequest": { + "id": "AccountsCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "AccountsCustomBatchRequestEntry" + } + } + } + }, + "AccountsCustomBatchRequestEntry": { + "id": "AccountsCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accounts request.", + "properties": { + "account": { + "$ref": "Account", + "description": "The account to create or update. Only defined if the method is insert or update." + }, + "accountId": { + "type": "string", + "description": "The ID of the account to get or delete. Only defined if the method is get or delete.", + "format": "uint64" + }, + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + } + } + }, + "AccountsCustomBatchResponse": { + "id": "AccountsCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "AccountsCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountsCustomBatchResponse\".", + "default": "content#accountsCustomBatchResponse" + } + } + }, + "AccountsCustomBatchResponseEntry": { + "id": "AccountsCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accounts response.", + "properties": { + "account": { + "$ref": "Account", + "description": "The retrieved, created, or updated account. Not defined if the method was delete." + }, + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountsCustomBatchResponseEntry\".", + "default": "content#accountsCustomBatchResponseEntry" + } + } + }, + "AccountsListResponse": { + "id": "AccountsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountsListResponse\".", + "default": "content#accountsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of accounts." + }, + "resources": { + "type": "array", + "items": { + "$ref": "Account" + } + } + } + }, + "AccountshippingCustomBatchRequest": { + "id": "AccountshippingCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "AccountshippingCustomBatchRequestEntry" + } + } + } + }, + "AccountshippingCustomBatchRequestEntry": { + "id": "AccountshippingCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accountshipping request.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account shipping settings.", + "format": "uint64" + }, + "accountShipping": { + "$ref": "AccountShipping", + "description": "The account shipping settings to update. Only defined if the method is update." + }, + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + } + } + }, + "AccountshippingCustomBatchResponse": { + "id": "AccountshippingCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "AccountshippingCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountshippingCustomBatchResponse\".", + "default": "content#accountshippingCustomBatchResponse" + } + } + }, + "AccountshippingCustomBatchResponseEntry": { + "id": "AccountshippingCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accountshipping response.", + "properties": { + "accountShipping": { + "$ref": "AccountShipping", + "description": "The retrieved or updated account shipping settings." + }, + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountshippingCustomBatchResponseEntry\".", + "default": "content#accountshippingCustomBatchResponseEntry" + } + } + }, + "AccountshippingListResponse": { + "id": "AccountshippingListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountshippingListResponse\".", + "default": "content#accountshippingListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of account shipping settings." + }, + "resources": { + "type": "array", + "items": { + "$ref": "AccountShipping" + } + } + } + }, + "AccountstatusesCustomBatchRequest": { + "id": "AccountstatusesCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "AccountstatusesCustomBatchRequestEntry" + } + } + } + }, + "AccountstatusesCustomBatchRequestEntry": { + "id": "AccountstatusesCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accountstatuses request.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the (sub-)account whose status to get.", + "format": "uint64" + }, + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string", + "description": "The method (get)." + } + } + }, + "AccountstatusesCustomBatchResponse": { + "id": "AccountstatusesCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "AccountstatusesCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountstatusesCustomBatchResponse\".", + "default": "content#accountstatusesCustomBatchResponse" + } + } + }, + "AccountstatusesCustomBatchResponseEntry": { + "id": "AccountstatusesCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accountstatuses response.", + "properties": { + "accountStatus": { + "$ref": "AccountStatus", + "description": "The requested account status. Defined if and only if the request was successful." + }, + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + } + } + }, + "AccountstatusesListResponse": { + "id": "AccountstatusesListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accountstatusesListResponse\".", + "default": "content#accountstatusesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of account statuses." + }, + "resources": { + "type": "array", + "items": { + "$ref": "AccountStatus" + } + } + } + }, + "AccounttaxCustomBatchRequest": { + "id": "AccounttaxCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "AccounttaxCustomBatchRequestEntry" + } + } + } + }, + "AccounttaxCustomBatchRequestEntry": { + "id": "AccounttaxCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accounttax request.", + "properties": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account tax settings.", + "format": "uint64" + }, + "accountTax": { + "$ref": "AccountTax", + "description": "The account tax settings to update. Only defined if the method is update." + }, + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + } + } + }, + "AccounttaxCustomBatchResponse": { + "id": "AccounttaxCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "AccounttaxCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accounttaxCustomBatchResponse\".", + "default": "content#accounttaxCustomBatchResponse" + } + } + }, + "AccounttaxCustomBatchResponseEntry": { + "id": "AccounttaxCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch accounttax response.", + "properties": { + "accountTax": { + "$ref": "AccountTax", + "description": "The retrieved or updated account tax settings." + }, + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accounttaxCustomBatchResponseEntry\".", + "default": "content#accounttaxCustomBatchResponseEntry" + } + } + }, + "AccounttaxListResponse": { + "id": "AccounttaxListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#accounttaxListResponse\".", + "default": "content#accounttaxListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of account tax settings." + }, + "resources": { + "type": "array", + "items": { + "$ref": "AccountTax" + } + } + } + }, + "Datafeed": { + "id": "Datafeed", + "type": "object", + "description": "Datafeed data.", + "properties": { + "attributeLanguage": { + "type": "string", + "description": "The two-letter ISO 639-1 language in which the attributes are defined in the data feed." + }, + "contentLanguage": { + "type": "string", + "description": "The two-letter ISO 639-1 language of the items in the feed.", + "annotations": { + "required": [ + "content.datafeeds.insert" + ] + } + }, + "contentType": { + "type": "string", + "description": "The type of data feed.", + "annotations": { + "required": [ + "content.datafeeds.insert", + "content.datafeeds.update" + ] + } + }, + "fetchSchedule": { + "$ref": "DatafeedFetchSchedule", + "description": "Fetch schedule for the feed file." + }, + "fileName": { + "type": "string", + "description": "The filename of the feed. All feeds must have a unique file name.", + "annotations": { + "required": [ + "content.datafeeds.insert", + "content.datafeeds.update" + ] + } + }, + "format": { + "$ref": "DatafeedFormat", + "description": "Format of the feed file." + }, + "id": { + "type": "string", + "description": "The ID of the data feed.", + "format": "int64", + "annotations": { + "required": [ + "content.datafeeds.update" + ] + } + }, + "intendedDestinations": { + "type": "array", + "description": "The list of intended destinations (corresponds to checked check boxes in Merchant Center).", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeed\".", + "default": "content#datafeed" + }, + "name": { + "type": "string", + "description": "A descriptive name of the data feed.", + "annotations": { + "required": [ + "content.datafeeds.insert" + ] + } + }, + "targetCountry": { + "type": "string", + "description": "The two-letter ISO 3166 country where the items in the feed will be included in the search index.", + "annotations": { + "required": [ + "content.datafeeds.insert", + "content.datafeeds.update" + ] + } + } + } + }, + "DatafeedFetchSchedule": { + "id": "DatafeedFetchSchedule", + "type": "object", + "description": "The required fields vary based on the frequency of fetching. For a monthly fetch schedule, day_of_month and hour are required. For a weekly fetch schedule, weekday and hour are required. For a daily fetch schedule, only hour is required.", + "properties": { + "dayOfMonth": { + "type": "integer", + "description": "The day of the month the feed file should be fetched (1-31).", + "format": "uint32" + }, + "fetchUrl": { + "type": "string", + "description": "The URL where the feed file can be fetched. Google Merchant Center will support automatic scheduled uploads using the HTTP, HTTPS, FTP, or SFTP protocols, so the value will need to be a valid link using one of those four protocols." + }, + "hour": { + "type": "integer", + "description": "The hour of the day the feed file should be fetched (0-24).", + "format": "uint32" + }, + "password": { + "type": "string", + "description": "An optional password for fetch_url." + }, + "timeZone": { + "type": "string", + "description": "Time zone used for schedule. UTC by default. E.g., \"America/Los_Angeles\"." + }, + "username": { + "type": "string", + "description": "An optional user name for fetch_url." + }, + "weekday": { + "type": "string", + "description": "The day of the week the feed file should be fetched." + } + } + }, + "DatafeedFormat": { + "id": "DatafeedFormat", + "type": "object", + "properties": { + "columnDelimiter": { + "type": "string", + "description": "Delimiter for the separation of values in a delimiter-separated values feed. If not specified, the delimiter will be auto-detected. Ignored for non-DSV data feeds." + }, + "fileEncoding": { + "type": "string", + "description": "Character encoding scheme of the data feed. If not specified, the encoding will be auto-detected." + }, + "quotingMode": { + "type": "string", + "description": "Specifies how double quotes are interpreted. If not specified, the mode will be auto-detected. Ignored for non-DSV data feeds." + } + } + }, + "DatafeedStatus": { + "id": "DatafeedStatus", + "type": "object", + "description": "The status of a datafeed, i.e., the result of the last retrieval of the datafeed computed asynchronously when the feed processing is finished.", + "properties": { + "datafeedId": { + "type": "string", + "description": "The ID of the feed for which the status is reported.", + "format": "uint64" + }, + "errors": { + "type": "array", + "description": "The list of errors occurring in the feed.", + "items": { + "$ref": "DatafeedStatusError" + } + }, + "itemsTotal": { + "type": "string", + "description": "The number of items in the feed that were processed.", + "format": "uint64" + }, + "itemsValid": { + "type": "string", + "description": "The number of items in the feed that were valid.", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedStatus\".", + "default": "content#datafeedStatus" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the feed." + }, + "warnings": { + "type": "array", + "description": "The list of errors occurring in the feed.", + "items": { + "$ref": "DatafeedStatusError" + } + } + } + }, + "DatafeedStatusError": { + "id": "DatafeedStatusError", + "type": "object", + "description": "An error occurring in the feed, like \"invalid price\".", + "properties": { + "code": { + "type": "string", + "description": "The code of the error, e.g., \"validation/invalid_value\"." + }, + "count": { + "type": "string", + "description": "The number of occurrences of the error in the feed.", + "format": "uint64" + }, + "examples": { + "type": "array", + "description": "A list of example occurrences of the error, grouped by product.", + "items": { + "$ref": "DatafeedStatusExample" + } + }, + "message": { + "type": "string", + "description": "The error message, e.g., \"Invalid price\"." + } + } + }, + "DatafeedStatusExample": { + "id": "DatafeedStatusExample", + "type": "object", + "description": "An example occurrence for a particular error.", + "properties": { + "itemId": { + "type": "string", + "description": "The ID of the example item." + }, + "lineNumber": { + "type": "string", + "description": "Line number in the data feed where the example is found.", + "format": "uint64" + }, + "value": { + "type": "string", + "description": "The problematic value." + } + } + }, + "DatafeedsCustomBatchRequest": { + "id": "DatafeedsCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "DatafeedsCustomBatchRequestEntry" + } + } + } + }, + "DatafeedsCustomBatchRequestEntry": { + "id": "DatafeedsCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch datafeeds request.", + "properties": { + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "datafeed": { + "$ref": "Datafeed", + "description": "The data feed to insert." + }, + "datafeedId": { + "type": "string", + "description": "The ID of the data feed to get or delete.", + "format": "uint64" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + } + } + }, + "DatafeedsCustomBatchResponse": { + "id": "DatafeedsCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "DatafeedsCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedsCustomBatchResponse\".", + "default": "content#datafeedsCustomBatchResponse" + } + } + }, + "DatafeedsCustomBatchResponseEntry": { + "id": "DatafeedsCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch datafeeds response.", + "properties": { + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "datafeed": { + "$ref": "Datafeed", + "description": "The requested data feed. Defined if and only if the request was successful." + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + } + } + }, + "DatafeedsListResponse": { + "id": "DatafeedsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedsListResponse\".", + "default": "content#datafeedsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of datafeeds." + }, + "resources": { + "type": "array", + "items": { + "$ref": "Datafeed" + } + } + } + }, + "DatafeedstatusesCustomBatchRequest": { + "id": "DatafeedstatusesCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "DatafeedstatusesCustomBatchRequestEntry" + } + } + } + }, + "DatafeedstatusesCustomBatchRequestEntry": { + "id": "DatafeedstatusesCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch datafeedstatuses request.", + "properties": { + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "datafeedId": { + "type": "string", + "description": "The ID of the data feed to get or delete.", + "format": "uint64" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + } + } + }, + "DatafeedstatusesCustomBatchResponse": { + "id": "DatafeedstatusesCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "DatafeedstatusesCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedstatusesCustomBatchResponse\".", + "default": "content#datafeedstatusesCustomBatchResponse" + } + } + }, + "DatafeedstatusesCustomBatchResponseEntry": { + "id": "DatafeedstatusesCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch datafeedstatuses response.", + "properties": { + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "datafeedStatus": { + "$ref": "DatafeedStatus", + "description": "The requested data feed status. Defined if and only if the request was successful." + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + } + } + }, + "DatafeedstatusesListResponse": { + "id": "DatafeedstatusesListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#datafeedstatusesListResponse\".", + "default": "content#datafeedstatusesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of datafeed statuses." + }, + "resources": { + "type": "array", + "items": { + "$ref": "DatafeedStatus" + } + } + } + }, + "Error": { + "id": "Error", + "type": "object", + "description": "An error returned by the API.", + "properties": { + "domain": { + "type": "string", + "description": "The domain of the error." + }, + "message": { + "type": "string", + "description": "A description of the error." + }, + "reason": { + "type": "string", + "description": "The error code." + } + } + }, + "Errors": { + "id": "Errors", + "type": "object", + "description": "A list of errors returned by a failed batch entry.", + "properties": { + "code": { + "type": "integer", + "description": "The HTTP status of the first error in errors.", + "format": "uint32" + }, + "errors": { + "type": "array", + "description": "A list of errors.", + "items": { + "$ref": "Error" + } + }, + "message": { + "type": "string", + "description": "The message of the first error in errors." + } + } + }, + "Inventory": { + "id": "Inventory", + "type": "object", + "properties": { + "availability": { + "type": "string", + "description": "The availability of the product." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#inventory\".", + "default": "content#inventory" + }, + "price": { + "$ref": "Price", + "description": "The price of the product." + }, + "quantity": { + "type": "integer", + "description": "The quantity of the product. Must be equal to or greater than zero. Supported only for local products.", + "format": "uint32" + }, + "salePrice": { + "$ref": "Price", + "description": "The sale price of the product. Mandatory if sale_price_effective_date is defined." + }, + "salePriceEffectiveDate": { + "type": "string", + "description": "A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates might be specified as 'null' if undecided." + } + } + }, + "InventoryCustomBatchRequest": { + "id": "InventoryCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "InventoryCustomBatchRequestEntry" + } + } + } + }, + "InventoryCustomBatchRequestEntry": { + "id": "InventoryCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch inventory request.", + "properties": { + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "inventory": { + "$ref": "Inventory", + "description": "Price and availability of the product." + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "productId": { + "type": "string", + "description": "The ID of the product for which to update price and availability." + }, + "storeCode": { + "type": "string", + "description": "The code of the store for which to update price and availability. Use online to update price and availability of an online product." + } + } + }, + "InventoryCustomBatchResponse": { + "id": "InventoryCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "InventoryCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#inventoryCustomBatchResponse\".", + "default": "content#inventoryCustomBatchResponse" + } + } + }, + "InventoryCustomBatchResponseEntry": { + "id": "InventoryCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch inventory response.", + "properties": { + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#inventoryCustomBatchResponseEntry\".", + "default": "content#inventoryCustomBatchResponseEntry" + } + } + }, + "InventorySetRequest": { + "id": "InventorySetRequest", + "type": "object", + "properties": { + "availability": { + "type": "string", + "description": "The availability of the product." + }, + "price": { + "$ref": "Price", + "description": "The price of the product." + }, + "quantity": { + "type": "integer", + "description": "The quantity of the product. Must be equal to or greater than zero. Supported only for local products.", + "format": "uint32" + }, + "salePrice": { + "$ref": "Price", + "description": "The sale price of the product. Mandatory if sale_price_effective_date is defined." + }, + "salePriceEffectiveDate": { + "type": "string", + "description": "A date range represented by a pair of ISO 8601 dates separated by a space, comma, or slash. Both dates might be specified as 'null' if undecided." + } + } + }, + "InventorySetResponse": { + "id": "InventorySetResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#inventorySetResponse\".", + "default": "content#inventorySetResponse" + } + } + }, + "LoyaltyPoints": { + "id": "LoyaltyPoints", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters." + }, + "pointsValue": { + "type": "string", + "description": "The retailer's loyalty points in absolute value.", + "format": "int64" + }, + "ratio": { + "type": "number", + "description": "The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.", + "format": "double" + } + } + }, + "Price": { + "id": "Price", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency of the price." + }, + "value": { + "type": "string", + "description": "The price represented as a number." + } + } + }, + "Product": { + "id": "Product", + "type": "object", + "description": "Product data.", + "properties": { + "additionalImageLinks": { + "type": "array", + "description": "Additional URLs of images of the item.", + "items": { + "type": "string" + } + }, + "adult": { + "type": "boolean", + "description": "Set to true if the item is targeted towards adults." + }, + "adwordsGrouping": { + "type": "string", + "description": "Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise." + }, + "adwordsLabels": { + "type": "array", + "description": "Similar to adwords_grouping, but only works on CPC.", + "items": { + "type": "string" + } + }, + "adwordsRedirect": { + "type": "string", + "description": "Allows advertisers to override the item URL when the product is shown within the context of Product Ads." + }, + "ageGroup": { + "type": "string", + "description": "Target age group of the item." + }, + "availability": { + "type": "string", + "description": "Availability status of the item." + }, + "availabilityDate": { + "type": "string", + "description": "The day a pre-ordered product becomes available for delivery, in ISO 8601 format." + }, + "brand": { + "type": "string", + "description": "Brand of the item." + }, + "channel": { + "type": "string", + "description": "The item's channel (online or local).", + "annotations": { + "required": [ + "content.products.insert" + ] + } + }, + "color": { + "type": "string", + "description": "Color of the item." + }, + "condition": { + "type": "string", + "description": "Condition or state of the item." + }, + "contentLanguage": { + "type": "string", + "description": "The two-letter ISO 639-1 language code for the item.", + "annotations": { + "required": [ + "content.products.insert" + ] + } + }, + "customAttributes": { + "type": "array", + "description": "A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { \"name\": \"size type\", \"type\": \"text\", \"value\": \"regular\" }). This is useful for submitting attributes not explicitly exposed by the API.", + "items": { + "$ref": "ProductCustomAttribute" + } + }, + "customGroups": { + "type": "array", + "description": "A list of custom (merchant-provided) custom attribute groups.", + "items": { + "$ref": "ProductCustomGroup" + } + }, + "customLabel0": { + "type": "string", + "description": "Custom label 0 for custom grouping of items in a Shopping campaign." + }, + "customLabel1": { + "type": "string", + "description": "Custom label 1 for custom grouping of items in a Shopping campaign." + }, + "customLabel2": { + "type": "string", + "description": "Custom label 2 for custom grouping of items in a Shopping campaign." + }, + "customLabel3": { + "type": "string", + "description": "Custom label 3 for custom grouping of items in a Shopping campaign." + }, + "customLabel4": { + "type": "string", + "description": "Custom label 4 for custom grouping of items in a Shopping campaign." + }, + "description": { + "type": "string", + "description": "Description of the item." + }, + "destinations": { + "type": "array", + "description": "Specifies the intended destinations for the product.", + "items": { + "$ref": "ProductDestination" + } + }, + "displayAdsId": { + "type": "string", + "description": "An identifier for an item for dynamic remarketing campaigns." + }, + "displayAdsLink": { + "type": "string", + "description": "URL directly to your item's landing page for dynamic remarketing campaigns." + }, + "displayAdsSimilarIds": { + "type": "array", + "description": "Advertiser-specified recommendations.", + "items": { + "type": "string" + } + }, + "displayAdsTitle": { + "type": "string", + "description": "Title of an item for dynamic remarketing campaigns." + }, + "displayAdsValue": { + "type": "number", + "description": "Offer margin for dynamic remarketing campaigns.", + "format": "double" + }, + "energyEfficiencyClass": { + "type": "string", + "description": "The energy efficiency class as defined in EU directive 2010/30/EU." + }, + "expirationDate": { + "type": "string", + "description": "Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future." + }, + "gender": { + "type": "string", + "description": "Target gender of the item." + }, + "googleProductCategory": { + "type": "string", + "description": "Google's category of the item (see Google product taxonomy)." + }, + "gtin": { + "type": "string", + "description": "Global Trade Item Number (GTIN) of the item." + }, + "id": { + "type": "string", + "description": "The REST id of the product." + }, + "identifierExists": { + "type": "boolean", + "description": "False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada." + }, + "imageLink": { + "type": "string", + "description": "URL of an image of the item." + }, + "installment": { + "$ref": "ProductInstallment", + "description": "Number and amount of installments to pay for an item. Brazil only." + }, + "isBundle": { + "type": "boolean", + "description": "Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price." + }, + "itemGroupId": { + "type": "string", + "description": "Shared identifier for all variants of the same product." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#product\".", + "default": "content#product" + }, + "link": { + "type": "string", + "description": "URL directly linking to your item's page on your website." + }, + "loyaltyPoints": { + "$ref": "LoyaltyPoints", + "description": "Loyalty points that users receive after purchasing the item. Japan only." + }, + "material": { + "type": "string", + "description": "The material of which the item is made." + }, + "mobileLink": { + "type": "string", + "description": "Link to a mobile-optimized version of the landing page." + }, + "mpn": { + "type": "string", + "description": "Manufacturer Part Number (MPN) of the item." + }, + "multipack": { + "type": "string", + "description": "The number of identical products in a merchant-defined multipack.", + "format": "int64" + }, + "offerId": { + "type": "string", + "description": "An identifier of the item.", + "annotations": { + "required": [ + "content.products.insert" + ] + } + }, + "onlineOnly": { + "type": "boolean", + "description": "Whether an item is available for purchase only online." + }, + "pattern": { + "type": "string", + "description": "The item's pattern (e.g. polka dots)." + }, + "price": { + "$ref": "Price", + "description": "Price of the item." + }, + "productType": { + "type": "string", + "description": "Your category of the item (formatted as in product feeds specification)." + }, + "salePrice": { + "$ref": "Price", + "description": "Advertised sale price of the item." + }, + "salePriceEffectiveDate": { + "type": "string", + "description": "Date range during which the item is on sale (see product feed specifications)." + }, + "shipping": { + "type": "array", + "description": "Shipping rules.", + "items": { + "$ref": "ProductShipping" + } + }, + "shippingHeight": { + "$ref": "ProductShippingDimension", + "description": "Height of the item for shipping." + }, + "shippingLabel": { + "type": "string", + "description": "The shipping label of the product, used to group product in account-level shipping rules." + }, + "shippingLength": { + "$ref": "ProductShippingDimension", + "description": "Length of the item for shipping." + }, + "shippingWeight": { + "$ref": "ProductShippingWeight", + "description": "Weight of the item for shipping." + }, + "shippingWidth": { + "$ref": "ProductShippingDimension", + "description": "Width of the item for shipping." + }, + "sizeSystem": { + "type": "string", + "description": "System in which the size is specified. Recommended for apparel items." + }, + "sizeType": { + "type": "string", + "description": "The cut of the item. Recommended for apparel items." + }, + "sizes": { + "type": "array", + "description": "Size of the item.", + "items": { + "type": "string" + } + }, + "targetCountry": { + "type": "string", + "description": "The two-letter ISO 3166 country code for the item.", + "annotations": { + "required": [ + "content.products.insert" + ] + } + }, + "taxes": { + "type": "array", + "description": "Tax information.", + "items": { + "$ref": "ProductTax" + } + }, + "title": { + "type": "string", + "description": "Title of the item." + }, + "unitPricingBaseMeasure": { + "$ref": "ProductUnitPricingBaseMeasure", + "description": "The preference of the denominator of the unit price." + }, + "unitPricingMeasure": { + "$ref": "ProductUnitPricingMeasure", + "description": "The measure and dimension of an item." + }, + "validatedDestinations": { + "type": "array", + "description": "The read-only list of intended destinations which passed validation.", + "items": { + "type": "string" + } + }, + "warnings": { + "type": "array", + "description": "Read-only warnings.", + "items": { + "$ref": "Error" + } + } + } + }, + "ProductCustomAttribute": { + "id": "ProductCustomAttribute", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the attribute. Underscores will be replaced by spaces upon insertion." + }, + "type": { + "type": "string", + "description": "The type of the attribute." + }, + "unit": { + "type": "string", + "description": "Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT." + }, + "value": { + "type": "string", + "description": "The value of the attribute." + } + } + }, + "ProductCustomGroup": { + "id": "ProductCustomGroup", + "type": "object", + "properties": { + "attributes": { + "type": "array", + "description": "The sub-attributes.", + "items": { + "$ref": "ProductCustomAttribute" + } + }, + "name": { + "type": "string", + "description": "The name of the group. Underscores will be replaced by spaces upon insertion." + } + } + }, + "ProductDestination": { + "id": "ProductDestination", + "type": "object", + "properties": { + "destinationName": { + "type": "string", + "description": "The name of the destination." + }, + "intention": { + "type": "string", + "description": "Whether the destination is required, excluded or should be validated." + } + } + }, + "ProductInstallment": { + "id": "ProductInstallment", + "type": "object", + "properties": { + "amount": { + "$ref": "Price", + "description": "The amount the buyer has to pay per month." + }, + "months": { + "type": "string", + "description": "The number of installments the buyer has to pay.", + "format": "int64" + } + } + }, + "ProductShipping": { + "id": "ProductShipping", + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "The two-letter ISO 3166 country code for the country to which an item will ship." + }, + "locationGroupName": { + "type": "string", + "description": "The location where the shipping is applicable, represented by a location group name." + }, + "locationId": { + "type": "string", + "description": "The numeric id of a location that the shipping rate applies to as defined in the AdWords API.", + "format": "int64" + }, + "postalCode": { + "type": "string", + "description": "The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length." + }, + "price": { + "$ref": "Price", + "description": "Fixed shipping price, represented as a number." + }, + "region": { + "type": "string", + "description": "The geographic region to which a shipping rate applies (e.g. zip code)." + }, + "service": { + "type": "string", + "description": "A free-form description of the service class or delivery speed." + } + } + }, + "ProductShippingDimension": { + "id": "ProductShippingDimension", + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "The unit of value.\n\nAcceptable values are: \n- \"cm\" \n- \"in\"" + }, + "value": { + "type": "number", + "description": "The dimension of the product used to calculate the shipping cost of the item.", + "format": "double" + } + } + }, + "ProductShippingWeight": { + "id": "ProductShippingWeight", + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "The unit of value." + }, + "value": { + "type": "number", + "description": "The weight of the product used to calculate the shipping cost of the item.", + "format": "double" + } + } + }, + "ProductStatus": { + "id": "ProductStatus", + "type": "object", + "description": "The status of a product, i.e., information about a product computed asynchronously by the data quality analysis.", + "properties": { + "creationDate": { + "type": "string", + "description": "Date on which the item has been created, in ISO 8601 format." + }, + "dataQualityIssues": { + "type": "array", + "description": "A list of data quality issues associated with the product.", + "items": { + "$ref": "ProductStatusDataQualityIssue" + } + }, + "destinationStatuses": { + "type": "array", + "description": "The intended destinations for the product.", + "items": { + "$ref": "ProductStatusDestinationStatus" + } + }, + "googleExpirationDate": { + "type": "string", + "description": "Date on which the item expires in Google Shopping, in ISO 8601 format." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productStatus\".", + "default": "content#productStatus" + }, + "lastUpdateDate": { + "type": "string", + "description": "Date on which the item has been last updated, in ISO 8601 format." + }, + "link": { + "type": "string", + "description": "The link to the product." + }, + "productId": { + "type": "string", + "description": "The id of the product for which status is reported." + }, + "title": { + "type": "string", + "description": "The title of the product." + } + } + }, + "ProductStatusDataQualityIssue": { + "id": "ProductStatusDataQualityIssue", + "type": "object", + "properties": { + "detail": { + "type": "string", + "description": "A more detailed error string." + }, + "fetchStatus": { + "type": "string", + "description": "The fetch status for landing_page_errors." + }, + "id": { + "type": "string", + "description": "The id of the data quality issue." + }, + "location": { + "type": "string", + "description": "The attribute name that is relevant for the issue." + }, + "severity": { + "type": "string", + "description": "The severity of the data quality issue." + }, + "timestamp": { + "type": "string", + "description": "The time stamp of the data quality issue." + }, + "valueOnLandingPage": { + "type": "string", + "description": "The value of that attribute that was found on the landing page" + }, + "valueProvided": { + "type": "string", + "description": "The value the attribute had at time of evaluation." + } + } + }, + "ProductStatusDestinationStatus": { + "id": "ProductStatusDestinationStatus", + "type": "object", + "properties": { + "approvalStatus": { + "type": "string", + "description": "The destination's approval status." + }, + "destination": { + "type": "string", + "description": "The name of the destination" + }, + "intention": { + "type": "string", + "description": "Whether the destination is required, excluded, selected by default or should be validated." + } + } + }, + "ProductTax": { + "id": "ProductTax", + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "The country within which the item is taxed, specified with a two-letter ISO 3166 country code." + }, + "locationId": { + "type": "string", + "description": "The numeric id of a location that the tax rate applies to as defined in the AdWords API.", + "format": "int64" + }, + "postalCode": { + "type": "string", + "description": "The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*." + }, + "rate": { + "type": "number", + "description": "The percentage of tax rate that applies to the item price.", + "format": "double" + }, + "region": { + "type": "string", + "description": "The geographic region to which the tax rate applies." + }, + "taxShip": { + "type": "boolean", + "description": "Set to true if tax is charged on shipping." + } + } + }, + "ProductUnitPricingBaseMeasure": { + "id": "ProductUnitPricingBaseMeasure", + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "The unit of the denominator." + }, + "value": { + "type": "string", + "description": "The denominator of the unit price.", + "format": "int64" + } + } + }, + "ProductUnitPricingMeasure": { + "id": "ProductUnitPricingMeasure", + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "The unit of the measure." + }, + "value": { + "type": "number", + "description": "The measure of an item.", + "format": "double" + } + } + }, + "ProductsCustomBatchRequest": { + "id": "ProductsCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "ProductsCustomBatchRequestEntry" + } + } + } + }, + "ProductsCustomBatchRequestEntry": { + "id": "ProductsCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch products request.", + "properties": { + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The product to insert. Only required if the method is insert." + }, + "productId": { + "type": "string", + "description": "The ID of the product to get or delete. Only defined if the method is get or delete." + } + } + }, + "ProductsCustomBatchResponse": { + "id": "ProductsCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "ProductsCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productsCustomBatchResponse\".", + "default": "content#productsCustomBatchResponse" + } + } + }, + "ProductsCustomBatchResponseEntry": { + "id": "ProductsCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch products response.", + "properties": { + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors defined if and only if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productsCustomBatchResponseEntry\".", + "default": "content#productsCustomBatchResponseEntry" + }, + "product": { + "$ref": "Product", + "description": "The inserted product. Only defined if the method is insert and if the request was successful." + } + } + }, + "ProductsListResponse": { + "id": "ProductsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productsListResponse\".", + "default": "content#productsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of products." + }, + "resources": { + "type": "array", + "items": { + "$ref": "Product" + } + } + } + }, + "ProductstatusesCustomBatchRequest": { + "id": "ProductstatusesCustomBatchRequest", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "ProductstatusesCustomBatchRequestEntry" + } + } + } + }, + "ProductstatusesCustomBatchRequestEntry": { + "id": "ProductstatusesCustomBatchRequestEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch productstatuses request.", + "properties": { + "batchId": { + "type": "integer", + "description": "An entry ID, unique within the batch request.", + "format": "uint32" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "format": "uint64" + }, + "method": { + "type": "string" + }, + "productId": { + "type": "string", + "description": "The ID of the product whose status to get." + } + } + }, + "ProductstatusesCustomBatchResponse": { + "id": "ProductstatusesCustomBatchResponse", + "type": "object", + "properties": { + "entries": { + "type": "array", + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "ProductstatusesCustomBatchResponseEntry" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productstatusesCustomBatchResponse\".", + "default": "content#productstatusesCustomBatchResponse" + } + } + }, + "ProductstatusesCustomBatchResponseEntry": { + "id": "ProductstatusesCustomBatchResponseEntry", + "type": "object", + "description": "A batch entry encoding a single non-batch productstatuses response.", + "properties": { + "batchId": { + "type": "integer", + "description": "The ID of the request entry this entry responds to.", + "format": "uint32" + }, + "errors": { + "$ref": "Errors", + "description": "A list of errors, if the request failed." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productstatusesCustomBatchResponseEntry\".", + "default": "content#productstatusesCustomBatchResponseEntry" + }, + "productStatus": { + "$ref": "ProductStatus", + "description": "The requested product status. Only defined if the request was successful." + } + } + }, + "ProductstatusesListResponse": { + "id": "ProductstatusesListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#productstatusesListResponse\".", + "default": "content#productstatusesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the retrieval of the next page of products statuses." + }, + "resources": { + "type": "array", + "items": { + "$ref": "ProductStatus" + } + } + } + }, + "Weight": { + "id": "Weight", + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "The weight unit.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + }, + "value": { + "type": "string", + "description": "The weight represented as a number.", + "annotations": { + "required": [ + "content.accountshipping.update" + ] + } + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "custombatch": { + "id": "content.accounts.custombatch", + "path": "accounts/batch", + "httpMethod": "POST", + "description": "Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.", + "request": { + "$ref": "AccountsCustomBatchRequest" + }, + "response": { + "$ref": "AccountsCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "delete": { + "id": "content.accounts.delete", + "path": "{merchantId}/accounts/{accountId}", + "httpMethod": "DELETE", + "description": "Deletes a Merchant Center sub-account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.accounts.get", + "path": "{merchantId}/accounts/{accountId}", + "httpMethod": "GET", + "description": "Retrieves a Merchant Center account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "insert": { + "id": "content.accounts.insert", + "path": "{merchantId}/accounts", + "httpMethod": "POST", + "description": "Creates a Merchant Center sub-account.", + "parameters": { + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.accounts.list", + "path": "{merchantId}/accounts", + "httpMethod": "GET", + "description": "Lists the sub-accounts in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of accounts to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "AccountsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "patch": { + "id": "content.accounts.patch", + "path": "{merchantId}/accounts/{accountId}", + "httpMethod": "PATCH", + "description": "Updates a Merchant Center account. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "update": { + "id": "content.accounts.update", + "path": "{merchantId}/accounts/{accountId}", + "httpMethod": "PUT", + "description": "Updates a Merchant Center account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "accountshipping": { + "methods": { + "custombatch": { + "id": "content.accountshipping.custombatch", + "path": "accountshipping/batch", + "httpMethod": "POST", + "description": "Retrieves and updates the shipping settings of multiple accounts in a single request.", + "request": { + "$ref": "AccountshippingCustomBatchRequest" + }, + "response": { + "$ref": "AccountshippingCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.accountshipping.get", + "path": "{merchantId}/accountshipping/{accountId}", + "httpMethod": "GET", + "description": "Retrieves the shipping settings of the account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account shipping settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "response": { + "$ref": "AccountShipping" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.accountshipping.list", + "path": "{merchantId}/accountshipping", + "httpMethod": "GET", + "description": "Lists the shipping settings of the sub-accounts in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of shipping settings to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "AccountshippingListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "patch": { + "id": "content.accountshipping.patch", + "path": "{merchantId}/accountshipping/{accountId}", + "httpMethod": "PATCH", + "description": "Updates the shipping settings of the account. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account shipping settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "AccountShipping" + }, + "response": { + "$ref": "AccountShipping" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "update": { + "id": "content.accountshipping.update", + "path": "{merchantId}/accountshipping/{accountId}", + "httpMethod": "PUT", + "description": "Updates the shipping settings of the account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account shipping settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "AccountShipping" + }, + "response": { + "$ref": "AccountShipping" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "accountstatuses": { + "methods": { + "custombatch": { + "id": "content.accountstatuses.custombatch", + "path": "accountstatuses/batch", + "httpMethod": "POST", + "request": { + "$ref": "AccountstatusesCustomBatchRequest" + }, + "response": { + "$ref": "AccountstatusesCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.accountstatuses.get", + "path": "{merchantId}/accountstatuses/{accountId}", + "httpMethod": "GET", + "description": "Retrieves the status of a Merchant Center account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "response": { + "$ref": "AccountStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.accountstatuses.list", + "path": "{merchantId}/accountstatuses", + "httpMethod": "GET", + "description": "Lists the statuses of the sub-accounts in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of account statuses to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "AccountstatusesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "accounttax": { + "methods": { + "custombatch": { + "id": "content.accounttax.custombatch", + "path": "accounttax/batch", + "httpMethod": "POST", + "description": "Retrieves and updates tax settings of multiple accounts in a single request.", + "request": { + "$ref": "AccounttaxCustomBatchRequest" + }, + "response": { + "$ref": "AccounttaxCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.accounttax.get", + "path": "{merchantId}/accounttax/{accountId}", + "httpMethod": "GET", + "description": "Retrieves the tax settings of the account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account tax settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "response": { + "$ref": "AccountTax" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.accounttax.list", + "path": "{merchantId}/accounttax", + "httpMethod": "GET", + "description": "Lists the tax settings of the sub-accounts in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of tax settings to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "AccounttaxListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "patch": { + "id": "content.accounttax.patch", + "path": "{merchantId}/accounttax/{accountId}", + "httpMethod": "PATCH", + "description": "Updates the tax settings of the account. This method supports patch semantics.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account tax settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "AccountTax" + }, + "response": { + "$ref": "AccountTax" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "update": { + "id": "content.accounttax.update", + "path": "{merchantId}/accounttax/{accountId}", + "httpMethod": "PUT", + "description": "Updates the tax settings of the account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The ID of the account for which to get/update account tax settings.", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "accountId" + ], + "request": { + "$ref": "AccountTax" + }, + "response": { + "$ref": "AccountTax" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "datafeeds": { + "methods": { + "custombatch": { + "id": "content.datafeeds.custombatch", + "path": "datafeeds/batch", + "httpMethod": "POST", + "request": { + "$ref": "DatafeedsCustomBatchRequest" + }, + "response": { + "$ref": "DatafeedsCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "delete": { + "id": "content.datafeeds.delete", + "path": "{merchantId}/datafeeds/{datafeedId}", + "httpMethod": "DELETE", + "description": "Deletes a datafeed from your Merchant Center account.", + "parameters": { + "datafeedId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "datafeedId" + ], + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.datafeeds.get", + "path": "{merchantId}/datafeeds/{datafeedId}", + "httpMethod": "GET", + "description": "Retrieves a datafeed from your Merchant Center account.", + "parameters": { + "datafeedId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "datafeedId" + ], + "response": { + "$ref": "Datafeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "insert": { + "id": "content.datafeeds.insert", + "path": "{merchantId}/datafeeds", + "httpMethod": "POST", + "description": "Registers a datafeed with your Merchant Center account.", + "parameters": { + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId" + ], + "request": { + "$ref": "Datafeed" + }, + "response": { + "$ref": "Datafeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.datafeeds.list", + "path": "{merchantId}/datafeeds", + "httpMethod": "GET", + "description": "Lists the datafeeds in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of products to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "DatafeedsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "patch": { + "id": "content.datafeeds.patch", + "path": "{merchantId}/datafeeds/{datafeedId}", + "httpMethod": "PATCH", + "description": "Updates a datafeed of your Merchant Center account. This method supports patch semantics.", + "parameters": { + "datafeedId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "datafeedId" + ], + "request": { + "$ref": "Datafeed" + }, + "response": { + "$ref": "Datafeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "update": { + "id": "content.datafeeds.update", + "path": "{merchantId}/datafeeds/{datafeedId}", + "httpMethod": "PUT", + "description": "Updates a datafeed of your Merchant Center account.", + "parameters": { + "datafeedId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "datafeedId" + ], + "request": { + "$ref": "Datafeed" + }, + "response": { + "$ref": "Datafeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "datafeedstatuses": { + "methods": { + "custombatch": { + "id": "content.datafeedstatuses.custombatch", + "path": "datafeedstatuses/batch", + "httpMethod": "POST", + "request": { + "$ref": "DatafeedstatusesCustomBatchRequest" + }, + "response": { + "$ref": "DatafeedstatusesCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.datafeedstatuses.get", + "path": "{merchantId}/datafeedstatuses/{datafeedId}", + "httpMethod": "GET", + "description": "Retrieves the status of a datafeed from your Merchant Center account.", + "parameters": { + "datafeedId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + }, + "merchantId": { + "type": "string", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "datafeedId" + ], + "response": { + "$ref": "DatafeedStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.datafeedstatuses.list", + "path": "{merchantId}/datafeedstatuses", + "httpMethod": "GET", + "description": "Lists the statuses of the datafeeds in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of products to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "DatafeedstatusesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "inventory": { + "methods": { + "custombatch": { + "id": "content.inventory.custombatch", + "path": "inventory/batch", + "httpMethod": "POST", + "description": "Updates price and availability for multiple products or stores in a single request.", + "request": { + "$ref": "InventoryCustomBatchRequest" + }, + "response": { + "$ref": "InventoryCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "set": { + "id": "content.inventory.set", + "path": "{merchantId}/inventory/{storeCode}/products/{productId}", + "httpMethod": "POST", + "description": "Updates price and availability of a product in your Merchant Center account.", + "parameters": { + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "productId": { + "type": "string", + "description": "The ID of the product for which to update price and availability.", + "required": true, + "location": "path" + }, + "storeCode": { + "type": "string", + "description": "The code of the store for which to update price and availability. Use online to update price and availability of an online product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "storeCode", + "productId" + ], + "request": { + "$ref": "InventorySetRequest" + }, + "response": { + "$ref": "InventorySetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "products": { + "methods": { + "custombatch": { + "id": "content.products.custombatch", + "path": "products/batch", + "httpMethod": "POST", + "description": "Retrieves, inserts, and deletes multiple products in a single request.", + "parameters": { + "dryRun": { + "type": "boolean", + "description": "Flag to run the request in dry-run mode.", + "location": "query" + } + }, + "request": { + "$ref": "ProductsCustomBatchRequest" + }, + "response": { + "$ref": "ProductsCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "delete": { + "id": "content.products.delete", + "path": "{merchantId}/products/{productId}", + "httpMethod": "DELETE", + "description": "Deletes a product from your Merchant Center account.", + "parameters": { + "dryRun": { + "type": "boolean", + "description": "Flag to run the request in dry-run mode.", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "productId": { + "type": "string", + "description": "The ID of the product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "productId" + ], + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.products.get", + "path": "{merchantId}/products/{productId}", + "httpMethod": "GET", + "description": "Retrieves a product from your Merchant Center account.", + "parameters": { + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "productId": { + "type": "string", + "description": "The ID of the product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "productId" + ], + "response": { + "$ref": "Product" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "insert": { + "id": "content.products.insert", + "path": "{merchantId}/products", + "httpMethod": "POST", + "description": "Uploads a product to your Merchant Center account.", + "parameters": { + "dryRun": { + "type": "boolean", + "description": "Flag to run the request in dry-run mode.", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + } + }, + "parameterOrder": [ + "merchantId" + ], + "request": { + "$ref": "Product" + }, + "response": { + "$ref": "Product" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.products.list", + "path": "{merchantId}/products", + "httpMethod": "GET", + "description": "Lists the products in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of products to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "ProductsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "productstatuses": { + "methods": { + "custombatch": { + "id": "content.productstatuses.custombatch", + "path": "productstatuses/batch", + "httpMethod": "POST", + "description": "Gets the statuses of multiple products in a single request.", + "request": { + "$ref": "ProductstatusesCustomBatchRequest" + }, + "response": { + "$ref": "ProductstatusesCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "id": "content.productstatuses.get", + "path": "{merchantId}/productstatuses/{productId}", + "httpMethod": "GET", + "description": "Gets the status of a product from your Merchant Center account.", + "parameters": { + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "productId": { + "type": "string", + "description": "The ID of the product.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "merchantId", + "productId" + ], + "response": { + "$ref": "ProductStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "id": "content.productstatuses.list", + "path": "{merchantId}/productstatuses", + "httpMethod": "GET", + "description": "Lists the statuses of the products in your Merchant Center account.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of product statuses to return in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "merchantId": { + "type": "string", + "description": "The ID of the managing account.", + "required": true, + "format": "uint64", + "location": "path" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "merchantId" + ], + "response": { + "$ref": "ProductstatusesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + } + } +} diff --git a/etc/api/coordinate/v1/coordinate-api.json b/etc/api/coordinate/v1/coordinate-api.json new file mode 100644 index 0000000000..958af3154d --- /dev/null +++ b/etc/api/coordinate/v1/coordinate-api.json @@ -0,0 +1,1191 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Oe1OM8HbjTHLlKoRM5huCxnk-hs\"", + "discoveryVersion": "v1", + "id": "coordinate:v1", + "name": "coordinate", + "version": "v1", + "revision": "20141215", + "title": "Google Maps Coordinate API", + "description": "Lets you view and manage jobs in a Coordinate team.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/coordinate/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/coordinate/v1/", + "basePath": "/coordinate/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "coordinate/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/coordinate": { + "description": "View and manage your Google Maps Coordinate jobs" + }, + "https://www.googleapis.com/auth/coordinate.readonly": { + "description": "View your Google Coordinate jobs" + } + } + } + }, + "schemas": { + "CustomField": { + "id": "CustomField", + "type": "object", + "description": "Custom field.", + "properties": { + "customFieldId": { + "type": "string", + "description": "Custom field id.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies this object as a custom field.", + "default": "coordinate#customField" + }, + "value": { + "type": "string", + "description": "Custom field value." + } + } + }, + "CustomFieldDef": { + "id": "CustomFieldDef", + "type": "object", + "description": "Custom field definition.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the field is enabled." + }, + "enumitems": { + "type": "array", + "description": "List of enum items for this custom field. Populated only if the field type is enum. Enum fields appear as 'lists' in the Coordinate web and mobile UI.", + "items": { + "$ref": "EnumItemDef" + } + }, + "id": { + "type": "string", + "description": "Custom field id.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies this object as a custom field definition.", + "default": "coordinate#customFieldDef" + }, + "name": { + "type": "string", + "description": "Custom field name." + }, + "requiredForCheckout": { + "type": "boolean", + "description": "Whether the field is required for checkout." + }, + "type": { + "type": "string", + "description": "Custom field type." + } + } + }, + "CustomFieldDefListResponse": { + "id": "CustomFieldDefListResponse", + "type": "object", + "description": "Collection of custom field definitions for a team.", + "properties": { + "items": { + "type": "array", + "description": "Collection of custom field definitions in a team.", + "items": { + "$ref": "CustomFieldDef" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a collection of custom field definitions in a team.", + "default": "coordinate#customFieldDefList" + } + } + }, + "CustomFields": { + "id": "CustomFields", + "type": "object", + "description": "Collection of custom fields.", + "properties": { + "customField": { + "type": "array", + "description": "Collection of custom fields.", + "items": { + "$ref": "CustomField" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a collection of custom fields.", + "default": "coordinate#customFields" + } + } + }, + "EnumItemDef": { + "id": "EnumItemDef", + "type": "object", + "description": "Enum Item definition.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the enum item is active. Jobs may contain inactive enum values; however, setting an enum to an inactive value when creating or updating a job will result in a 500 error." + }, + "kind": { + "type": "string", + "description": "Identifies this object as an enum item definition.", + "default": "coordinate#enumItemDef" + }, + "value": { + "type": "string", + "description": "Custom field value." + } + } + }, + "Job": { + "id": "Job", + "type": "object", + "description": "A job.", + "properties": { + "id": { + "type": "string", + "description": "Job id.", + "format": "uint64" + }, + "jobChange": { + "type": "array", + "description": "List of job changes since it was created. The first change corresponds to the state of the job when it was created.", + "items": { + "$ref": "JobChange" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a job.", + "default": "coordinate#job" + }, + "state": { + "$ref": "JobState", + "description": "Current job state." + } + } + }, + "JobChange": { + "id": "JobChange", + "type": "object", + "description": "Change to a job. For example assigning the job to a different worker.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies this object as a job change.", + "default": "coordinate#jobChange" + }, + "state": { + "$ref": "JobState", + "description": "Change applied to the job. Only the fields that were changed are set." + }, + "timestamp": { + "type": "string", + "description": "Time at which this change was applied.", + "format": "uint64" + } + } + }, + "JobListResponse": { + "id": "JobListResponse", + "type": "object", + "description": "Response from a List Jobs request.", + "properties": { + "items": { + "type": "array", + "description": "Jobs in the collection.", + "items": { + "$ref": "Job" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a list of jobs.", + "default": "coordinate#jobList" + }, + "nextPageToken": { + "type": "string", + "description": "A token to provide to get the next page of results." + } + } + }, + "JobState": { + "id": "JobState", + "type": "object", + "description": "Current state of a job.", + "properties": { + "assignee": { + "type": "string", + "description": "Email address of the assignee, or the string \"DELETED_USER\" if the account is no longer available." + }, + "customFields": { + "$ref": "CustomFields", + "description": "Custom fields." + }, + "customerName": { + "type": "string", + "description": "Customer name." + }, + "customerPhoneNumber": { + "type": "string", + "description": "Customer phone number." + }, + "kind": { + "type": "string", + "description": "Identifies this object as a job state.", + "default": "coordinate#jobState" + }, + "location": { + "$ref": "Location", + "description": "Job location." + }, + "note": { + "type": "array", + "description": "Note added to the job.", + "items": { + "type": "string" + } + }, + "progress": { + "type": "string", + "description": "Job progress." + }, + "title": { + "type": "string", + "description": "Job title." + } + } + }, + "Location": { + "id": "Location", + "type": "object", + "description": "Location of a job.", + "properties": { + "addressLine": { + "type": "array", + "description": "Address.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a location.", + "default": "coordinate#location" + }, + "lat": { + "type": "number", + "description": "Latitude.", + "format": "double" + }, + "lng": { + "type": "number", + "description": "Longitude.", + "format": "double" + } + } + }, + "LocationListResponse": { + "id": "LocationListResponse", + "type": "object", + "description": "Response from a List Locations request.", + "properties": { + "items": { + "type": "array", + "description": "Locations in the collection.", + "items": { + "$ref": "LocationRecord" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a list of locations.", + "default": "coordinate#locationList" + }, + "nextPageToken": { + "type": "string", + "description": "A token to provide to get the next page of results." + }, + "tokenPagination": { + "$ref": "TokenPagination", + "description": "Pagination information for token pagination." + } + } + }, + "LocationRecord": { + "id": "LocationRecord", + "type": "object", + "description": "Recorded location of a worker.", + "properties": { + "collectionTime": { + "type": "string", + "description": "The collection time in milliseconds since the epoch.", + "format": "int64" + }, + "confidenceRadius": { + "type": "number", + "description": "The location accuracy in meters. This is the radius of a 95% confidence interval around the location measurement.", + "format": "double" + }, + "kind": { + "type": "string", + "description": "Identifies this object as a location.", + "default": "coordinate#locationRecord" + }, + "latitude": { + "type": "number", + "description": "Latitude.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "Longitude.", + "format": "double" + } + } + }, + "Schedule": { + "id": "Schedule", + "type": "object", + "description": "Job schedule.", + "properties": { + "allDay": { + "type": "boolean", + "description": "Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true." + }, + "duration": { + "type": "string", + "description": "Job duration in milliseconds.", + "format": "uint64" + }, + "endTime": { + "type": "string", + "description": "Scheduled end time in milliseconds since epoch.", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Identifies this object as a job schedule.", + "default": "coordinate#schedule" + }, + "startTime": { + "type": "string", + "description": "Scheduled start time in milliseconds since epoch.", + "format": "uint64" + } + } + }, + "Team": { + "id": "Team", + "type": "object", + "description": "A Coordinate team.", + "properties": { + "id": { + "type": "string", + "description": "Team id, as found in a coordinate team url e.g. https://coordinate.google.com/f/xyz where \"xyz\" is the team id." + }, + "kind": { + "type": "string", + "description": "Identifies this object as a team.", + "default": "coordinate#team" + }, + "name": { + "type": "string", + "description": "Team name" + } + } + }, + "TeamListResponse": { + "id": "TeamListResponse", + "type": "object", + "description": "Response from a List Teams request.", + "properties": { + "items": { + "type": "array", + "description": "Teams in the collection.", + "items": { + "$ref": "Team" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a list of teams.", + "default": "coordinate#teamList" + } + } + }, + "TokenPagination": { + "id": "TokenPagination", + "type": "object", + "description": "Pagination information.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies this object as pagination information.", + "default": "coordinate#tokenPagination" + }, + "nextPageToken": { + "type": "string", + "description": "A token to provide to get the next page of results." + }, + "previousPageToken": { + "type": "string", + "description": "A token to provide to get the previous page of results." + } + } + }, + "Worker": { + "id": "Worker", + "type": "object", + "description": "A worker in a Coordinate team.", + "properties": { + "id": { + "type": "string", + "description": "Worker email address. If a worker has been deleted from your team, the email address will appear as DELETED_USER." + }, + "kind": { + "type": "string", + "description": "Identifies this object as a worker.", + "default": "coordinate#worker" + } + } + }, + "WorkerListResponse": { + "id": "WorkerListResponse", + "type": "object", + "description": "Response from a List Workers request.", + "properties": { + "items": { + "type": "array", + "description": "Workers in the collection.", + "items": { + "$ref": "Worker" + } + }, + "kind": { + "type": "string", + "description": "Identifies this object as a list of workers.", + "default": "coordinate#workerList" + } + } + } + }, + "resources": { + "customFieldDef": { + "methods": { + "list": { + "id": "coordinate.customFieldDef.list", + "path": "teams/{teamId}/custom_fields", + "httpMethod": "GET", + "description": "Retrieves a list of custom field definitions for a team.", + "parameters": { + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId" + ], + "response": { + "$ref": "CustomFieldDefListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + } + } + }, + "jobs": { + "methods": { + "get": { + "id": "coordinate.jobs.get", + "path": "teams/{teamId}/jobs/{jobId}", + "httpMethod": "GET", + "description": "Retrieves a job, including all the changes made to the job.", + "parameters": { + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + }, + "insert": { + "id": "coordinate.jobs.insert", + "path": "teams/{teamId}/jobs", + "httpMethod": "POST", + "description": "Inserts a new job. Only the state field of the job should be set.", + "parameters": { + "address": { + "type": "string", + "description": "Job address as newline (Unix) separated string", + "required": true, + "location": "query" + }, + "assignee": { + "type": "string", + "description": "Assignee email address, or empty string to unassign.", + "location": "query" + }, + "customField": { + "type": "string", + "description": "Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500.", + "repeated": true, + "location": "query" + }, + "customerName": { + "type": "string", + "description": "Customer name", + "location": "query" + }, + "customerPhoneNumber": { + "type": "string", + "description": "Customer phone number", + "location": "query" + }, + "lat": { + "type": "number", + "description": "The latitude coordinate of this job's location.", + "required": true, + "format": "double", + "location": "query" + }, + "lng": { + "type": "number", + "description": "The longitude coordinate of this job's location.", + "required": true, + "format": "double", + "location": "query" + }, + "note": { + "type": "string", + "description": "Job note as newline (Unix) separated string", + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + }, + "title": { + "type": "string", + "description": "Job title", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "teamId", + "address", + "lat", + "lng", + "title" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate" + ] + }, + "list": { + "id": "coordinate.jobs.list", + "path": "teams/{teamId}/jobs", + "httpMethod": "GET", + "description": "Retrieves jobs created or modified since the given timestamp.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return in one page.", + "format": "uint32", + "location": "query" + }, + "minModifiedTimestampMs": { + "type": "string", + "description": "Minimum time a job was modified in milliseconds since epoch.", + "format": "uint64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token", + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId" + ], + "response": { + "$ref": "JobListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + }, + "patch": { + "id": "coordinate.jobs.patch", + "path": "teams/{teamId}/jobs/{jobId}", + "httpMethod": "PATCH", + "description": "Updates a job. Fields that are set in the job state will be updated. This method supports patch semantics.", + "parameters": { + "address": { + "type": "string", + "description": "Job address as newline (Unix) separated string", + "location": "query" + }, + "assignee": { + "type": "string", + "description": "Assignee email address, or empty string to unassign.", + "location": "query" + }, + "customField": { + "type": "string", + "description": "Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500.", + "repeated": true, + "location": "query" + }, + "customerName": { + "type": "string", + "description": "Customer name", + "location": "query" + }, + "customerPhoneNumber": { + "type": "string", + "description": "Customer phone number", + "location": "query" + }, + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "lat": { + "type": "number", + "description": "The latitude coordinate of this job's location.", + "format": "double", + "location": "query" + }, + "lng": { + "type": "number", + "description": "The longitude coordinate of this job's location.", + "format": "double", + "location": "query" + }, + "note": { + "type": "string", + "description": "Job note as newline (Unix) separated string", + "location": "query" + }, + "progress": { + "type": "string", + "description": "Job progress", + "enum": [ + "COMPLETED", + "IN_PROGRESS", + "NOT_ACCEPTED", + "NOT_STARTED", + "OBSOLETE" + ], + "enumDescriptions": [ + "Completed", + "In progress", + "Not accepted", + "Not started", + "Obsolete" + ], + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + }, + "title": { + "type": "string", + "description": "Job title", + "location": "query" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate" + ] + }, + "update": { + "id": "coordinate.jobs.update", + "path": "teams/{teamId}/jobs/{jobId}", + "httpMethod": "PUT", + "description": "Updates a job. Fields that are set in the job state will be updated.", + "parameters": { + "address": { + "type": "string", + "description": "Job address as newline (Unix) separated string", + "location": "query" + }, + "assignee": { + "type": "string", + "description": "Assignee email address, or empty string to unassign.", + "location": "query" + }, + "customField": { + "type": "string", + "description": "Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500.", + "repeated": true, + "location": "query" + }, + "customerName": { + "type": "string", + "description": "Customer name", + "location": "query" + }, + "customerPhoneNumber": { + "type": "string", + "description": "Customer phone number", + "location": "query" + }, + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "lat": { + "type": "number", + "description": "The latitude coordinate of this job's location.", + "format": "double", + "location": "query" + }, + "lng": { + "type": "number", + "description": "The longitude coordinate of this job's location.", + "format": "double", + "location": "query" + }, + "note": { + "type": "string", + "description": "Job note as newline (Unix) separated string", + "location": "query" + }, + "progress": { + "type": "string", + "description": "Job progress", + "enum": [ + "COMPLETED", + "IN_PROGRESS", + "NOT_ACCEPTED", + "NOT_STARTED", + "OBSOLETE" + ], + "enumDescriptions": [ + "Completed", + "In progress", + "Not accepted", + "Not started", + "Obsolete" + ], + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + }, + "title": { + "type": "string", + "description": "Job title", + "location": "query" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate" + ] + } + } + }, + "location": { + "methods": { + "list": { + "id": "coordinate.location.list", + "path": "teams/{teamId}/workers/{workerEmail}/locations", + "httpMethod": "GET", + "description": "Retrieves a list of locations for a worker.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return in one page.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Continuation token", + "location": "query" + }, + "startTimestampMs": { + "type": "string", + "description": "Start timestamp in milliseconds since the epoch.", + "required": true, + "format": "uint64", + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + }, + "workerEmail": { + "type": "string", + "description": "Worker email address.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId", + "workerEmail", + "startTimestampMs" + ], + "response": { + "$ref": "LocationListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + } + } + }, + "schedule": { + "methods": { + "get": { + "id": "coordinate.schedule.get", + "path": "teams/{teamId}/jobs/{jobId}/schedule", + "httpMethod": "GET", + "description": "Retrieves the schedule for a job.", + "parameters": { + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "response": { + "$ref": "Schedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + }, + "patch": { + "id": "coordinate.schedule.patch", + "path": "teams/{teamId}/jobs/{jobId}/schedule", + "httpMethod": "PATCH", + "description": "Replaces the schedule of a job with the provided schedule. This method supports patch semantics.", + "parameters": { + "allDay": { + "type": "boolean", + "description": "Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.", + "location": "query" + }, + "duration": { + "type": "string", + "description": "Job duration in milliseconds.", + "format": "uint64", + "location": "query" + }, + "endTime": { + "type": "string", + "description": "Scheduled end time in milliseconds since epoch.", + "format": "uint64", + "location": "query" + }, + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "startTime": { + "type": "string", + "description": "Scheduled start time in milliseconds since epoch.", + "format": "uint64", + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "request": { + "$ref": "Schedule" + }, + "response": { + "$ref": "Schedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate" + ] + }, + "update": { + "id": "coordinate.schedule.update", + "path": "teams/{teamId}/jobs/{jobId}/schedule", + "httpMethod": "PUT", + "description": "Replaces the schedule of a job with the provided schedule.", + "parameters": { + "allDay": { + "type": "boolean", + "description": "Whether the job is scheduled for the whole day. Time of day in start/end times is ignored if this is true.", + "location": "query" + }, + "duration": { + "type": "string", + "description": "Job duration in milliseconds.", + "format": "uint64", + "location": "query" + }, + "endTime": { + "type": "string", + "description": "Scheduled end time in milliseconds since epoch.", + "format": "uint64", + "location": "query" + }, + "jobId": { + "type": "string", + "description": "Job number", + "required": true, + "format": "uint64", + "location": "path" + }, + "startTime": { + "type": "string", + "description": "Scheduled start time in milliseconds since epoch.", + "format": "uint64", + "location": "query" + }, + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId", + "jobId" + ], + "request": { + "$ref": "Schedule" + }, + "response": { + "$ref": "Schedule" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate" + ] + } + } + }, + "team": { + "methods": { + "list": { + "id": "coordinate.team.list", + "path": "teams", + "httpMethod": "GET", + "description": "Retrieves a list of teams for a user.", + "parameters": { + "admin": { + "type": "boolean", + "description": "Whether to include teams for which the user has the Admin role.", + "location": "query" + }, + "dispatcher": { + "type": "boolean", + "description": "Whether to include teams for which the user has the Dispatcher role.", + "location": "query" + }, + "worker": { + "type": "boolean", + "description": "Whether to include teams for which the user has the Worker role.", + "location": "query" + } + }, + "response": { + "$ref": "TeamListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + } + } + }, + "worker": { + "methods": { + "list": { + "id": "coordinate.worker.list", + "path": "teams/{teamId}/workers", + "httpMethod": "GET", + "description": "Retrieves a list of workers in a team.", + "parameters": { + "teamId": { + "type": "string", + "description": "Team ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "teamId" + ], + "response": { + "$ref": "WorkerListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/coordinate", + "https://www.googleapis.com/auth/coordinate.readonly" + ] + } + } + } + } +} diff --git a/etc/api/customsearch/v1/customsearch-api.json b/etc/api/customsearch/v1/customsearch-api.json new file mode 100644 index 0000000000..ce5e279ce4 --- /dev/null +++ b/etc/api/customsearch/v1/customsearch-api.json @@ -0,0 +1,814 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/KsgpNVP8dzFmgPzAjDdH7uBJP_M\"", + "discoveryVersion": "v1", + "id": "customsearch:v1", + "name": "customsearch", + "version": "v1", + "revision": "20131205", + "title": "CustomSearch API", + "description": "Lets you search over a website or collection of websites", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/custom-search/v1/using_rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/customsearch/", + "basePath": "/customsearch/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "customsearch/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "atom", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/atom+xml", + "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": { + "Context": { + "id": "Context", + "type": "object", + "properties": { + "facets": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "anchor": { + "type": "string" + }, + "label": { + "type": "string" + }, + "label_with_op": { + "type": "string" + } + } + } + } + }, + "title": { + "type": "string" + } + } + }, + "Promotion": { + "id": "Promotion", + "type": "object", + "properties": { + "bodyLines": { + "type": "array", + "items": { + "type": "object", + "properties": { + "htmlTitle": { + "type": "string" + }, + "link": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + }, + "displayLink": { + "type": "string" + }, + "htmlTitle": { + "type": "string" + }, + "image": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "source": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "link": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "Query": { + "id": "Query", + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "cr": { + "type": "string" + }, + "cref": { + "type": "string" + }, + "cx": { + "type": "string" + }, + "dateRestrict": { + "type": "string" + }, + "disableCnTwTranslation": { + "type": "string" + }, + "exactTerms": { + "type": "string" + }, + "excludeTerms": { + "type": "string" + }, + "fileType": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "gl": { + "type": "string" + }, + "googleHost": { + "type": "string" + }, + "highRange": { + "type": "string" + }, + "hl": { + "type": "string" + }, + "hq": { + "type": "string" + }, + "imgColorType": { + "type": "string" + }, + "imgDominantColor": { + "type": "string" + }, + "imgSize": { + "type": "string" + }, + "imgType": { + "type": "string" + }, + "inputEncoding": { + "type": "string" + }, + "language": { + "type": "string" + }, + "linkSite": { + "type": "string" + }, + "lowRange": { + "type": "string" + }, + "orTerms": { + "type": "string" + }, + "outputEncoding": { + "type": "string" + }, + "relatedSite": { + "type": "string" + }, + "rights": { + "type": "string" + }, + "safe": { + "type": "string" + }, + "searchTerms": { + "type": "string" + }, + "searchType": { + "type": "string" + }, + "siteSearch": { + "type": "string" + }, + "siteSearchFilter": { + "type": "string" + }, + "sort": { + "type": "string" + }, + "startIndex": { + "type": "integer", + "format": "int32" + }, + "startPage": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "totalResults": { + "type": "string", + "format": "int64" + } + } + }, + "Result": { + "id": "Result", + "type": "object", + "properties": { + "cacheId": { + "type": "string" + }, + "displayLink": { + "type": "string" + }, + "fileFormat": { + "type": "string" + }, + "formattedUrl": { + "type": "string" + }, + "htmlFormattedUrl": { + "type": "string" + }, + "htmlSnippet": { + "type": "string" + }, + "htmlTitle": { + "type": "string" + }, + "image": { + "type": "object", + "properties": { + "byteSize": { + "type": "integer", + "format": "int32" + }, + "contextLink": { + "type": "string" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "thumbnailHeight": { + "type": "integer", + "format": "int32" + }, + "thumbnailLink": { + "type": "string" + }, + "thumbnailWidth": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "kind": { + "type": "string", + "default": "customsearch#result" + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "label_with_op": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + }, + "link": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "pagemap": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "snippet": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "Search": { + "id": "Search", + "type": "object", + "properties": { + "context": { + "$ref": "Context" + }, + "items": { + "type": "array", + "items": { + "$ref": "Result" + } + }, + "kind": { + "type": "string", + "default": "customsearch#search" + }, + "promotions": { + "type": "array", + "items": { + "$ref": "Promotion" + } + }, + "queries": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "Query" + } + } + }, + "searchInformation": { + "type": "object", + "properties": { + "formattedSearchTime": { + "type": "string" + }, + "formattedTotalResults": { + "type": "string" + }, + "searchTime": { + "type": "number", + "format": "double" + }, + "totalResults": { + "type": "string", + "format": "int64" + } + } + }, + "spelling": { + "type": "object", + "properties": { + "correctedQuery": { + "type": "string" + }, + "htmlCorrectedQuery": { + "type": "string" + } + } + }, + "url": { + "type": "object", + "properties": { + "template": { + "type": "string", + "default": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json" + }, + "type": { + "type": "string", + "default": "application/json" + } + } + } + } + } + }, + "resources": { + "cse": { + "methods": { + "list": { + "id": "search.cse.list", + "path": "v1", + "httpMethod": "GET", + "description": "Returns metadata about the search performed, metadata about the custom search engine used for the search, and the search results.", + "parameters": { + "c2coff": { + "type": "string", + "description": "Turns off the translation between zh-CN and zh-TW.", + "location": "query" + }, + "cr": { + "type": "string", + "description": "Country restrict(s).", + "location": "query" + }, + "cref": { + "type": "string", + "description": "The URL of a linked custom search engine", + "location": "query" + }, + "cx": { + "type": "string", + "description": "The custom search engine ID to scope this search query", + "location": "query" + }, + "dateRestrict": { + "type": "string", + "description": "Specifies all search results are from a time period", + "location": "query" + }, + "exactTerms": { + "type": "string", + "description": "Identifies a phrase that all documents in the search results must contain", + "location": "query" + }, + "excludeTerms": { + "type": "string", + "description": "Identifies a word or phrase that should not appear in any documents in the search results", + "location": "query" + }, + "fileType": { + "type": "string", + "description": "Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, pdf, ...", + "location": "query" + }, + "filter": { + "type": "string", + "description": "Controls turning on or off the duplicate content filter.", + "enum": [ + "0", + "1" + ], + "enumDescriptions": [ + "Turns off duplicate content filter.", + "Turns on duplicate content filter." + ], + "location": "query" + }, + "gl": { + "type": "string", + "description": "Geolocation of end user.", + "location": "query" + }, + "googlehost": { + "type": "string", + "description": "The local Google domain to use to perform the search.", + "location": "query" + }, + "highRange": { + "type": "string", + "description": "Creates a range in form as_nlo value..as_nhi value and attempts to append it to query", + "location": "query" + }, + "hl": { + "type": "string", + "description": "Sets the user interface language.", + "location": "query" + }, + "hq": { + "type": "string", + "description": "Appends the extra query terms to the query.", + "location": "query" + }, + "imgColorType": { + "type": "string", + "description": "Returns black and white, grayscale, or color images: mono, gray, and color.", + "enum": [ + "color", + "gray", + "mono" + ], + "enumDescriptions": [ + "color", + "gray", + "mono" + ], + "location": "query" + }, + "imgDominantColor": { + "type": "string", + "description": "Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, gray, black and brown.", + "enum": [ + "black", + "blue", + "brown", + "gray", + "green", + "pink", + "purple", + "teal", + "white", + "yellow" + ], + "enumDescriptions": [ + "black", + "blue", + "brown", + "gray", + "green", + "pink", + "purple", + "teal", + "white", + "yellow" + ], + "location": "query" + }, + "imgSize": { + "type": "string", + "description": "Returns images of a specified size, where size can be one of: icon, small, medium, large, xlarge, xxlarge, and huge.", + "enum": [ + "huge", + "icon", + "large", + "medium", + "small", + "xlarge", + "xxlarge" + ], + "enumDescriptions": [ + "huge", + "icon", + "large", + "medium", + "small", + "xlarge", + "xxlarge" + ], + "location": "query" + }, + "imgType": { + "type": "string", + "description": "Returns images of a type, which can be one of: clipart, face, lineart, news, and photo.", + "enum": [ + "clipart", + "face", + "lineart", + "news", + "photo" + ], + "enumDescriptions": [ + "clipart", + "face", + "lineart", + "news", + "photo" + ], + "location": "query" + }, + "linkSite": { + "type": "string", + "description": "Specifies that all search results should contain a link to a particular URL", + "location": "query" + }, + "lowRange": { + "type": "string", + "description": "Creates a range in form as_nlo value..as_nhi value and attempts to append it to query", + "location": "query" + }, + "lr": { + "type": "string", + "description": "The language restriction for the search results", + "enum": [ + "lang_ar", + "lang_bg", + "lang_ca", + "lang_cs", + "lang_da", + "lang_de", + "lang_el", + "lang_en", + "lang_es", + "lang_et", + "lang_fi", + "lang_fr", + "lang_hr", + "lang_hu", + "lang_id", + "lang_is", + "lang_it", + "lang_iw", + "lang_ja", + "lang_ko", + "lang_lt", + "lang_lv", + "lang_nl", + "lang_no", + "lang_pl", + "lang_pt", + "lang_ro", + "lang_ru", + "lang_sk", + "lang_sl", + "lang_sr", + "lang_sv", + "lang_tr", + "lang_zh-CN", + "lang_zh-TW" + ], + "enumDescriptions": [ + "Arabic", + "Bulgarian", + "Catalan", + "Czech", + "Danish", + "German", + "Greek", + "English", + "Spanish", + "Estonian", + "Finnish", + "French", + "Croatian", + "Hungarian", + "Indonesian", + "Icelandic", + "Italian", + "Hebrew", + "Japanese", + "Korean", + "Lithuanian", + "Latvian", + "Dutch", + "Norwegian", + "Polish", + "Portuguese", + "Romanian", + "Russian", + "Slovak", + "Slovenian", + "Serbian", + "Swedish", + "Turkish", + "Chinese (Simplified)", + "Chinese (Traditional)" + ], + "location": "query" + }, + "num": { + "type": "integer", + "description": "Number of search results to return", + "default": "10", + "format": "uint32", + "location": "query" + }, + "orTerms": { + "type": "string", + "description": "Provides additional search terms to check for in a document, where each document in the search results must contain at least one of the additional search terms", + "location": "query" + }, + "q": { + "type": "string", + "description": "Query", + "required": true, + "location": "query" + }, + "relatedSite": { + "type": "string", + "description": "Specifies that all search results should be pages that are related to the specified URL", + "location": "query" + }, + "rights": { + "type": "string", + "description": "Filters based on licensing. Supported values include: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived and combinations of these.", + "location": "query" + }, + "safe": { + "type": "string", + "description": "Search safety level", + "default": "off", + "enum": [ + "high", + "medium", + "off" + ], + "enumDescriptions": [ + "Enables highest level of safe search filtering.", + "Enables moderate safe search filtering.", + "Disables safe search filtering." + ], + "location": "query" + }, + "searchType": { + "type": "string", + "description": "Specifies the search type: image.", + "enum": [ + "image" + ], + "enumDescriptions": [ + "custom image search" + ], + "location": "query" + }, + "siteSearch": { + "type": "string", + "description": "Specifies all search results should be pages from a given site", + "location": "query" + }, + "siteSearchFilter": { + "type": "string", + "description": "Controls whether to include or exclude results from the site named in the as_sitesearch parameter", + "enum": [ + "e", + "i" + ], + "enumDescriptions": [ + "exclude", + "include" + ], + "location": "query" + }, + "sort": { + "type": "string", + "description": "The sort expression to apply to the results", + "location": "query" + }, + "start": { + "type": "integer", + "description": "The index of the first result to return", + "format": "uint32", + "location": "query" + } + }, + "parameterOrder": [ + "q" + ], + "response": { + "$ref": "Search" + } + } + } + } + } +} diff --git a/etc/api/dataflow/v1b4/dataflow-api.json b/etc/api/dataflow/v1b4/dataflow-api.json new file mode 100644 index 0000000000..12c52026bb --- /dev/null +++ b/etc/api/dataflow/v1b4/dataflow-api.json @@ -0,0 +1,69 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/dTcq0rCwnZSU5y5C-0jgoQiaKQA\"", + "discoveryVersion": "v1", + "id": "dataflow:v1b4", + "name": "dataflow", + "version": "v1b4", + "revision": "20141207", + "title": "Google Dataflow API", + "description": "Google Dataflow API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "", + "protocol": "rest", + "baseUrl": "https://dataflow.googleapis.com/", + "basePath": "/", + "rootUrl": "https://dataflow.googleapis.com/", + "servicePath": "", + "batchPath": "batch", + "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" + } + } +} diff --git a/etc/api/dataflow/v1beta3/dataflow-api.json b/etc/api/dataflow/v1beta3/dataflow-api.json new file mode 100644 index 0000000000..9159bc6615 --- /dev/null +++ b/etc/api/dataflow/v1beta3/dataflow-api.json @@ -0,0 +1,1810 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/p23x-gNsMm8R6x-RDoeYGjGvTE0\"", + "discoveryVersion": "v1", + "id": "dataflow:v1beta3", + "name": "dataflow", + "version": "v1beta3", + "revision": "20150130", + "title": "Google Dataflow API", + "description": "Google Dataflow API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dataflow/v1b3/projects/", + "basePath": "/dataflow/v1b3/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dataflow/v1b3/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + } + } + } + }, + "schemas": { + "ApproximateProgress": { + "id": "ApproximateProgress", + "type": "object", + "properties": { + "percentComplete": { + "type": "number", + "format": "float" + }, + "position": { + "$ref": "Position" + }, + "remainingTime": { + "type": "string" + } + } + }, + "AutoscalingSettings": { + "id": "AutoscalingSettings", + "type": "object", + "properties": { + "algorithm": { + "type": "string", + "enum": [ + "AUTOSCALING_ALGORITHM_BASIC", + "AUTOSCALING_ALGORITHM_NONE", + "AUTOSCALING_ALGORITHM_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "maxNumWorkers": { + "type": "integer", + "format": "int32" + } + } + }, + "ComputationTopology": { + "id": "ComputationTopology", + "type": "object", + "properties": { + "computationId": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "StreamLocation" + } + }, + "keyRanges": { + "type": "array", + "items": { + "$ref": "KeyRangeLocation" + } + }, + "outputs": { + "type": "array", + "items": { + "$ref": "StreamLocation" + } + } + } + }, + "DataDiskAssignment": { + "id": "DataDiskAssignment", + "type": "object", + "properties": { + "dataDisks": { + "type": "array", + "items": { + "type": "string" + } + }, + "vmInstance": { + "type": "string" + } + } + }, + "Disk": { + "id": "Disk", + "type": "object", + "properties": { + "diskType": { + "type": "string" + }, + "mountPoint": { + "type": "string" + }, + "sizeGb": { + "type": "integer", + "format": "int32" + } + } + }, + "Environment": { + "id": "Environment", + "type": "object", + "properties": { + "clusterManagerApiService": { + "type": "string" + }, + "dataset": { + "type": "string" + }, + "experiments": { + "type": "array", + "items": { + "type": "string" + } + }, + "sdkPipelineOptions": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "tempStoragePrefix": { + "type": "string" + }, + "userAgent": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "version": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "workerPools": { + "type": "array", + "items": { + "$ref": "WorkerPool" + } + } + } + }, + "FlattenInstruction": { + "id": "FlattenInstruction", + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "InstructionInput" + } + } + } + }, + "GoogleprotobufValue": { + "id": "GoogleprotobufValue", + "type": "any" + }, + "InstructionInput": { + "id": "InstructionInput", + "type": "object", + "properties": { + "outputNum": { + "type": "integer", + "format": "int32" + }, + "producerInstructionIndex": { + "type": "integer", + "format": "int32" + } + } + }, + "InstructionOutput": { + "id": "InstructionOutput", + "type": "object", + "properties": { + "codec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "name": { + "type": "string" + } + } + }, + "Job": { + "id": "Job", + "type": "object", + "properties": { + "createTime": { + "type": "string" + }, + "currentState": { + "type": "string", + "enum": [ + "JOB_STATE_CANCELLED", + "JOB_STATE_DONE", + "JOB_STATE_FAILED", + "JOB_STATE_RUNNING", + "JOB_STATE_STOPPED", + "JOB_STATE_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "currentStateTime": { + "type": "string" + }, + "environment": { + "$ref": "Environment" + }, + "executionInfo": { + "$ref": "JobExecutionInfo" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "projectId": { + "type": "string" + }, + "requestedState": { + "type": "string", + "enum": [ + "JOB_STATE_CANCELLED", + "JOB_STATE_DONE", + "JOB_STATE_FAILED", + "JOB_STATE_RUNNING", + "JOB_STATE_STOPPED", + "JOB_STATE_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "steps": { + "type": "array", + "items": { + "$ref": "Step" + } + }, + "type": { + "type": "string", + "enum": [ + "JOB_TYPE_BATCH", + "JOB_TYPE_STREAMING", + "JOB_TYPE_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "JobExecutionInfo": { + "id": "JobExecutionInfo", + "type": "object", + "properties": { + "stages": { + "type": "object", + "additionalProperties": { + "$ref": "JobExecutionStageInfo" + } + } + } + }, + "JobExecutionStageInfo": { + "id": "JobExecutionStageInfo", + "type": "object", + "properties": { + "stepName": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "JobMessage": { + "id": "JobMessage", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "messageImportance": { + "type": "string", + "enum": [ + "JOB_MESSAGE_DEBUG", + "JOB_MESSAGE_DETAILED", + "JOB_MESSAGE_ERROR", + "JOB_MESSAGE_IMPORTANCE_UNKNOWN", + "JOB_MESSAGE_WARNING" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "messageText": { + "type": "string" + }, + "time": { + "type": "string" + } + } + }, + "JobMetrics": { + "id": "JobMetrics", + "type": "object", + "properties": { + "metricTime": { + "type": "string" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "MetricUpdate" + } + } + } + }, + "KeyRangeLocation": { + "id": "KeyRangeLocation", + "type": "object", + "properties": { + "dataDisk": { + "type": "string" + }, + "deliveryEndpoint": { + "type": "string" + }, + "end": { + "type": "string" + }, + "persistentDirectory": { + "type": "string" + }, + "start": { + "type": "string" + } + } + }, + "LeaseWorkItemRequest": { + "id": "LeaseWorkItemRequest", + "type": "object", + "properties": { + "currentWorkerTime": { + "type": "string" + }, + "requestedLeaseDuration": { + "type": "string" + }, + "workItemTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "workerCapabilities": { + "type": "array", + "items": { + "type": "string" + } + }, + "workerId": { + "type": "string" + } + } + }, + "LeaseWorkItemResponse": { + "id": "LeaseWorkItemResponse", + "type": "object", + "properties": { + "workItems": { + "type": "array", + "items": { + "$ref": "WorkItem" + } + } + } + }, + "ListJobMessagesResponse": { + "id": "ListJobMessagesResponse", + "type": "object", + "properties": { + "jobMessages": { + "type": "array", + "items": { + "$ref": "JobMessage" + } + }, + "nextPageToken": { + "type": "string" + } + } + }, + "ListJobsResponse": { + "id": "ListJobsResponse", + "type": "object", + "properties": { + "jobs": { + "type": "array", + "items": { + "$ref": "Job" + } + }, + "nextPageToken": { + "type": "string" + } + } + }, + "MapTask": { + "id": "MapTask", + "type": "object", + "properties": { + "instructions": { + "type": "array", + "items": { + "$ref": "ParallelInstruction" + } + }, + "stageName": { + "type": "string" + }, + "systemName": { + "type": "string" + } + } + }, + "MetricStructuredName": { + "id": "MetricStructuredName", + "type": "object", + "properties": { + "context": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + } + } + }, + "MetricUpdate": { + "id": "MetricUpdate", + "type": "object", + "properties": { + "cumulative": { + "type": "boolean" + }, + "internal": { + "$ref": "GoogleprotobufValue" + }, + "kind": { + "type": "string" + }, + "meanCount": { + "$ref": "GoogleprotobufValue" + }, + "meanSum": { + "$ref": "GoogleprotobufValue" + }, + "name": { + "$ref": "MetricStructuredName" + }, + "scalar": { + "$ref": "GoogleprotobufValue" + }, + "set": { + "$ref": "GoogleprotobufValue" + }, + "updateTime": { + "type": "string" + } + } + }, + "MultiOutputInfo": { + "id": "MultiOutputInfo", + "type": "object", + "properties": { + "tag": { + "type": "string" + } + } + }, + "Package": { + "id": "Package", + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "ParDoInstruction": { + "id": "ParDoInstruction", + "type": "object", + "properties": { + "input": { + "$ref": "InstructionInput" + }, + "multiOutputInfos": { + "type": "array", + "items": { + "$ref": "MultiOutputInfo" + } + }, + "numOutputs": { + "type": "integer", + "format": "int32" + }, + "sideInputs": { + "type": "array", + "items": { + "$ref": "SideInputInfo" + } + }, + "userFn": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "ParallelInstruction": { + "id": "ParallelInstruction", + "type": "object", + "properties": { + "flatten": { + "$ref": "FlattenInstruction" + }, + "name": { + "type": "string" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "InstructionOutput" + } + }, + "parDo": { + "$ref": "ParDoInstruction" + }, + "partialGroupByKey": { + "$ref": "PartialGroupByKeyInstruction" + }, + "read": { + "$ref": "ReadInstruction" + }, + "systemName": { + "type": "string" + }, + "write": { + "$ref": "WriteInstruction" + } + } + }, + "PartialGroupByKeyInstruction": { + "id": "PartialGroupByKeyInstruction", + "type": "object", + "properties": { + "input": { + "$ref": "InstructionInput" + }, + "inputElementCodec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "Position": { + "id": "Position", + "type": "object", + "properties": { + "byteOffset": { + "type": "string", + "format": "int64" + }, + "end": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "recordIndex": { + "type": "string", + "format": "int64" + }, + "shufflePosition": { + "type": "string" + } + } + }, + "PubsubLocation": { + "id": "PubsubLocation", + "type": "object", + "properties": { + "dropLateData": { + "type": "boolean" + }, + "idLabel": { + "type": "string" + }, + "subscription": { + "type": "string" + }, + "timestampLabel": { + "type": "string" + }, + "topic": { + "type": "string" + } + } + }, + "ReadInstruction": { + "id": "ReadInstruction", + "type": "object", + "properties": { + "source": { + "$ref": "Source" + } + } + }, + "ReportWorkItemStatusRequest": { + "id": "ReportWorkItemStatusRequest", + "type": "object", + "properties": { + "currentWorkerTime": { + "type": "string" + }, + "workItemStatuses": { + "type": "array", + "items": { + "$ref": "WorkItemStatus" + } + }, + "workerId": { + "type": "string" + } + } + }, + "ReportWorkItemStatusResponse": { + "id": "ReportWorkItemStatusResponse", + "type": "object", + "properties": { + "workItemServiceStates": { + "type": "array", + "items": { + "$ref": "WorkItemServiceState" + } + } + } + }, + "SeqMapTask": { + "id": "SeqMapTask", + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "SideInputInfo" + } + }, + "name": { + "type": "string" + }, + "outputInfos": { + "type": "array", + "items": { + "$ref": "SeqMapTaskOutputInfo" + } + }, + "stageName": { + "type": "string" + }, + "systemName": { + "type": "string" + }, + "userFn": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "SeqMapTaskOutputInfo": { + "id": "SeqMapTaskOutputInfo", + "type": "object", + "properties": { + "sink": { + "$ref": "Sink" + }, + "tag": { + "type": "string" + } + } + }, + "ShellTask": { + "id": "ShellTask", + "type": "object", + "properties": { + "command": { + "type": "string" + }, + "exitCode": { + "type": "integer", + "format": "int32" + } + } + }, + "SideInputInfo": { + "id": "SideInputInfo", + "type": "object", + "properties": { + "kind": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "sources": { + "type": "array", + "items": { + "$ref": "Source" + } + }, + "tag": { + "type": "string" + } + } + }, + "Sink": { + "id": "Sink", + "type": "object", + "properties": { + "codec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "spec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "Source": { + "id": "Source", + "type": "object", + "properties": { + "baseSpecs": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + }, + "codec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "doesNotNeedSplitting": { + "type": "boolean" + }, + "metadata": { + "$ref": "SourceMetadata" + }, + "spec": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "SourceFork": { + "id": "SourceFork", + "type": "object", + "properties": { + "primary": { + "$ref": "SourceSplitShard" + }, + "residual": { + "$ref": "SourceSplitShard" + } + } + }, + "SourceGetMetadataRequest": { + "id": "SourceGetMetadataRequest", + "type": "object", + "properties": { + "source": { + "$ref": "Source" + } + } + }, + "SourceGetMetadataResponse": { + "id": "SourceGetMetadataResponse", + "type": "object", + "properties": { + "metadata": { + "$ref": "SourceMetadata" + } + } + }, + "SourceMetadata": { + "id": "SourceMetadata", + "type": "object", + "properties": { + "estimatedSizeBytes": { + "type": "string", + "format": "int64" + }, + "infinite": { + "type": "boolean" + }, + "producesSortedKeys": { + "type": "boolean" + } + } + }, + "SourceOperationRequest": { + "id": "SourceOperationRequest", + "type": "object", + "properties": { + "getMetadata": { + "$ref": "SourceGetMetadataRequest" + }, + "split": { + "$ref": "SourceSplitRequest" + } + } + }, + "SourceOperationResponse": { + "id": "SourceOperationResponse", + "type": "object", + "properties": { + "getMetadata": { + "$ref": "SourceGetMetadataResponse" + }, + "split": { + "$ref": "SourceSplitResponse" + } + } + }, + "SourceSplitOptions": { + "id": "SourceSplitOptions", + "type": "object", + "properties": { + "desiredShardSizeBytes": { + "type": "string", + "format": "int64" + } + } + }, + "SourceSplitRequest": { + "id": "SourceSplitRequest", + "type": "object", + "properties": { + "options": { + "$ref": "SourceSplitOptions" + }, + "source": { + "$ref": "Source" + } + } + }, + "SourceSplitResponse": { + "id": "SourceSplitResponse", + "type": "object", + "properties": { + "outcome": { + "type": "string", + "enum": [ + "SOURCE_SPLIT_OUTCOME_SPLITTING_HAPPENED", + "SOURCE_SPLIT_OUTCOME_UNKNOWN", + "SOURCE_SPLIT_OUTCOME_USE_CURRENT" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "shards": { + "type": "array", + "items": { + "$ref": "SourceSplitShard" + } + } + } + }, + "SourceSplitShard": { + "id": "SourceSplitShard", + "type": "object", + "properties": { + "derivationMode": { + "type": "string", + "enum": [ + "SOURCE_DERIVATION_MODE_CHILD_OF_CURRENT", + "SOURCE_DERIVATION_MODE_INDEPENDENT", + "SOURCE_DERIVATION_MODE_SIBLING_OF_CURRENT", + "SOURCE_DERIVATION_MODE_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "source": { + "$ref": "Source" + } + } + }, + "Status": { + "id": "Status", + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + }, + "message": { + "type": "string" + } + } + }, + "Step": { + "id": "Step", + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "any" + } + } + } + }, + "StreamLocation": { + "id": "StreamLocation", + "type": "object", + "properties": { + "pubsubLocation": { + "$ref": "PubsubLocation" + }, + "streamingStageLocation": { + "$ref": "StreamingStageLocation" + } + } + }, + "StreamingSetupTask": { + "id": "StreamingSetupTask", + "type": "object", + "properties": { + "receiveWorkPort": { + "type": "integer", + "format": "int32" + }, + "streamingComputationTopology": { + "$ref": "TopologyConfig" + }, + "workerHarnessPort": { + "type": "integer", + "format": "int32" + } + } + }, + "StreamingStageLocation": { + "id": "StreamingStageLocation", + "type": "object", + "properties": { + "streamId": { + "type": "string" + } + } + }, + "TaskRunnerSettings": { + "id": "TaskRunnerSettings", + "type": "object", + "properties": { + "alsologtostderr": { + "type": "boolean" + }, + "baseTaskDir": { + "type": "string" + }, + "baseUrl": { + "type": "string" + }, + "commandlinesFileName": { + "type": "string" + }, + "continueOnException": { + "type": "boolean" + }, + "dataflowApiVersion": { + "type": "string" + }, + "harnessCommand": { + "type": "string" + }, + "languageHint": { + "type": "string" + }, + "logDir": { + "type": "string" + }, + "logToSerialconsole": { + "type": "boolean" + }, + "logUploadLocation": { + "type": "string" + }, + "oauthScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "parallelWorkerSettings": { + "$ref": "WorkerSettings" + }, + "streamingWorkerMainClass": { + "type": "string" + }, + "taskGroup": { + "type": "string" + }, + "taskUser": { + "type": "string" + }, + "tempStoragePrefix": { + "type": "string" + }, + "vmId": { + "type": "string" + }, + "workflowFileName": { + "type": "string" + } + } + }, + "TopologyConfig": { + "id": "TopologyConfig", + "type": "object", + "properties": { + "computations": { + "type": "array", + "items": { + "$ref": "ComputationTopology" + } + }, + "dataDiskAssignments": { + "type": "array", + "items": { + "$ref": "DataDiskAssignment" + } + } + } + }, + "WorkItem": { + "id": "WorkItem", + "type": "object", + "properties": { + "configuration": { + "type": "string" + }, + "id": { + "type": "string", + "format": "int64" + }, + "jobId": { + "type": "string" + }, + "leaseExpireTime": { + "type": "string" + }, + "mapTask": { + "$ref": "MapTask" + }, + "packages": { + "type": "array", + "items": { + "$ref": "Package" + } + }, + "projectId": { + "type": "string" + }, + "reportStatusInterval": { + "type": "string" + }, + "seqMapTask": { + "$ref": "SeqMapTask" + }, + "shellTask": { + "$ref": "ShellTask" + }, + "sourceOperationTask": { + "$ref": "SourceOperationRequest" + }, + "streamingSetupTask": { + "$ref": "StreamingSetupTask" + } + } + }, + "WorkItemServiceState": { + "id": "WorkItemServiceState", + "type": "object", + "properties": { + "harnessData": { + "type": "object", + "additionalProperties": { + "type": "any" + } + }, + "leaseExpireTime": { + "type": "string" + }, + "reportStatusInterval": { + "type": "string" + }, + "suggestedStopPoint": { + "$ref": "ApproximateProgress" + }, + "suggestedStopPosition": { + "$ref": "Position" + } + } + }, + "WorkItemStatus": { + "id": "WorkItemStatus", + "type": "object", + "properties": { + "completed": { + "type": "boolean" + }, + "errors": { + "type": "array", + "items": { + "$ref": "Status" + } + }, + "metricUpdates": { + "type": "array", + "items": { + "$ref": "MetricUpdate" + } + }, + "progress": { + "$ref": "ApproximateProgress" + }, + "reportIndex": { + "type": "string", + "format": "int64" + }, + "requestedLeaseDuration": { + "type": "string" + }, + "sourceFork": { + "$ref": "SourceFork" + }, + "sourceOperationResponse": { + "$ref": "SourceOperationResponse" + }, + "stopPosition": { + "$ref": "Position" + }, + "workItemId": { + "type": "string" + } + } + }, + "WorkerPool": { + "id": "WorkerPool", + "type": "object", + "properties": { + "autoscalingSettings": { + "$ref": "AutoscalingSettings" + }, + "dataDisks": { + "type": "array", + "items": { + "$ref": "Disk" + } + }, + "defaultPackageSet": { + "type": "string", + "enum": [ + "DEFAULT_PACKAGE_SET_JAVA", + "DEFAULT_PACKAGE_SET_NONE", + "DEFAULT_PACKAGE_SET_PYTHON", + "DEFAULT_PACKAGE_SET_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "diskSizeGb": { + "type": "integer", + "format": "int32" + }, + "diskSourceImage": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "machineType": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "numWorkers": { + "type": "integer", + "format": "int32" + }, + "onHostMaintenance": { + "type": "string" + }, + "packages": { + "type": "array", + "items": { + "$ref": "Package" + } + }, + "taskrunnerSettings": { + "$ref": "TaskRunnerSettings" + }, + "teardownPolicy": { + "type": "string", + "enum": [ + "TEARDOWN_ALWAYS", + "TEARDOWN_NEVER", + "TEARDOWN_ON_SUCCESS", + "TEARDOWN_POLICY_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "zone": { + "type": "string" + } + } + }, + "WorkerSettings": { + "id": "WorkerSettings", + "type": "object", + "properties": { + "baseUrl": { + "type": "string" + }, + "reportingEnabled": { + "type": "boolean" + }, + "servicePath": { + "type": "string" + }, + "shuffleServicePath": { + "type": "string" + }, + "tempStoragePrefix": { + "type": "string" + }, + "workerId": { + "type": "string" + } + } + }, + "WriteInstruction": { + "id": "WriteInstruction", + "type": "object", + "properties": { + "input": { + "$ref": "InstructionInput" + }, + "sink": { + "$ref": "Sink" + } + } + } + }, + "resources": { + "v1b3": { + "resources": { + "projects": { + "resources": { + "jobs": { + "methods": { + "create": { + "id": "dataflow.v1b3.projects.jobs.create", + "path": "{projectId}/jobs", + "httpMethod": "POST", + "description": "Creates a dataflow job.", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "enum": [ + "JOB_VIEW_ALL", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "get": { + "id": "dataflow.v1b3.projects.jobs.get", + "path": "{projectId}/jobs/{jobId}", + "httpMethod": "GET", + "description": "Gets the state of the specified dataflow job.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "enum": [ + "JOB_VIEW_ALL", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "getMetrics": { + "id": "dataflow.v1b3.projects.jobs.getMetrics", + "path": "{projectId}/jobs/{jobId}/metrics", + "httpMethod": "GET", + "description": "Request the job status.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "startTime": { + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "JobMetrics" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "list": { + "id": "dataflow.v1b3.projects.jobs.list", + "path": "{projectId}/jobs", + "httpMethod": "GET", + "description": "List the jobs of a project", + "parameters": { + "pageSize": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "view": { + "type": "string", + "enum": [ + "JOB_VIEW_ALL", + "JOB_VIEW_SUMMARY", + "JOB_VIEW_UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "ListJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "patch": { + "id": "dataflow.v1b3.projects.jobs.patch", + "path": "{projectId}/jobs/{jobId}", + "httpMethod": "PATCH", + "description": "Updates the state of an existing dataflow job. This method supports patch semantics.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "update": { + "id": "dataflow.v1b3.projects.jobs.update", + "path": "{projectId}/jobs/{jobId}", + "httpMethod": "PUT", + "description": "Updates the state of an existing dataflow job.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "request": { + "$ref": "Job" + }, + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + } + }, + "resources": { + "messages": { + "methods": { + "list": { + "id": "dataflow.v1b3.projects.jobs.messages.list", + "path": "{projectId}/jobs/{jobId}/messages", + "httpMethod": "GET", + "description": "Request the job status.", + "parameters": { + "endTime": { + "type": "string", + "location": "query" + }, + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "minimumImportance": { + "type": "string", + "enum": [ + "JOB_MESSAGE_DEBUG", + "JOB_MESSAGE_DETAILED", + "JOB_MESSAGE_ERROR", + "JOB_MESSAGE_IMPORTANCE_UNKNOWN", + "JOB_MESSAGE_WARNING" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "pageSize": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "startTime": { + "type": "string", + "location": "query" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "response": { + "$ref": "ListJobMessagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + } + } + }, + "workItems": { + "methods": { + "lease": { + "id": "dataflow.v1b3.projects.jobs.workItems.lease", + "path": "{projectId}/jobs/{jobId}/workItems:lease", + "httpMethod": "POST", + "description": "Leases a dataflow WorkItem to run.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "request": { + "$ref": "LeaseWorkItemRequest" + }, + "response": { + "$ref": "LeaseWorkItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "reportStatus": { + "id": "dataflow.v1b3.projects.jobs.workItems.reportStatus", + "path": "{projectId}/jobs/{jobId}/workItems:reportStatus", + "httpMethod": "POST", + "description": "Reports the status of dataflow WorkItems leased by a worker.", + "parameters": { + "jobId": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "jobId" + ], + "request": { + "$ref": "ReportWorkItemStatusRequest" + }, + "response": { + "$ref": "ReportWorkItemStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/userinfo.email" + ] + } + } + } + } + } + } + } + } + } + } +} diff --git a/etc/api/datastore/v1beta1/datastore-api.json b/etc/api/datastore/v1beta1/datastore-api.json new file mode 100644 index 0000000000..ad3c5d8e64 --- /dev/null +++ b/etc/api/datastore/v1beta1/datastore-api.json @@ -0,0 +1,988 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/8xS90Igj1Zi_dhxWkhTiyEbzjmc\"", + "discoveryVersion": "v1", + "id": "datastore:v1beta1", + "name": "datastore", + "version": "v1beta1", + "revision": "20140916", + "title": "Google Cloud Datastore API", + "description": "API for accessing Google Cloud Datastore.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/datastore/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/datastore/v1beta1/datasets/", + "basePath": "/datastore/v1beta1/datasets/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "datastore/v1beta1/datasets/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "proto", + "enum": [ + "json", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Responses with Content-Type of application/x-protobuf" + ], + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/datastore": { + "description": "View and manage your Google Cloud Datastore data" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + } + } + } + }, + "schemas": { + "AllocateIdsRequest": { + "id": "AllocateIdsRequest", + "type": "object", + "properties": { + "keys": { + "type": "array", + "description": "A list of keys with incomplete key paths to allocate IDs for. No key may be reserved/read-only.", + "items": { + "$ref": "Key" + } + } + } + }, + "AllocateIdsResponse": { + "id": "AllocateIdsResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "keys": { + "type": "array", + "description": "The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.", + "items": { + "$ref": "Key" + } + } + } + }, + "BeginTransactionRequest": { + "id": "BeginTransactionRequest", + "type": "object", + "properties": { + "isolationLevel": { + "type": "string", + "description": "The transaction isolation level. Either snapshot or serializable. The default isolation level is snapshot isolation, which means that another transaction may not concurrently modify the data that is modified by this transaction. Optionally, a transaction can request to be made serializable which means that another transaction cannot concurrently modify the data that is read or modified by this transaction." + } + } + }, + "BeginTransactionResponse": { + "id": "BeginTransactionResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "transaction": { + "type": "string", + "description": "The transaction identifier (always present).", + "format": "byte" + } + } + }, + "BlindWriteRequest": { + "id": "BlindWriteRequest", + "type": "object", + "properties": { + "mutation": { + "$ref": "Mutation", + "description": "The mutation to perform." + } + } + }, + "BlindWriteResponse": { + "id": "BlindWriteResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "mutationResult": { + "$ref": "MutationResult", + "description": "The result of performing the mutation (always present)." + } + } + }, + "CommitRequest": { + "id": "CommitRequest", + "type": "object", + "properties": { + "ignoreReadOnly": { + "type": "boolean" + }, + "mutation": { + "$ref": "Mutation", + "description": "The mutation to perform. Optional." + }, + "transaction": { + "type": "string", + "description": "The transaction identifier, returned by a call to beginTransaction. Must be set when mode is TRANSACTIONAL.", + "format": "byte" + } + } + }, + "CommitResponse": { + "id": "CommitResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "mutationResult": { + "$ref": "MutationResult", + "description": "The result of performing the mutation (if any)." + } + } + }, + "CompositeFilter": { + "id": "CompositeFilter", + "type": "object", + "description": "A filter that merges the multiple other filters using the given operation.", + "properties": { + "filters": { + "type": "array", + "description": "The list of filters to combine. Must contain at least one filter.", + "items": { + "$ref": "Filter" + } + }, + "operator": { + "type": "string", + "description": "The operator for combining multiple filters. Only \"and\" is currently supported." + } + } + }, + "Entity": { + "id": "Entity", + "type": "object", + "description": "An entity.", + "properties": { + "key": { + "$ref": "Key", + "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key." + }, + "properties": { + "type": "object", + "description": "The entity's properties.", + "additionalProperties": { + "$ref": "Property", + "description": "The name of the property. A property name matching regex \"__.*__\" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be \"\"." + } + } + } + }, + "EntityResult": { + "id": "EntityResult", + "type": "object", + "description": "The result of fetching an entity from the datastore.", + "properties": { + "entity": { + "$ref": "Entity", + "description": "The resulting entity." + } + } + }, + "Filter": { + "id": "Filter", + "type": "object", + "description": "A holder for any type of filter. Exactly one field should be specified.", + "properties": { + "compositeFilter": { + "$ref": "CompositeFilter", + "description": "A composite filter." + }, + "propertyFilter": { + "$ref": "PropertyFilter", + "description": "A filter on a property." + } + } + }, + "GqlQuery": { + "id": "GqlQuery", + "type": "object", + "description": "A GQL query.", + "properties": { + "allowLiteral": { + "type": "boolean", + "description": "When false, the query string must not contain a literal." + }, + "nameArgs": { + "type": "array", + "description": "A named argument must set field GqlQueryArg.name. No two named arguments may have the same name. For each non-reserved named binding site in the query string, there must be a named argument with that name, but not necessarily the inverse.", + "items": { + "$ref": "GqlQueryArg" + } + }, + "numberArgs": { + "type": "array", + "description": "Numbered binding site @1 references the first numbered argument, effectively using 1-based indexing, rather than the usual 0. A numbered argument must NOT set field GqlQueryArg.name. For each binding site numbered i in query_string, there must be an ith numbered argument. The inverse must also be true.", + "items": { + "$ref": "GqlQueryArg" + } + }, + "queryString": { + "type": "string", + "description": "The query string." + } + } + }, + "GqlQueryArg": { + "id": "GqlQueryArg", + "type": "object", + "description": "A binding argument for a GQL query.", + "properties": { + "cursor": { + "type": "string", + "format": "byte" + }, + "name": { + "type": "string", + "description": "Must match regex \"[A-Za-z_$][A-Za-z_$0-9]*\". Must not match regex \"__.*__\". Must not be \"\"." + }, + "value": { + "$ref": "Value" + } + } + }, + "Key": { + "id": "Key", + "type": "object", + "description": "A unique identifier for an entity.", + "properties": { + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition." + }, + "path": { + "type": "array", + "description": "The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.", + "items": { + "$ref": "KeyPathElement" + } + } + } + }, + "KeyPathElement": { + "id": "KeyPathElement", + "type": "object", + "description": "A (kind, ID/name) pair used to construct a key path.\n\nAt most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of the entity. A kind matching regex \"__.*__\" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be \"\"." + }, + "name": { + "type": "string", + "description": "The name of the entity. A name matching regex \"__.*__\" is reserved/read-only. A name must not be more than 500 characters. Cannot be \"\"." + } + } + }, + "KindExpression": { + "id": "KindExpression", + "type": "object", + "description": "A representation of a kind.", + "properties": { + "name": { + "type": "string", + "description": "The name of the kind." + } + } + }, + "LookupRequest": { + "id": "LookupRequest", + "type": "object", + "properties": { + "keys": { + "type": "array", + "description": "Keys of entities to look up from the datastore.", + "items": { + "$ref": "Key" + } + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "Options for this lookup request. Optional." + } + } + }, + "LookupResponse": { + "id": "LookupResponse", + "type": "object", + "properties": { + "deferred": { + "type": "array", + "description": "A list of keys that were not looked up due to resource constraints.", + "items": { + "$ref": "Key" + } + }, + "found": { + "type": "array", + "description": "Entities found.", + "items": { + "$ref": "EntityResult" + } + }, + "header": { + "$ref": "ResponseHeader" + }, + "missing": { + "type": "array", + "description": "Entities not found, with only the key populated.", + "items": { + "$ref": "EntityResult" + } + } + } + }, + "Mutation": { + "id": "Mutation", + "type": "object", + "description": "A set of changes to apply.", + "properties": { + "delete": { + "type": "array", + "description": "Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.", + "items": { + "$ref": "Key" + } + }, + "force": { + "type": "boolean", + "description": "Ignore a user specified read-only period. Optional." + }, + "insert": { + "type": "array", + "description": "Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "insertAutoId": { + "type": "array", + "description": "Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "update": { + "type": "array", + "description": "Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "upsert": { + "type": "array", + "description": "Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + } + } + }, + "MutationResult": { + "id": "MutationResult", + "type": "object", + "properties": { + "indexUpdates": { + "type": "integer", + "description": "Number of index writes.", + "format": "int32" + }, + "insertAutoIdKeys": { + "type": "array", + "description": "Keys for insertAutoId entities. One per entity from the request, in the same order.", + "items": { + "$ref": "Key" + } + } + } + }, + "PartitionId": { + "id": "PartitionId", + "type": "object", + "description": "An identifier for a particular subset of entities.\n\nEntities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.", + "properties": { + "datasetId": { + "type": "string", + "description": "The dataset ID." + }, + "namespace": { + "type": "string", + "description": "The namespace." + } + } + }, + "Property": { + "id": "Property", + "type": "object", + "description": "An entity property.", + "properties": { + "multi": { + "type": "boolean", + "description": "If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi." + }, + "values": { + "type": "array", + "description": "The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: \"a\" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: \"a\" } ] }.", + "items": { + "$ref": "Value" + } + } + } + }, + "PropertyExpression": { + "id": "PropertyExpression", + "type": "object", + "description": "A representation of a property in a projection.", + "properties": { + "aggregationFunction": { + "type": "string", + "description": "The aggregation function to apply to the property. Optional. Can only be used when grouping by at least one property. Must then be set on all properties in the projection that are not being grouped by. Aggregation functions: first selects the first result as determined by the query's order." + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to project." + } + } + }, + "PropertyFilter": { + "id": "PropertyFilter", + "type": "object", + "description": "A filter on a specific property.", + "properties": { + "operator": { + "type": "string", + "description": "The operator to filter by. One of lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, equal, or hasAncestor." + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to filter by." + }, + "value": { + "$ref": "Value", + "description": "The value to compare the property to." + } + } + }, + "PropertyOrder": { + "id": "PropertyOrder", + "type": "object", + "description": "The desired order for a specific property.", + "properties": { + "direction": { + "type": "string", + "description": "The direction to order by. One of ascending or descending. Optional, defaults to ascending." + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to order by." + } + } + }, + "PropertyReference": { + "id": "PropertyReference", + "type": "object", + "description": "A reference to a property relative to the kind expressions.", + "properties": { + "name": { + "type": "string", + "description": "The name of the property." + } + } + }, + "Query": { + "id": "Query", + "type": "object", + "description": "A query.", + "properties": { + "endCursor": { + "type": "string", + "description": "An ending point for the query results. Optional. Query cursors are returned in query result batches.", + "format": "byte" + }, + "filter": { + "$ref": "Filter", + "description": "The filter to apply (optional)." + }, + "groupBy": { + "type": "array", + "description": "The properties to group by (if empty, no grouping is applied to the result set).", + "items": { + "$ref": "PropertyReference" + } + }, + "kinds": { + "type": "array", + "description": "The kinds to query (if empty, returns entities from all kinds).", + "items": { + "$ref": "KindExpression" + } + }, + "limit": { + "type": "integer", + "description": "The maximum number of results to return. Applies after all other constraints. Optional.", + "format": "int32" + }, + "offset": { + "type": "integer", + "description": "The number of results to skip. Applies before limit, but after all other constraints (optional, defaults to 0).", + "format": "int32" + }, + "order": { + "type": "array", + "description": "The order to apply to the query results (if empty, order is unspecified).", + "items": { + "$ref": "PropertyOrder" + } + }, + "projection": { + "type": "array", + "description": "The projection to return. If not set the entire entity is returned.", + "items": { + "$ref": "PropertyExpression" + } + }, + "startCursor": { + "type": "string", + "description": "A starting point for the query results. Optional. Query cursors are returned in query result batches.", + "format": "byte" + } + } + }, + "QueryResultBatch": { + "id": "QueryResultBatch", + "type": "object", + "description": "A batch of results produced by a query.", + "properties": { + "endCursor": { + "type": "string", + "description": "A cursor that points to the position after the last result in the batch. May be absent. TODO(arfuller): Once all plans produce cursors update documentation here.", + "format": "byte" + }, + "entityResultType": { + "type": "string", + "description": "The result type for every entity in entityResults. full for full entities, projection for entities with only projected properties, keyOnly for entities with only a key." + }, + "entityResults": { + "type": "array", + "description": "The results for this batch.", + "items": { + "$ref": "EntityResult" + } + }, + "moreResults": { + "type": "string", + "description": "The state of the query after the current batch. One of notFinished, moreResultsAfterLimit, noMoreResults." + }, + "skippedResults": { + "type": "integer", + "description": "The number of results skipped because of Query.offset.", + "format": "int32" + } + } + }, + "ReadOptions": { + "id": "ReadOptions", + "type": "object", + "properties": { + "readConsistency": { + "type": "string", + "description": "The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default." + }, + "transaction": { + "type": "string", + "description": "The transaction to use. Optional.", + "format": "byte" + } + } + }, + "ResponseHeader": { + "id": "ResponseHeader", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"datastore#responseHeader\".", + "default": "datastore#responseHeader" + } + } + }, + "RollbackRequest": { + "id": "RollbackRequest", + "type": "object", + "properties": { + "transaction": { + "type": "string", + "description": "The transaction identifier, returned by a call to beginTransaction.", + "format": "byte" + } + } + }, + "RollbackResponse": { + "id": "RollbackResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + } + } + }, + "RunQueryRequest": { + "id": "RunQueryRequest", + "type": "object", + "properties": { + "gqlQuery": { + "$ref": "GqlQuery", + "description": "The GQL query to run. Either this field or field query must be set, but not both." + }, + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID, but all other partition IDs in RunQueryRequest are normalized with this partition ID as the context partition ID." + }, + "query": { + "$ref": "Query", + "description": "The query to run. Either this field or field gql_query must be set, but not both." + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "The options for this query." + } + } + }, + "RunQueryResponse": { + "id": "RunQueryResponse", + "type": "object", + "properties": { + "batch": { + "$ref": "QueryResultBatch", + "description": "A batch of query results (always present)." + }, + "header": { + "$ref": "ResponseHeader" + } + } + }, + "Value": { + "id": "Value", + "type": "object", + "description": "A message that can hold any of the supported value types and associated metadata.", + "properties": { + "blobKeyValue": { + "type": "string", + "description": "A blob key value." + }, + "blobValue": { + "type": "string", + "description": "A blob value. May be a maximum of 1,000,000 bytes.", + "format": "byte" + }, + "booleanValue": { + "type": "boolean", + "description": "A boolean value." + }, + "dateTimeValue": { + "type": "string", + "description": "A timestamp value.", + "format": "date-time" + }, + "doubleValue": { + "type": "number", + "description": "A double value.", + "format": "double" + }, + "entityValue": { + "$ref": "Entity", + "description": "An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key." + }, + "indexed": { + "type": "boolean", + "description": "If the value should be indexed.\n\nThe indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true." + }, + "integerValue": { + "type": "string", + "description": "An integer value.", + "format": "int64" + }, + "keyValue": { + "$ref": "Key", + "description": "A key value." + }, + "meaning": { + "type": "integer", + "description": "The meaning field is reserved and should not be used.", + "format": "int32" + }, + "stringValue": { + "type": "string", + "description": "A UTF-8 encoded string value." + } + } + } + }, + "resources": { + "datasets": { + "methods": { + "allocateIds": { + "id": "datastore.datasets.allocateIds", + "path": "{datasetId}/allocateIds", + "httpMethod": "POST", + "description": "Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "AllocateIdsRequest" + }, + "response": { + "$ref": "AllocateIdsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "beginTransaction": { + "id": "datastore.datasets.beginTransaction", + "path": "{datasetId}/beginTransaction", + "httpMethod": "POST", + "description": "Begin a new transaction.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "BeginTransactionRequest" + }, + "response": { + "$ref": "BeginTransactionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "blindWrite": { + "id": "datastore.datasets.blindWrite", + "path": "{datasetId}/blindWrite", + "httpMethod": "POST", + "description": "Create, delete or modify some entities outside a transaction.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "BlindWriteRequest" + }, + "response": { + "$ref": "BlindWriteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "commit": { + "id": "datastore.datasets.commit", + "path": "{datasetId}/commit", + "httpMethod": "POST", + "description": "Commit a transaction, optionally creating, deleting or modifying some entities.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "CommitRequest" + }, + "response": { + "$ref": "CommitResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "lookup": { + "id": "datastore.datasets.lookup", + "path": "{datasetId}/lookup", + "httpMethod": "POST", + "description": "Look up some entities by key.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "LookupRequest" + }, + "response": { + "$ref": "LookupResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "rollback": { + "id": "datastore.datasets.rollback", + "path": "{datasetId}/rollback", + "httpMethod": "POST", + "description": "Roll back a transaction.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "RollbackRequest" + }, + "response": { + "$ref": "RollbackResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "runQuery": { + "id": "datastore.datasets.runQuery", + "path": "{datasetId}/runQuery", + "httpMethod": "POST", + "description": "Query for entities.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "RunQueryRequest" + }, + "response": { + "$ref": "RunQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + } + } + } + } +} diff --git a/etc/api/datastore/v1beta2/datastore-api.json b/etc/api/datastore/v1beta2/datastore-api.json new file mode 100644 index 0000000000..b293043921 --- /dev/null +++ b/etc/api/datastore/v1beta2/datastore-api.json @@ -0,0 +1,1075 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/flAQ_osq7Vj8ZKDYJi6-tpiBvoo\"", + "discoveryVersion": "v1", + "id": "datastore:v1beta2", + "name": "datastore", + "version": "v1beta2", + "revision": "20140916", + "title": "Google Cloud Datastore API", + "description": "API for accessing Google Cloud Datastore.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/datastore/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/datastore/v1beta2/datasets/", + "basePath": "/datastore/v1beta2/datasets/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "datastore/v1beta2/datasets/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "proto", + "enum": [ + "json", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Responses with Content-Type of application/x-protobuf" + ], + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/datastore": { + "description": "View and manage your Google Cloud Datastore data" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + } + } + } + }, + "schemas": { + "AllocateIdsRequest": { + "id": "AllocateIdsRequest", + "type": "object", + "properties": { + "keys": { + "type": "array", + "description": "A list of keys with incomplete key paths to allocate IDs for. No key may be reserved/read-only.", + "items": { + "$ref": "Key" + } + } + } + }, + "AllocateIdsResponse": { + "id": "AllocateIdsResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "keys": { + "type": "array", + "description": "The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.", + "items": { + "$ref": "Key" + } + } + } + }, + "BeginTransactionRequest": { + "id": "BeginTransactionRequest", + "type": "object", + "properties": { + "isolationLevel": { + "type": "string", + "description": "The transaction isolation level. Either snapshot or serializable. The default isolation level is snapshot isolation, which means that another transaction may not concurrently modify the data that is modified by this transaction. Optionally, a transaction can request to be made serializable which means that another transaction cannot concurrently modify the data that is read or modified by this transaction.", + "enum": [ + "SERIALIZABLE", + "SNAPSHOT" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "BeginTransactionResponse": { + "id": "BeginTransactionResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "transaction": { + "type": "string", + "description": "The transaction identifier (always present).", + "format": "byte" + } + } + }, + "CommitRequest": { + "id": "CommitRequest", + "type": "object", + "properties": { + "ignoreReadOnly": { + "type": "boolean" + }, + "mode": { + "type": "string", + "description": "The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.", + "enum": [ + "NON_TRANSACTIONAL", + "TRANSACTIONAL" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "mutation": { + "$ref": "Mutation", + "description": "The mutation to perform. Optional." + }, + "transaction": { + "type": "string", + "description": "The transaction identifier, returned by a call to beginTransaction. Must be set when mode is TRANSACTIONAL.", + "format": "byte" + } + } + }, + "CommitResponse": { + "id": "CommitResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + }, + "mutationResult": { + "$ref": "MutationResult", + "description": "The result of performing the mutation (if any)." + } + } + }, + "CompositeFilter": { + "id": "CompositeFilter", + "type": "object", + "description": "A filter that merges the multiple other filters using the given operation.", + "properties": { + "filters": { + "type": "array", + "description": "The list of filters to combine. Must contain at least one filter.", + "items": { + "$ref": "Filter" + } + }, + "operator": { + "type": "string", + "description": "The operator for combining multiple filters. Only \"and\" is currently supported.", + "enum": [ + "AND" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "Entity": { + "id": "Entity", + "type": "object", + "description": "An entity.", + "properties": { + "key": { + "$ref": "Key", + "description": "The entity's key.\n\nAn entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key." + }, + "properties": { + "type": "object", + "description": "The entity's properties.", + "additionalProperties": { + "$ref": "Property", + "description": "The name of the property. A property name matching regex \"__.*__\" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be \"\"." + } + } + } + }, + "EntityResult": { + "id": "EntityResult", + "type": "object", + "description": "The result of fetching an entity from the datastore.", + "properties": { + "entity": { + "$ref": "Entity", + "description": "The resulting entity." + } + } + }, + "Filter": { + "id": "Filter", + "type": "object", + "description": "A holder for any type of filter. Exactly one field should be specified.", + "properties": { + "compositeFilter": { + "$ref": "CompositeFilter", + "description": "A composite filter." + }, + "propertyFilter": { + "$ref": "PropertyFilter", + "description": "A filter on a property." + } + } + }, + "GqlQuery": { + "id": "GqlQuery", + "type": "object", + "description": "A GQL query.", + "properties": { + "allowLiteral": { + "type": "boolean", + "description": "When false, the query string must not contain a literal." + }, + "nameArgs": { + "type": "array", + "description": "A named argument must set field GqlQueryArg.name. No two named arguments may have the same name. For each non-reserved named binding site in the query string, there must be a named argument with that name, but not necessarily the inverse.", + "items": { + "$ref": "GqlQueryArg" + } + }, + "numberArgs": { + "type": "array", + "description": "Numbered binding site @1 references the first numbered argument, effectively using 1-based indexing, rather than the usual 0. A numbered argument must NOT set field GqlQueryArg.name. For each binding site numbered i in query_string, there must be an ith numbered argument. The inverse must also be true.", + "items": { + "$ref": "GqlQueryArg" + } + }, + "queryString": { + "type": "string", + "description": "The query string." + } + } + }, + "GqlQueryArg": { + "id": "GqlQueryArg", + "type": "object", + "description": "A binding argument for a GQL query.", + "properties": { + "cursor": { + "type": "string", + "format": "byte" + }, + "name": { + "type": "string", + "description": "Must match regex \"[A-Za-z_$][A-Za-z_$0-9]*\". Must not match regex \"__.*__\". Must not be \"\"." + }, + "value": { + "$ref": "Value" + } + } + }, + "Key": { + "id": "Key", + "type": "object", + "description": "A unique identifier for an entity.", + "properties": { + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition." + }, + "path": { + "type": "array", + "description": "The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.", + "items": { + "$ref": "KeyPathElement" + } + } + } + }, + "KeyPathElement": { + "id": "KeyPathElement", + "type": "object", + "description": "A (kind, ID/name) pair used to construct a key path.\n\nAt most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of the entity. A kind matching regex \"__.*__\" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be \"\"." + }, + "name": { + "type": "string", + "description": "The name of the entity. A name matching regex \"__.*__\" is reserved/read-only. A name must not be more than 500 characters. Cannot be \"\"." + } + } + }, + "KindExpression": { + "id": "KindExpression", + "type": "object", + "description": "A representation of a kind.", + "properties": { + "name": { + "type": "string", + "description": "The name of the kind." + } + } + }, + "LookupRequest": { + "id": "LookupRequest", + "type": "object", + "properties": { + "keys": { + "type": "array", + "description": "Keys of entities to look up from the datastore.", + "items": { + "$ref": "Key" + } + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "Options for this lookup request. Optional." + } + } + }, + "LookupResponse": { + "id": "LookupResponse", + "type": "object", + "properties": { + "deferred": { + "type": "array", + "description": "A list of keys that were not looked up due to resource constraints.", + "items": { + "$ref": "Key" + } + }, + "found": { + "type": "array", + "description": "Entities found.", + "items": { + "$ref": "EntityResult" + } + }, + "header": { + "$ref": "ResponseHeader" + }, + "missing": { + "type": "array", + "description": "Entities not found, with only the key populated.", + "items": { + "$ref": "EntityResult" + } + } + } + }, + "Mutation": { + "id": "Mutation", + "type": "object", + "description": "A set of changes to apply.", + "properties": { + "delete": { + "type": "array", + "description": "Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.", + "items": { + "$ref": "Key" + } + }, + "force": { + "type": "boolean", + "description": "Ignore a user specified read-only period. Optional." + }, + "insert": { + "type": "array", + "description": "Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "insertAutoId": { + "type": "array", + "description": "Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "update": { + "type": "array", + "description": "Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + }, + "upsert": { + "type": "array", + "description": "Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.", + "items": { + "$ref": "Entity" + } + } + } + }, + "MutationResult": { + "id": "MutationResult", + "type": "object", + "properties": { + "indexUpdates": { + "type": "integer", + "description": "Number of index writes.", + "format": "int32" + }, + "insertAutoIdKeys": { + "type": "array", + "description": "Keys for insertAutoId entities. One per entity from the request, in the same order.", + "items": { + "$ref": "Key" + } + } + } + }, + "PartitionId": { + "id": "PartitionId", + "type": "object", + "description": "An identifier for a particular subset of entities.\n\nEntities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.", + "properties": { + "datasetId": { + "type": "string", + "description": "The dataset ID." + }, + "namespace": { + "type": "string", + "description": "The namespace." + } + } + }, + "Property": { + "id": "Property", + "type": "object", + "description": "An entity property.", + "properties": { + "blobKeyValue": { + "type": "string", + "description": "A blob key value." + }, + "blobValue": { + "type": "string", + "description": "A blob value. May be a maximum of 1,000,000 bytes.", + "format": "byte" + }, + "booleanValue": { + "type": "boolean", + "description": "A boolean value." + }, + "dateTimeValue": { + "type": "string", + "description": "A timestamp value.", + "format": "date-time" + }, + "doubleValue": { + "type": "number", + "description": "A double value.", + "format": "double" + }, + "entityValue": { + "$ref": "Entity", + "description": "An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key." + }, + "indexed": { + "type": "boolean", + "description": "If the value should be indexed.\n\nThe indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true." + }, + "integerValue": { + "type": "string", + "description": "An integer value.", + "format": "int64" + }, + "keyValue": { + "$ref": "Key", + "description": "A key value." + }, + "listValue": { + "type": "array", + "description": "A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.", + "items": { + "$ref": "Value" + } + }, + "meaning": { + "type": "integer", + "description": "The meaning field is reserved and should not be used.", + "format": "int32" + }, + "stringValue": { + "type": "string", + "description": "A UTF-8 encoded string value." + } + } + }, + "PropertyExpression": { + "id": "PropertyExpression", + "type": "object", + "description": "A representation of a property in a projection.", + "properties": { + "aggregationFunction": { + "type": "string", + "description": "The aggregation function to apply to the property. Optional. Can only be used when grouping by at least one property. Must then be set on all properties in the projection that are not being grouped by. Aggregation functions: first selects the first result as determined by the query's order.", + "enum": [ + "FIRST" + ], + "enumDescriptions": [ + "" + ] + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to project." + } + } + }, + "PropertyFilter": { + "id": "PropertyFilter", + "type": "object", + "description": "A filter on a specific property.", + "properties": { + "operator": { + "type": "string", + "description": "The operator to filter by. One of lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, equal, or hasAncestor.", + "enum": [ + "EQUAL", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL", + "HAS_ANCESTOR", + "LESS_THAN", + "LESS_THAN_OR_EQUAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to filter by." + }, + "value": { + "$ref": "Value", + "description": "The value to compare the property to." + } + } + }, + "PropertyOrder": { + "id": "PropertyOrder", + "type": "object", + "description": "The desired order for a specific property.", + "properties": { + "direction": { + "type": "string", + "description": "The direction to order by. One of ascending or descending. Optional, defaults to ascending.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "property": { + "$ref": "PropertyReference", + "description": "The property to order by." + } + } + }, + "PropertyReference": { + "id": "PropertyReference", + "type": "object", + "description": "A reference to a property relative to the kind expressions.", + "properties": { + "name": { + "type": "string", + "description": "The name of the property." + } + } + }, + "Query": { + "id": "Query", + "type": "object", + "description": "A query.", + "properties": { + "endCursor": { + "type": "string", + "description": "An ending point for the query results. Optional. Query cursors are returned in query result batches.", + "format": "byte" + }, + "filter": { + "$ref": "Filter", + "description": "The filter to apply (optional)." + }, + "groupBy": { + "type": "array", + "description": "The properties to group by (if empty, no grouping is applied to the result set).", + "items": { + "$ref": "PropertyReference" + } + }, + "kinds": { + "type": "array", + "description": "The kinds to query (if empty, returns entities from all kinds).", + "items": { + "$ref": "KindExpression" + } + }, + "limit": { + "type": "integer", + "description": "The maximum number of results to return. Applies after all other constraints. Optional.", + "format": "int32" + }, + "offset": { + "type": "integer", + "description": "The number of results to skip. Applies before limit, but after all other constraints (optional, defaults to 0).", + "format": "int32" + }, + "order": { + "type": "array", + "description": "The order to apply to the query results (if empty, order is unspecified).", + "items": { + "$ref": "PropertyOrder" + } + }, + "projection": { + "type": "array", + "description": "The projection to return. If not set the entire entity is returned.", + "items": { + "$ref": "PropertyExpression" + } + }, + "startCursor": { + "type": "string", + "description": "A starting point for the query results. Optional. Query cursors are returned in query result batches.", + "format": "byte" + } + } + }, + "QueryResultBatch": { + "id": "QueryResultBatch", + "type": "object", + "description": "A batch of results produced by a query.", + "properties": { + "endCursor": { + "type": "string", + "description": "A cursor that points to the position after the last result in the batch. May be absent. TODO(arfuller): Once all plans produce cursors update documentation here.", + "format": "byte" + }, + "entityResultType": { + "type": "string", + "description": "The result type for every entity in entityResults. full for full entities, projection for entities with only projected properties, keyOnly for entities with only a key.", + "enum": [ + "FULL", + "KEY_ONLY", + "PROJECTION" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "entityResults": { + "type": "array", + "description": "The results for this batch.", + "items": { + "$ref": "EntityResult" + } + }, + "moreResults": { + "type": "string", + "description": "The state of the query after the current batch. One of notFinished, moreResultsAfterLimit, noMoreResults.", + "enum": [ + "MORE_RESULTS_AFTER_LIMIT", + "NOT_FINISHED", + "NO_MORE_RESULTS" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "skippedResults": { + "type": "integer", + "description": "The number of results skipped because of Query.offset.", + "format": "int32" + } + } + }, + "ReadOptions": { + "id": "ReadOptions", + "type": "object", + "properties": { + "readConsistency": { + "type": "string", + "description": "The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.", + "enum": [ + "DEFAULT", + "EVENTUAL", + "STRONG" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "transaction": { + "type": "string", + "description": "The transaction to use. Optional.", + "format": "byte" + } + } + }, + "ResponseHeader": { + "id": "ResponseHeader", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"datastore#responseHeader\".", + "default": "datastore#responseHeader" + } + } + }, + "RollbackRequest": { + "id": "RollbackRequest", + "type": "object", + "properties": { + "transaction": { + "type": "string", + "description": "The transaction identifier, returned by a call to beginTransaction.", + "format": "byte" + } + } + }, + "RollbackResponse": { + "id": "RollbackResponse", + "type": "object", + "properties": { + "header": { + "$ref": "ResponseHeader" + } + } + }, + "RunQueryRequest": { + "id": "RunQueryRequest", + "type": "object", + "properties": { + "gqlQuery": { + "$ref": "GqlQuery", + "description": "The GQL query to run. Either this field or field query must be set, but not both." + }, + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID, but all other partition IDs in RunQueryRequest are normalized with this partition ID as the context partition ID." + }, + "query": { + "$ref": "Query", + "description": "The query to run. Either this field or field gql_query must be set, but not both." + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "The options for this query." + } + } + }, + "RunQueryResponse": { + "id": "RunQueryResponse", + "type": "object", + "properties": { + "batch": { + "$ref": "QueryResultBatch", + "description": "A batch of query results (always present)." + }, + "header": { + "$ref": "ResponseHeader" + } + } + }, + "Value": { + "id": "Value", + "type": "object", + "description": "A message that can hold any of the supported value types and associated metadata.", + "properties": { + "blobKeyValue": { + "type": "string", + "description": "A blob key value." + }, + "blobValue": { + "type": "string", + "description": "A blob value. May be a maximum of 1,000,000 bytes.", + "format": "byte" + }, + "booleanValue": { + "type": "boolean", + "description": "A boolean value." + }, + "dateTimeValue": { + "type": "string", + "description": "A timestamp value.", + "format": "date-time" + }, + "doubleValue": { + "type": "number", + "description": "A double value.", + "format": "double" + }, + "entityValue": { + "$ref": "Entity", + "description": "An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key." + }, + "indexed": { + "type": "boolean", + "description": "If the value should be indexed.\n\nThe indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true." + }, + "integerValue": { + "type": "string", + "description": "An integer value.", + "format": "int64" + }, + "keyValue": { + "$ref": "Key", + "description": "A key value." + }, + "listValue": { + "type": "array", + "description": "A list value. Cannot contain another list value. Cannot also have a meaning and indexing set.", + "items": { + "$ref": "Value" + } + }, + "meaning": { + "type": "integer", + "description": "The meaning field is reserved and should not be used.", + "format": "int32" + }, + "stringValue": { + "type": "string", + "description": "A UTF-8 encoded string value." + } + } + } + }, + "resources": { + "datasets": { + "methods": { + "allocateIds": { + "id": "datastore.datasets.allocateIds", + "path": "{datasetId}/allocateIds", + "httpMethod": "POST", + "description": "Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "AllocateIdsRequest" + }, + "response": { + "$ref": "AllocateIdsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "beginTransaction": { + "id": "datastore.datasets.beginTransaction", + "path": "{datasetId}/beginTransaction", + "httpMethod": "POST", + "description": "Begin a new transaction.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "BeginTransactionRequest" + }, + "response": { + "$ref": "BeginTransactionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "commit": { + "id": "datastore.datasets.commit", + "path": "{datasetId}/commit", + "httpMethod": "POST", + "description": "Commit a transaction, optionally creating, deleting or modifying some entities.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "CommitRequest" + }, + "response": { + "$ref": "CommitResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "lookup": { + "id": "datastore.datasets.lookup", + "path": "{datasetId}/lookup", + "httpMethod": "POST", + "description": "Look up some entities by key.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "LookupRequest" + }, + "response": { + "$ref": "LookupResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "rollback": { + "id": "datastore.datasets.rollback", + "path": "{datasetId}/rollback", + "httpMethod": "POST", + "description": "Roll back a transaction.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "RollbackRequest" + }, + "response": { + "$ref": "RollbackResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + }, + "runQuery": { + "id": "datastore.datasets.runQuery", + "path": "{datasetId}/runQuery", + "httpMethod": "POST", + "description": "Query for entities.", + "parameters": { + "datasetId": { + "type": "string", + "description": "Identifies the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "RunQueryRequest" + }, + "response": { + "$ref": "RunQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", + "https://www.googleapis.com/auth/userinfo.email" + ] + } + } + } + } +} diff --git a/etc/api/deploymentmanager/v2beta1/deploymentmanager-api.json b/etc/api/deploymentmanager/v2beta1/deploymentmanager-api.json new file mode 100644 index 0000000000..558baa674a --- /dev/null +++ b/etc/api/deploymentmanager/v2beta1/deploymentmanager-api.json @@ -0,0 +1,868 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/uG7F4p-Yx8ObH2FX1BUUb9Dm9wQ\"", + "discoveryVersion": "v1", + "id": "deploymentmanager:v2beta1", + "name": "deploymentmanager", + "version": "v2beta1", + "revision": "20141112", + "title": "Google Cloud Deployment Manager API V2", + "description": "The Deployment Manager API allows users to declaratively configure, deploy and run complex solutions on the Google Cloud Platform.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/deployment-manager/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/deploymentmanager/v2beta1/projects/", + "basePath": "/deploymentmanager/v2beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "deploymentmanager/v2beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/ndev.cloudman": { + "description": "View and manage your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/ndev.cloudman.readonly": { + "description": "View your Google Cloud Platform management resources and deployment status information" + } + } + } + }, + "schemas": { + "Deployment": { + "id": "Deployment", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "An optional user-provided description of the deployment." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "manifest": { + "type": "string", + "description": "[Output Only] URL of the manifest representing the full configuration of this deployment." + }, + "name": { + "type": "string", + "description": "The name of the deployment, which must be unique within the project." + }, + "targetConfig": { + "type": "string", + "description": "[Input Only] The YAML configuration to use in processing this deployment.\n\nWhen you create a deployment, the server creates a new manifest with the given YAML configuration and sets the `manifest` property to the URL of the manifest resource." + } + } + }, + "DeploymentsListResponse": { + "id": "DeploymentsListResponse", + "type": "object", + "description": "A response containing a partial list of deployments and a page token used to build the next request if the request has been truncated.", + "properties": { + "deployments": { + "type": "array", + "description": "The deployments contained in this response.", + "items": { + "$ref": "Deployment" + } + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + } + } + }, + "Manifest": { + "id": "Manifest", + "type": "object", + "properties": { + "config": { + "type": "string", + "description": "The YAML configuration for this manifest." + }, + "evaluatedConfig": { + "type": "string", + "description": "[Output Only] The fully-expanded configuration file, including any templates and references." + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "name": { + "type": "string", + "description": "[Output Only] The name of the manifest." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Self link for the manifest." + } + } + }, + "ManifestsListResponse": { + "id": "ManifestsListResponse", + "type": "object", + "description": "A response containing a partial list of manifests and a page token used to build the next request if the request has been truncated.", + "properties": { + "manifests": { + "type": "array", + "description": "Manifests contained in this list response.", + "items": { + "$ref": "Manifest" + } + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An operation resource, used to manage asynchronous API requests.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "endTime": { + "type": "string", + "description": "[Output Only] The time that this operation was completed. This is in RFC3339 format." + }, + "error": { + "type": "object", + "description": "[Output Only] If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "An optional, human-readable error message." + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string", + "description": "[Output Only] If operation fails, the HTTP error message returned, e.g. NOT FOUND." + }, + "httpErrorStatusCode": { + "type": "integer", + "description": "[Output Only] If operation fails, the HTTP error status code returned, e.g. 404.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "insertTime": { + "type": "string", + "description": "[Output Only] The time that this operation was requested. This is in RFC 3339 format." + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the operation." + }, + "operationType": { + "type": "string", + "description": "[Output Only] Type of the operation. Examples include \"insert\", or \"delete\"" + }, + "progress": { + "type": "integer", + "description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.", + "format": "int32" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Self link for the manifest." + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server. This is in RFC 3339 format." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the operation. Can be one of the following: \"PENDING\", \"RUNNING\", or \"DONE\"." + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "targetId": { + "type": "string", + "description": "[Output Only] Unique target id which identifies a particular incarnation of the target.", + "format": "uint64" + }, + "targetLink": { + "type": "string", + "description": "[Output Only] URL of the resource the operation is mutating." + }, + "user": { + "type": "string", + "description": "[Output Only] User who requested the operation, for example \"user@example.com\"" + }, + "warnings": { + "type": "array", + "description": "[Output Only] If warning messages generated during processing of this operation, this field will be populated.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "any", + "description": "The warning type identifier for this warning." + }, + "data": { + "type": "array", + "description": "Metadata for this warning in 'key: value' format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key for the warning data." + }, + "value": { + "type": "string", + "description": "A warning data value corresponding to the key." + } + } + } + }, + "message": { + "type": "string", + "description": "Optional human-readable details for this warning." + } + } + } + } + } + }, + "OperationsListResponse": { + "id": "OperationsListResponse", + "type": "object", + "description": "A response containing a partial list of operations and a page token used to build the next request if the request has been truncated.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + }, + "operations": { + "type": "array", + "description": "Operations contained in this list response.", + "items": { + "$ref": "Operation" + } + } + } + }, + "Resource": { + "id": "Resource", + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] A list of any errors that occurred during deployment.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "intent": { + "type": "string", + "description": "[Output Only] The intended state of the resource." + }, + "manifest": { + "type": "string", + "description": "[Output Only] URL of the manifest representing the current configuration of this resource." + }, + "name": { + "type": "string", + "description": "[Output Only] The name of the resource as it appears in the YAML config." + }, + "state": { + "type": "string", + "description": "[Output Only] The state of the resource." + }, + "type": { + "type": "string", + "description": "[Output Only] The type of the resource, for example ?compute.v1.instance?, or ?replicaPools.v1beta2.instanceGroupManager?" + }, + "url": { + "type": "string", + "description": "[Output Only] The URL of the actual resource." + } + } + }, + "ResourcesListResponse": { + "id": "ResourcesListResponse", + "type": "object", + "description": "A response containing a partial list of resources and a page token used to build the next request if the request has been truncated.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + }, + "resources": { + "type": "array", + "description": "Resources contained in this list response.", + "items": { + "$ref": "Resource" + } + } + } + }, + "Type": { + "id": "Type", + "type": "object", + "description": "A type supported by Deployment Manager.", + "properties": { + "name": { + "type": "string", + "description": "Name of the type." + } + } + }, + "TypesListResponse": { + "id": "TypesListResponse", + "type": "object", + "description": "A response that returns all Types supported by Deployment Manager", + "properties": { + "types": { + "type": "array", + "description": "Types supported by Deployment Manager", + "items": { + "$ref": "Type" + } + } + } + } + }, + "resources": { + "deployments": { + "methods": { + "delete": { + "id": "deploymentmanager.deployments.delete", + "path": "{project}/global/deployments/{deployment}", + "httpMethod": "DELETE", + "description": "Deletes a deployment and all of the resources in the deployment.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "deploymentmanager.deployments.get", + "path": "{project}/global/deployments/{deployment}", + "httpMethod": "GET", + "description": "Gets information about a specific deployment.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment" + ], + "response": { + "$ref": "Deployment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "insert": { + "id": "deploymentmanager.deployments.insert", + "path": "{project}/global/deployments", + "httpMethod": "POST", + "description": "Creates a deployment and all of the resources described by the deployment manifest.", + "parameters": { + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Deployment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "deploymentmanager.deployments.list", + "path": "{project}/global/deployments", + "httpMethod": "GET", + "description": "Lists all deployments for a given project.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "DeploymentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "manifests": { + "methods": { + "get": { + "id": "deploymentmanager.manifests.get", + "path": "{project}/global/deployments/{deployment}/manifests/{manifest}", + "httpMethod": "GET", + "description": "Gets information about a specific manifest.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "manifest": { + "type": "string", + "description": "The name of the manifest for this request.", + "required": true, + "pattern": "[-a-z0-9]{1,61}", + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment", + "manifest" + ], + "response": { + "$ref": "Manifest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "list": { + "id": "deploymentmanager.manifests.list", + "path": "{project}/global/deployments/{deployment}/manifests", + "httpMethod": "GET", + "description": "Lists all manifests for a given deployment.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment" + ], + "response": { + "$ref": "ManifestsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "id": "deploymentmanager.operations.get", + "path": "{project}/global/operations/{operation}", + "httpMethod": "GET", + "description": "Gets information about a specific Operation.", + "parameters": { + "operation": { + "type": "string", + "description": "The name of the operation for this request.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "list": { + "id": "deploymentmanager.operations.list", + "path": "{project}/global/operations", + "httpMethod": "GET", + "description": "Lists all Operations for a project.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "OperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "resources": { + "methods": { + "get": { + "id": "deploymentmanager.resources.get", + "path": "{project}/global/deployments/{deployment}/resources/{resource}", + "httpMethod": "GET", + "description": "Gets information about a single resource.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "resource": { + "type": "string", + "description": "The name of the resource for this request.", + "required": true, + "pattern": "[-a-z0-9]{1,61}", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment", + "resource" + ], + "response": { + "$ref": "Resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "list": { + "id": "deploymentmanager.resources.list", + "path": "{project}/global/deployments/{deployment}/resources", + "httpMethod": "GET", + "description": "Lists all resources in a given deployment.", + "parameters": { + "deployment": { + "type": "string", + "description": "The name of the deployment for this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "deployment" + ], + "response": { + "$ref": "ResourcesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "types": { + "methods": { + "list": { + "id": "deploymentmanager.types.list", + "path": "{project}/global/types", + "httpMethod": "GET", + "description": "Lists all Types for Deployment Manager.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TypesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + } + } +} diff --git a/etc/api/dfareporting/v1.1/dfareporting-api.json b/etc/api/dfareporting/v1.1/dfareporting-api.json new file mode 100644 index 0000000000..aef7061d36 --- /dev/null +++ b/etc/api/dfareporting/v1.1/dfareporting-api.json @@ -0,0 +1,1521 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/iNITuzieMjdA01fjEwPpxFw5muo\"", + "discoveryVersion": "v1", + "id": "dfareporting:v1.1", + "name": "dfareporting", + "version": "v1.1", + "revision": "20141112", + "title": "DFA Reporting API", + "description": "Lets you create, run and download reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dfareporting/v1.1/", + "basePath": "/dfareporting/v1.1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dfareporting/v1.1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + } + } + } + }, + "schemas": { + "Activities": { + "id": "Activities", + "type": "object", + "description": "Represents an activity group.", + "properties": { + "filters": { + "type": "array", + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#activities.", + "default": "dfareporting#activities" + }, + "metricNames": { + "type": "array", + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + } + } + } + }, + "CustomRichMediaEvents": { + "id": "CustomRichMediaEvents", + "type": "object", + "description": "Represents a Custom Rich Media Events group.", + "properties": { + "filteredEventIds": { + "type": "array", + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", + "default": "dfareporting#customRichMediaEvents" + } + } + }, + "DateRange": { + "id": "DateRange", + "type": "object", + "description": "Represents a date range.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dateRange.", + "default": "dfareporting#dateRange" + }, + "relativeDateRange": { + "type": "string", + "description": "The date range relative to the date of when the report is run, one of: \n- \"TODAY\" \n- \"YESTERDAY\" \n- \"WEEK_TO_DATE\" \n- \"MONTH_TO_DATE\" \n- \"QUARTER_TO_DATE\" \n- \"YEAR_TO_DATE\" \n- \"PREVIOUS_WEEK\" \n- \"PREVIOUS_MONTH\" \n- \"PREVIOUS_QUARTER\" \n- \"PREVIOUS_YEAR\" \n- \"LAST_7_DAYS\" \n- \"LAST_30_DAYS\" \n- \"LAST_90_DAYS\" \n- \"LAST_365_DAYS\" \n- \"LAST_24_MONTHS\"" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "DimensionFilter": { + "id": "DimensionFilter", + "type": "object", + "description": "Represents a dimension filter.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension to filter." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", + "default": "dfareporting#dimensionFilter" + }, + "value": { + "type": "string", + "description": "The value of the dimension to filter." + } + } + }, + "DimensionValue": { + "id": "DimensionValue", + "type": "object", + "description": "Represents a DimensionValue resource.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID associated with the value if available." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionValue.", + "default": "dfareporting#dimensionValue" + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "DimensionValueList": { + "id": "DimensionValueList", + "type": "object", + "description": "Represents the list of DimensionValue resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", + "default": "dfareporting#dimensionValueList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "DimensionValueRequest": { + "id": "DimensionValueRequest", + "type": "object", + "description": "Represents a DimensionValuesRequest.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension for which values should be requested." + }, + "endDate": { + "type": "string", + "description": "The end date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "filters": { + "type": "array", + "description": "The list of filters by which to filter values. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + } + }, + "kind": { + "type": "string", + "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest.", + "default": "dfareporting#dimensionValueRequest" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "Represents a File resource. A File contains the meta-data for a report run. It shows the status of the run and holds the urls to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name of the file." + }, + "format": { + "type": "string", + "description": "The output format of the report. Only available once the file is available." + }, + "id": { + "type": "string", + "description": "The unique ID of this report file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#file.", + "default": "dfareporting#file" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "The ID of the report this file was generated from.", + "format": "int64" + }, + "status": { + "type": "string", + "description": "The status of the report file, one of: \n- \"PROCESSING\" \n- \"REPORT_AVAILABLE\" \n- \"FAILED\" \n- \"CANCELLED\"" + }, + "urls": { + "type": "object", + "description": "The urls where the completed report file can be downloaded.", + "properties": { + "apiUrl": { + "type": "string", + "description": "The url for downloading the report data through the API." + }, + "browserUrl": { + "type": "string", + "description": "The url for downloading the report data through a browser." + } + } + } + } + }, + "FileList": { + "id": "FileList", + "type": "object", + "description": "Represents the list of File resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The files returned in this response.", + "items": { + "$ref": "File" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#fileList.", + "default": "dfareporting#fileList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "Recipient": { + "id": "Recipient", + "type": "object", + "description": "Represents a recipient.", + "properties": { + "deliveryType": { + "type": "string", + "description": "The delivery type for the recipient, one of: \n- \"ATTACHMENT\" \n- \"LINK\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "email": { + "type": "string", + "description": "The email address of the recipient.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#recipient.", + "default": "dfareporting#recipient" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a Report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this report belongs.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "activeGrpCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"ACTIVE_GRP\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.\nA valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "criteria": { + "type": "object", + "description": "The report criteria for a report of type \"STANDARD\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which this report should be run." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of standard dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "crossDimensionReachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimension": { + "type": "string", + "description": "The dimension option, one of: \n- \"ADVERTISER\" \n- \"CAMPAIGN\" \n- \"SITE_BY_ADVERTISER\" \n- \"SITE_BY_CAMPAIGN\"" + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.", + "items": { + "$ref": "DimensionValue" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "overlapMetricNames": { + "type": "array", + "description": "The list of names of overlap metrics the report should include.", + "items": { + "type": "string" + } + }, + "pivoted": { + "type": "boolean", + "description": "Whether the report is pivoted or not. Defaults to true." + } + } + }, + "delivery": { + "type": "object", + "description": "The report's email delivery settings.", + "properties": { + "emailOwner": { + "type": "boolean", + "description": "Whether the report should be emailed to the report owner." + }, + "emailOwnerDeliveryType": { + "type": "string", + "description": "The type of delivery for the owner to receive, if enabled. One of: \n- \"ATTACHMENT\" \n- \"LINK\"" + }, + "message": { + "type": "string", + "description": "The message to be sent with each email." + }, + "recipients": { + "type": "array", + "description": "The list of recipients to which to email the report.", + "items": { + "$ref": "Recipient" + } + } + } + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name used when generating report files for this report." + }, + "floodlightCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"FLOODLIGHT\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + } + } + } + } + }, + "format": { + "type": "string", + "description": "The output format of the report, one of: \n- \"CSV\" \n- \"EXCEL\" If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format." + }, + "id": { + "type": "string", + "description": "The unique ID identifying this report resource.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#report.", + "default": "dfareporting#report" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the report.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "ownerProfileId": { + "type": "string", + "description": "The user profile id of the owner of this report.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "pathToConversionCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "activityFilters": { + "type": "array", + "description": "The list of 'dfa:activity' values to filter on.", + "items": { + "$ref": "DimensionValue" + } + }, + "conversionDimensions": { + "type": "array", + "description": "The list of conversion dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "The list of custom floodlight variables the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "The list of per interaction dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "clicksLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "impressionsLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + }, + "maximumClickInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumImpressionInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumInteractionGap": { + "type": "integer", + "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", + "format": "int32" + }, + "pivotOnInteractionPath": { + "type": "boolean", + "description": "Enable pivoting on interaction path." + } + } + } + } + }, + "reachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"REACH\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reachByFrequencyMetricNames": { + "type": "array", + "description": "The list of names of Reach By Frequency metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "schedule": { + "type": "object", + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "every": { + "type": "integer", + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32" + }, + "expirationDate": { + "type": "string", + "description": "The expiration date when the scheduled report stops running.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeats": { + "type": "string", + "description": "The interval for which the report is repeated, one of: \n- \"DAILY\", also requires field \"every\" to be set. \n- \"WEEKLY\", also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. \n- \"TWICE_A_MONTH\" \n- \"MONTHLY\", also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. \n- \"QUARTERLY\" \n- \"YEARLY\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeatsOnWeekDays": { + "type": "array", + "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", + "items": { + "type": "string" + } + }, + "runsOnDayOfMonth": { + "type": "string", + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Possible values are: \n- DAY_OF_MONTH \n- WEEK_OF_MONTH \nExample: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month." + }, + "startDate": { + "type": "string", + "description": "Start date of date range for which scheduled reports should be run.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "subAccountId": { + "type": "string", + "description": "The subbaccount ID to which this report belongs if applicable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The type of the report, one of: \n- STANDARD \n- REACH \n- ACTIVE_GRP \n- PATH_TO_CONVERSION \n- FLOODLIGHT \n- CROSS_DIMENSION_REACH", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "ReportList": { + "id": "ReportList", + "type": "object", + "description": "Represents the list of reports.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#reportList.", + "default": "dfareporting#reportList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "SortedDimension": { + "id": "SortedDimension", + "type": "object", + "description": "Represents a sorted dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", + "default": "dfareporting#sortedDimension" + }, + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "sortOrder": { + "type": "string", + "description": "An optional sort order for the dimension column, one of: \n- \"ASCENDING\" \n- \"DESCENDING\"" + } + } + }, + "UserProfile": { + "id": "UserProfile", + "type": "object", + "description": "Represents a UserProfile resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this profile belongs.", + "format": "int64" + }, + "accountName": { + "type": "string", + "description": "The account name this profile belongs to." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#userProfile.", + "default": "dfareporting#userProfile" + }, + "profileId": { + "type": "string", + "description": "The unique ID of the user profile.", + "format": "int64" + }, + "subAccountId": { + "type": "string", + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64" + }, + "subAccountName": { + "type": "string", + "description": "The sub account name this profile belongs to if applicable." + }, + "userName": { + "type": "string", + "description": "The user name." + } + } + }, + "UserProfileList": { + "id": "UserProfileList", + "type": "object", + "description": "Represents the list of user profiles.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#userProfileList.", + "default": "dfareporting#userProfileList" + } + } + } + }, + "resources": { + "dimensionValues": { + "methods": { + "query": { + "id": "dfareporting.dimensionValues.query", + "path": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "description": "Retrieves list of report dimension values for a list of filters.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "list": { + "id": "dfareporting.files.list", + "path": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "description": "Lists files for a user profile.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "id": "dfareporting.reports.delete", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "description": "Deletes a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "id": "dfareporting.reports.get", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "description": "Retrieves a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "id": "dfareporting.reports.insert", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "description": "Creates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.list", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "description": "Retrieves list of reports.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report ID.", + "Sort by 'lastModifiedTime' field.", + "Sort by name of reports." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "id": "dfareporting.reports.patch", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "description": "Updates a report. This method supports patch semantics.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "id": "dfareporting.reports.run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "description": "Runs a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + }, + "synchronous": { + "type": "boolean", + "description": "If set and true, tries to run the report synchronously.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "id": "dfareporting.reports.update", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "description": "Updates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "files": { + "methods": { + "get": { + "id": "dfareporting.reports.files.get", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.files.list", + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "description": "Lists files for a report.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the parent report.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "userProfiles": { + "methods": { + "get": { + "id": "dfareporting.userProfiles.get", + "path": "userprofiles/{profileId}", + "httpMethod": "GET", + "description": "Gets one user profile by ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.userProfiles.list", + "path": "userprofiles", + "httpMethod": "GET", + "description": "Retrieves list of user profiles for a user.", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } +} diff --git a/etc/api/dfareporting/v1.2/dfareporting-api.json b/etc/api/dfareporting/v1.2/dfareporting-api.json new file mode 100644 index 0000000000..f1e7eec484 --- /dev/null +++ b/etc/api/dfareporting/v1.2/dfareporting-api.json @@ -0,0 +1,1589 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/rEBgz8kDYnXeo29fy2HTElYO_nc\"", + "discoveryVersion": "v1", + "id": "dfareporting:v1.2", + "name": "dfareporting", + "version": "v1.2", + "revision": "20141112", + "title": "DFA Reporting API", + "description": "Lets you create, run and download reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dfareporting/v1.2/", + "basePath": "/dfareporting/v1.2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dfareporting/v1.2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + } + } + } + }, + "schemas": { + "Activities": { + "id": "Activities", + "type": "object", + "description": "Represents an activity group.", + "properties": { + "filters": { + "type": "array", + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#activities.", + "default": "dfareporting#activities" + }, + "metricNames": { + "type": "array", + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + } + } + } + }, + "CustomRichMediaEvents": { + "id": "CustomRichMediaEvents", + "type": "object", + "description": "Represents a Custom Rich Media Events group.", + "properties": { + "filteredEventIds": { + "type": "array", + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", + "default": "dfareporting#customRichMediaEvents" + } + } + }, + "DateRange": { + "id": "DateRange", + "type": "object", + "description": "Represents a date range.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dateRange.", + "default": "dfareporting#dateRange" + }, + "relativeDateRange": { + "type": "string", + "description": "The date range relative to the date of when the report is run, one of: \n- \"TODAY\" \n- \"YESTERDAY\" \n- \"WEEK_TO_DATE\" \n- \"MONTH_TO_DATE\" \n- \"QUARTER_TO_DATE\" \n- \"YEAR_TO_DATE\" \n- \"PREVIOUS_WEEK\" \n- \"PREVIOUS_MONTH\" \n- \"PREVIOUS_QUARTER\" \n- \"PREVIOUS_YEAR\" \n- \"LAST_7_DAYS\" \n- \"LAST_30_DAYS\" \n- \"LAST_90_DAYS\" \n- \"LAST_365_DAYS\" \n- \"LAST_24_MONTHS\"" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "DimensionFilter": { + "id": "DimensionFilter", + "type": "object", + "description": "Represents a dimension filter.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension to filter." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", + "default": "dfareporting#dimensionFilter" + }, + "value": { + "type": "string", + "description": "The value of the dimension to filter." + } + } + }, + "DimensionValue": { + "id": "DimensionValue", + "type": "object", + "description": "Represents a DimensionValue resource.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID associated with the value if available." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionValue.", + "default": "dfareporting#dimensionValue" + }, + "matchType": { + "type": "string", + "description": "Determines how the 'value' field is matched when filtering. One of: \n- EXACT (default if not specified) \n- CONTAINS \n- BEGINS_WITH \n- WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.) Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT." + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "DimensionValueList": { + "id": "DimensionValueList", + "type": "object", + "description": "Represents the list of DimensionValue resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", + "default": "dfareporting#dimensionValueList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "DimensionValueRequest": { + "id": "DimensionValueRequest", + "type": "object", + "description": "Represents a DimensionValuesRequest.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension for which values should be requested." + }, + "endDate": { + "type": "string", + "description": "The end date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "filters": { + "type": "array", + "description": "The list of filters by which to filter values. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + } + }, + "kind": { + "type": "string", + "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest.", + "default": "dfareporting#dimensionValueRequest" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "Represents a File resource. A File contains the meta-data for a report run. It shows the status of the run and holds the urls to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name of the file." + }, + "format": { + "type": "string", + "description": "The output format of the report. Only available once the file is available." + }, + "id": { + "type": "string", + "description": "The unique ID of this report file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#file.", + "default": "dfareporting#file" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "The ID of the report this file was generated from.", + "format": "int64" + }, + "status": { + "type": "string", + "description": "The status of the report file, one of: \n- \"PROCESSING\" \n- \"REPORT_AVAILABLE\" \n- \"FAILED\" \n- \"CANCELLED\"" + }, + "urls": { + "type": "object", + "description": "The urls where the completed report file can be downloaded.", + "properties": { + "apiUrl": { + "type": "string", + "description": "The url for downloading the report data through the API." + }, + "browserUrl": { + "type": "string", + "description": "The url for downloading the report data through a browser." + } + } + } + } + }, + "FileList": { + "id": "FileList", + "type": "object", + "description": "Represents the list of File resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The files returned in this response.", + "items": { + "$ref": "File" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#fileList.", + "default": "dfareporting#fileList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "Recipient": { + "id": "Recipient", + "type": "object", + "description": "Represents a recipient.", + "properties": { + "deliveryType": { + "type": "string", + "description": "The delivery type for the recipient, one of: \n- \"ATTACHMENT\" \n- \"LINK\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "email": { + "type": "string", + "description": "The email address of the recipient.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#recipient.", + "default": "dfareporting#recipient" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a Report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this report belongs.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "activeGrpCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"ACTIVE_GRP\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.\nA valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "criteria": { + "type": "object", + "description": "The report criteria for a report of type \"STANDARD\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which this report should be run." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of standard dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "crossDimensionReachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimension": { + "type": "string", + "description": "The dimension option, one of: \n- \"ADVERTISER\" \n- \"CAMPAIGN\" \n- \"SITE_BY_ADVERTISER\" \n- \"SITE_BY_CAMPAIGN\"" + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.", + "items": { + "$ref": "DimensionValue" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "overlapMetricNames": { + "type": "array", + "description": "The list of names of overlap metrics the report should include.", + "items": { + "type": "string" + } + }, + "pivoted": { + "type": "boolean", + "description": "Whether the report is pivoted or not. Defaults to true." + } + } + }, + "delivery": { + "type": "object", + "description": "The report's email delivery settings.", + "properties": { + "emailOwner": { + "type": "boolean", + "description": "Whether the report should be emailed to the report owner." + }, + "emailOwnerDeliveryType": { + "type": "string", + "description": "The type of delivery for the owner to receive, if enabled. One of: \n- \"ATTACHMENT\" \n- \"LINK\"" + }, + "message": { + "type": "string", + "description": "The message to be sent with each email." + }, + "recipients": { + "type": "array", + "description": "The list of recipients to which to email the report.", + "items": { + "$ref": "Recipient" + } + } + } + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name used when generating report files for this report." + }, + "floodlightCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"FLOODLIGHT\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + } + } + } + } + }, + "format": { + "type": "string", + "description": "The output format of the report, one of: \n- \"CSV\" \n- \"EXCEL\" If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format." + }, + "id": { + "type": "string", + "description": "The unique ID identifying this report resource.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#report.", + "default": "dfareporting#report" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the report.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "ownerProfileId": { + "type": "string", + "description": "The user profile id of the owner of this report.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "pathToConversionCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "activityFilters": { + "type": "array", + "description": "The list of 'dfa:activity' values to filter on.", + "items": { + "$ref": "DimensionValue" + } + }, + "conversionDimensions": { + "type": "array", + "description": "The list of conversion dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "The list of custom floodlight variables the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "The list of per interaction dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "clicksLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "impressionsLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + }, + "maximumClickInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumImpressionInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumInteractionGap": { + "type": "integer", + "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", + "format": "int32" + }, + "pivotOnInteractionPath": { + "type": "boolean", + "description": "Enable pivoting on interaction path." + } + } + } + } + }, + "reachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"REACH\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reachByFrequencyMetricNames": { + "type": "array", + "description": "The list of names of Reach By Frequency metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "schedule": { + "type": "object", + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "every": { + "type": "integer", + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32" + }, + "expirationDate": { + "type": "string", + "description": "The expiration date when the scheduled report stops running.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeats": { + "type": "string", + "description": "The interval for which the report is repeated, one of: \n- \"DAILY\", also requires field \"every\" to be set. \n- \"WEEKLY\", also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. \n- \"TWICE_A_MONTH\" \n- \"MONTHLY\", also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. \n- \"QUARTERLY\" \n- \"YEARLY\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeatsOnWeekDays": { + "type": "array", + "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", + "items": { + "type": "string" + } + }, + "runsOnDayOfMonth": { + "type": "string", + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Possible values are: \n- DAY_OF_MONTH \n- WEEK_OF_MONTH \nExample: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month." + }, + "startDate": { + "type": "string", + "description": "Start date of date range for which scheduled reports should be run.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "subAccountId": { + "type": "string", + "description": "The subbaccount ID to which this report belongs if applicable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The type of the report, one of: \n- STANDARD \n- REACH \n- ACTIVE_GRP \n- PATH_TO_CONVERSION \n- FLOODLIGHT \n- CROSS_DIMENSION_REACH", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "ReportList": { + "id": "ReportList", + "type": "object", + "description": "Represents the list of reports.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#reportList.", + "default": "dfareporting#reportList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "SortedDimension": { + "id": "SortedDimension", + "type": "object", + "description": "Represents a sorted dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", + "default": "dfareporting#sortedDimension" + }, + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "sortOrder": { + "type": "string", + "description": "An optional sort order for the dimension column, one of: \n- \"ASCENDING\" \n- \"DESCENDING\"" + } + } + }, + "UserProfile": { + "id": "UserProfile", + "type": "object", + "description": "Represents a UserProfile resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this profile belongs.", + "format": "int64" + }, + "accountName": { + "type": "string", + "description": "The account name this profile belongs to." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#userProfile.", + "default": "dfareporting#userProfile" + }, + "profileId": { + "type": "string", + "description": "The unique ID of the user profile.", + "format": "int64" + }, + "subAccountId": { + "type": "string", + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64" + }, + "subAccountName": { + "type": "string", + "description": "The sub account name this profile belongs to if applicable." + }, + "userName": { + "type": "string", + "description": "The user name." + } + } + }, + "UserProfileList": { + "id": "UserProfileList", + "type": "object", + "description": "Represents the list of user profiles.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#userProfileList.", + "default": "dfareporting#userProfileList" + } + } + } + }, + "resources": { + "dimensionValues": { + "methods": { + "query": { + "id": "dfareporting.dimensionValues.query", + "path": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "description": "Retrieves list of report dimension values for a list of filters.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "get": { + "id": "dfareporting.files.get", + "path": "reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file by its report ID and file ID.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.files.list", + "path": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "description": "Lists files for a user profile.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE", + "SHARED_WITH_ME" + ], + "enumDescriptions": [ + "All files in account.", + "My files.", + "Files shared with me." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "id": "dfareporting.reports.delete", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "description": "Deletes a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "id": "dfareporting.reports.get", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "description": "Retrieves a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "id": "dfareporting.reports.insert", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "description": "Creates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.list", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "description": "Retrieves list of reports.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE" + ], + "enumDescriptions": [ + "All reports in account.", + "My reports." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report ID.", + "Sort by 'lastModifiedTime' field.", + "Sort by name of reports." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "id": "dfareporting.reports.patch", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "description": "Updates a report. This method supports patch semantics.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "id": "dfareporting.reports.run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "description": "Runs a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + }, + "synchronous": { + "type": "boolean", + "description": "If set and true, tries to run the report synchronously.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "id": "dfareporting.reports.update", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "description": "Updates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "files": { + "methods": { + "get": { + "id": "dfareporting.reports.files.get", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.reports.files.list", + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "description": "Lists files for a report.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the parent report.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "userProfiles": { + "methods": { + "get": { + "id": "dfareporting.userProfiles.get", + "path": "userprofiles/{profileId}", + "httpMethod": "GET", + "description": "Gets one user profile by ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.userProfiles.list", + "path": "userprofiles", + "httpMethod": "GET", + "description": "Retrieves list of user profiles for a user.", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } +} diff --git a/etc/api/dfareporting/v1.3/dfareporting-api.json b/etc/api/dfareporting/v1.3/dfareporting-api.json new file mode 100644 index 0000000000..f155481de5 --- /dev/null +++ b/etc/api/dfareporting/v1.3/dfareporting-api.json @@ -0,0 +1,1913 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_NHVgXxsnh4iZLUQivabzFT84as\"", + "discoveryVersion": "v1", + "id": "dfareporting:v1.3", + "name": "dfareporting", + "version": "v1.3", + "revision": "20141112", + "title": "DFA Reporting API", + "description": "Lets you create, run and download reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dfareporting/v1.3/", + "basePath": "/dfareporting/v1.3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dfareporting/v1.3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + } + } + } + }, + "schemas": { + "Activities": { + "id": "Activities", + "type": "object", + "description": "Represents an activity group.", + "properties": { + "filters": { + "type": "array", + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#activities.", + "default": "dfareporting#activities" + }, + "metricNames": { + "type": "array", + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + } + } + } + }, + "CompatibleFields": { + "id": "CompatibleFields", + "type": "object", + "description": "Represents a response to the queryCompatibleFields method.", + "properties": { + "crossDimensionReachReportCompatibleFields": { + "$ref": "CrossDimensionReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\"." + }, + "floodlightReportCompatibleFields": { + "$ref": "FloodlightReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"FLOODLIGHT\"." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#compatibleFields.", + "default": "dfareporting#compatibleFields" + }, + "pathToConversionReportCompatibleFields": { + "$ref": "PathToConversionReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\"." + }, + "reachReportCompatibleFields": { + "$ref": "ReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"REACH\"." + }, + "reportCompatibleFields": { + "$ref": "ReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"STANDARD\"." + } + } + }, + "CrossDimensionReachReportCompatibleFields": { + "id": "CrossDimensionReachReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"breakdown\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.", + "default": "dfareporting#crossDimensionReachReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "overlapMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"overlapMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "CustomRichMediaEvents": { + "id": "CustomRichMediaEvents", + "type": "object", + "description": "Represents a Custom Rich Media Events group.", + "properties": { + "filteredEventIds": { + "type": "array", + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", + "default": "dfareporting#customRichMediaEvents" + } + } + }, + "DateRange": { + "id": "DateRange", + "type": "object", + "description": "Represents a date range.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dateRange.", + "default": "dfareporting#dateRange" + }, + "relativeDateRange": { + "type": "string", + "description": "The date range relative to the date of when the report is run, one of: \n- \"TODAY\" \n- \"YESTERDAY\" \n- \"WEEK_TO_DATE\" \n- \"MONTH_TO_DATE\" \n- \"QUARTER_TO_DATE\" \n- \"YEAR_TO_DATE\" \n- \"PREVIOUS_WEEK\" \n- \"PREVIOUS_MONTH\" \n- \"PREVIOUS_QUARTER\" \n- \"PREVIOUS_YEAR\" \n- \"LAST_7_DAYS\" \n- \"LAST_30_DAYS\" \n- \"LAST_90_DAYS\" \n- \"LAST_365_DAYS\" \n- \"LAST_24_MONTHS\"" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "Dimension": { + "id": "Dimension", + "type": "object", + "description": "Represents a dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimension.", + "default": "dfareporting#dimension" + }, + "name": { + "type": "string", + "description": "The dimension name, e.g. dfa:advertiser" + } + } + }, + "DimensionFilter": { + "id": "DimensionFilter", + "type": "object", + "description": "Represents a dimension filter.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension to filter." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", + "default": "dfareporting#dimensionFilter" + }, + "value": { + "type": "string", + "description": "The value of the dimension to filter." + } + } + }, + "DimensionValue": { + "id": "DimensionValue", + "type": "object", + "description": "Represents a DimensionValue resource.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID associated with the value if available." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionValue.", + "default": "dfareporting#dimensionValue" + }, + "matchType": { + "type": "string", + "description": "Determines how the 'value' field is matched when filtering. One of: \n- EXACT (default if not specified) \n- CONTAINS \n- BEGINS_WITH \n- WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length character sequences, it can be escaped with a backslash.) Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT." + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "DimensionValueList": { + "id": "DimensionValueList", + "type": "object", + "description": "Represents the list of DimensionValue resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", + "default": "dfareporting#dimensionValueList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "DimensionValueRequest": { + "id": "DimensionValueRequest", + "type": "object", + "description": "Represents a DimensionValuesRequest.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension for which values should be requested.", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + }, + "endDate": { + "type": "string", + "description": "The end date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + }, + "filters": { + "type": "array", + "description": "The list of filters by which to filter values. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + } + }, + "kind": { + "type": "string", + "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest.", + "default": "dfareporting#dimensionValueRequest" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "Represents a File resource. A File contains the meta-data for a report run. It shows the status of the run and holds the urls to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name of the file." + }, + "format": { + "type": "string", + "description": "The output format of the report. Only available once the file is available." + }, + "id": { + "type": "string", + "description": "The unique ID of this report file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#file.", + "default": "dfareporting#file" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "The ID of the report this file was generated from.", + "format": "int64" + }, + "status": { + "type": "string", + "description": "The status of the report file, one of: \n- \"PROCESSING\" \n- \"REPORT_AVAILABLE\" \n- \"FAILED\" \n- \"CANCELLED\"" + }, + "urls": { + "type": "object", + "description": "The urls where the completed report file can be downloaded.", + "properties": { + "apiUrl": { + "type": "string", + "description": "The url for downloading the report data through the API." + }, + "browserUrl": { + "type": "string", + "description": "The url for downloading the report data through a browser." + } + } + } + } + }, + "FileList": { + "id": "FileList", + "type": "object", + "description": "Represents the list of File resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The files returned in this response.", + "items": { + "$ref": "File" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#fileList.", + "default": "dfareporting#fileList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "FloodlightReportCompatibleFields": { + "id": "FloodlightReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"FlOODLIGHT\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.", + "default": "dfareporting#floodlightReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "Metric": { + "id": "Metric", + "type": "object", + "description": "Represents a metric.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#metric.", + "default": "dfareporting#metric" + }, + "name": { + "type": "string", + "description": "The metric name, e.g. dfa:impressions" + } + } + }, + "PathToConversionReportCompatibleFields": { + "id": "PathToConversionReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "conversionDimensions": { + "type": "array", + "description": "Conversion dimensions which are compatible to be selected in the \"conversionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "Custom floodlight variables which are compatible to be selected in the \"customFloodlightVariables\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.", + "default": "dfareporting#pathToConversionReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "Per-interaction dimensions which are compatible to be selected in the \"perInteractionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + } + } + }, + "ReachReportCompatibleFields": { + "id": "ReachReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"REACH\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.", + "default": "dfareporting#reachReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "pivotedActivityMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "reachByFrequencyMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"reachByFrequencyMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "Recipient": { + "id": "Recipient", + "type": "object", + "description": "Represents a recipient.", + "properties": { + "deliveryType": { + "type": "string", + "description": "The delivery type for the recipient, one of: \n- \"ATTACHMENT\" \n- \"LINK\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "email": { + "type": "string", + "description": "The email address of the recipient.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#recipient.", + "default": "dfareporting#recipient" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a Report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this report belongs.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "activeGrpCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"ACTIVE_GRP\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.\nA valid active GRP report needs to have exactly one DimensionValue for the United States in addition to any advertiser or campaign dimension values.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "criteria": { + "type": "object", + "description": "The report criteria for a report of type \"STANDARD\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which this report should be run." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of standard dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "crossDimensionReachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimension": { + "type": "string", + "description": "The dimension option, one of: \n- \"ADVERTISER\" \n- \"CAMPAIGN\" \n- \"SITE_BY_ADVERTISER\" \n- \"SITE_BY_CAMPAIGN\"" + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.", + "items": { + "$ref": "DimensionValue" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "overlapMetricNames": { + "type": "array", + "description": "The list of names of overlap metrics the report should include.", + "items": { + "type": "string" + } + }, + "pivoted": { + "type": "boolean", + "description": "Whether the report is pivoted or not. Defaults to true." + } + } + }, + "delivery": { + "type": "object", + "description": "The report's email delivery settings.", + "properties": { + "emailOwner": { + "type": "boolean", + "description": "Whether the report should be emailed to the report owner." + }, + "emailOwnerDeliveryType": { + "type": "string", + "description": "The type of delivery for the owner to receive, if enabled. One of: \n- \"ATTACHMENT\" \n- \"LINK\"" + }, + "message": { + "type": "string", + "description": "The message to be sent with each email." + }, + "recipients": { + "type": "array", + "description": "The list of recipients to which to email the report.", + "items": { + "$ref": "Recipient" + } + } + } + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name used when generating report files for this report." + }, + "floodlightCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"FLOODLIGHT\".", + "properties": { + "customRichMediaEvents": { + "type": "array", + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + } + } + } + } + }, + "format": { + "type": "string", + "description": "The output format of the report, one of: \n- \"CSV\" \n- \"EXCEL\" If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format." + }, + "id": { + "type": "string", + "description": "The unique ID identifying this report resource.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#report.", + "default": "dfareporting#report" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the report.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "ownerProfileId": { + "type": "string", + "description": "The user profile id of the owner of this report.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "pathToConversionCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "activityFilters": { + "type": "array", + "description": "The list of 'dfa:activity' values to filter on.", + "items": { + "$ref": "DimensionValue" + } + }, + "conversionDimensions": { + "type": "array", + "description": "The list of conversion dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "The list of custom floodlight variables the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customRichMediaEvents": { + "type": "array", + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "The list of per interaction dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "clicksLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "impressionsLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Deprecated: has no effect." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + }, + "maximumClickInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumImpressionInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumInteractionGap": { + "type": "integer", + "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", + "format": "int32" + }, + "pivotOnInteractionPath": { + "type": "boolean", + "description": "Enable pivoting on interaction path." + } + } + } + } + }, + "reachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"REACH\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reachByFrequencyMetricNames": { + "type": "array", + "description": "The list of names of Reach By Frequency metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "schedule": { + "type": "object", + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "every": { + "type": "integer", + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32" + }, + "expirationDate": { + "type": "string", + "description": "The expiration date when the scheduled report stops running.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeats": { + "type": "string", + "description": "The interval for which the report is repeated, one of: \n- \"DAILY\", also requires field \"every\" to be set. \n- \"WEEKLY\", also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. \n- \"TWICE_A_MONTH\" \n- \"MONTHLY\", also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. \n- \"QUARTERLY\" \n- \"YEARLY\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeatsOnWeekDays": { + "type": "array", + "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", + "items": { + "type": "string" + } + }, + "runsOnDayOfMonth": { + "type": "string", + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Possible values are: \n- DAY_OF_MONTH \n- WEEK_OF_MONTH \nExample: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month." + }, + "startDate": { + "type": "string", + "description": "Start date of date range for which scheduled reports should be run.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "subAccountId": { + "type": "string", + "description": "The subbaccount ID to which this report belongs if applicable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The type of the report, one of: \n- STANDARD \n- REACH \n- ACTIVE_GRP \n- PATH_TO_CONVERSION \n- FLOODLIGHT \n- CROSS_DIMENSION_REACH", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "ReportCompatibleFields": { + "id": "ReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"STANDARD\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#reportCompatibleFields.", + "default": "dfareporting#reportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "pivotedActivityMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "ReportList": { + "id": "ReportList", + "type": "object", + "description": "Represents the list of reports.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#reportList.", + "default": "dfareporting#reportList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "SortedDimension": { + "id": "SortedDimension", + "type": "object", + "description": "Represents a sorted dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", + "default": "dfareporting#sortedDimension" + }, + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "sortOrder": { + "type": "string", + "description": "An optional sort order for the dimension column, one of: \n- \"ASCENDING\" \n- \"DESCENDING\"" + } + } + }, + "UserProfile": { + "id": "UserProfile", + "type": "object", + "description": "Represents a UserProfile resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this profile belongs.", + "format": "int64" + }, + "accountName": { + "type": "string", + "description": "The account name this profile belongs to." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#userProfile.", + "default": "dfareporting#userProfile" + }, + "profileId": { + "type": "string", + "description": "The unique ID of the user profile.", + "format": "int64" + }, + "subAccountId": { + "type": "string", + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64" + }, + "subAccountName": { + "type": "string", + "description": "The sub account name this profile belongs to if applicable." + }, + "userName": { + "type": "string", + "description": "The user name." + } + } + }, + "UserProfileList": { + "id": "UserProfileList", + "type": "object", + "description": "Represents the list of user profiles.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#userProfileList.", + "default": "dfareporting#userProfileList" + } + } + } + }, + "resources": { + "dimensionValues": { + "methods": { + "query": { + "id": "dfareporting.dimensionValues.query", + "path": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "description": "Retrieves list of report dimension values for a list of filters.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "get": { + "id": "dfareporting.files.get", + "path": "reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file by its report ID and file ID.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.files.list", + "path": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "description": "Lists files for a user profile.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE", + "SHARED_WITH_ME" + ], + "enumDescriptions": [ + "All files in account.", + "My files.", + "Files shared with me." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "id": "dfareporting.reports.delete", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "description": "Deletes a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "id": "dfareporting.reports.get", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "description": "Retrieves a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "id": "dfareporting.reports.insert", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "description": "Creates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.list", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "description": "Retrieves list of reports.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE" + ], + "enumDescriptions": [ + "All reports in account.", + "My reports." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report ID.", + "Sort by 'lastModifiedTime' field.", + "Sort by name of reports." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "id": "dfareporting.reports.patch", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "description": "Updates a report. This method supports patch semantics.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "id": "dfareporting.reports.run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "description": "Runs a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + }, + "synchronous": { + "type": "boolean", + "description": "If set and true, tries to run the report synchronously.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "id": "dfareporting.reports.update", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "description": "Updates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "compatibleFields": { + "methods": { + "query": { + "id": "dfareporting.reports.compatibleFields.query", + "path": "userprofiles/{profileId}/reports/compatiblefields/query", + "httpMethod": "POST", + "description": "Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "CompatibleFields" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "get": { + "id": "dfareporting.reports.files.get", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.reports.files.list", + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "description": "Lists files for a report.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the parent report.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "userProfiles": { + "methods": { + "get": { + "id": "dfareporting.userProfiles.get", + "path": "userprofiles/{profileId}", + "httpMethod": "GET", + "description": "Gets one user profile by ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.userProfiles.list", + "path": "userprofiles", + "httpMethod": "GET", + "description": "Retrieves list of user profiles for a user.", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } +} diff --git a/etc/api/dfareporting/v1/dfareporting-api.json b/etc/api/dfareporting/v1/dfareporting-api.json new file mode 100644 index 0000000000..1956f0e955 --- /dev/null +++ b/etc/api/dfareporting/v1/dfareporting-api.json @@ -0,0 +1,1172 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/MbpeaEJOniwFpvXZcTkgWQ9h6fo\"", + "discoveryVersion": "v1", + "id": "dfareporting:v1", + "name": "dfareporting", + "version": "v1", + "revision": "20141112", + "title": "DFA Reporting API", + "description": "Lets you create, run and download reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dfareporting/v1/", + "basePath": "/dfareporting/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dfareporting/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + } + } + } + }, + "schemas": { + "DimensionFilter": { + "id": "DimensionFilter", + "type": "object", + "description": "Represents a dimension filter.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension to filter." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#dimensionFilter.", + "default": "dfareporting#dimensionFilter" + }, + "value": { + "type": "string", + "description": "The value of the dimension to filter for." + } + } + }, + "DimensionValue": { + "id": "DimensionValue", + "type": "object", + "description": "Represents a DimensionValue resource.", + "properties": { + "dimensionName": { + "type": "string", + "description": "Name of the dimension." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID associated with the value if available." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#dimensionValue.", + "default": "dfareporting#dimensionValue" + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "DimensionValueList": { + "id": "DimensionValueList", + "type": "object", + "description": "Represents the list of DimensionValue resources.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case dfareporting#dimensionValueList.", + "default": "dfareporting#dimensionValueList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "DimensionValueRequest": { + "id": "DimensionValueRequest", + "type": "object", + "description": "Represents a DimensionValuesRequest.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension values should be requested for." + }, + "endDate": { + "type": "string", + "description": "The end date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "filters": { + "type": "array", + "description": "List of filters to filter values by. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + } + }, + "kind": { + "type": "string", + "description": "Kind of request this is, in this case dfareporting#dimensionValueRequest.", + "default": "dfareporting#dimensionValueRequest" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range for which to retrieve dimension values. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "Represents a File resource. A File contains the meta-data for a report run. It shows the status of the run and holds the urls to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "properties": { + "dateRange": { + "type": "object", + "description": "The date range for which the file has report data.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name of the file." + }, + "id": { + "type": "string", + "description": "The unique ID of this report file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#file.", + "default": "dfareporting#file" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "The ID of the report this file was generated from.", + "format": "int64" + }, + "status": { + "type": "string", + "description": "The status of the report file, one of: \n- \"PROCESSING\" \n- \"REPORT_AVAILABLE\" \n- \"FAILED\" \n- \"CANCELLED\"" + }, + "urls": { + "type": "object", + "description": "The urls where the completed report file can be downloaded.", + "properties": { + "csv": { + "type": "object", + "description": "Urls for generated CSV data.", + "properties": { + "apiUrl": { + "type": "string", + "description": "The url for downloading the report data through the API." + }, + "browserUrl": { + "type": "string", + "description": "The url for downloading the report data through a browser." + } + } + } + } + } + } + }, + "FileList": { + "id": "FileList", + "type": "object", + "description": "Represents the list of File resources.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The files returned in this response.", + "items": { + "$ref": "File" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case dfareporting#fileList.", + "default": "dfareporting#fileList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a Report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account id this report belongs to.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "criteria": { + "type": "object", + "description": "The report criteria.", + "properties": { + "activities": { + "type": "object", + "description": "Activity group.", + "properties": { + "filters": { + "type": "array", + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + } + }, + "metricNames": { + "type": "array", + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + } + } + } + }, + "customRichMediaEvents": { + "type": "object", + "description": "Custom Rich Media Events group.", + "properties": { + "filteredEventIds": { + "type": "array", + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + } + } + } + }, + "dateRange": { + "type": "object", + "description": "The date range this report should be run for.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "relativeDateRange": { + "type": "string", + "description": "The date range relative to the date of when the report is run, one of: \n- \"TODAY\" \n- \"YESTERDAY\" \n- \"WEEK_TO_DATE\" \n- \"MONTH_TO_DATE\" \n- \"QUARTER_TO_DATE\" \n- \"YEAR_TO_DATE\" \n- \"PREVIOUS_WEEK\" \n- \"PREVIOUS_MONTH\" \n- \"PREVIOUS_QUARTER\" \n- \"PREVIOUS_YEAR\" \n- \"LAST_7_DAYS\" \n- \"LAST_30_DAYS\" \n- \"LAST_90_DAYS\" \n- \"LAST_365_DAYS\" \n- \"LAST_24_MONTHS\"" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters dimensions are filtered on.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The file name used when generating report files for this report." + }, + "id": { + "type": "string", + "description": "The unique ID identifying this report resource.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#report.", + "default": "dfareporting#report" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the report.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "ownerProfileId": { + "type": "string", + "description": "The user profile id of the owner of this report.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "schedule": { + "type": "object", + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "every": { + "type": "integer", + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32" + }, + "expirationDate": { + "type": "string", + "description": "The expiration date when the scheduled report stops running.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeats": { + "type": "string", + "description": "The interval the report is repeated for, one of: \n- \"DAILY\", also requires field \"every\" to be set. \n- \"WEEKLY\", also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. \n- \"TWICE_A_MONTH\" \n- \"MONTHLY\", also requires fields \"every\" and \"runsOnDayOfMonth\" to be set. \n- \"QUARTERLY\" \n- \"YEARLY\"", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeatsOnWeekDays": { + "type": "array", + "description": "List of week days \"WEEKLY\" scheduled reports should run on.", + "items": { + "type": "string" + } + }, + "runsOnDayOfMonth": { + "type": "string", + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month. Possible values are: \n- DAY_OF_MONTH \n- WEEK_OF_MONTH \nExample: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month." + }, + "startDate": { + "type": "string", + "description": "Start date of date range for which scheduled reports should be run.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "subAccountId": { + "type": "string", + "description": "The subbaccount id this report belongs to if applicable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The type of the report, currently only \"STANDARD\" is supported.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "ReportList": { + "id": "ReportList", + "type": "object", + "description": "Represents the list of reports.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case dfareporting#reportList.", + "default": "dfareporting#reportList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "SortedDimension": { + "id": "SortedDimension", + "type": "object", + "description": "Represents a sorted dimension.", + "properties": { + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#sortedDimension.", + "default": "dfareporting#sortedDimension" + }, + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "sortOrder": { + "type": "string", + "description": "An optional sort order for the dimension column, one of: \n- \"ASCENDING\" \n- \"DESCENDING\"" + } + } + }, + "UserProfile": { + "id": "UserProfile", + "type": "object", + "description": "Represents a UserProfile resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID this profile belongs to.", + "format": "int64" + }, + "accountName": { + "type": "string", + "description": "The account name this profile belongs to." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "kind": { + "type": "string", + "description": "Kind of resource this is, in this case dfareporting#userProfile.", + "default": "dfareporting#userProfile" + }, + "profileId": { + "type": "string", + "description": "The unique ID of the user profile.", + "format": "int64" + }, + "subAccountId": { + "type": "string", + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64" + }, + "subAccountName": { + "type": "string", + "description": "The sub account name this profile belongs to if applicable." + }, + "userName": { + "type": "string", + "description": "The user name." + } + } + }, + "UserProfileList": { + "id": "UserProfileList", + "type": "object", + "description": "Represents the list of user profiles.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + } + }, + "kind": { + "type": "string", + "description": "Kind of list this is, in this case dfareporting#userProfileList.", + "default": "dfareporting#userProfileList" + } + } + } + }, + "resources": { + "dimensionValues": { + "methods": { + "query": { + "id": "dfareporting.dimensionValues.query", + "path": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "description": "Retrieves list of report dimension values for a list of filters.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "list": { + "id": "dfareporting.files.list", + "path": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "description": "Lists files for a user profile.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field to sort the list by.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file id.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "id": "dfareporting.reports.delete", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "description": "Deletes a report by its id.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "id": "dfareporting.reports.get", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "description": "Retrieves a report by its id.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "id": "dfareporting.reports.insert", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "description": "Creates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.list", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "description": "Retrieves list of reports.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field to sort the list by.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report id.", + "Sort by 'lastModifiedTime' field.", + "Sort by display name of reports." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "id": "dfareporting.reports.patch", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "description": "Updates a report. This method supports patch semantics.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "id": "dfareporting.reports.run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "description": "Runs a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + }, + "synchronous": { + "type": "boolean", + "description": "If set and true, tries to run the report synchronously.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "id": "dfareporting.reports.update", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "description": "Updates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "files": { + "methods": { + "get": { + "id": "dfareporting.reports.files.get", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file.", + "parameters": { + "fileId": { + "type": "string", + "description": "The id of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "The DFA profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.files.list", + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "description": "Lists files for a report.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile id.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The id of the parent report.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field to sort the list by.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file id.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "userProfiles": { + "methods": { + "get": { + "id": "dfareporting.userProfiles.get", + "path": "userprofiles/{profileId}", + "httpMethod": "GET", + "description": "Gets one user profile by id.", + "parameters": { + "profileId": { + "type": "string", + "description": "The user profile id.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.userProfiles.list", + "path": "userprofiles", + "httpMethod": "GET", + "description": "Retrieves list of user profiles for a user.", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } +} diff --git a/etc/api/dfareporting/v2.0/dfareporting-api.json b/etc/api/dfareporting/v2.0/dfareporting-api.json new file mode 100644 index 0000000000..54d4c62dae --- /dev/null +++ b/etc/api/dfareporting/v2.0/dfareporting-api.json @@ -0,0 +1,15295 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/18wO3vJeoOcaxNlyUy0n8CNe-Lk\"", + "discoveryVersion": "v1", + "id": "dfareporting:v2.0", + "name": "dfareporting", + "version": "v2.0", + "revision": "20150108", + "title": "DCM/DFA Reporting And Trafficking API", + "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/reporting/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dfareporting/v2.0/", + "basePath": "/dfareporting/v2.0/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dfareporting/v2.0/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/dfareporting": { + "description": "View and manage DoubleClick for Advertisers reports" + }, + "https://www.googleapis.com/auth/dfatrafficking": { + "description": "View and manage your DoubleClick Campaign Manager's (DCM) display ad campaigns" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Contains properties of a DCM account.", + "properties": { + "accountPermissionIds": { + "type": "array", + "description": "Account permissions assigned to this account.", + "items": { + "type": "string", + "format": "int64" + } + }, + "accountProfile": { + "type": "string", + "description": "Profile for this account. This is a read-only field that can be left blank.", + "enum": [ + "ACCOUNT_PROFILE_BASIC", + "ACCOUNT_PROFILE_STANDARD" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "active": { + "type": "boolean", + "description": "Whether this account is active." + }, + "activeAdsLimitTier": { + "type": "string", + "description": "Maximum number of active ads allowed for this account.", + "enum": [ + "ACTIVE_ADS_TIER_100K", + "ACTIVE_ADS_TIER_200K", + "ACTIVE_ADS_TIER_300K", + "ACTIVE_ADS_TIER_40K", + "ACTIVE_ADS_TIER_75K" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "activeViewOptOut": { + "type": "boolean", + "description": "Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions." + }, + "availablePermissionIds": { + "type": "array", + "description": "User role permissions available to the user roles of this account.", + "items": { + "type": "string", + "format": "int64" + } + }, + "comscoreVceEnabled": { + "type": "boolean", + "description": "Whether campaigns created in this account will be enabled for comScore vCE by default." + }, + "countryId": { + "type": "string", + "description": "ID of the country associated with this account.", + "format": "int64" + }, + "currencyId": { + "type": "string", + "description": "ID of currency associated with this account. This is a required field.\nAcceptable values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ", + "format": "int64" + }, + "defaultCreativeSizeId": { + "type": "string", + "description": "Default placement dimensions for this account.", + "format": "int64" + }, + "description": { + "type": "string", + "description": "Description of this account." + }, + "id": { + "type": "string", + "description": "ID of this account. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#account\".", + "default": "dfareporting#account" + }, + "locale": { + "type": "string", + "description": "Locale of this account.\nAcceptable values are: \n- \"cs\" (Czech) \n- \"de\" (German) \n- \"en\" (English) \n- \"en-GB\" (English United Kingdom) \n- \"es\" (Spanish) \n- \"fr\" (French) \n- \"it\" (Italian) \n- \"ja\" (Japanese) \n- \"ko\" (Korean) \n- \"pl\" (Polish) \n- \"pt-BR\" (Portuguese Brazil) \n- \"ru\" (Russian) \n- \"sv\" (Swedish) \n- \"tr\" (Turkish) \n- \"zh-CN\" (Chinese Simplified) \n- \"zh-TW\" (Chinese Traditional)" + }, + "maximumImageSize": { + "type": "string", + "description": "Maximum image size allowed for this account.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this account. This is a required field, and must be less than 128 characters long and be globally unique." + }, + "nielsenOcrEnabled": { + "type": "boolean", + "description": "Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default." + }, + "reportsConfiguration": { + "$ref": "ReportsConfiguration", + "description": "Reporting configuration of this account." + }, + "teaserSizeLimit": { + "type": "string", + "description": "File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.", + "format": "int64" + } + } + }, + "AccountActiveAdSummary": { + "id": "AccountActiveAdSummary", + "type": "object", + "description": "Gets a summary of active ads in an account.", + "properties": { + "accountId": { + "type": "string", + "description": "ID of the account.", + "format": "int64" + }, + "activeAds": { + "type": "string", + "description": "Ads that have been activated for the account", + "format": "int64" + }, + "activeAdsLimitTier": { + "type": "string", + "description": "Maximum number of active ads allowed for the account.", + "enum": [ + "ACTIVE_ADS_TIER_100K", + "ACTIVE_ADS_TIER_200K", + "ACTIVE_ADS_TIER_300K", + "ACTIVE_ADS_TIER_40K", + "ACTIVE_ADS_TIER_75K" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "availableAds": { + "type": "string", + "description": "Ads that can be activated for the account.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountActiveAdSummary\".", + "default": "dfareporting#accountActiveAdSummary" + } + } + }, + "AccountPermission": { + "id": "AccountPermission", + "type": "object", + "description": "AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.", + "properties": { + "accountProfiles": { + "type": "array", + "description": "Account profiles associated with this account permission.\n\nPossible values are:\n- \"ACCOUNT_PROFILE_BASIC\"\n- \"ACCOUNT_PROFILE_STANDARD\"", + "items": { + "type": "string", + "enum": [ + "ACCOUNT_PROFILE_BASIC", + "ACCOUNT_PROFILE_STANDARD" + ], + "enumDescriptions": [ + "", + "" + ] + } + }, + "id": { + "type": "string", + "description": "ID of this account permission.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermission\".", + "default": "dfareporting#accountPermission" + }, + "level": { + "type": "string", + "description": "Administrative level required to enable this account permission.", + "enum": [ + "ADMINISTRATOR", + "USER" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "name": { + "type": "string", + "description": "Name of this account permission." + }, + "permissionGroupId": { + "type": "string", + "description": "Permission group of this account permission.", + "format": "int64" + } + } + }, + "AccountPermissionGroup": { + "id": "AccountPermissionGroup", + "type": "object", + "description": "AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.", + "properties": { + "id": { + "type": "string", + "description": "ID of this account permission group.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroup\".", + "default": "dfareporting#accountPermissionGroup" + }, + "name": { + "type": "string", + "description": "Name of this account permission group." + } + } + }, + "AccountPermissionGroupsListResponse": { + "id": "AccountPermissionGroupsListResponse", + "type": "object", + "description": "Account Permission Group List Response", + "properties": { + "accountPermissionGroups": { + "type": "array", + "description": "Account permission group collection", + "items": { + "$ref": "AccountPermissionGroup" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionGroupsListResponse\".", + "default": "dfareporting#accountPermissionGroupsListResponse" + } + } + }, + "AccountPermissionsListResponse": { + "id": "AccountPermissionsListResponse", + "type": "object", + "description": "Account Permission List Response", + "properties": { + "accountPermissions": { + "type": "array", + "description": "Account permission collection", + "items": { + "$ref": "AccountPermission" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountPermissionsListResponse\".", + "default": "dfareporting#accountPermissionsListResponse" + } + } + }, + "AccountUserProfile": { + "id": "AccountUserProfile", + "type": "object", + "description": "AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of the user profile. This is a read-only field that can be left blank.", + "format": "int64" + }, + "active": { + "type": "boolean", + "description": "Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable." + }, + "advertiserFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which advertisers are visible to the user profile." + }, + "campaignFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which campaigns are visible to the user profile." + }, + "comments": { + "type": "string", + "description": "Comments for this user profile." + }, + "email": { + "type": "string", + "description": "Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion." + }, + "id": { + "type": "string", + "description": "ID of the user profile. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfile\".", + "default": "dfareporting#accountUserProfile" + }, + "locale": { + "type": "string", + "description": "Locale of the user profile. This is a required field.\nAcceptable values are: \n- \"cs\" (Czech) \n- \"de\" (German) \n- \"en\" (English) \n- \"en-GB\" (English United Kingdom) \n- \"es\" (Spanish) \n- \"fr\" (French) \n- \"it\" (Italian) \n- \"ja\" (Japanese) \n- \"ko\" (Korean) \n- \"pl\" (Polish) \n- \"pt-BR\" (Portuguese Brazil)\n- \"ru\" (Russian) \n- \"sv\" (Swedish) \n- \"tr\" (Turkish) \n- \"zh-CN\" (Chinese Simplified) \n- \"zh-TW\" (Chinese Traditional)" + }, + "name": { + "type": "string", + "description": "Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: \"&;\"#%,\"." + }, + "siteFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which sites are visible to the user profile." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of the user profile. This is a read-only field that can be left blank.", + "format": "int64" + }, + "traffickerType": { + "type": "string", + "description": "Trafficker type of this user profile.", + "enum": [ + "EXTERNAL_TRAFFICKER", + "INTERNAL_NON_TRAFFICKER", + "INTERNAL_TRAFFICKER" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "userAccessType": { + "type": "string", + "description": "User type of the user profile. This is a read-only field that can be left blank.", + "enum": [ + "INTERNAL_ADMINISTRATOR", + "NORMAL_USER", + "SUPER_USER" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "userRoleFilter": { + "$ref": "ObjectFilter", + "description": "Filter that describes which user roles are visible to the user profile." + }, + "userRoleId": { + "type": "string", + "description": "User role ID of the user profile. This is a required field.", + "format": "int64" + } + } + }, + "AccountUserProfilesListResponse": { + "id": "AccountUserProfilesListResponse", + "type": "object", + "description": "Account User Profile List Response", + "properties": { + "accountUserProfiles": { + "type": "array", + "description": "Account user profile collection", + "items": { + "$ref": "AccountUserProfile" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountUserProfilesListResponse\".", + "default": "dfareporting#accountUserProfilesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "AccountsListResponse": { + "id": "AccountsListResponse", + "type": "object", + "description": "Account List Response", + "properties": { + "accounts": { + "type": "array", + "description": "Account collection", + "items": { + "$ref": "Account" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#accountsListResponse\".", + "default": "dfareporting#accountsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "Activities": { + "id": "Activities", + "type": "object", + "description": "Represents an activity group.", + "properties": { + "filters": { + "type": "array", + "description": "List of activity filters. The dimension values need to be all either of type \"dfa:activity\" or \"dfa:activityGroup\".", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#activities.", + "default": "dfareporting#activities" + }, + "metricNames": { + "type": "array", + "description": "List of names of floodlight activity metrics.", + "items": { + "type": "string" + } + } + } + }, + "Ad": { + "id": "Ad", + "type": "object", + "description": "Contains properties of a DCM ad.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this ad. This is a read-only field that can be left blank.", + "format": "int64" + }, + "active": { + "type": "boolean", + "description": "Whether this ad is active." + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this ad. This is a required field on insertion.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "type": "boolean", + "description": "Whether this ad is archived." + }, + "audienceSegmentId": { + "type": "string", + "description": "Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.", + "format": "int64" + }, + "campaignId": { + "type": "string", + "description": "Campaign ID of this ad. This is a required field on insertion.", + "format": "int64" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER." + }, + "clickThroughUrlSuffixProperties": { + "$ref": "ClickThroughUrlSuffixProperties", + "description": "Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative." + }, + "comments": { + "type": "string", + "description": "Comments for this ad." + }, + "compatibility": { + "type": "string", + "description": "Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.", + "enum": [ + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "WEB", + "WEB_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this ad.This is a read-only field." + }, + "creativeGroupAssignments": { + "type": "array", + "description": "Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.", + "items": { + "$ref": "CreativeGroupAssignment" + } + }, + "creativeRotation": { + "$ref": "CreativeRotation", + "description": "Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment." + }, + "dayPartTargeting": { + "$ref": "DayPartTargeting", + "description": "Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "defaultClickThroughEventTagProperties": { + "$ref": "DefaultClickThroughEventTagProperties", + "description": "Default click-through event tag properties for this ad." + }, + "deliverySchedule": { + "$ref": "DeliverySchedule", + "description": "Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD." + }, + "dynamicClickTracker": { + "type": "boolean", + "description": "Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert." + }, + "endTime": { + "type": "string", + "description": "Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.", + "format": "date-time" + }, + "eventTagOverrides": { + "type": "array", + "description": "Event tag overrides for this ad.", + "items": { + "$ref": "EventTagOverride" + } + }, + "geoTargeting": { + "$ref": "GeoTargeting", + "description": "Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD." + }, + "id": { + "type": "string", + "description": "ID of this ad. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this ad. This is a read-only, auto-generated field." + }, + "keyValueTargetingExpression": { + "$ref": "KeyValueTargetingExpression", + "description": "Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#ad\".", + "default": "dfareporting#ad" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this ad. This is a read-only field." + }, + "name": { + "type": "string", + "description": "Name of this ad. This is a required field and must be less than 256 characters long." + }, + "placementAssignments": { + "type": "array", + "description": "Placement assignments for this ad.", + "items": { + "$ref": "PlacementAssignment" + } + }, + "remarketing_list_expression": { + "$ref": "ListTargetingExpression", + "description": "Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad." + }, + "size": { + "$ref": "Size", + "description": "Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD." + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated." + }, + "sslRequired": { + "type": "boolean", + "description": "Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated." + }, + "startTime": { + "type": "string", + "description": "Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.", + "format": "date-time" + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this ad. This is a read-only field that can be left blank.", + "format": "int64" + }, + "technologyTargeting": { + "$ref": "TechnologyTargeting", + "description": "Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD." + }, + "type": { + "type": "string", + "description": "Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).", + "enum": [ + "AD_SERVING_CLICK_TRACKER", + "AD_SERVING_DEFAULT_AD", + "AD_SERVING_STANDARD_AD", + "AD_SERVING_TRACKING" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "AdsListResponse": { + "id": "AdsListResponse", + "type": "object", + "description": "Ad List Response", + "properties": { + "ads": { + "type": "array", + "description": "Ad collection", + "items": { + "$ref": "Ad" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#adsListResponse\".", + "default": "dfareporting#adsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "Advertiser": { + "id": "Advertiser", + "type": "object", + "description": "Contains properties of a DCM advertiser.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this advertiser.This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserGroupId": { + "type": "string", + "description": "ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.", + "format": "int64" + }, + "clickThroughUrlSuffix": { + "type": "string", + "description": "Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long." + }, + "defaultClickThroughEventTagId": { + "type": "string", + "description": "ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.", + "format": "int64" + }, + "defaultEmail": { + "type": "string", + "description": "Default email address used in sender field for tag emails." + }, + "floodlightConfigurationId": { + "type": "string", + "description": "Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as: \n- This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups. \n- This advertiser's original floodlight configuration is not already shared with another advertiser.", + "format": "int64" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "id": { + "type": "string", + "description": "ID of this advertiser. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this advertiser. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiser\".", + "default": "dfareporting#advertiser" + }, + "name": { + "type": "string", + "description": "Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account." + }, + "status": { + "type": "string", + "description": "Status of this advertiser.", + "enum": [ + "APPROVED", + "ON_HOLD" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this advertiser.This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "AdvertiserGroup": { + "id": "AdvertiserGroup", + "type": "object", + "description": "Groups advertisers together so that reports can be generated for the entire group at once.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this advertiser group. This is a read-only field that can be left blank.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "ID of this advertiser group. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroup\".", + "default": "dfareporting#advertiserGroup" + }, + "name": { + "type": "string", + "description": "Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account." + } + } + }, + "AdvertiserGroupsListResponse": { + "id": "AdvertiserGroupsListResponse", + "type": "object", + "description": "Advertiser Group List Response", + "properties": { + "advertiserGroups": { + "type": "array", + "description": "Advertiser group collection", + "items": { + "$ref": "AdvertiserGroup" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertiserGroupsListResponse\".", + "default": "dfareporting#advertiserGroupsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "AdvertisersListResponse": { + "id": "AdvertisersListResponse", + "type": "object", + "description": "Advertiser List Response", + "properties": { + "advertisers": { + "type": "array", + "description": "Advertiser collection", + "items": { + "$ref": "Advertiser" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#advertisersListResponse\".", + "default": "dfareporting#advertisersListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "AudienceSegment": { + "id": "AudienceSegment", + "type": "object", + "description": "Audience Segment.", + "properties": { + "allocation": { + "type": "integer", + "description": "Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "ID of this audience segment. This is a read-only, auto-generated field.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this audience segment. This is a required field and must be less than 65 characters long." + } + } + }, + "AudienceSegmentGroup": { + "id": "AudienceSegmentGroup", + "type": "object", + "description": "Audience Segment Group.", + "properties": { + "audienceSegments": { + "type": "array", + "description": "Audience segments assigned to this group. The number of segments must be between 2 and 100.", + "items": { + "$ref": "AudienceSegment" + } + }, + "id": { + "type": "string", + "description": "ID of this audience segment group. This is a read-only, auto-generated field.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this audience segment group. This is a required field and must be less than 65 characters long." + } + } + }, + "Browser": { + "id": "Browser", + "type": "object", + "description": "Contains information about a browser that can be targeted by ads.", + "properties": { + "browserVersionId": { + "type": "string", + "description": "ID referring to this grouping of browser and version numbers. This is the ID used for targeting.", + "format": "int64" + }, + "dartId": { + "type": "string", + "description": "DART ID of this browser. This is the ID used when generating reports.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browser\".", + "default": "dfareporting#browser" + }, + "majorVersion": { + "type": "string", + "description": "Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is." + }, + "minorVersion": { + "type": "string", + "description": "Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is." + }, + "name": { + "type": "string", + "description": "Name of this browser." + } + } + }, + "BrowsersListResponse": { + "id": "BrowsersListResponse", + "type": "object", + "description": "Browser List Response", + "properties": { + "browsers": { + "type": "array", + "description": "Browser collection", + "items": { + "$ref": "Browser" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#browsersListResponse\".", + "default": "dfareporting#browsersListResponse" + } + } + }, + "Campaign": { + "id": "Campaign", + "type": "object", + "description": "Contains properties of a DCM campaign.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this campaign. This is a read-only field that can be left blank.", + "format": "int64" + }, + "additionalCreativeOptimizationConfigurations": { + "type": "array", + "description": "Additional creative optimization configurations for the campaign.", + "items": { + "$ref": "CreativeOptimizationConfiguration" + } + }, + "advertiserGroupId": { + "type": "string", + "description": "Advertiser group ID of the associated advertiser.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this campaign. This is a required field.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field." + }, + "archived": { + "type": "boolean", + "description": "Whether this campaign has been archived." + }, + "audienceSegmentGroups": { + "type": "array", + "description": "Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.", + "items": { + "$ref": "AudienceSegmentGroup" + } + }, + "billingInvoiceCode": { + "type": "string", + "description": "Billing invoice code included in the DCM client billing invoices associated with the campaign." + }, + "clickThroughUrlSuffixProperties": { + "$ref": "ClickThroughUrlSuffixProperties", + "description": "Click-through URL suffix override properties for this campaign." + }, + "comment": { + "type": "string", + "description": "Arbitrary comments about this campaign. Must be less than 256 characters long." + }, + "comscoreVceEnabled": { + "type": "boolean", + "description": "Whether comScore vCE reports are enabled for this campaign." + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this campaign. This is a read-only field." + }, + "creativeGroupIds": { + "type": "array", + "description": "List of creative group IDs that are assigned to the campaign.", + "items": { + "type": "string", + "format": "int64" + } + }, + "creativeOptimizationConfiguration": { + "$ref": "CreativeOptimizationConfiguration", + "description": "Creative optimization configuration for the campaign." + }, + "defaultClickThroughEventTagProperties": { + "$ref": "DefaultClickThroughEventTagProperties", + "description": "Click-through event tag ID override properties for this campaign." + }, + "endDate": { + "type": "string", + "description": "Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.", + "format": "date" + }, + "eventTagOverrides": { + "type": "array", + "description": "Overrides that can be used to activate or deactivate advertiser event tags.", + "items": { + "$ref": "EventTagOverride" + } + }, + "externalId": { + "type": "string", + "description": "External ID for this campaign." + }, + "id": { + "type": "string", + "description": "ID of this campaign. This is a read-only auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this campaign. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaign\".", + "default": "dfareporting#campaign" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this campaign. This is a read-only field." + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for the campaign." + }, + "name": { + "type": "string", + "description": "Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser." + }, + "nielsenOcrEnabled": { + "type": "boolean", + "description": "Whether Nielsen reports are enabled for this campaign." + }, + "startDate": { + "type": "string", + "description": "Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.", + "format": "date" + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this campaign. This is a read-only field that can be left blank.", + "format": "int64" + }, + "traffickerEmails": { + "type": "array", + "description": "Campaign trafficker contact emails.", + "items": { + "type": "string" + } + } + } + }, + "CampaignCreativeAssociation": { + "id": "CampaignCreativeAssociation", + "type": "object", + "description": "Identifies a creative which has been associated with a given campaign.", + "properties": { + "creativeId": { + "type": "string", + "description": "ID of the creative associated with the campaign. This is a required field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociation\".", + "default": "dfareporting#campaignCreativeAssociation" + } + } + }, + "CampaignCreativeAssociationsListResponse": { + "id": "CampaignCreativeAssociationsListResponse", + "type": "object", + "description": "Campaign Creative Association List Response", + "properties": { + "campaignCreativeAssociations": { + "type": "array", + "description": "Campaign creative association collection", + "items": { + "$ref": "CampaignCreativeAssociation" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignCreativeAssociationsListResponse\".", + "default": "dfareporting#campaignCreativeAssociationsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CampaignsListResponse": { + "id": "CampaignsListResponse", + "type": "object", + "description": "Campaign List Response", + "properties": { + "campaigns": { + "type": "array", + "description": "Campaign collection", + "items": { + "$ref": "Campaign" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#campaignsListResponse\".", + "default": "dfareporting#campaignsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "ChangeLog": { + "id": "ChangeLog", + "type": "object", + "description": "Describes a change that a user has made to a resource.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of the modified object.", + "format": "int64" + }, + "action": { + "type": "string", + "description": "Action which caused the change." + }, + "changeTime": { + "type": "string", + "description": "Time when the object was modified.", + "format": "date-time" + }, + "fieldName": { + "type": "string", + "description": "Field name of the object which changed." + }, + "id": { + "type": "string", + "description": "ID of this change log.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLog\".", + "default": "dfareporting#changeLog" + }, + "newValue": { + "type": "string", + "description": "New value of the object field." + }, + "objectId": { + "type": "string", + "description": "ID of the object of this change log. The object could be a campaign, placement, ad, or other type.", + "format": "int64" + }, + "objectType": { + "type": "string", + "description": "Object type of the change log." + }, + "oldValue": { + "type": "string", + "description": "Old value of the object field." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of the modified object.", + "format": "int64" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.", + "format": "int64" + }, + "userProfileId": { + "type": "string", + "description": "ID of the user who modified the object.", + "format": "int64" + }, + "userProfileName": { + "type": "string", + "description": "User profile name of the user who modified the object." + } + } + }, + "ChangeLogsListResponse": { + "id": "ChangeLogsListResponse", + "type": "object", + "description": "Change Log List Response", + "properties": { + "changeLogs": { + "type": "array", + "description": "Change log collection", + "items": { + "$ref": "ChangeLog" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#changeLogsListResponse\".", + "default": "dfareporting#changeLogsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CitiesListResponse": { + "id": "CitiesListResponse", + "type": "object", + "description": "City List Response", + "properties": { + "cities": { + "type": "array", + "description": "City collection", + "items": { + "$ref": "City" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#citiesListResponse\".", + "default": "dfareporting#citiesListResponse" + } + } + }, + "City": { + "id": "City", + "type": "object", + "description": "Contains information about a city that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code of the country to which this city belongs." + }, + "countryDartId": { + "type": "string", + "description": "DART ID of the country to which this city belongs.", + "format": "int64" + }, + "dartId": { + "type": "string", + "description": "DART ID of this city. This is the ID used for targeting and generating reports.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#city\".", + "default": "dfareporting#city" + }, + "metroCode": { + "type": "string", + "description": "Metro region code of the metro region (DMA) to which this city belongs." + }, + "metroDmaId": { + "type": "string", + "description": "ID of the metro region (DMA) to which this city belongs.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this city." + }, + "regionCode": { + "type": "string", + "description": "Region code of the region to which this city belongs." + }, + "regionDartId": { + "type": "string", + "description": "DART ID of the region to which this city belongs.", + "format": "int64" + } + } + }, + "ClickTag": { + "id": "ClickTag", + "type": "object", + "description": "Creative Click Tag.", + "properties": { + "eventName": { + "type": "string", + "description": "Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives." + }, + "name": { + "type": "string", + "description": "Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field." + }, + "value": { + "type": "string", + "description": "Parameter value for the specified click tag. This field contains a click-through url." + } + } + }, + "ClickThroughUrl": { + "id": "ClickThroughUrl", + "type": "object", + "description": "Click-through URL", + "properties": { + "customClickThroughUrl": { + "type": "string", + "description": "Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset." + }, + "defaultLandingPage": { + "type": "boolean", + "description": "Whether the campaign default landing page is used." + }, + "landingPageId": { + "type": "string", + "description": "ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.", + "format": "int64" + } + } + }, + "ClickThroughUrlSuffixProperties": { + "id": "ClickThroughUrlSuffixProperties", + "type": "object", + "description": "Click Through URL Suffix settings.", + "properties": { + "clickThroughUrlSuffix": { + "type": "string", + "description": "Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long." + }, + "overrideInheritedSuffix": { + "type": "boolean", + "description": "Whether this entity should override the inherited click-through URL suffix with its own defined value." + } + } + }, + "CompanionClickThroughOverride": { + "id": "CompanionClickThroughOverride", + "type": "object", + "description": "Companion Click-through override.", + "properties": { + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL of this companion click-through override." + }, + "creativeId": { + "type": "string", + "description": "ID of the creative for this companion click-through override.", + "format": "int64" + } + } + }, + "CompatibleFields": { + "id": "CompatibleFields", + "type": "object", + "description": "Represents a response to the queryCompatibleFields method.", + "properties": { + "crossDimensionReachReportCompatibleFields": { + "$ref": "CrossDimensionReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\"." + }, + "floodlightReportCompatibleFields": { + "$ref": "FloodlightReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"FLOODLIGHT\"." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#compatibleFields.", + "default": "dfareporting#compatibleFields" + }, + "pathToConversionReportCompatibleFields": { + "$ref": "PathToConversionReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\"." + }, + "reachReportCompatibleFields": { + "$ref": "ReachReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"REACH\"." + }, + "reportCompatibleFields": { + "$ref": "ReportCompatibleFields", + "description": "Contains items that are compatible to be selected for a report of type \"STANDARD\"." + } + } + }, + "ConnectionType": { + "id": "ConnectionType", + "type": "object", + "description": "Contains information about a connection type that can be targeted by ads.", + "properties": { + "id": { + "type": "string", + "description": "ID of this connection type.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionType\".", + "default": "dfareporting#connectionType" + }, + "name": { + "type": "string", + "description": "Name of this connection type." + } + } + }, + "ConnectionTypesListResponse": { + "id": "ConnectionTypesListResponse", + "type": "object", + "description": "Connection Type List Response", + "properties": { + "connectionTypes": { + "type": "array", + "description": "Connection Type Collection.", + "items": { + "$ref": "ConnectionType" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#connectionTypesListResponse\".", + "default": "dfareporting#connectionTypesListResponse" + } + } + }, + "ContentCategoriesListResponse": { + "id": "ContentCategoriesListResponse", + "type": "object", + "description": "Content Category List Response", + "properties": { + "contentCategories": { + "type": "array", + "description": "Content category collection", + "items": { + "$ref": "ContentCategory" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategoriesListResponse\".", + "default": "dfareporting#contentCategoriesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "ContentCategory": { + "id": "ContentCategory", + "type": "object", + "description": "Organizes placements according to the contents of their associated webpages.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this content category.This is a read-only field that can be left blank.", + "format": "int64" + }, + "description": { + "type": "string", + "description": "Description of this content category." + }, + "id": { + "type": "string", + "description": "ID of this content category. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#contentCategory\".", + "default": "dfareporting#contentCategory" + }, + "name": { + "type": "string", + "description": "Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account." + } + } + }, + "CountriesListResponse": { + "id": "CountriesListResponse", + "type": "object", + "description": "Country List Response", + "properties": { + "countries": { + "type": "array", + "description": "Country collection", + "items": { + "$ref": "Country" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#countriesListResponse\".", + "default": "dfareporting#countriesListResponse" + } + } + }, + "Country": { + "id": "Country", + "type": "object", + "description": "Contains information about a country that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code." + }, + "dartId": { + "type": "string", + "description": "DART ID of this country. This is the ID used for targeting and generating reports.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#country\".", + "default": "dfareporting#country" + }, + "name": { + "type": "string", + "description": "Name of this country." + }, + "sslEnabled": { + "type": "boolean", + "description": "Whether ad serving supports secure servers in this country." + } + } + }, + "Creative": { + "id": "Creative", + "type": "object", + "description": "Contains properties of a Creative.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", + "format": "int64" + }, + "active": { + "type": "boolean", + "description": "Whether the creative is active. Applicable to all creative types." + }, + "adParameters": { + "type": "string", + "description": "Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID." + }, + "adTagKeys": { + "type": "array", + "description": "Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "type": "string" + } + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this creative. This is a required field. Applicable to all creative types.", + "format": "int64" + }, + "allowScriptAccess": { + "type": "boolean", + "description": "Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE." + }, + "archived": { + "type": "boolean", + "description": "Whether the creative is archived. Applicable to all creative types." + }, + "artworkType": { + "type": "string", + "description": "Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "authoringTool": { + "type": "string", + "description": "Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.", + "enum": [ + "NINJA", + "SWIFFY" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "auto_advance_images": { + "type": "boolean", + "description": "Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE." + }, + "backgroundColor": { + "type": "string", + "description": "The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE." + }, + "backupImageClickThroughUrl": { + "type": "string", + "description": "Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER." + }, + "backupImageFeatures": { + "type": "array", + "description": "List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.", + "items": { + "type": "string", + "enum": [ + "APPLICATION_CACHE", + "AUDIO", + "CANVAS", + "CANVAS_TEXT", + "CSS_ANIMATIONS", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_COLUMNS", + "CSS_FLEX_BOX", + "CSS_FONT_FACE", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_REFLECTIONS", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "DRAG_AND_DROP", + "GEO_LOCATION", + "HASH_CHANGE", + "HISTORY", + "INDEXED_DB", + "INLINE_SVG", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_COLOR", + "INPUT_TYPE_DATE", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_TIME", + "INPUT_TYPE_URL", + "INPUT_TYPE_WEEK", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "SMIL", + "SVG_CLIP_PATHS", + "SVG_FE_IMAGE", + "SVG_FILTERS", + "SVG_HREF", + "TOUCH", + "VIDEO", + "WEBGL", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "backupImageReportingLabel": { + "type": "string", + "description": "Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER." + }, + "backupImageTargetWindow": { + "$ref": "TargetWindow", + "description": "Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER." + }, + "clickTags": { + "type": "array", + "description": "Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.", + "items": { + "$ref": "ClickTag" + } + }, + "commercialId": { + "type": "string", + "description": "Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "companionCreatives": { + "type": "array", + "description": "List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "items": { + "type": "string", + "format": "int64" + } + }, + "compatibility": { + "type": "array", + "description": "Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.\n\nAcceptable values are:\n- \"APP\"\n- \"APP_INTERSTITIAL\"\n- \"IN_STREAM_VIDEO\"\n- \"WEB\"\n- \"WEB_INTERSTITIAL\"", + "items": { + "type": "string", + "enum": [ + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "WEB", + "WEB_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + } + }, + "counterCustomEvents": { + "type": "array", + "description": "List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "$ref": "CreativeCustomEvent" + } + }, + "creativeAssets": { + "type": "array", + "description": "Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT", + "items": { + "$ref": "CreativeAsset" + } + }, + "creativeFieldAssignments": { + "type": "array", + "description": "Creative field assignments for this creative. Applicable to all creative types.", + "items": { + "$ref": "CreativeFieldAssignment" + } + }, + "customKeyValues": { + "type": "array", + "description": "Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "type": "string" + } + }, + "exitCustomEvents": { + "type": "array", + "description": "List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "$ref": "CreativeCustomEvent" + } + }, + "fsCommand": { + "$ref": "FsCommand", + "description": "OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE." + }, + "htmlCode": { + "type": "string", + "description": "HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA." + }, + "htmlCodeLocked": { + "type": "boolean", + "description": "Whether HTML code is DCM generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER." + }, + "id": { + "type": "string", + "description": "ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creative\".", + "default": "dfareporting#creative" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Creative last modification information. This is a read-only field. Applicable to all creative types." + }, + "latestTraffickedCreativeId": { + "type": "string", + "description": "Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types." + }, + "overrideCss": { + "type": "string", + "description": "Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA." + }, + "redirectUrl": { + "type": "string", + "description": "URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT" + }, + "renderingId": { + "type": "string", + "description": "ID of current rendering version. This is a read-only field. Applicable to all creative types.", + "format": "int64" + }, + "renderingIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types." + }, + "requiredFlashPluginVersion": { + "type": "string", + "description": "The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID." + }, + "requiredFlashVersion": { + "type": "integer", + "description": "The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.", + "format": "int32" + }, + "size": { + "$ref": "Size", + "description": "Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA." + }, + "skippable": { + "type": "boolean", + "description": "Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO." + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types." + }, + "studioAdvertiserId": { + "type": "string", + "description": "Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64" + }, + "studioCreativeId": { + "type": "string", + "description": "Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64" + }, + "studioTraffickedCreativeId": { + "type": "string", + "description": "Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64" + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.", + "format": "int64" + }, + "thirdPartyBackupImageImpressionsUrl": { + "type": "string", + "description": "Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA" + }, + "thirdPartyRichMediaImpressionsUrl": { + "type": "string", + "description": "Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA" + }, + "thirdPartyUrls": { + "type": "array", + "description": "Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "items": { + "$ref": "ThirdPartyTrackingUrl" + } + }, + "timerCustomEvents": { + "type": "array", + "description": "List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "items": { + "$ref": "CreativeCustomEvent" + } + }, + "totalFileSize": { + "type": "string", + "description": "Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "Type of this creative.This is a required field. Applicable to all creative types.", + "enum": [ + "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", + "CUSTOM_INPAGE", + "CUSTOM_INTERSTITIAL", + "ENHANCED_BANNER", + "ENHANCED_IMAGE", + "FLASH_INPAGE", + "HTML5_BANNER", + "IMAGE", + "INSTREAM_VIDEO", + "INTERNAL_REDIRECT", + "INTERSTITIAL_INTERNAL_REDIRECT", + "REDIRECT", + "RICH_MEDIA_EXPANDING", + "RICH_MEDIA_IM_EXPAND", + "RICH_MEDIA_INPAGE", + "RICH_MEDIA_INPAGE_FLOATING", + "RICH_MEDIA_INTERSTITIAL_FLOAT", + "RICH_MEDIA_MOBILE_IN_APP", + "RICH_MEDIA_MULTI_FLOATING", + "RICH_MEDIA_PEEL_DOWN", + "TRACKING_TEXT", + "VPAID_LINEAR", + "VPAID_NON_LINEAR" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "version": { + "type": "integer", + "description": "The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.", + "format": "int32" + }, + "videoDescription": { + "type": "string", + "description": "Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "videoDuration": { + "type": "number", + "description": "Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.", + "format": "float" + } + } + }, + "CreativeAsset": { + "id": "CreativeAsset", + "type": "object", + "description": "Creative Asset.", + "properties": { + "actionScript3": { + "type": "boolean", + "description": "Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER." + }, + "active": { + "type": "boolean", + "description": "Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "alignment": { + "type": "string", + "description": "Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.", + "enum": [ + "ALIGNMENT_BOTTOM", + "ALIGNMENT_LEFT", + "ALIGNMENT_RIGHT", + "ALIGNMENT_TOP" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "artworkType": { + "type": "string", + "description": "Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "assetIdentifier": { + "$ref": "CreativeAssetId", + "description": "Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT." + }, + "backupImageExit": { + "$ref": "CreativeCustomEvent", + "description": "Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA." + }, + "bitRate": { + "type": "integer", + "description": "Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "format": "int32" + }, + "childAssetType": { + "type": "string", + "description": "Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.", + "enum": [ + "CHILD_ASSET_TYPE_DATA", + "CHILD_ASSET_TYPE_FLASH", + "CHILD_ASSET_TYPE_IMAGE", + "CHILD_ASSET_TYPE_VIDEO" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "collapsedSize": { + "$ref": "Size", + "description": "Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." + }, + "customStartTimeValue": { + "type": "integer", + "description": "Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.", + "format": "int32" + }, + "detectedFeatures": { + "type": "array", + "description": "List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.", + "items": { + "type": "string", + "enum": [ + "APPLICATION_CACHE", + "AUDIO", + "CANVAS", + "CANVAS_TEXT", + "CSS_ANIMATIONS", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_COLUMNS", + "CSS_FLEX_BOX", + "CSS_FONT_FACE", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_REFLECTIONS", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "DRAG_AND_DROP", + "GEO_LOCATION", + "HASH_CHANGE", + "HISTORY", + "INDEXED_DB", + "INLINE_SVG", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_COLOR", + "INPUT_TYPE_DATE", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_TIME", + "INPUT_TYPE_URL", + "INPUT_TYPE_WEEK", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "SMIL", + "SVG_CLIP_PATHS", + "SVG_FE_IMAGE", + "SVG_FILTERS", + "SVG_HREF", + "TOUCH", + "VIDEO", + "WEBGL", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "displayType": { + "type": "string", + "description": "Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_DISPLAY_TYPE_EXPANDING", + "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH", + "ASSET_DISPLAY_TYPE_FLASH_IN_FLASH_EXPANDING", + "ASSET_DISPLAY_TYPE_FLOATING", + "ASSET_DISPLAY_TYPE_INPAGE", + "ASSET_DISPLAY_TYPE_OVERLAY", + "ASSET_DISPLAY_TYPE_PEEL_DOWN", + "ASSET_DISPLAY_TYPE_VPAID_LINEAR", + "ASSET_DISPLAY_TYPE_VPAID_NON_LINEAR" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "duration": { + "type": "integer", + "description": "Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.", + "format": "int32" + }, + "durationType": { + "type": "string", + "description": "Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_DURATION_TYPE_AUTO", + "ASSET_DURATION_TYPE_CUSTOM", + "ASSET_DURATION_TYPE_NONE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "expandedDimension": { + "$ref": "Size", + "description": "Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "fileSize": { + "type": "string", + "description": "File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", + "format": "int64" + }, + "flashVersion": { + "type": "integer", + "description": "Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.", + "format": "int32" + }, + "hideFlashObjects": { + "type": "boolean", + "description": "Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA." + }, + "hideSelectionBoxes": { + "type": "boolean", + "description": "Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA." + }, + "horizontallyLocked": { + "type": "boolean", + "description": "Wheter the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA." + }, + "id": { + "type": "string", + "description": "Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.", + "format": "int64" + }, + "mimeType": { + "type": "string", + "description": "Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "offset": { + "$ref": "OffsetPosition", + "description": "Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN." + }, + "originalBackup": { + "type": "boolean", + "description": "Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA." + }, + "position": { + "$ref": "OffsetPosition", + "description": "Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA." + }, + "positionLeftUnit": { + "type": "string", + "description": "Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "OFFSET_UNIT_PERCENT", + "OFFSET_UNIT_PIXEL", + "OFFSET_UNIT_PIXEL_FROM_CENTER" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "positionTopUnit": { + "type": "string", + "description": "Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "OFFSET_UNIT_PERCENT", + "OFFSET_UNIT_PIXEL", + "OFFSET_UNIT_PIXEL_FROM_CENTER" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "progressiveServingUrl": { + "type": "string", + "description": "Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "pushdown": { + "type": "boolean", + "description": "Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height." + }, + "pushdownDuration": { + "type": "number", + "description": "Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.", + "format": "float" + }, + "role": { + "type": "string", + "description": "Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.\nPRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.\nBACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.\nADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.\nOTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.\nPARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.\nTRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.\nALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.\nFor VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.", + "enum": [ + "ADDITIONAL_FLASH", + "ADDITIONAL_IMAGE", + "ALTERNATE_VIDEO", + "BACKUP_IMAGE", + "OTHER", + "PARENT_VIDEO", + "PRIMARY", + "TRANSCODED_VIDEO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "size": { + "$ref": "Size", + "description": "Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA." + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT." + }, + "startTimeType": { + "type": "string", + "description": "Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.", + "enum": [ + "ASSET_START_TIME_TYPE_CUSTOM", + "ASSET_START_TIME_TYPE_NONE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "streamingServingUrl": { + "type": "string", + "description": "Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID." + }, + "transparency": { + "type": "boolean", + "description": "Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets." + }, + "verticallyLocked": { + "type": "boolean", + "description": "Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA." + }, + "videoDuration": { + "type": "number", + "description": "Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.", + "format": "float" + }, + "windowMode": { + "type": "string", + "description": "Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.", + "enum": [ + "OPAQUE", + "TRANSPARENT", + "WINDOW" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "zIndex": { + "type": "integer", + "description": "zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.", + "format": "int32" + }, + "zipFilename": { + "type": "string", + "description": "File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER." + }, + "zipFilesize": { + "type": "string", + "description": "Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER." + } + } + }, + "CreativeAssetId": { + "id": "CreativeAssetId", + "type": "object", + "description": "Creative Asset ID.", + "properties": { + "name": { + "type": "string", + "description": "Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: \".-_ \". Spaces are allowed." + }, + "type": { + "type": "string", + "description": "Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.", + "enum": [ + "FLASH", + "HTML", + "HTML_IMAGE", + "IMAGE", + "VIDEO" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + } + } + }, + "CreativeAssetMetadata": { + "id": "CreativeAssetMetadata", + "type": "object", + "description": "CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.", + "properties": { + "assetIdentifier": { + "$ref": "CreativeAssetId", + "description": "ID of the creative asset. This is a required field." + }, + "clickTags": { + "type": "array", + "description": "List of detected click tags for assets. This is a read-only auto-generated field.", + "items": { + "$ref": "ClickTag" + } + }, + "detectedFeatures": { + "type": "array", + "description": "List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.", + "items": { + "type": "string", + "enum": [ + "APPLICATION_CACHE", + "AUDIO", + "CANVAS", + "CANVAS_TEXT", + "CSS_ANIMATIONS", + "CSS_BACKGROUND_SIZE", + "CSS_BORDER_IMAGE", + "CSS_BORDER_RADIUS", + "CSS_BOX_SHADOW", + "CSS_COLUMNS", + "CSS_FLEX_BOX", + "CSS_FONT_FACE", + "CSS_GENERATED_CONTENT", + "CSS_GRADIENTS", + "CSS_HSLA", + "CSS_MULTIPLE_BGS", + "CSS_OPACITY", + "CSS_REFLECTIONS", + "CSS_RGBA", + "CSS_TEXT_SHADOW", + "CSS_TRANSFORMS", + "CSS_TRANSFORMS3D", + "CSS_TRANSITIONS", + "DRAG_AND_DROP", + "GEO_LOCATION", + "HASH_CHANGE", + "HISTORY", + "INDEXED_DB", + "INLINE_SVG", + "INPUT_ATTR_AUTOCOMPLETE", + "INPUT_ATTR_AUTOFOCUS", + "INPUT_ATTR_LIST", + "INPUT_ATTR_MAX", + "INPUT_ATTR_MIN", + "INPUT_ATTR_MULTIPLE", + "INPUT_ATTR_PATTERN", + "INPUT_ATTR_PLACEHOLDER", + "INPUT_ATTR_REQUIRED", + "INPUT_ATTR_STEP", + "INPUT_TYPE_COLOR", + "INPUT_TYPE_DATE", + "INPUT_TYPE_DATETIME", + "INPUT_TYPE_DATETIME_LOCAL", + "INPUT_TYPE_EMAIL", + "INPUT_TYPE_MONTH", + "INPUT_TYPE_NUMBER", + "INPUT_TYPE_RANGE", + "INPUT_TYPE_SEARCH", + "INPUT_TYPE_TEL", + "INPUT_TYPE_TIME", + "INPUT_TYPE_URL", + "INPUT_TYPE_WEEK", + "LOCAL_STORAGE", + "POST_MESSAGE", + "SESSION_STORAGE", + "SMIL", + "SVG_CLIP_PATHS", + "SVG_FE_IMAGE", + "SVG_FILTERS", + "SVG_HREF", + "TOUCH", + "VIDEO", + "WEBGL", + "WEB_SOCKETS", + "WEB_SQL_DATABASE", + "WEB_WORKERS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeAssetMetadata\".", + "default": "dfareporting#creativeAssetMetadata" + }, + "warnedValidationRules": { + "type": "array", + "description": "Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.\n\nPossible values are:\n- \"CLICK_TAG_NON_TOP_LEVEL\"\n- \"CLICK_TAG_MISSING\"\n- \"CLICK_TAG_MORE_THAN_ONE\"\n- \"CLICK_TAG_INVALID\"\n- \"ORPHANED_ASSET\"\n- \"PRIMARY_HTML_MISSING\"\n- \"EXTERNAL_FILE_REFERENCED\"\n- \"MRAID_REFERENCED\"\n- \"ADMOB_REFERENCED\"\n- \"FILE_TYPE_INVALID\"\n- \"ZIP_INVALID\"\n- \"LINKED_FILE_NOT_FOUND\"\n- \"MAX_FLASH_VERSION_11\"\n- \"NOT_SSL_COMPLIANT\"\n- \"FILE_DETAIL_EMPTY\"\n- \"ASSET_INVALID\"\n- \"GWD_PROPERTIES_INVALID\"\n- \"ENABLER_UNSUPPORTED_METHOD_DCM\"\n- \"ASSET_FORMAT_UNSUPPORTED_DCM\"\n- \"COMPONENT_UNSUPPORTED_DCM\"\n- \"HTML5_FEATURE_UNSUPPORTED' \"", + "items": { + "type": "string", + "enum": [ + "ADMOB_REFERENCED", + "ASSET_FORMAT_UNSUPPORTED_DCM", + "ASSET_INVALID", + "CLICK_TAG_INVALID", + "CLICK_TAG_MISSING", + "CLICK_TAG_MORE_THAN_ONE", + "CLICK_TAG_NON_TOP_LEVEL", + "COMPONENT_UNSUPPORTED_DCM", + "ENABLER_UNSUPPORTED_METHOD_DCM", + "EXTERNAL_FILE_REFERENCED", + "FILE_DETAIL_EMPTY", + "FILE_TYPE_INVALID", + "GWD_PROPERTIES_INVALID", + "HTML5_FEATURE_UNSUPPORTED", + "LINKED_FILE_NOT_FOUND", + "MAX_FLASH_VERSION_11", + "MRAID_REFERENCED", + "NOT_SSL_COMPLIANT", + "ORPHANED_ASSET", + "PRIMARY_HTML_MISSING", + "ZIP_INVALID" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + } + }, + "CreativeAssignment": { + "id": "CreativeAssignment", + "type": "object", + "description": "Creative Assignment.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether this creative assignment is active. When true, the creative will be included in the ad's rotation." + }, + "applyEventTags": { + "type": "boolean", + "description": "Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO." + }, + "clickThroughUrl": { + "$ref": "ClickThroughUrl", + "description": "Click-through URL of the creative assignment." + }, + "companionCreativeOverrides": { + "type": "array", + "description": "Companion creative overrides for this creative assignment. Applicable to video ads.", + "items": { + "$ref": "CompanionClickThroughOverride" + } + }, + "creativeGroupAssignments": { + "type": "array", + "description": "Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.", + "items": { + "$ref": "CreativeGroupAssignment" + } + }, + "creativeId": { + "type": "string", + "description": "ID of the creative to be assigned. This is a required field.", + "format": "int64" + }, + "creativeIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the creative. This is a read-only, auto-generated field." + }, + "endTime": { + "type": "string", + "description": "Date and time that the assigned creative should stop serving. Must be later than the start time.", + "format": "date-time" + }, + "richMediaExitOverrides": { + "type": "array", + "description": "Rich media exit overrides for this creative assignment.\nApplicable when the creative type is any of the following: \n- RICH_MEDIA_INPAGE\n- RICH_MEDIA_INPAGE_FLOATING\n- RICH_MEDIA_IM_EXPAND\n- RICH_MEDIA_EXPANDING\n- RICH_MEDIA_INTERSTITIAL_FLOAT\n- RICH_MEDIA_MOBILE_IN_APP\n- RICH_MEDIA_MULTI_FLOATING\n- RICH_MEDIA_PEEL_DOWN\n- ADVANCED_BANNER\n- VPAID_LINEAR\n- VPAID_NON_LINEAR", + "items": { + "$ref": "RichMediaExitOverride" + } + }, + "sequence": { + "type": "integer", + "description": "Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.", + "format": "int32" + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated." + }, + "startTime": { + "type": "string", + "description": "Date and time that the assigned creative should start serving.", + "format": "date-time" + }, + "weight": { + "type": "integer", + "description": "Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.", + "format": "int32" + } + } + }, + "CreativeCustomEvent": { + "id": "CreativeCustomEvent", + "type": "object", + "description": "Creative Custom Event.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the event is active." + }, + "advertiserCustomEventName": { + "type": "string", + "description": "User-entered name for the event." + }, + "advertiserCustomEventType": { + "type": "string", + "description": "Type of the event. This is a read-only field.", + "enum": [ + "ADVERTISER_EVENT_COUNTER", + "ADVERTISER_EVENT_EXIT", + "ADVERTISER_EVENT_TIMER" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "artworkLabel": { + "type": "string", + "description": "Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion." + }, + "artworkType": { + "type": "string", + "description": "Artwork type used by the creative.This is a read-only field.", + "enum": [ + "ARTWORK_TYPE_FLASH", + "ARTWORK_TYPE_HTML5", + "ARTWORK_TYPE_MIXED" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "exitUrl": { + "type": "string", + "description": "Exit URL of the event. This field is used only for exit events." + }, + "id": { + "type": "string", + "description": "ID of this event. This is a required field and should not be modified after insertion.", + "format": "int64" + }, + "popupWindowProperties": { + "$ref": "PopupWindowProperties", + "description": "Properties for rich media pop-up windows. This field is used only for exit events." + }, + "targetType": { + "type": "string", + "description": "Target type used by the event.", + "enum": [ + "TARGET_BLANK", + "TARGET_PARENT", + "TARGET_POPUP", + "TARGET_SELF", + "TARGET_TOP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "videoReportingId": { + "type": "string", + "description": "Reporting ID, used to differentiate multiple videos in a single creative." + } + } + }, + "CreativeField": { + "id": "CreativeField", + "type": "object", + "description": "Contains properties of a creative field.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this creative field. This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this creative field. This is a required field on insertion.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "id": { + "type": "string", + "description": "ID of this creative field. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeField\".", + "default": "dfareporting#creativeField" + }, + "name": { + "type": "string", + "description": "Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this creative field. This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "CreativeFieldAssignment": { + "id": "CreativeFieldAssignment", + "type": "object", + "description": "Creative Field Assignment.", + "properties": { + "creativeFieldId": { + "type": "string", + "description": "ID of the creative field.", + "format": "int64" + }, + "creativeFieldValueId": { + "type": "string", + "description": "ID of the creative field value.", + "format": "int64" + } + } + }, + "CreativeFieldValue": { + "id": "CreativeFieldValue", + "type": "object", + "description": "Contains properties of a creative field value.", + "properties": { + "id": { + "type": "string", + "description": "ID of this creative field value. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValue\".", + "default": "dfareporting#creativeFieldValue" + }, + "value": { + "type": "string", + "description": "Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field." + } + } + }, + "CreativeFieldValuesListResponse": { + "id": "CreativeFieldValuesListResponse", + "type": "object", + "description": "Creative Field Value List Response", + "properties": { + "creativeFieldValues": { + "type": "array", + "description": "Creative field value collection", + "items": { + "$ref": "CreativeFieldValue" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldValuesListResponse\".", + "default": "dfareporting#creativeFieldValuesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CreativeFieldsListResponse": { + "id": "CreativeFieldsListResponse", + "type": "object", + "description": "Creative Field List Response", + "properties": { + "creativeFields": { + "type": "array", + "description": "Creative field collection", + "items": { + "$ref": "CreativeField" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeFieldsListResponse\".", + "default": "dfareporting#creativeFieldsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CreativeGroup": { + "id": "CreativeGroup", + "type": "object", + "description": "Contains properties of a creative group.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this creative group. This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this creative group. This is a required field on insertion.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "groupNumber": { + "type": "integer", + "description": "Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.\nAcceptable values are: \n- 1\n- 2", + "format": "int32" + }, + "id": { + "type": "string", + "description": "ID of this creative group. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroup\".", + "default": "dfareporting#creativeGroup" + }, + "name": { + "type": "string", + "description": "Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this creative group. This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "CreativeGroupAssignment": { + "id": "CreativeGroupAssignment", + "type": "object", + "description": "Creative Group Assignment.", + "properties": { + "creativeGroupId": { + "type": "string", + "description": "ID of the creative group to be assigned.", + "format": "int64" + }, + "creativeGroupNumber": { + "type": "string", + "description": "Creative group number of the creative group assignment.", + "enum": [ + "CREATIVE_GROUP_ONE", + "CREATIVE_GROUP_TWO" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "CreativeGroupsListResponse": { + "id": "CreativeGroupsListResponse", + "type": "object", + "description": "Creative Group List Response", + "properties": { + "creativeGroups": { + "type": "array", + "description": "Creative group collection", + "items": { + "$ref": "CreativeGroup" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativeGroupsListResponse\".", + "default": "dfareporting#creativeGroupsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CreativeOptimizationConfiguration": { + "id": "CreativeOptimizationConfiguration", + "type": "object", + "description": "Creative optimization settings.", + "properties": { + "id": { + "type": "string", + "description": "ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this creative optimization config. This is a required field and must be less than 129 characters long." + }, + "optimizationActivitys": { + "type": "array", + "description": "List of optimization activities associated with this configuration.", + "items": { + "$ref": "OptimizationActivity" + } + }, + "optimizationModel": { + "type": "string", + "description": "Optimization model for this configuration.", + "enum": [ + "CLICK", + "POST_CLICK", + "POST_CLICK_AND_IMPRESSION", + "POST_IMPRESSION" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "CreativeRotation": { + "id": "CreativeRotation", + "type": "object", + "description": "Creative Rotation.", + "properties": { + "creativeAssignments": { + "type": "array", + "description": "Creative assignments in this creative rotation.", + "items": { + "$ref": "CreativeAssignment" + } + }, + "creativeOptimizationConfigurationId": { + "type": "string", + "description": "Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "Type of creative rotation. Can be used to specify whether to use sequential or random rotation.", + "enum": [ + "CREATIVE_ROTATION_TYPE_RANDOM", + "CREATIVE_ROTATION_TYPE_SEQUENTIAL" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "weightCalculationStrategy": { + "type": "string", + "description": "Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.", + "enum": [ + "WEIGHT_STRATEGY_CUSTOM", + "WEIGHT_STRATEGY_EQUAL", + "WEIGHT_STRATEGY_HIGHEST_CTR", + "WEIGHT_STRATEGY_OPTIMIZED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "CreativeSettings": { + "id": "CreativeSettings", + "type": "object", + "description": "Creative Settings", + "properties": { + "iFrameFooter": { + "type": "string", + "description": "Header text for iFrames for this site. Must be less than or equal to 2000 characters long." + }, + "iFrameHeader": { + "type": "string", + "description": "Header text for iFrames for this site. Must be less than or equal to 2000 characters long." + } + } + }, + "CreativesListResponse": { + "id": "CreativesListResponse", + "type": "object", + "description": "Creative List Response", + "properties": { + "creatives": { + "type": "array", + "description": "Creative collection", + "items": { + "$ref": "Creative" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#creativesListResponse\".", + "default": "dfareporting#creativesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "CrossDimensionReachReportCompatibleFields": { + "id": "CrossDimensionReachReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"breakdown\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.", + "default": "dfareporting#crossDimensionReachReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "overlapMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"overlapMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "CustomRichMediaEvents": { + "id": "CustomRichMediaEvents", + "type": "object", + "description": "Represents a Custom Rich Media Events group.", + "properties": { + "filteredEventIds": { + "type": "array", + "description": "List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#customRichMediaEvents.", + "default": "dfareporting#customRichMediaEvents" + } + } + }, + "DateRange": { + "id": "DateRange", + "type": "object", + "description": "Represents a date range.", + "properties": { + "endDate": { + "type": "string", + "description": "The end date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dateRange.", + "default": "dfareporting#dateRange" + }, + "relativeDateRange": { + "type": "string", + "description": "The date range relative to the date of when the report is run.", + "enum": [ + "LAST_24_MONTHS", + "LAST_30_DAYS", + "LAST_365_DAYS", + "LAST_7_DAYS", + "LAST_90_DAYS", + "MONTH_TO_DATE", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_WEEK", + "PREVIOUS_YEAR", + "QUARTER_TO_DATE", + "TODAY", + "WEEK_TO_DATE", + "YEAR_TO_DATE", + "YESTERDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "startDate": { + "type": "string", + "description": "The start date of the date range, inclusive. A string of the format: \"yyyy-MM-dd\".", + "format": "date" + } + } + }, + "DayPartTargeting": { + "id": "DayPartTargeting", + "type": "object", + "description": "Day Part Targeting.", + "properties": { + "daysOfWeek": { + "type": "array", + "description": "Days of the week when the ad will serve.\n\nAcceptable values are:\n- \"SUNDAY\"\n- \"MONDAY\"\n- \"TUESDAY\"\n- \"WEDNESDAY\"\n- \"THURSDAY\"\n- \"FRIDAY\"\n- \"SATURDAY\"", + "items": { + "type": "string", + "enum": [ + "FRIDAY", + "MONDAY", + "SATURDAY", + "SUNDAY", + "THURSDAY", + "TUESDAY", + "WEDNESDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "hoursOfDay": { + "type": "array", + "description": "Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "userLocalTime": { + "type": "boolean", + "description": "Whether or not to use the user's local time. If false, the America/New York time zone applies." + } + } + }, + "DefaultClickThroughEventTagProperties": { + "id": "DefaultClickThroughEventTagProperties", + "type": "object", + "description": "Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further.", + "properties": { + "defaultClickThroughEventTagId": { + "type": "string", + "description": "ID of the click-through event tag to apply to all ads in this entity's scope.", + "format": "int64" + }, + "overrideInheritedEventTag": { + "type": "boolean", + "description": "Whether this entity should override the inherited default click-through event tag with its own defined value." + } + } + }, + "DeliverySchedule": { + "id": "DeliverySchedule", + "type": "object", + "description": "Delivery Schedule.", + "properties": { + "frequencyCap": { + "$ref": "FrequencyCap", + "description": "Limit on the number of times an individual user can be served the ad within a specified period of time." + }, + "hardCutoff": { + "type": "boolean", + "description": "Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals." + }, + "impressionRatio": { + "type": "string", + "description": "Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.", + "format": "int64" + }, + "priority": { + "type": "string", + "description": "Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.", + "enum": [ + "AD_PRIORITY_01", + "AD_PRIORITY_02", + "AD_PRIORITY_03", + "AD_PRIORITY_04", + "AD_PRIORITY_05", + "AD_PRIORITY_06", + "AD_PRIORITY_07", + "AD_PRIORITY_08", + "AD_PRIORITY_09", + "AD_PRIORITY_10", + "AD_PRIORITY_11", + "AD_PRIORITY_12", + "AD_PRIORITY_13", + "AD_PRIORITY_14", + "AD_PRIORITY_15", + "AD_PRIORITY_16" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "DfpSettings": { + "id": "DfpSettings", + "type": "object", + "description": "DFP Settings", + "properties": { + "dfp_network_code": { + "type": "string", + "description": "DFP network code for this directory site." + }, + "dfp_network_name": { + "type": "string", + "description": "DFP network name for this directory site." + }, + "programmaticPlacementAccepted": { + "type": "boolean", + "description": "Whether this directory site accepts programmatic placements." + }, + "pubPaidPlacementAccepted": { + "type": "boolean", + "description": "Whether this directory site accepts publisher-paid tags." + }, + "publisherPortalOnly": { + "type": "boolean", + "description": "Whether this directory site is available only via Publisher Portal." + } + } + }, + "Dimension": { + "id": "Dimension", + "type": "object", + "description": "Represents a dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimension.", + "default": "dfareporting#dimension" + }, + "name": { + "type": "string", + "description": "The dimension name, e.g. dfa:advertiser" + } + } + }, + "DimensionFilter": { + "id": "DimensionFilter", + "type": "object", + "description": "Represents a dimension filter.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension to filter." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionFilter.", + "default": "dfareporting#dimensionFilter" + }, + "value": { + "type": "string", + "description": "The value of the dimension to filter." + } + } + }, + "DimensionValue": { + "id": "DimensionValue", + "type": "object", + "description": "Represents a DimensionValue resource.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID associated with the value if available." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#dimensionValue.", + "default": "dfareporting#dimensionValue" + }, + "matchType": { + "type": "string", + "description": "Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.", + "enum": [ + "BEGINS_WITH", + "CONTAINS", + "EXACT", + "WILDCARD_EXPRESSION" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "DimensionValueList": { + "id": "DimensionValueList", + "type": "object", + "description": "Represents the list of DimensionValue resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The dimension values returned in this response.", + "items": { + "$ref": "DimensionValue" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#dimensionValueList.", + "default": "dfareporting#dimensionValueList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "DimensionValueRequest": { + "id": "DimensionValueRequest", + "type": "object", + "description": "Represents a DimensionValuesRequest.", + "properties": { + "dimensionName": { + "type": "string", + "description": "The name of the dimension for which values should be requested.", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + }, + "endDate": { + "type": "string", + "description": "The end date of the date range for which to retrieve dimension values. A string of the format \"yyyy-MM-dd\".", + "format": "date", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + }, + "filters": { + "type": "array", + "description": "The list of filters by which to filter values. The filters are ANDed.", + "items": { + "$ref": "DimensionFilter" + } + }, + "kind": { + "type": "string", + "description": "The kind of request this is, in this case dfareporting#dimensionValueRequest.", + "default": "dfareporting#dimensionValueRequest" + }, + "startDate": { + "type": "string", + "description": "The start date of the date range for which to retrieve dimension values. A string of the format \"yyyy-MM-dd\".", + "format": "date", + "annotations": { + "required": [ + "dfareporting.dimensionValues.query" + ] + } + } + } + }, + "DirectorySite": { + "id": "DirectorySite", + "type": "object", + "description": "DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether this directory site is active." + }, + "contactAssignments": { + "type": "array", + "description": "Directory site contacts.", + "items": { + "$ref": "DirectorySiteContactAssignment" + } + }, + "countryId": { + "type": "string", + "description": "Country ID of this directory site.", + "format": "int64" + }, + "currencyId": { + "type": "string", + "description": "Currency ID of this directory site.\nPossible values are: \n- \"1\" for USD \n- \"2\" for GBP \n- \"3\" for ESP \n- \"4\" for SEK \n- \"5\" for CAD \n- \"6\" for JPY \n- \"7\" for DEM \n- \"8\" for AUD \n- \"9\" for FRF \n- \"10\" for ITL \n- \"11\" for DKK \n- \"12\" for NOK \n- \"13\" for FIM \n- \"14\" for ZAR \n- \"15\" for IEP \n- \"16\" for NLG \n- \"17\" for EUR \n- \"18\" for KRW \n- \"19\" for TWD \n- \"20\" for SGD \n- \"21\" for CNY \n- \"22\" for HKD \n- \"23\" for NZD \n- \"24\" for MYR \n- \"25\" for BRL \n- \"26\" for PTE \n- \"27\" for MXP \n- \"28\" for CLP \n- \"29\" for TRY \n- \"30\" for ARS \n- \"31\" for PEN \n- \"32\" for ILS \n- \"33\" for CHF \n- \"34\" for VEF \n- \"35\" for COP \n- \"36\" for GTQ", + "format": "int64" + }, + "description": { + "type": "string", + "description": "Description of this directory site." + }, + "id": { + "type": "string", + "description": "ID of this directory site. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this directory site. This is a read-only, auto-generated field." + }, + "inpageTagFormats": { + "type": "array", + "description": "Tag types for regular placements.\n\nAcceptable values are:\n- \"STANDARD\"\n- \"IFRAME_JAVASCRIPT_INPAGE\"\n- \"INTERNAL_REDIRECT_INPAGE\"\n- \"JAVASCRIPT_INPAGE\"", + "items": { + "type": "string", + "enum": [ + "IFRAME_JAVASCRIPT_INPAGE", + "INTERNAL_REDIRECT_INPAGE", + "JAVASCRIPT_INPAGE", + "STANDARD" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + }, + "interstitialTagFormats": { + "type": "array", + "description": "Tag types for interstitial placements.\n\nAcceptable values are:\n- \"IFRAME_JAVASCRIPT_INTERSTITIAL\"\n- \"INTERNAL_REDIRECT_INTERSTITIAL\"\n- \"JAVASCRIPT_INTERSTITIAL\"", + "items": { + "type": "string", + "enum": [ + "IFRAME_JAVASCRIPT_INTERSTITIAL", + "INTERNAL_REDIRECT_INTERSTITIAL", + "JAVASCRIPT_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySite\".", + "default": "dfareporting#directorySite" + }, + "name": { + "type": "string", + "description": "Name of this directory site." + }, + "parentId": { + "type": "string", + "description": "Parent directory site ID.", + "format": "int64" + }, + "settings": { + "$ref": "DirectorySiteSettings", + "description": "Directory site settings." + }, + "url": { + "type": "string", + "description": "URL of this directory site." + } + } + }, + "DirectorySiteContact": { + "id": "DirectorySiteContact", + "type": "object", + "description": "Contains properties of a Site Directory contact.", + "properties": { + "email": { + "type": "string", + "description": "Email address of this directory site contact." + }, + "firstName": { + "type": "string", + "description": "First name of this directory site contact." + }, + "id": { + "type": "string", + "description": "ID of this directory site contact. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySiteContact\".", + "default": "dfareporting#directorySiteContact" + }, + "lastName": { + "type": "string", + "description": "Last name of this directory site contact." + }, + "role": { + "type": "string", + "description": "Directory site contact role.", + "enum": [ + "ADMIN", + "EDIT", + "VIEW" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "type": { + "type": "string", + "description": "Directory site contact type.", + "enum": [ + "BILLING", + "OTHER", + "SALES", + "TECHNICAL" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "DirectorySiteContactAssignment": { + "id": "DirectorySiteContactAssignment", + "type": "object", + "description": "Directory Site Contact Assignment", + "properties": { + "contactId": { + "type": "string", + "description": "ID of this directory site contact. This is a read-only, auto-generated field.", + "format": "int64" + }, + "visibility": { + "type": "string", + "description": "Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.", + "enum": [ + "PRIVATE", + "PUBLIC" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "DirectorySiteContactsListResponse": { + "id": "DirectorySiteContactsListResponse", + "type": "object", + "description": "Directory Site Contact List Response", + "properties": { + "directorySiteContacts": { + "type": "array", + "description": "Directory site contact collection", + "items": { + "$ref": "DirectorySiteContact" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySiteContactsListResponse\".", + "default": "dfareporting#directorySiteContactsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "DirectorySiteSettings": { + "id": "DirectorySiteSettings", + "type": "object", + "description": "Directory Site Settings", + "properties": { + "activeViewOptOut": { + "type": "boolean", + "description": "Whether this directory site has disabled active view creatives." + }, + "dfp_settings": { + "$ref": "DfpSettings", + "description": "Directory site DFP settings." + }, + "instream_video_placement_accepted": { + "type": "boolean", + "description": "Whether this site accepts in-stream video ads." + }, + "interstitialPlacementAccepted": { + "type": "boolean", + "description": "Whether this site accepts interstitial ads." + }, + "nielsenOcrOptOut": { + "type": "boolean", + "description": "Whether this directory site has disabled Nielsen OCR reach ratings." + }, + "verificationTagOptOut": { + "type": "boolean", + "description": "Whether this directory site has disabled generation of Verification tags." + }, + "videoActiveViewOptOut": { + "type": "boolean", + "description": "Whether this directory site has disabled active view for in-stream video creatives." + } + } + }, + "DirectorySitesListResponse": { + "id": "DirectorySitesListResponse", + "type": "object", + "description": "Directory Site List Response", + "properties": { + "directorySites": { + "type": "array", + "description": "Directory site collection", + "items": { + "$ref": "DirectorySite" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#directorySitesListResponse\".", + "default": "dfareporting#directorySitesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "EventTag": { + "id": "EventTag", + "type": "object", + "description": "Contains properties of an event tag.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this event tag. This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this event tag. This field or the campaignId field is required on insertion.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "campaignId": { + "type": "string", + "description": "Campaign ID of this event tag. This field or the advertiserId field is required on insertion.", + "format": "int64" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "enabledByDefault": { + "type": "boolean", + "description": "Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads." + }, + "id": { + "type": "string", + "description": "ID of this event tag. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTag\".", + "default": "dfareporting#eventTag" + }, + "name": { + "type": "string", + "description": "Name of this event tag. This is a required field and must be less than 256 characters long." + }, + "siteFilterType": { + "type": "string", + "description": "Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.", + "enum": [ + "BLACKLIST", + "WHITELIST" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "siteIds": { + "type": "array", + "description": "Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.", + "items": { + "type": "string", + "format": "int64" + } + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether this tag is SSL-compliant or not." + }, + "status": { + "type": "string", + "description": "Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this event tag. This is a read-only field that can be left blank.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.", + "enum": [ + "CLICK_THROUGH_EVENT_TAG", + "IMPRESSION_IMAGE_EVENT_TAG", + "IMPRESSION_JAVASCRIPT_EVENT_TAG" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "url": { + "type": "string", + "description": "Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion." + }, + "urlEscapeLevels": { + "type": "integer", + "description": "Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.", + "format": "int32" + } + } + }, + "EventTagOverride": { + "id": "EventTagOverride", + "type": "object", + "description": "Event tag override information.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this override is enabled." + }, + "id": { + "type": "string", + "description": "ID of this event tag override. This is a read-only, auto-generated field.", + "format": "int64" + } + } + }, + "EventTagsListResponse": { + "id": "EventTagsListResponse", + "type": "object", + "description": "Event Tag List Response", + "properties": { + "eventTags": { + "type": "array", + "description": "Event tag collection", + "items": { + "$ref": "EventTag" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#eventTagsListResponse\".", + "default": "dfareporting#eventTagsListResponse" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is \"REPORT_AVAILABLE\".", + "properties": { + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which the file has report data. The date range will always be the absolute date range for which the report is run." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The filename of the file." + }, + "format": { + "type": "string", + "description": "The output format of the report. Only available once the file is available.", + "enum": [ + "CSV", + "EXCEL" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "id": { + "type": "string", + "description": "The unique ID of this report file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#file.", + "default": "dfareporting#file" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp in milliseconds since epoch when this file was last modified.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "The ID of the report this file was generated from.", + "format": "int64" + }, + "status": { + "type": "string", + "description": "The status of the report file.", + "enum": [ + "CANCELLED", + "FAILED", + "PROCESSING", + "REPORT_AVAILABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "urls": { + "type": "object", + "description": "The URLs where the completed report file can be downloaded.", + "properties": { + "apiUrl": { + "type": "string", + "description": "The URL for downloading the report data through the API." + }, + "browserUrl": { + "type": "string", + "description": "The URL for downloading the report data through a browser." + } + } + } + } + }, + "FileList": { + "id": "FileList", + "type": "object", + "description": "Represents the list of File resources.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The files returned in this response.", + "items": { + "$ref": "File" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#fileList.", + "default": "dfareporting#fileList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through files. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "FloodlightActivitiesGenerateTagResponse": { + "id": "FloodlightActivitiesGenerateTagResponse", + "type": "object", + "description": "Floodlight Activity GenerateTag Response", + "properties": { + "floodlightActivityTag": { + "type": "string", + "description": "Generated tag for this floodlight activity." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesGenerateTagResponse\".", + "default": "dfareporting#floodlightActivitiesGenerateTagResponse" + } + } + }, + "FloodlightActivitiesListResponse": { + "id": "FloodlightActivitiesListResponse", + "type": "object", + "description": "Floodlight Activity List Response", + "properties": { + "floodlightActivities": { + "type": "array", + "description": "Floodlight activity collection", + "items": { + "$ref": "FloodlightActivity" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivitiesListResponse\".", + "default": "dfareporting#floodlightActivitiesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "FloodlightActivity": { + "id": "FloodlightActivity", + "type": "object", + "description": "Contains properties of a Floodlight activity.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this floodlight activity.This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "cacheBustingType": { + "type": "string", + "description": "Code type used for cache busting in the generated tag.", + "enum": [ + "ACTIVE_SERVER_PAGE", + "COLD_FUSION", + "JAVASCRIPT", + "JSP", + "PHP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "countingMethod": { + "type": "string", + "description": "Counting method for conversions for this floodlight activity. This is a required field.", + "enum": [ + "ITEMS_SOLD_COUNTING", + "SESSION_COUNTING", + "STANDARD_COUNTING", + "TRANSACTIONS_COUNTING", + "UNIQUE_COUNTING" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "defaultTags": { + "type": "array", + "description": "Dynamic floodlight tags.", + "items": { + "$ref": "FloodlightActivityDynamicTag" + } + }, + "expectedUrl": { + "type": "string", + "description": "URL where this tag will be deployed. If specified, must be less than 256 characters long." + }, + "floodlightActivityGroupId": { + "type": "string", + "description": "Floodlight activity group ID of this floodlight activity. This is a required field.", + "format": "int64" + }, + "floodlightActivityGroupName": { + "type": "string", + "description": "Name of the associated floodlight activity group. This is a read-only field." + }, + "floodlightActivityGroupTagString": { + "type": "string", + "description": "Tag string of the associated floodlight activity group. This is a read-only field." + }, + "floodlightActivityGroupType": { + "type": "string", + "description": "Type of the associated floodlight activity group. This is a read-only field.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "floodlightConfigurationId": { + "type": "string", + "description": "Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.", + "format": "int64" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "hidden": { + "type": "boolean", + "description": "Whether this activity is archived." + }, + "id": { + "type": "string", + "description": "ID of this floodlight activity. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight activity.This is a read-only, auto-generated field." + }, + "imageTagEnabled": { + "type": "boolean", + "description": "Whether the image tag is enabled for this activity." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivity\".", + "default": "dfareporting#floodlightActivity" + }, + "name": { + "type": "string", + "description": "Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes." + }, + "notes": { + "type": "string", + "description": "General notes or implementation instructions for the tag." + }, + "publisherTags": { + "type": "array", + "description": "Publisher dynamic floodlight tags.", + "items": { + "$ref": "FloodlightActivityPublisherDynamicTag" + } + }, + "secure": { + "type": "boolean", + "description": "Whether this tag should use SSL." + }, + "sslCompliant": { + "type": "boolean", + "description": "Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags." + }, + "sslRequired": { + "type": "boolean", + "description": "Whether this floodlight activity must be SSL-compliant." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this floodlight activity.This is a read-only field that can be left blank.", + "format": "int64" + }, + "tagFormat": { + "type": "string", + "description": "Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.", + "enum": [ + "HTML", + "XHTML" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "tagString": { + "type": "string", + "description": "Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion." + }, + "userDefinedVariableTypes": { + "type": "array", + "description": "List of the user-defined variables used by this conversion tag. These map to the \"u[1-20]=\" in the tags. Each of these can have a user defined type.\nAcceptable values are:\n- \"U1\"\n- \"U2\"\n- \"U3\"\n- \"U4\"\n- \"U5\"\n- \"U6\"\n- \"U7\"\n- \"U8\"\n- \"U9\"\n- \"U10\"\n- \"U11\"\n- \"U12\"\n- \"U13\"\n- \"U14\"\n- \"U15\"\n- \"U16\"\n- \"U17\"\n- \"U18\"\n- \"U19\"\n- \"U20\"", + "items": { + "type": "string", + "enum": [ + "U1", + "U10", + "U11", + "U12", + "U13", + "U14", + "U15", + "U16", + "U17", + "U18", + "U19", + "U2", + "U20", + "U3", + "U4", + "U5", + "U6", + "U7", + "U8", + "U9" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + } + }, + "FloodlightActivityDynamicTag": { + "id": "FloodlightActivityDynamicTag", + "type": "object", + "description": "Dynamic Tag", + "properties": { + "id": { + "type": "string", + "description": "ID of this dynamic tag. This is a read-only, auto-generated field.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of this tag." + }, + "tag": { + "type": "string", + "description": "Tag code." + } + } + }, + "FloodlightActivityGroup": { + "id": "FloodlightActivityGroup", + "type": "object", + "description": "Contains properties of a Floodlight activity group.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this floodlight activity group.This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "floodlightConfigurationId": { + "type": "string", + "description": "Floodlight configuration ID of this floodlight activity group. This is a required field.", + "format": "int64" + }, + "floodlightConfigurationIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field." + }, + "id": { + "type": "string", + "description": "ID of this floodlight activity group. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroup\".", + "default": "dfareporting#floodlightActivityGroup" + }, + "name": { + "type": "string", + "description": "Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.", + "format": "int64" + }, + "tagString": { + "type": "string", + "description": "Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion." + }, + "type": { + "type": "string", + "description": "The type of floodlight activity group. This is a required field that is read-only after insertion.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "FloodlightActivityGroupsListResponse": { + "id": "FloodlightActivityGroupsListResponse", + "type": "object", + "description": "Floodlight Activity Group List Response", + "properties": { + "floodlightActivityGroups": { + "type": "array", + "description": "Floodlight activity group collection", + "items": { + "$ref": "FloodlightActivityGroup" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightActivityGroupsListResponse\".", + "default": "dfareporting#floodlightActivityGroupsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + } + } + }, + "FloodlightActivityPublisherDynamicTag": { + "id": "FloodlightActivityPublisherDynamicTag", + "type": "object", + "description": "Publisher Dynamic Tag", + "properties": { + "clickThrough": { + "type": "boolean", + "description": "Whether this tag is applicable only for click-throughs." + }, + "directorySiteId": { + "type": "string", + "description": "Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.", + "format": "int64" + }, + "dynamicTag": { + "$ref": "FloodlightActivityDynamicTag", + "description": "Dynamic floodlight tag." + }, + "siteId": { + "type": "string", + "description": "Site ID of this dynamic tag.", + "format": "int64" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "viewThrough": { + "type": "boolean", + "description": "Whether this tag is applicable only for view-throughs." + } + } + }, + "FloodlightConfiguration": { + "id": "FloodlightConfiguration", + "type": "object", + "description": "Contains properties of a Floodlight configuration.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this floodlight configuration. This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of the parent advertiser of this floodlight configuration.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "analyticsDataSharingEnabled": { + "type": "boolean", + "description": "Whether advertiser data is shared with Google Analytics." + }, + "exposureToConversionEnabled": { + "type": "boolean", + "description": "Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting." + }, + "firstDayOfWeek": { + "type": "string", + "description": "Day that will be counted as the first day of the week in reports. This is a required field.", + "enum": [ + "MONDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "id": { + "type": "string", + "description": "ID of this floodlight configuration. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfiguration\".", + "default": "dfareporting#floodlightConfiguration" + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for this floodlight configuration." + }, + "naturalSearchConversionAttributionOption": { + "type": "string", + "description": "Types of attribution options for natural search conversions.", + "enum": [ + "EXCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", + "INCLUDE_NATURAL_SEARCH_CONVERSION_ATTRIBUTION", + "INCLUDE_NATURAL_SEARCH_TIERED_CONVERSION_ATTRIBUTION" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "omnitureSettings": { + "$ref": "OmnitureSettings", + "description": "Settings for DCM Omniture integration." + }, + "sslRequired": { + "type": "boolean", + "description": "Whether floodlight activities owned by this configuration are required to be SSL-compliant." + }, + "standardVariableTypes": { + "type": "array", + "description": "List of standard variables enabled for this configuration.\n\nAcceptable values are:\n- \"ORD\"\n- \"NUM\"", + "items": { + "type": "string", + "enum": [ + "NUM", + "ORD", + "TRAN", + "U" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.", + "format": "int64" + }, + "tagSettings": { + "$ref": "TagSettings", + "description": "Configuration settings for dynamic and image floodlight tags." + }, + "userDefinedVariableConfigurations": { + "type": "array", + "description": "List of user defined variables enabled for this configuration.", + "items": { + "$ref": "UserDefinedVariableConfiguration" + } + } + } + }, + "FloodlightConfigurationsListResponse": { + "id": "FloodlightConfigurationsListResponse", + "type": "object", + "description": "Floodlight Configuration List Response", + "properties": { + "floodlightConfigurations": { + "type": "array", + "description": "Floodlight configuration collection", + "items": { + "$ref": "FloodlightConfiguration" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#floodlightConfigurationsListResponse\".", + "default": "dfareporting#floodlightConfigurationsListResponse" + } + } + }, + "FloodlightReportCompatibleFields": { + "id": "FloodlightReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"FlOODLIGHT\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.", + "default": "dfareporting#floodlightReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "FrequencyCap": { + "id": "FrequencyCap", + "type": "object", + "description": "Frequency Cap.", + "properties": { + "duration": { + "type": "string", + "description": "Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.", + "format": "int64" + }, + "impressions": { + "type": "string", + "description": "Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.", + "format": "int64" + } + } + }, + "FsCommand": { + "id": "FsCommand", + "type": "object", + "description": "FsCommand.", + "properties": { + "left": { + "type": "integer", + "description": "Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", + "format": "int32" + }, + "positionOption": { + "type": "string", + "description": "Position in the browser where the window will open.", + "enum": [ + "CENTERED", + "DISTANCE_FROM_TOP_LEFT_CORNER" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "top": { + "type": "integer", + "description": "Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.", + "format": "int32" + }, + "windowHeight": { + "type": "integer", + "description": "Height of the window.", + "format": "int32" + }, + "windowWidth": { + "type": "integer", + "description": "Width of the window.", + "format": "int32" + } + } + }, + "GeoTargeting": { + "id": "GeoTargeting", + "type": "object", + "description": "Geographical Targeting.", + "properties": { + "cities": { + "type": "array", + "description": "Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.", + "items": { + "$ref": "City" + } + }, + "countries": { + "type": "array", + "description": "Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.", + "items": { + "$ref": "Country" + } + }, + "excludeCountries": { + "type": "boolean", + "description": "Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad." + }, + "metros": { + "type": "array", + "description": "Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.", + "items": { + "$ref": "Metro" + } + }, + "postalCodes": { + "type": "array", + "description": "Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.", + "items": { + "$ref": "PostalCode" + } + }, + "regions": { + "type": "array", + "description": "Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.", + "items": { + "$ref": "Region" + } + } + } + }, + "KeyValueTargetingExpression": { + "id": "KeyValueTargetingExpression", + "type": "object", + "description": "Key Value Targeting Expression.", + "properties": { + "expression": { + "type": "string", + "description": "Keyword expression being targeted by the ad." + } + } + }, + "LandingPage": { + "id": "LandingPage", + "type": "object", + "description": "Contains information about where a user's browser is taken after the user clicks an ad.", + "properties": { + "default": { + "type": "boolean", + "description": "Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign." + }, + "id": { + "type": "string", + "description": "ID of this landing page. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#landingPage\".", + "default": "dfareporting#landingPage" + }, + "name": { + "type": "string", + "description": "Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign." + }, + "url": { + "type": "string", + "description": "URL of this landing page. This is a required field." + } + } + }, + "LandingPagesListResponse": { + "id": "LandingPagesListResponse", + "type": "object", + "description": "Landing Page List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#landingPagesListResponse\".", + "default": "dfareporting#landingPagesListResponse" + }, + "landingPages": { + "type": "array", + "description": "Landing page collection", + "items": { + "$ref": "LandingPage" + } + } + } + }, + "LastModifiedInfo": { + "id": "LastModifiedInfo", + "type": "object", + "description": "Modification timestamp.", + "properties": { + "time": { + "type": "string", + "description": "Timestamp of the last change in milliseconds since epoch.", + "format": "int64" + } + } + }, + "ListTargetingExpression": { + "id": "ListTargetingExpression", + "type": "object", + "description": "Remarketing List Targeting Expression.", + "properties": { + "expression": { + "type": "string", + "description": "Expression describing which lists are being targeted by the ad." + } + } + }, + "LookbackConfiguration": { + "id": "LookbackConfiguration", + "type": "object", + "description": "Lookback configuration settings.", + "properties": { + "clickDuration": { + "type": "integer", + "description": "Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.", + "format": "int32" + }, + "postImpressionActivitiesDuration": { + "type": "integer", + "description": "Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.", + "format": "int32" + } + } + }, + "Metric": { + "id": "Metric", + "type": "object", + "description": "Represents a metric.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#metric.", + "default": "dfareporting#metric" + }, + "name": { + "type": "string", + "description": "The metric name, e.g. dfa:impressions" + } + } + }, + "Metro": { + "id": "Metro", + "type": "object", + "description": "Contains information about a metro region that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code of the country to which this metro region belongs." + }, + "countryDartId": { + "type": "string", + "description": "DART ID of the country to which this metro region belongs.", + "format": "int64" + }, + "dartId": { + "type": "string", + "description": "DART ID of this metro region.", + "format": "int64" + }, + "dmaId": { + "type": "string", + "description": "DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metro\".", + "default": "dfareporting#metro" + }, + "metroCode": { + "type": "string", + "description": "Metro code of this metro region. This is equivalent to dma_id." + }, + "name": { + "type": "string", + "description": "Name of this metro region." + } + } + }, + "MetrosListResponse": { + "id": "MetrosListResponse", + "type": "object", + "description": "Metro List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#metrosListResponse\".", + "default": "dfareporting#metrosListResponse" + }, + "metros": { + "type": "array", + "description": "Metro collection", + "items": { + "$ref": "Metro" + } + } + } + }, + "MobileCarrier": { + "id": "MobileCarrier", + "type": "object", + "description": "Contains information about a mobile carrier that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code of the country to which this mobile carrier belongs." + }, + "countryDartId": { + "type": "string", + "description": "DART ID of the country to which this mobile carrier belongs.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "ID of this mobile carrier.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarrier\".", + "default": "dfareporting#mobileCarrier" + }, + "name": { + "type": "string", + "description": "Name of this mobile carrier." + } + } + }, + "MobileCarriersListResponse": { + "id": "MobileCarriersListResponse", + "type": "object", + "description": "Mobile Carrier List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#mobileCarriersListResponse\".", + "default": "dfareporting#mobileCarriersListResponse" + }, + "mobileCarriers": { + "type": "array", + "description": "Mobile carrier collection", + "items": { + "$ref": "MobileCarrier" + } + } + } + }, + "ObjectFilter": { + "id": "ObjectFilter", + "type": "object", + "description": "Object Filter.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#objectFilter\".", + "default": "dfareporting#objectFilter" + }, + "objectIds": { + "type": "array", + "description": "Applicable when status is ASSIGNED. The user has access to objects with these object IDs.", + "items": { + "type": "string", + "format": "int64" + } + }, + "status": { + "type": "string", + "description": "Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.", + "enum": [ + "ALL", + "ASSIGNED", + "NONE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "OffsetPosition": { + "id": "OffsetPosition", + "type": "object", + "description": "Offset Position.", + "properties": { + "left": { + "type": "integer", + "description": "Offset distance from left side of an asset or a window.", + "format": "int32" + }, + "top": { + "type": "integer", + "description": "Offset distance from top side of an asset or a window.", + "format": "int32" + } + } + }, + "OmnitureSettings": { + "id": "OmnitureSettings", + "type": "object", + "description": "Omniture Integration Settings.", + "properties": { + "omnitureCostDataEnabled": { + "type": "boolean", + "description": "Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true." + }, + "omnitureIntegrationEnabled": { + "type": "boolean", + "description": "Whether Omniture integration is enabled. This property can be enabled only when the \"Advanced Ad Serving\" account setting is enabled." + } + } + }, + "OperatingSystem": { + "id": "OperatingSystem", + "type": "object", + "description": "Contains information about an operating system that can be targeted by ads.", + "properties": { + "dartId": { + "type": "string", + "description": "DART ID of this operating system. This is the ID used for targeting.", + "format": "int64" + }, + "desktop": { + "type": "boolean", + "description": "Whether this operating system is for desktop." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystem\".", + "default": "dfareporting#operatingSystem" + }, + "mobile": { + "type": "boolean", + "description": "Whether this operating system is for mobile." + }, + "name": { + "type": "string", + "description": "Name of this operating system." + } + } + }, + "OperatingSystemVersion": { + "id": "OperatingSystemVersion", + "type": "object", + "description": "Contains information about a particular version of an operating system that can be targeted by ads.", + "properties": { + "id": { + "type": "string", + "description": "ID of this operating system version.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersion\".", + "default": "dfareporting#operatingSystemVersion" + }, + "majorVersion": { + "type": "string", + "description": "Major version (leftmost number) of this operating system version." + }, + "minorVersion": { + "type": "string", + "description": "Minor version (number after first dot on the left) of this operating system version." + }, + "name": { + "type": "string", + "description": "Name of this operating system version." + }, + "operatingSystem": { + "$ref": "OperatingSystem", + "description": "Operating system of this operating system version." + } + } + }, + "OperatingSystemVersionsListResponse": { + "id": "OperatingSystemVersionsListResponse", + "type": "object", + "description": "Operating System Version List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemVersionsListResponse\".", + "default": "dfareporting#operatingSystemVersionsListResponse" + }, + "operatingSystemVersions": { + "type": "array", + "description": "Operating system version collection", + "items": { + "$ref": "OperatingSystemVersion" + } + } + } + }, + "OperatingSystemsListResponse": { + "id": "OperatingSystemsListResponse", + "type": "object", + "description": "Operating System List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#operatingSystemsListResponse\".", + "default": "dfareporting#operatingSystemsListResponse" + }, + "operatingSystems": { + "type": "array", + "description": "Operating system collection", + "items": { + "$ref": "OperatingSystem" + } + } + } + }, + "OptimizationActivity": { + "id": "OptimizationActivity", + "type": "object", + "description": "Creative optimization activity.", + "properties": { + "floodlightActivityId": { + "type": "string", + "description": "Floodlight activity ID of this optimization activity. This is a required field.", + "format": "int64" + }, + "floodlightActivityIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field." + }, + "weight": { + "type": "integer", + "description": "Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.", + "format": "int32" + } + } + }, + "PathToConversionReportCompatibleFields": { + "id": "PathToConversionReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "conversionDimensions": { + "type": "array", + "description": "Conversion dimensions which are compatible to be selected in the \"conversionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "Custom floodlight variables which are compatible to be selected in the \"customFloodlightVariables\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.", + "default": "dfareporting#pathToConversionReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "Per-interaction dimensions which are compatible to be selected in the \"perInteractionDimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + } + } + }, + "Placement": { + "id": "Placement", + "type": "object", + "description": "Contains properties of a placement.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this placement. This field can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this placement. This field can be left blank.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "type": "boolean", + "description": "Whether this placement is archived." + }, + "campaignId": { + "type": "string", + "description": "Campaign ID of this placement. This field is a required field on insertion.", + "format": "int64" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "comment": { + "type": "string", + "description": "Comments for this placement." + }, + "compatibility": { + "type": "string", + "description": "Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.", + "enum": [ + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "WEB", + "WEB_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "contentCategoryId": { + "type": "string", + "description": "ID of the content category assigned to this placement.", + "format": "int64" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this placement. This is a read-only field." + }, + "directorySiteId": { + "type": "string", + "description": "Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", + "format": "int64" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "externalId": { + "type": "string", + "description": "External ID for this placement." + }, + "id": { + "type": "string", + "description": "ID of this placement. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this placement. This is a read-only, auto-generated field." + }, + "keyName": { + "type": "string", + "description": "Key name of this placement. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placement\".", + "default": "dfareporting#placement" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this placement. This is a read-only field." + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for this placement." + }, + "name": { + "type": "string", + "description": "Name of this placement.This is a required field and must be less than 256 characters long." + }, + "paymentApproved": { + "type": "boolean", + "description": "Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements." + }, + "paymentSource": { + "type": "string", + "description": "Payment source for this placement. This is a required field that is read-only after insertion.", + "enum": [ + "PLACEMENT_AGENCY_PAID", + "PLACEMENT_PUBLISHER_PAID" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "placementGroupId": { + "type": "string", + "description": "ID of this placement's group, if applicable.", + "format": "int64" + }, + "placementGroupIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the placement group. This is a read-only, auto-generated field." + }, + "placementStrategyId": { + "type": "string", + "description": "ID of the placement strategy assigned to this placement.", + "format": "int64" + }, + "pricingSchedule": { + "$ref": "PricingSchedule", + "description": "Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType." + }, + "primary": { + "type": "boolean", + "description": "Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement." + }, + "publisherUpdateInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the last publisher update. This is a read-only field." + }, + "siteId": { + "type": "string", + "description": "Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.", + "format": "int64" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "size": { + "$ref": "Size", + "description": "Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion." + }, + "sslRequired": { + "type": "boolean", + "description": "Whether creatives assigned to this placement must be SSL-compliant." + }, + "status": { + "type": "string", + "description": "Third-party placement status.", + "enum": [ + "ACKNOWLEDGE_ACCEPTANCE", + "ACKNOWLEDGE_REJECTION", + "DRAFT", + "PAYMENT_ACCEPTED", + "PAYMENT_REJECTED", + "PENDING_REVIEW" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this placement. This field can be left blank.", + "format": "int64" + }, + "tagFormats": { + "type": "array", + "description": "Tag formats to generate for this placement. This field is required on insertion.\nAcceptable values are:\n- \"PLACEMENT_TAG_STANDARD\"\n- \"PLACEMENT_TAG_IFRAME_JAVASCRIPT\"\n- \"PLACEMENT_TAG_IFRAME_ILAYER\"\n- \"PLACEMENT_TAG_INTERNAL_REDIRECT\"\n- \"PLACEMENT_TAG_JAVASCRIPT\"\n- \"PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT\"\n- \"PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT\"\n- \"PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT\"\n- \"PLACEMENT_TAG_CLICK_COMMANDS\"\n- \"PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH\"\n- \"PLACEMENT_TAG_TRACKING\"\n- \"PLACEMENT_TAG_TRACKING_IFRAME\"\n- \"PLACEMENT_TAG_TRACKING_JAVASCRIPT\"", + "items": { + "type": "string", + "enum": [ + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "tagSetting": { + "$ref": "TagSetting", + "description": "Tag settings for this placement." + } + } + }, + "PlacementAssignment": { + "id": "PlacementAssignment", + "type": "object", + "description": "Placement Assignment.", + "properties": { + "active": { + "type": "boolean", + "description": "Whether this placement assignment is active. When true, the placement will be included in the ad's rotation." + }, + "placementId": { + "type": "string", + "description": "ID of the placement to be assigned. This is a required field.", + "format": "int64" + }, + "placementIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the placement. This is a read-only, auto-generated field." + }, + "sslRequired": { + "type": "boolean", + "description": "Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated." + } + } + }, + "PlacementGroup": { + "id": "PlacementGroup", + "type": "object", + "description": "Contains properties of a package or roadblock.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this placement group. This is a read-only field that can be left blank.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this placement group. This is a required field on insertion.", + "format": "int64" + }, + "advertiserIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the advertiser. This is a read-only, auto-generated field." + }, + "archived": { + "type": "boolean", + "description": "Whether this placement group is archived." + }, + "campaignId": { + "type": "string", + "description": "Campaign ID of this placement group. This field is required on insertion.", + "format": "int64" + }, + "campaignIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the campaign. This is a read-only, auto-generated field." + }, + "childPlacementIds": { + "type": "array", + "description": "IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.", + "items": { + "type": "string", + "format": "int64" + } + }, + "comment": { + "type": "string", + "description": "Comments for this placement group." + }, + "contentCategoryId": { + "type": "string", + "description": "ID of the content category assigned to this placement group.", + "format": "int64" + }, + "createInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the creation of this placement group. This is a read-only field." + }, + "directorySiteId": { + "type": "string", + "description": "Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", + "format": "int64" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "externalId": { + "type": "string", + "description": "External ID for this placement." + }, + "id": { + "type": "string", + "description": "ID of this placement group. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this placement group. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroup\".", + "default": "dfareporting#placementGroup" + }, + "lastModifiedInfo": { + "$ref": "LastModifiedInfo", + "description": "Information about the most recent modification of this placement group. This is a read-only field." + }, + "name": { + "type": "string", + "description": "Name of this placement group. This is a required field and must be less than 256 characters long." + }, + "placementGroupType": { + "type": "string", + "description": "Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.", + "enum": [ + "PLACEMENT_PACKAGE", + "PLACEMENT_ROADBLOCK" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "placementStrategyId": { + "type": "string", + "description": "ID of the placement strategy assigned to this placement group.", + "format": "int64" + }, + "pricingSchedule": { + "$ref": "PricingSchedule", + "description": "Pricing schedule of this placement group. This field is required on insertion." + }, + "primaryPlacementId": { + "type": "string", + "description": "ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.", + "format": "int64" + }, + "primaryPlacementIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the primary placement. This is a read-only, auto-generated field." + }, + "programmaticSetting": { + "$ref": "ProgrammaticSetting", + "description": "Settings for a programmatic placement." + }, + "siteId": { + "type": "string", + "description": "Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.", + "format": "int64" + }, + "siteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the site. This is a read-only, auto-generated field." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this placement group. This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "PlacementGroupsListResponse": { + "id": "PlacementGroupsListResponse", + "type": "object", + "description": "Placement Group List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementGroupsListResponse\".", + "default": "dfareporting#placementGroupsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "placementGroups": { + "type": "array", + "description": "Placement group collection", + "items": { + "$ref": "PlacementGroup" + } + } + } + }, + "PlacementStrategiesListResponse": { + "id": "PlacementStrategiesListResponse", + "type": "object", + "description": "Placement Strategy List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategiesListResponse\".", + "default": "dfareporting#placementStrategiesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "placementStrategies": { + "type": "array", + "description": "Placement strategy collection", + "items": { + "$ref": "PlacementStrategy" + } + } + } + }, + "PlacementStrategy": { + "id": "PlacementStrategy", + "type": "object", + "description": "Contains properties of a placement strategy.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this placement strategy.This is a read-only field that can be left blank.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "ID of this placement strategy. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementStrategy\".", + "default": "dfareporting#placementStrategy" + }, + "name": { + "type": "string", + "description": "Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account." + } + } + }, + "PlacementTag": { + "id": "PlacementTag", + "type": "object", + "description": "Placement Tag", + "properties": { + "placementId": { + "type": "string", + "description": "Placement ID", + "format": "int64" + }, + "tagDatas": { + "type": "array", + "description": "Tags generated for this placement.", + "items": { + "$ref": "TagData" + } + } + } + }, + "PlacementsGenerateTagsResponse": { + "id": "PlacementsGenerateTagsResponse", + "type": "object", + "description": "Placement GenerateTags Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsGenerateTagsResponse\".", + "default": "dfareporting#placementsGenerateTagsResponse" + }, + "placementTags": { + "type": "array", + "description": "Set of generated tags for the specified placements.", + "items": { + "$ref": "PlacementTag" + } + } + } + }, + "PlacementsListResponse": { + "id": "PlacementsListResponse", + "type": "object", + "description": "Placement List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#placementsListResponse\".", + "default": "dfareporting#placementsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "placements": { + "type": "array", + "description": "Placement collection", + "items": { + "$ref": "Placement" + } + } + } + }, + "PlatformType": { + "id": "PlatformType", + "type": "object", + "description": "Contains information about a platform type that can be targeted by ads.", + "properties": { + "id": { + "type": "string", + "description": "ID of this platform type.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformType\".", + "default": "dfareporting#platformType" + }, + "name": { + "type": "string", + "description": "Name of this platform type." + } + } + }, + "PlatformTypesListResponse": { + "id": "PlatformTypesListResponse", + "type": "object", + "description": "Platform Type List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#platformTypesListResponse\".", + "default": "dfareporting#platformTypesListResponse" + }, + "platformTypes": { + "type": "array", + "description": "Platform type collection", + "items": { + "$ref": "PlatformType" + } + } + } + }, + "PopupWindowProperties": { + "id": "PopupWindowProperties", + "type": "object", + "description": "Popup Window Properties.", + "properties": { + "dimension": { + "$ref": "Size", + "description": "Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID" + }, + "offset": { + "$ref": "OffsetPosition", + "description": "Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES." + }, + "positionType": { + "type": "string", + "description": "Popup window position either centered or at specific coordinate.", + "enum": [ + "CENTER", + "COORDINATES" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "showAddressBar": { + "type": "boolean", + "description": "Whether to display the browser address bar." + }, + "showMenuBar": { + "type": "boolean", + "description": "Whether to display the browser menu bar." + }, + "showScrollBar": { + "type": "boolean", + "description": "Whether to display the browser scroll bar." + }, + "showStatusBar": { + "type": "boolean", + "description": "Whether to display the browser status bar." + }, + "showToolBar": { + "type": "boolean", + "description": "Whether to display the browser tool bar." + }, + "title": { + "type": "string", + "description": "Title of popup window." + } + } + }, + "PostalCode": { + "id": "PostalCode", + "type": "object", + "description": "Contains information about a postal code that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code of the country to which this postal code belongs." + }, + "countryDartId": { + "type": "string", + "description": "DART ID of the country to which this postal code belongs.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "ID of this postal code." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCode\".", + "default": "dfareporting#postalCode" + } + } + }, + "PostalCodesListResponse": { + "id": "PostalCodesListResponse", + "type": "object", + "description": "Postal Code List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#postalCodesListResponse\".", + "default": "dfareporting#postalCodesListResponse" + }, + "postalCodes": { + "type": "array", + "description": "Postal code collection", + "items": { + "$ref": "PostalCode" + } + } + } + }, + "PricingSchedule": { + "id": "PricingSchedule", + "type": "object", + "description": "Pricing Schedule", + "properties": { + "capCostOption": { + "type": "string", + "description": "Placement cap cost option.", + "enum": [ + "CAP_COST_CUMULATIVE", + "CAP_COST_MONTHLY", + "CAP_COST_NONE" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "disregardOverdelivery": { + "type": "boolean", + "description": "Whether cap costs are ignored by ad serving." + }, + "endDate": { + "type": "string", + "description": "Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.", + "format": "date" + }, + "flighted": { + "type": "boolean", + "description": "Whether this placement is flighted. If true, pricing periods will be computed automatically." + }, + "floodlightActivityId": { + "type": "string", + "description": "Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.", + "format": "int64" + }, + "pricingPeriods": { + "type": "array", + "description": "Pricing periods for this placement.", + "items": { + "$ref": "PricingSchedulePricingPeriod" + } + }, + "pricingType": { + "type": "string", + "description": "Placement pricing type. This field is required on insertion.", + "enum": [ + "PRICING_TYPE_CPA", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPM", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "startDate": { + "type": "string", + "description": "Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.", + "format": "date" + }, + "testingStartDate": { + "type": "string", + "description": "Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.", + "format": "date" + } + } + }, + "PricingSchedulePricingPeriod": { + "id": "PricingSchedulePricingPeriod", + "type": "object", + "description": "Pricing Period", + "properties": { + "endDate": { + "type": "string", + "description": "Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.", + "format": "date" + }, + "pricingComment": { + "type": "string", + "description": "Comments for this pricing period." + }, + "rateOrCostNanos": { + "type": "string", + "description": "Rate or cost of this pricing period.", + "format": "int64" + }, + "startDate": { + "type": "string", + "description": "Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.", + "format": "date" + }, + "units": { + "type": "string", + "description": "Units of this pricing period.", + "format": "int64" + } + } + }, + "ProgrammaticSetting": { + "id": "ProgrammaticSetting", + "type": "object", + "description": "Programmatic Setting", + "properties": { + "adxDealIds": { + "type": "array", + "description": "Adx deal IDs assigned to the placement.", + "items": { + "type": "string", + "format": "int64" + } + }, + "insertionOrderId": { + "type": "string", + "description": "Insertion order ID." + }, + "insertionOrderIdStatus": { + "type": "boolean", + "description": "Whether insertion order ID has been placed in DFP. This is a read-only field." + }, + "mediaCostNanos": { + "type": "string", + "description": "Media cost for the programmatic placement.", + "format": "int64" + }, + "programmatic": { + "type": "boolean", + "description": "Whether programmatic is enabled." + }, + "traffickerEmails": { + "type": "array", + "description": "Trafficker emails assigned to the placement.", + "items": { + "type": "string" + } + } + } + }, + "ReachReportCompatibleFields": { + "id": "ReachReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"REACH\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.", + "default": "dfareporting#reachReportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "pivotedActivityMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "reachByFrequencyMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"reachByFrequencyMetricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "Recipient": { + "id": "Recipient", + "type": "object", + "description": "Represents a recipient.", + "properties": { + "deliveryType": { + "type": "string", + "description": "The delivery type for the recipient.", + "enum": [ + "ATTACHMENT", + "LINK" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "email": { + "type": "string", + "description": "The email address of the recipient.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#recipient.", + "default": "dfareporting#recipient" + } + } + }, + "Region": { + "id": "Region", + "type": "object", + "description": "Contains information about a region that can be targeted by ads.", + "properties": { + "countryCode": { + "type": "string", + "description": "Country code of the country to which this region belongs." + }, + "countryDartId": { + "type": "string", + "description": "DART ID of the country to which this region belongs.", + "format": "int64" + }, + "dartId": { + "type": "string", + "description": "DART ID of this region.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#region\".", + "default": "dfareporting#region" + }, + "name": { + "type": "string", + "description": "Name of this region." + }, + "regionCode": { + "type": "string", + "description": "Region code." + } + } + }, + "RegionsListResponse": { + "id": "RegionsListResponse", + "type": "object", + "description": "Region List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#regionsListResponse\".", + "default": "dfareporting#regionsListResponse" + }, + "regions": { + "type": "array", + "description": "Region Collection.", + "items": { + "$ref": "Region" + } + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a Report resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this report belongs.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "criteria": { + "type": "object", + "description": "The report criteria for a report of type \"STANDARD\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range for which this report should be run." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of standard dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "crossDimensionReachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"CROSS_DIMENSION_REACH\".", + "properties": { + "breakdown": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimension": { + "type": "string", + "description": "The dimension option.", + "enum": [ + "ADVERTISER", + "CAMPAIGN", + "SITE_BY_ADVERTISER", + "SITE_BY_CAMPAIGN" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.", + "items": { + "$ref": "DimensionValue" + } + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "overlapMetricNames": { + "type": "array", + "description": "The list of names of overlap metrics the report should include.", + "items": { + "type": "string" + } + }, + "pivoted": { + "type": "boolean", + "description": "Whether the report is pivoted or not. Defaults to true." + } + } + }, + "delivery": { + "type": "object", + "description": "The report's email delivery settings.", + "properties": { + "emailOwner": { + "type": "boolean", + "description": "Whether the report should be emailed to the report owner." + }, + "emailOwnerDeliveryType": { + "type": "string", + "description": "The type of delivery for the owner to receive, if enabled.", + "enum": [ + "ATTACHMENT", + "LINK" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "message": { + "type": "string", + "description": "The message to be sent with each email." + }, + "recipients": { + "type": "array", + "description": "The list of recipients to which to email the report.", + "items": { + "$ref": "Recipient" + } + } + } + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "fileName": { + "type": "string", + "description": "The filename used when generating report files for this report." + }, + "floodlightCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"FLOODLIGHT\".", + "properties": { + "customRichMediaEvents": { + "type": "array", + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no cookie, but do have an exposure path." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + } + } + } + } + }, + "format": { + "type": "string", + "description": "The output format of the report. If not specified, default format is \"CSV\". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. \"CSV\" will then be the fallback format.", + "enum": [ + "CSV", + "EXCEL" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "id": { + "type": "string", + "description": "The unique ID identifying this report resource.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#report.", + "default": "dfareporting#report" + }, + "lastModifiedTime": { + "type": "string", + "description": "The timestamp (in milliseconds since epoch) of when this report was last modified.", + "format": "uint64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the report.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "ownerProfileId": { + "type": "string", + "description": "The user profile id of the owner of this report.", + "format": "int64", + "annotations": { + "required": [ + "dfareporting.reports.update" + ] + } + }, + "pathToConversionCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"PATH_TO_CONVERSION\".", + "properties": { + "activityFilters": { + "type": "array", + "description": "The list of 'dfa:activity' values to filter on.", + "items": { + "$ref": "DimensionValue" + } + }, + "conversionDimensions": { + "type": "array", + "description": "The list of conversion dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customFloodlightVariables": { + "type": "array", + "description": "The list of custom floodlight variables the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "customRichMediaEvents": { + "type": "array", + "description": "The list of custom rich media events to include.", + "items": { + "$ref": "DimensionValue" + } + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "floodlightConfigId": { + "$ref": "DimensionValue", + "description": "The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "perInteractionDimensions": { + "type": "array", + "description": "The list of per interaction dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "reportProperties": { + "type": "object", + "description": "The properties of the report.", + "properties": { + "clicksLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "impressionsLookbackWindow": { + "type": "integer", + "description": "DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.", + "format": "int32" + }, + "includeAttributedIPConversions": { + "type": "boolean", + "description": "Deprecated: has no effect." + }, + "includeUnattributedCookieConversions": { + "type": "boolean", + "description": "Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window." + }, + "includeUnattributedIPConversions": { + "type": "boolean", + "description": "Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion." + }, + "maximumClickInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumImpressionInteractions": { + "type": "integer", + "description": "The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.", + "format": "int32" + }, + "maximumInteractionGap": { + "type": "integer", + "description": "The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.", + "format": "int32" + }, + "pivotOnInteractionPath": { + "type": "boolean", + "description": "Enable pivoting on interaction path." + } + } + } + } + }, + "reachCriteria": { + "type": "object", + "description": "The report criteria for a report of type \"REACH\".", + "properties": { + "activities": { + "$ref": "Activities", + "description": "Activity group." + }, + "customRichMediaEvents": { + "$ref": "CustomRichMediaEvents", + "description": "Custom Rich Media Events group." + }, + "dateRange": { + "$ref": "DateRange", + "description": "The date range this report should be run for." + }, + "dimensionFilters": { + "type": "array", + "description": "The list of filters on which dimensions are filtered.\nFilters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.", + "items": { + "$ref": "DimensionValue" + } + }, + "dimensions": { + "type": "array", + "description": "The list of dimensions the report should include.", + "items": { + "$ref": "SortedDimension" + } + }, + "enableAllDimensionCombinations": { + "type": "boolean", + "description": "Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months." + }, + "metricNames": { + "type": "array", + "description": "The list of names of metrics the report should include.", + "items": { + "type": "string" + } + }, + "reachByFrequencyMetricNames": { + "type": "array", + "description": "The list of names of Reach By Frequency metrics the report should include.", + "items": { + "type": "string" + } + } + } + }, + "schedule": { + "type": "object", + "description": "The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not \"TODAY\".", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the schedule is active or not. Must be set to either true or false.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "every": { + "type": "integer", + "description": "Defines every how many days, weeks or months the report should be run. Needs to be set when \"repeats\" is either \"DAILY\", \"WEEKLY\" or \"MONTHLY\".", + "format": "int32" + }, + "expirationDate": { + "type": "string", + "description": "The expiration date when the scheduled report stops running.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeats": { + "type": "string", + "description": "The interval for which the report is repeated. Note: \n- \"DAILY\" also requires field \"every\" to be set. \n- \"WEEKLY\" also requires fields \"every\" and \"repeatsOnWeekDays\" to be set. \n- \"MONTHLY\" also requires fields \"every\" and \"runsOnDayOfMonth\" to be set.", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + }, + "repeatsOnWeekDays": { + "type": "array", + "description": "List of week days \"WEEKLY\" on which scheduled reports should run.", + "items": { + "type": "string", + "enum": [ + "FRIDAY", + "MONDAY", + "SATURDAY", + "SUNDAY", + "THURSDAY", + "TUESDAY", + "WEDNESDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "runsOnDayOfMonth": { + "type": "string", + "description": "Enum to define for \"MONTHLY\" scheduled reports whether reports should be repeated on the same day of the month as \"startDate\" or the same day of the week of the month.\nExample: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), \"DAY_OF_MONTH\" would run subsequent reports on the 2nd of every Month, and \"WEEK_OF_MONTH\" would run subsequent reports on the first Monday of the month.", + "enum": [ + "DAY_OF_MONTH", + "WEEK_OF_MONTH" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "startDate": { + "type": "string", + "description": "Start date of date range for which scheduled reports should be run.", + "format": "date", + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "subAccountId": { + "type": "string", + "description": "The subaccount ID to which this report belongs if applicable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The type of the report.", + "enum": [ + "CROSS_DIMENSION_REACH", + "FLOODLIGHT", + "PATH_TO_CONVERSION", + "REACH", + "STANDARD" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "dfareporting.reports.insert", + "dfareporting.reports.update" + ] + } + } + } + }, + "ReportCompatibleFields": { + "id": "ReportCompatibleFields", + "type": "object", + "description": "Represents fields that are compatible to be selected for a report of type \"STANDARD\".", + "properties": { + "dimensionFilters": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensionFilters\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "dimensions": { + "type": "array", + "description": "Dimensions which are compatible to be selected in the \"dimensions\" section of the report.", + "items": { + "$ref": "Dimension" + } + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#reportCompatibleFields.", + "default": "dfareporting#reportCompatibleFields" + }, + "metrics": { + "type": "array", + "description": "Metrics which are compatible to be selected in the \"metricNames\" section of the report.", + "items": { + "$ref": "Metric" + } + }, + "pivotedActivityMetrics": { + "type": "array", + "description": "Metrics which are compatible to be selected as activity metrics to pivot on in the \"activities\" section of the report.", + "items": { + "$ref": "Metric" + } + } + } + }, + "ReportList": { + "id": "ReportList", + "type": "object", + "description": "Represents the list of reports.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The reports returned in this response.", + "items": { + "$ref": "Report" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#reportList.", + "default": "dfareporting#reportList" + }, + "nextPageToken": { + "type": "string", + "description": "Continuation token used to page through reports. To retrieve the next page of results, set the next request's \"pageToken\" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted." + } + } + }, + "ReportsConfiguration": { + "id": "ReportsConfiguration", + "type": "object", + "description": "Reporting Configuration", + "properties": { + "exposureToConversionEnabled": { + "type": "boolean", + "description": "Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting." + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Default lookback windows for new advertisers in this account." + }, + "reportGenerationTimeZoneId": { + "type": "string", + "description": "Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.\nAcceptable values are:\n\n- \"1\" for \"America/New_York\" \n- \"2\" for \"Europe/London\" \n- \"3\" for \"Europe/Paris\" \n- \"4\" for \"Africa/Johannesburg\" \n- \"5\" for \"Asia/Jerusalem\" \n- \"6\" for \"Asia/Shanghai\" \n- \"7\" for \"Asia/Hong_Kong\" \n- \"8\" for \"Asia/Tokyo\" \n- \"9\" for \"Australia/Sydney\" \n- \"10\" for \"Asia/Dubai\" \n- \"11\" for \"America/Los_Angeles\" \n- \"12\" for \"Pacific/Auckland\" \n- \"13\" for \"America/Sao_Paulo\"", + "format": "int64" + } + } + }, + "RichMediaExitOverride": { + "id": "RichMediaExitOverride", + "type": "object", + "description": "Rich Media Exit Override.", + "properties": { + "customExitUrl": { + "type": "string", + "description": "Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true." + }, + "exitId": { + "type": "string", + "description": "ID for the override to refer to a specific exit in the creative.", + "format": "int64" + }, + "useCustomExitUrl": { + "type": "boolean", + "description": "Whether to use the custom exit URL." + } + } + }, + "Site": { + "id": "Site", + "type": "object", + "description": "Contains properties of a site.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this site. This is a read-only field that can be left blank.", + "format": "int64" + }, + "approved": { + "type": "boolean", + "description": "Whether this site is approved." + }, + "directorySiteId": { + "type": "string", + "description": "Directory site associated with this site. This is a required field that is read-only after insertion.", + "format": "int64" + }, + "directorySiteIdDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of the directory site. This is a read-only, auto-generated field." + }, + "id": { + "type": "string", + "description": "ID of this site. This is a read-only, auto-generated field.", + "format": "int64" + }, + "idDimensionValue": { + "$ref": "DimensionValue", + "description": "Dimension value for the ID of this site. This is a read-only, auto-generated field." + }, + "keyName": { + "type": "string", + "description": "Key name of this site. This is a read-only, auto-generated field." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#site\".", + "default": "dfareporting#site" + }, + "name": { + "type": "string", + "description": "Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account." + }, + "siteContacts": { + "type": "array", + "description": "Site contacts.", + "items": { + "$ref": "SiteContact" + } + }, + "siteSettings": { + "$ref": "SiteSettings", + "description": "Site-wide settings." + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this site. This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "SiteContact": { + "id": "SiteContact", + "type": "object", + "description": "Site Contact", + "properties": { + "contactType": { + "type": "string", + "description": "Site contact type.", + "enum": [ + "SALES_PERSON", + "TRAFFICKER" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "email": { + "type": "string", + "description": "Email address of this site contact. This is a required field." + }, + "firstName": { + "type": "string", + "description": "First name of this site contact." + }, + "id": { + "type": "string", + "description": "ID of this site contact. This is a read-only, auto-generated field.", + "format": "int64" + }, + "lastName": { + "type": "string", + "description": "Last name of this site contact." + } + } + }, + "SiteSettings": { + "id": "SiteSettings", + "type": "object", + "description": "Site Settings", + "properties": { + "activeViewOptOut": { + "type": "boolean", + "description": "Whether active view creatives are disabled for this site." + }, + "creativeSettings": { + "$ref": "CreativeSettings", + "description": "Site-wide creative settings." + }, + "disableBrandSafeAds": { + "type": "boolean", + "description": "Whether brand safe ads are disabled for this site." + }, + "disableNewCookie": { + "type": "boolean", + "description": "Whether new cookies are disabled for this site." + }, + "lookbackConfiguration": { + "$ref": "LookbackConfiguration", + "description": "Lookback window settings for this site." + }, + "tagSetting": { + "$ref": "TagSetting", + "description": "Configuration settings for dynamic and image floodlight tags." + } + } + }, + "SitesListResponse": { + "id": "SitesListResponse", + "type": "object", + "description": "Site List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sitesListResponse\".", + "default": "dfareporting#sitesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "sites": { + "type": "array", + "description": "Site collection", + "items": { + "$ref": "Site" + } + } + } + }, + "Size": { + "id": "Size", + "type": "object", + "description": "Represents the dimensions of ads, placements, creatives, or creative assets.", + "properties": { + "height": { + "type": "integer", + "description": "Height of this size.", + "format": "int32" + }, + "iab": { + "type": "boolean", + "description": "IAB standard size. This is a read-only, auto-generated field." + }, + "id": { + "type": "string", + "description": "ID of this size. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#size\".", + "default": "dfareporting#size" + }, + "width": { + "type": "integer", + "description": "Width of this size.", + "format": "int32" + } + } + }, + "SizesListResponse": { + "id": "SizesListResponse", + "type": "object", + "description": "Size List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#sizesListResponse\".", + "default": "dfareporting#sizesListResponse" + }, + "sizes": { + "type": "array", + "description": "Size collection", + "items": { + "$ref": "Size" + } + } + } + }, + "SortedDimension": { + "id": "SortedDimension", + "type": "object", + "description": "Represents a sorted dimension.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#sortedDimension.", + "default": "dfareporting#sortedDimension" + }, + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "sortOrder": { + "type": "string", + "description": "An optional sort order for the dimension column.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "Subaccount": { + "id": "Subaccount", + "type": "object", + "description": "Contains properties of a DCM subaccount.", + "properties": { + "accountId": { + "type": "string", + "description": "ID of the account that contains this subaccount. This is a read-only field that can be left blank.", + "format": "int64" + }, + "availablePermissionIds": { + "type": "array", + "description": "IDs of the available user role permissions for this subaccount.", + "items": { + "type": "string", + "format": "int64" + } + }, + "id": { + "type": "string", + "description": "ID of this subaccount. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccount\".", + "default": "dfareporting#subaccount" + }, + "name": { + "type": "string", + "description": "Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account." + } + } + }, + "SubaccountsListResponse": { + "id": "SubaccountsListResponse", + "type": "object", + "description": "Subaccount List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#subaccountsListResponse\".", + "default": "dfareporting#subaccountsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "subaccounts": { + "type": "array", + "description": "Subaccount collection", + "items": { + "$ref": "Subaccount" + } + } + } + }, + "TagData": { + "id": "TagData", + "type": "object", + "description": "Placement Tag Data", + "properties": { + "adId": { + "type": "string", + "description": "Ad associated with this placement tag.", + "format": "int64" + }, + "clickTag": { + "type": "string", + "description": "Tag string to record a click." + }, + "creativeId": { + "type": "string", + "description": "Creative associated with this placement tag.", + "format": "int64" + }, + "format": { + "type": "string", + "description": "TagData tag format of this tag.", + "enum": [ + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "impressionTag": { + "type": "string", + "description": "Tag string for serving an ad." + } + } + }, + "TagSetting": { + "id": "TagSetting", + "type": "object", + "description": "Tag Settings", + "properties": { + "additionalKeyValues": { + "type": "string", + "description": "Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field." + }, + "includeClickThroughUrls": { + "type": "boolean", + "description": "Whether static landing page URLs should be included in the tags. This setting applies only to placements." + }, + "includeClickTracking": { + "type": "boolean", + "description": "Whether click-tracking string should be included in the tags." + }, + "keywordOption": { + "type": "string", + "description": "Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.", + "enum": [ + "GENERATE_SEPARATE_TAG_FOR_EACH_KEYWORD", + "IGNORE", + "PLACEHOLDER_WITH_LIST_OF_KEYWORDS" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "TagSettings": { + "id": "TagSettings", + "type": "object", + "description": "Dynamic and Image Tag Settings.", + "properties": { + "dynamicTagEnabled": { + "type": "boolean", + "description": "Whether dynamic floodlight tags are enabled." + }, + "imageTagEnabled": { + "type": "boolean", + "description": "Whether image tags are enabled." + } + } + }, + "TargetWindow": { + "id": "TargetWindow", + "type": "object", + "description": "Target Window.", + "properties": { + "customHtml": { + "type": "string", + "description": "User-entered value." + }, + "targetWindowOption": { + "type": "string", + "description": "Type of browser window for which the backup image of the flash creative can be displayed.", + "enum": [ + "CURRENT_WINDOW", + "CUSTOM", + "NEW_WINDOW" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "TechnologyTargeting": { + "id": "TechnologyTargeting", + "type": "object", + "description": "Technology Targeting.", + "properties": { + "browsers": { + "type": "array", + "description": "Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "Browser" + } + }, + "connectionTypes": { + "type": "array", + "description": "Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "ConnectionType" + } + }, + "mobileCarriers": { + "type": "array", + "description": "Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.", + "items": { + "$ref": "MobileCarrier" + } + }, + "operatingSystemVersions": { + "type": "array", + "description": "Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.", + "items": { + "$ref": "OperatingSystemVersion" + } + }, + "operatingSystems": { + "type": "array", + "description": "Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.", + "items": { + "$ref": "OperatingSystem" + } + }, + "platformTypes": { + "type": "array", + "description": "Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.", + "items": { + "$ref": "PlatformType" + } + } + } + }, + "ThirdPartyTrackingUrl": { + "id": "ThirdPartyTrackingUrl", + "type": "object", + "description": "Third-party Tracking URL.", + "properties": { + "thirdPartyUrlType": { + "type": "string", + "description": "Third-party URL type for in-stream video creatives.", + "enum": [ + "CLICK_TRACKING", + "IMPRESSION", + "RICH_MEDIA_BACKUP_IMPRESSION", + "RICH_MEDIA_IMPRESSION", + "RICH_MEDIA_RM_IMPRESSION", + "SURVEY", + "VIDEO_COMPLETE", + "VIDEO_CUSTOM", + "VIDEO_FIRST_QUARTILE", + "VIDEO_FULLSCREEN", + "VIDEO_MIDPOINT", + "VIDEO_MUTE", + "VIDEO_PAUSE", + "VIDEO_REWIND", + "VIDEO_START", + "VIDEO_STOP", + "VIDEO_THIRD_QUARTILE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "url": { + "type": "string", + "description": "URL for the specified third-party URL type." + } + } + }, + "UserDefinedVariableConfiguration": { + "id": "UserDefinedVariableConfiguration", + "type": "object", + "description": "User Defined Variable configuration.", + "properties": { + "dataType": { + "type": "string", + "description": "Data type for the variable. This is a required field.", + "enum": [ + "NUMBER", + "STRING" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "reportName": { + "type": "string", + "description": "User-friendly name for the variable which will appear in reports. This is a required field, must be less than 65 characters long, and cannot contain the following characters: \"\"\"." + }, + "variableType": { + "type": "string", + "description": "Variable name in the tag. This is a required field.", + "enum": [ + "U1", + "U10", + "U11", + "U12", + "U13", + "U14", + "U15", + "U16", + "U17", + "U18", + "U19", + "U2", + "U20", + "U3", + "U4", + "U5", + "U6", + "U7", + "U8", + "U9" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "UserProfile": { + "id": "UserProfile", + "type": "object", + "description": "Represents a UserProfile resource.", + "properties": { + "accountId": { + "type": "string", + "description": "The account ID to which this profile belongs.", + "format": "int64" + }, + "accountName": { + "type": "string", + "description": "The account name this profile belongs to." + }, + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "kind": { + "type": "string", + "description": "The kind of resource this is, in this case dfareporting#userProfile.", + "default": "dfareporting#userProfile" + }, + "profileId": { + "type": "string", + "description": "The unique ID of the user profile.", + "format": "int64" + }, + "subAccountId": { + "type": "string", + "description": "The sub account ID this profile belongs to if applicable.", + "format": "int64" + }, + "subAccountName": { + "type": "string", + "description": "The sub account name this profile belongs to if applicable." + }, + "userName": { + "type": "string", + "description": "The user name." + } + } + }, + "UserProfileList": { + "id": "UserProfileList", + "type": "object", + "description": "Represents the list of user profiles.", + "properties": { + "etag": { + "type": "string", + "description": "The eTag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The user profiles returned in this response.", + "items": { + "$ref": "UserProfile" + } + }, + "kind": { + "type": "string", + "description": "The kind of list this is, in this case dfareporting#userProfileList.", + "default": "dfareporting#userProfileList" + } + } + }, + "UserRole": { + "id": "UserRole", + "type": "object", + "description": "Contains properties of auser role, which is used to manage user access.", + "properties": { + "accountId": { + "type": "string", + "description": "Account ID of this user role. This is a read-only field that can be left blank.", + "format": "int64" + }, + "defaultUserRole": { + "type": "boolean", + "description": "Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions." + }, + "id": { + "type": "string", + "description": "ID of this user role. This is a read-only, auto-generated field.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRole\".", + "default": "dfareporting#userRole" + }, + "name": { + "type": "string", + "description": "Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account." + }, + "parentUserRoleId": { + "type": "string", + "description": "ID of the user role that this user role is based on or copied from. This is a required field.", + "format": "int64" + }, + "permissions": { + "type": "array", + "description": "List of permissions associated with this user role.", + "items": { + "$ref": "UserRolePermission" + } + }, + "subaccountId": { + "type": "string", + "description": "Subaccount ID of this user role. This is a read-only field that can be left blank.", + "format": "int64" + } + } + }, + "UserRolePermission": { + "id": "UserRolePermission", + "type": "object", + "description": "Contains properties of a user role permission.", + "properties": { + "availability": { + "type": "string", + "description": "Levels of availability for a user role permission.", + "enum": [ + "ACCOUNT_ALWAYS", + "ACCOUNT_BY_DEFAULT", + "NOT_AVAILABLE_BY_DEFAULT", + "SUBACCOUNT_AND_ACCOUNT_ALWAYS", + "SUBACCOUNT_AND_ACCOUNT_BY_DEFAULT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "id": { + "type": "string", + "description": "ID of this user role permission.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermission\".", + "default": "dfareporting#userRolePermission" + }, + "name": { + "type": "string", + "description": "Name of this user role permission." + }, + "permissionGroupId": { + "type": "string", + "description": "ID of the permission group that this user role permission belongs to.", + "format": "int64" + } + } + }, + "UserRolePermissionGroup": { + "id": "UserRolePermissionGroup", + "type": "object", + "description": "Represents a grouping of related user role permissions.", + "properties": { + "id": { + "type": "string", + "description": "ID of this user role permission.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroup\".", + "default": "dfareporting#userRolePermissionGroup" + }, + "name": { + "type": "string", + "description": "Name of this user role permission group." + } + } + }, + "UserRolePermissionGroupsListResponse": { + "id": "UserRolePermissionGroupsListResponse", + "type": "object", + "description": "User Role Permission Group List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionGroupsListResponse\".", + "default": "dfareporting#userRolePermissionGroupsListResponse" + }, + "userRolePermissionGroups": { + "type": "array", + "description": "User role permission group collection", + "items": { + "$ref": "UserRolePermissionGroup" + } + } + } + }, + "UserRolePermissionsListResponse": { + "id": "UserRolePermissionsListResponse", + "type": "object", + "description": "User Role Permission List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolePermissionsListResponse\".", + "default": "dfareporting#userRolePermissionsListResponse" + }, + "userRolePermissions": { + "type": "array", + "description": "User role permission collection", + "items": { + "$ref": "UserRolePermission" + } + } + } + }, + "UserRolesListResponse": { + "id": "UserRolesListResponse", + "type": "object", + "description": "User Role List Response", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dfareporting#userRolesListResponse\".", + "default": "dfareporting#userRolesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to be used for the next list operation." + }, + "userRoles": { + "type": "array", + "description": "User role collection", + "items": { + "$ref": "UserRole" + } + } + } + } + }, + "resources": { + "accountActiveAdSummaries": { + "methods": { + "get": { + "id": "dfareporting.accountActiveAdSummaries.get", + "path": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", + "httpMethod": "GET", + "description": "Gets the account's active ad summary by account ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "summaryAccountId": { + "type": "string", + "description": "Account ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "summaryAccountId" + ], + "response": { + "$ref": "AccountActiveAdSummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountPermissionGroups": { + "methods": { + "get": { + "id": "dfareporting.accountPermissionGroups.get", + "path": "userprofiles/{profileId}/accountPermissionGroups/{id}", + "httpMethod": "GET", + "description": "Gets one account permission group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Account permission group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "AccountPermissionGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.accountPermissionGroups.list", + "path": "userprofiles/{profileId}/accountPermissionGroups", + "httpMethod": "GET", + "description": "Retrieves the list of account permission groups.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AccountPermissionGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountPermissions": { + "methods": { + "get": { + "id": "dfareporting.accountPermissions.get", + "path": "userprofiles/{profileId}/accountPermissions/{id}", + "httpMethod": "GET", + "description": "Gets one account permission by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Account permission ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "AccountPermission" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.accountPermissions.list", + "path": "userprofiles/{profileId}/accountPermissions", + "httpMethod": "GET", + "description": "Retrieves the list of account permissions.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AccountPermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accountUserProfiles": { + "methods": { + "get": { + "id": "dfareporting.accountUserProfiles.get", + "path": "userprofiles/{profileId}/accountUserProfiles/{id}", + "httpMethod": "GET", + "description": "Gets one account user profile by ID.", + "parameters": { + "id": { + "type": "string", + "description": "User profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.accountUserProfiles.list", + "path": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "GET", + "description": "Retrieves a list of account user profiles, possibly filtered.", + "parameters": { + "active": { + "type": "boolean", + "description": "Select only active user profiles.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only user profiles with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, \"user profile*2015\" will return objects with names like \"user profile June 2015\", \"user profile April 2015\" or simply \"user profile 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"user profile\" will match objects with name \"my user profile\", \"user profile 2015\" or simply \"user profile\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "subaccountId": { + "type": "string", + "description": "Select only user profiles with the specified subaccount ID.", + "format": "int64", + "location": "query" + }, + "userRoleId": { + "type": "string", + "description": "Select only user profiles with the specified user role ID.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AccountUserProfilesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.accountUserProfiles.patch", + "path": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "PATCH", + "description": "Updates an existing account user profile. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "User profile ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "AccountUserProfile" + }, + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.accountUserProfiles.update", + "path": "userprofiles/{profileId}/accountUserProfiles", + "httpMethod": "PUT", + "description": "Updates an existing account user profile.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "AccountUserProfile" + }, + "response": { + "$ref": "AccountUserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "accounts": { + "methods": { + "get": { + "id": "dfareporting.accounts.get", + "path": "userprofiles/{profileId}/accounts/{id}", + "httpMethod": "GET", + "description": "Gets one account by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Account ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.accounts.list", + "path": "userprofiles/{profileId}/accounts", + "httpMethod": "GET", + "description": "Retrieves the list of accounts, possibly filtered.", + "parameters": { + "active": { + "type": "boolean", + "description": "Select only active accounts. Don't set this field to select both active and non-active accounts.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only accounts with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"account*2015\" will return objects with names like \"account June 2015\", \"account April 2015\" or simply \"account 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"account\" will match objects with name \"my account\", \"account 2015\" or simply \"account\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AccountsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.accounts.patch", + "path": "userprofiles/{profileId}/accounts", + "httpMethod": "PATCH", + "description": "Updates an existing account. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Account ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.accounts.update", + "path": "userprofiles/{profileId}/accounts", + "httpMethod": "PUT", + "description": "Updates an existing account.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "ads": { + "methods": { + "get": { + "id": "dfareporting.ads.get", + "path": "userprofiles/{profileId}/ads/{id}", + "httpMethod": "GET", + "description": "Gets one ad by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Ad ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.ads.insert", + "path": "userprofiles/{profileId}/ads", + "httpMethod": "POST", + "description": "Inserts a new ad.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.ads.list", + "path": "userprofiles/{profileId}/ads", + "httpMethod": "GET", + "description": "Retrieves a list of ads, possibly filtered.", + "parameters": { + "active": { + "type": "boolean", + "description": "Select only active ads.", + "location": "query" + }, + "advertiserId": { + "type": "string", + "description": "Select only ads with this advertiser ID.", + "format": "int64", + "location": "query" + }, + "archived": { + "type": "boolean", + "description": "Select only archived ads.", + "location": "query" + }, + "audienceSegmentIds": { + "type": "string", + "description": "Select only ads with these audience segment IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "campaignIds": { + "type": "string", + "description": "Select only ads with these campaign IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "compatibility": { + "type": "string", + "description": "Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.", + "enum": [ + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "WEB", + "WEB_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "creativeIds": { + "type": "string", + "description": "Select only ads with these creative IDs assigned.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "creativeOptimizationConfigurationIds": { + "type": "string", + "description": "Select only ads with these creative optimization configuration IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "creativeType": { + "type": "string", + "description": "Select only ads with the specified creativeType.", + "enum": [ + "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", + "CUSTOM_INPAGE", + "CUSTOM_INTERSTITIAL", + "ENHANCED_BANNER", + "ENHANCED_IMAGE", + "FLASH_INPAGE", + "HTML5_BANNER", + "IMAGE", + "INSTREAM_VIDEO", + "INTERNAL_REDIRECT", + "INTERSTITIAL_INTERNAL_REDIRECT", + "REDIRECT", + "RICH_MEDIA_EXPANDING", + "RICH_MEDIA_IM_EXPAND", + "RICH_MEDIA_INPAGE", + "RICH_MEDIA_INPAGE_FLOATING", + "RICH_MEDIA_INTERSTITIAL_FLOAT", + "RICH_MEDIA_MOBILE_IN_APP", + "RICH_MEDIA_MULTI_FLOATING", + "RICH_MEDIA_PEEL_DOWN", + "TRACKING_TEXT", + "VPAID_LINEAR", + "VPAID_NON_LINEAR" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "dynamicClickTracker": { + "type": "boolean", + "description": "Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only ads with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "landingPageIds": { + "type": "string", + "description": "Select only ads with these landing page IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "overriddenEventTagId": { + "type": "string", + "description": "Select only ads with this event tag override ID.", + "format": "int64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "placementIds": { + "type": "string", + "description": "Select only ads with these placement IDs assigned.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "remarketingListIds": { + "type": "string", + "description": "Select only ads whose list targeting expression use these remarketing list IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"ad*2015\" will return objects with names like \"ad June 2015\", \"ad April 2015\" or simply \"ad 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"ad\" will match objects with name \"my ad\", \"ad 2015\" or simply \"ad\".", + "location": "query" + }, + "sizeIds": { + "type": "string", + "description": "Select only ads with these size IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sslCompliant": { + "type": "boolean", + "description": "Select only ads that are SSL-compliant.", + "location": "query" + }, + "sslRequired": { + "type": "boolean", + "description": "Select only ads that require SSL.", + "location": "query" + }, + "type": { + "type": "string", + "description": "Select only ads with these types.", + "enum": [ + "AD_SERVING_CLICK_TRACKER", + "AD_SERVING_DEFAULT_AD", + "AD_SERVING_STANDARD_AD", + "AD_SERVING_TRACKING" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AdsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.ads.patch", + "path": "userprofiles/{profileId}/ads", + "httpMethod": "PATCH", + "description": "Updates an existing ad. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Ad ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.ads.update", + "path": "userprofiles/{profileId}/ads", + "httpMethod": "PUT", + "description": "Updates an existing ad.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Ad" + }, + "response": { + "$ref": "Ad" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "advertiserGroups": { + "methods": { + "delete": { + "id": "dfareporting.advertiserGroups.delete", + "path": "userprofiles/{profileId}/advertiserGroups/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing advertiser group.", + "parameters": { + "id": { + "type": "string", + "description": "Advertiser group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.advertiserGroups.get", + "path": "userprofiles/{profileId}/advertiserGroups/{id}", + "httpMethod": "GET", + "description": "Gets one advertiser group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Advertiser group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.advertiserGroups.insert", + "path": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "POST", + "description": "Inserts a new advertiser group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.advertiserGroups.list", + "path": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "GET", + "description": "Retrieves a list of advertiser groups, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Select only advertiser groups with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser group June 2015\", \"advertiser group April 2015\" or simply \"advertiser group 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertisergroup\" will match objects with name \"my advertisergroup\", \"advertisergroup 2015\" or simply \"advertisergroup\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AdvertiserGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.advertiserGroups.patch", + "path": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "PATCH", + "description": "Updates an existing advertiser group. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Advertiser group ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.advertiserGroups.update", + "path": "userprofiles/{profileId}/advertiserGroups", + "httpMethod": "PUT", + "description": "Updates an existing advertiser group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "AdvertiserGroup" + }, + "response": { + "$ref": "AdvertiserGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "advertisers": { + "methods": { + "get": { + "id": "dfareporting.advertisers.get", + "path": "userprofiles/{profileId}/advertisers/{id}", + "httpMethod": "GET", + "description": "Gets one advertiser by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Advertiser ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.advertisers.insert", + "path": "userprofiles/{profileId}/advertisers", + "httpMethod": "POST", + "description": "Inserts a new advertiser.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.advertisers.list", + "path": "userprofiles/{profileId}/advertisers", + "httpMethod": "GET", + "description": "Retrieves a list of advertisers, possibly filtered.", + "parameters": { + "advertiserGroupIds": { + "type": "string", + "description": "Select only advertisers with these advertiser group IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "floodlightConfigurationIds": { + "type": "string", + "description": "Select only advertisers with these floodlight configuration IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only advertisers with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "includeAdvertisersWithoutGroupsOnly": { + "type": "boolean", + "description": "Select only advertisers which do not belong to any advertiser group.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "onlyParent": { + "type": "boolean", + "description": "Select only advertisers which use another advertiser's floodlight configuration.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"advertiser*2015\" will return objects with names like \"advertiser June 2015\", \"advertiser April 2015\" or simply \"advertiser 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"advertiser\" will match objects with name \"my advertiser\", \"advertiser 2015\" or simply \"advertiser\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "status": { + "type": "string", + "description": "Select only advertisers with the specified status.", + "enum": [ + "APPROVED", + "ON_HOLD" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "subaccountId": { + "type": "string", + "description": "Select only advertisers with these subaccount IDs.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "AdvertisersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.advertisers.patch", + "path": "userprofiles/{profileId}/advertisers", + "httpMethod": "PATCH", + "description": "Updates an existing advertiser. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Advertiser ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.advertisers.update", + "path": "userprofiles/{profileId}/advertisers", + "httpMethod": "PUT", + "description": "Updates an existing advertiser.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Advertiser" + }, + "response": { + "$ref": "Advertiser" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "browsers": { + "methods": { + "list": { + "id": "dfareporting.browsers.list", + "path": "userprofiles/{profileId}/browsers", + "httpMethod": "GET", + "description": "Retrieves a list of browsers.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "BrowsersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "campaignCreativeAssociations": { + "methods": { + "insert": { + "id": "dfareporting.campaignCreativeAssociations.insert", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "httpMethod": "POST", + "description": "Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Campaign ID in this association.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId" + ], + "request": { + "$ref": "CampaignCreativeAssociation" + }, + "response": { + "$ref": "CampaignCreativeAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.campaignCreativeAssociations.list", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "httpMethod": "GET", + "description": "Retrieves the list of creative IDs associated with the specified campaign.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Campaign ID in this association.", + "required": true, + "format": "int64", + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "campaignId" + ], + "response": { + "$ref": "CampaignCreativeAssociationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "campaigns": { + "methods": { + "get": { + "id": "dfareporting.campaigns.get", + "path": "userprofiles/{profileId}/campaigns/{id}", + "httpMethod": "GET", + "description": "Gets one campaign by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.campaigns.insert", + "path": "userprofiles/{profileId}/campaigns", + "httpMethod": "POST", + "description": "Inserts a new campaign.", + "parameters": { + "defaultLandingPageName": { + "type": "string", + "description": "Default landing page name for this new campaign. Must be less than 256 characters long.", + "required": true, + "location": "query" + }, + "defaultLandingPageUrl": { + "type": "string", + "description": "Default landing page URL for this new campaign.", + "required": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "defaultLandingPageName", + "defaultLandingPageUrl" + ], + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.campaigns.list", + "path": "userprofiles/{profileId}/campaigns", + "httpMethod": "GET", + "description": "Retrieves a list of campaigns, possibly filtered.", + "parameters": { + "advertiserGroupIds": { + "type": "string", + "description": "Select only campaigns whose advertisers belong to these advertiser groups.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "advertiserIds": { + "type": "string", + "description": "Select only campaigns that belong to these advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "archived": { + "type": "boolean", + "description": "Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.", + "location": "query" + }, + "atLeastOneOptimizationActivity": { + "type": "boolean", + "description": "Select only campaigns that have at least one optimization activity.", + "location": "query" + }, + "excludedIds": { + "type": "string", + "description": "Exclude campaigns with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only campaigns with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "overriddenEventTagId": { + "type": "string", + "description": "Select only campaigns that have overridden this event tag ID.", + "format": "int64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, \"campaign*2015\" will return campaigns with names like \"campaign June 2015\", \"campaign April 2015\" or simply \"campaign 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"campaign\" will match campaigns with name \"my campaign\", \"campaign 2015\" or simply \"campaign\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "subaccountId": { + "type": "string", + "description": "Select only campaigns that belong to this subaccount.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CampaignsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.campaigns.patch", + "path": "userprofiles/{profileId}/campaigns", + "httpMethod": "PATCH", + "description": "Updates an existing campaign. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Campaign ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.campaigns.update", + "path": "userprofiles/{profileId}/campaigns", + "httpMethod": "PUT", + "description": "Updates an existing campaign.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Campaign" + }, + "response": { + "$ref": "Campaign" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "changeLogs": { + "methods": { + "get": { + "id": "dfareporting.changeLogs.get", + "path": "userprofiles/{profileId}/changeLogs/{id}", + "httpMethod": "GET", + "description": "Gets one change log by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Change log ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "ChangeLog" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.changeLogs.list", + "path": "userprofiles/{profileId}/changeLogs", + "httpMethod": "GET", + "description": "Retrieves a list of change logs.", + "parameters": { + "action": { + "type": "string", + "description": "Select only change logs with the specified action.", + "enum": [ + "ACTION_ADD", + "ACTION_ASSIGN", + "ACTION_ASSOCIATE", + "ACTION_CREATE", + "ACTION_DELETE", + "ACTION_DISABLE", + "ACTION_EMAIL_TAGS", + "ACTION_ENABLE", + "ACTION_LINK", + "ACTION_MARK_AS_DEFAULT", + "ACTION_PUSH", + "ACTION_REMOVE", + "ACTION_SEND", + "ACTION_UNASSIGN", + "ACTION_UNLINK", + "ACTION_UPDATE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only change logs with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxChangeTime": { + "type": "string", + "description": "Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "minChangeTime": { + "type": "string", + "description": "Select only change logs whose change time is before the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is \"2015-07-18T22:54:00-04:00\". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.", + "location": "query" + }, + "objectIds": { + "type": "string", + "description": "Select only change logs with these object IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "objectType": { + "type": "string", + "description": "Select only change logs with the specified object type.", + "enum": [ + "OBJECT_ACCOUNT", + "OBJECT_ACCOUNT_BILLING_FEATURE", + "OBJECT_AD", + "OBJECT_ADVERTISER", + "OBJECT_ADVERTISER_GROUP", + "OBJECT_BILLING_ACCOUNT_GROUP", + "OBJECT_BILLING_FEATURE", + "OBJECT_BILLING_MINIMUM_FEE", + "OBJECT_BILLING_PROFILE", + "OBJECT_CAMPAIGN", + "OBJECT_CONTENT_CATEGORY", + "OBJECT_CREATIVE", + "OBJECT_CREATIVE_ASSET", + "OBJECT_CREATIVE_BUNDLE", + "OBJECT_CREATIVE_FIELD", + "OBJECT_CREATIVE_GROUP", + "OBJECT_DFA_SITE", + "OBJECT_EVENT_TAG", + "OBJECT_FLOODLIGHT_ACTIVITY_GROUP", + "OBJECT_FLOODLIGHT_ACTVITY", + "OBJECT_FLOODLIGHT_CONFIGURATION", + "OBJECT_INSTREAM_CREATIVE", + "OBJECT_LANDING_PAGE", + "OBJECT_MEDIA_ORDER", + "OBJECT_PLACEMENT", + "OBJECT_PLACEMENT_STRATEGY", + "OBJECT_PROVIDED_LIST_CLIENT", + "OBJECT_RATE_CARD", + "OBJECT_REMARKETING_LIST", + "OBJECT_RICHMEDIA_CREATIVE", + "OBJECT_SD_SITE", + "OBJECT_SIZE", + "OBJECT_SUBACCOUNT", + "OBJECT_USER_PROFILE", + "OBJECT_USER_PROFILE_FILTER", + "OBJECT_USER_ROLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Select only change logs whose object ID, user name, old or new values match the search string.", + "location": "query" + }, + "userProfileIds": { + "type": "string", + "description": "Select only change logs with these user profile IDs.", + "format": "int64", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ChangeLogsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "cities": { + "methods": { + "list": { + "id": "dfareporting.cities.list", + "path": "userprofiles/{profileId}/cities", + "httpMethod": "GET", + "description": "Retrieves a list of cities, possibly filtered.", + "parameters": { + "countryDartIds": { + "type": "string", + "description": "Select only cities from these countries.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "dartIds": { + "type": "string", + "description": "Select only cities with these DART IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "namePrefix": { + "type": "string", + "description": "Select only cities with names starting with this prefix.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "regionDartIds": { + "type": "string", + "description": "Select only cities from these regions.", + "format": "int64", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CitiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "connectionTypes": { + "methods": { + "list": { + "id": "dfareporting.connectionTypes.list", + "path": "userprofiles/{profileId}/connectionTypes", + "httpMethod": "GET", + "description": "Retrieves a list of connection types.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ConnectionTypesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "contentCategories": { + "methods": { + "delete": { + "id": "dfareporting.contentCategories.delete", + "path": "userprofiles/{profileId}/contentCategories/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing content category.", + "parameters": { + "id": { + "type": "string", + "description": "Content category ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.contentCategories.get", + "path": "userprofiles/{profileId}/contentCategories/{id}", + "httpMethod": "GET", + "description": "Gets one content category by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Content category ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.contentCategories.insert", + "path": "userprofiles/{profileId}/contentCategories", + "httpMethod": "POST", + "description": "Inserts a new content category.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.contentCategories.list", + "path": "userprofiles/{profileId}/contentCategories", + "httpMethod": "GET", + "description": "Retrieves a list of content categories, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Select only content categories with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"contentcategory*2015\" will return objects with names like \"contentcategory June 2015\", \"contentcategory April 2015\" or simply \"contentcategory 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"contentcategory\" will match objects with name \"my contentcategory\", \"contentcategory 2015\" or simply \"contentcategory\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ContentCategoriesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.contentCategories.patch", + "path": "userprofiles/{profileId}/contentCategories", + "httpMethod": "PATCH", + "description": "Updates an existing content category. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Content category ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.contentCategories.update", + "path": "userprofiles/{profileId}/contentCategories", + "httpMethod": "PUT", + "description": "Updates an existing content category.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "ContentCategory" + }, + "response": { + "$ref": "ContentCategory" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "countries": { + "methods": { + "get": { + "id": "dfareporting.countries.get", + "path": "userprofiles/{profileId}/countries/{dartId}", + "httpMethod": "GET", + "description": "Gets one country by ID.", + "parameters": { + "dartId": { + "type": "string", + "description": "Country DART ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "dartId" + ], + "response": { + "$ref": "Country" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.countries.list", + "path": "userprofiles/{profileId}/countries", + "httpMethod": "GET", + "description": "Retrieves a list of countries.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CountriesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeAssets": { + "methods": { + "insert": { + "id": "dfareporting.creativeAssets.insert", + "path": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "httpMethod": "POST", + "description": "Inserts a new creative asset.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Advertiser ID of this creative. This is a required field.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "advertiserId" + ], + "request": { + "$ref": "CreativeAssetMetadata" + }, + "response": { + "$ref": "CreativeAssetMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "100MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/dfareporting/v2.0/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/dfareporting/v2.0/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets" + } + } + } + } + } + }, + "creativeFieldValues": { + "methods": { + "delete": { + "id": "dfareporting.creativeFieldValues.delete", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing creative field value.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Creative Field Value ID", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.creativeFieldValues.get", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "httpMethod": "GET", + "description": "Gets one creative field value by ID.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Creative Field Value ID", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.creativeFieldValues.insert", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "POST", + "description": "Inserts a new creative field value.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.creativeFieldValues.list", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "GET", + "description": "Retrieves a list of creative field values, possibly filtered.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "ids": { + "type": "string", + "description": "Select only creative field values with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "VALUE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "response": { + "$ref": "CreativeFieldValuesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.creativeFieldValues.patch", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "PATCH", + "description": "Updates an existing creative field value. This method supports patch semantics.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Creative Field Value ID", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId", + "id" + ], + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.creativeFieldValues.update", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "httpMethod": "PUT", + "description": "Updates an existing creative field value.", + "parameters": { + "creativeFieldId": { + "type": "string", + "description": "Creative field ID for this creative field value.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "creativeFieldId" + ], + "request": { + "$ref": "CreativeFieldValue" + }, + "response": { + "$ref": "CreativeFieldValue" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeFields": { + "methods": { + "delete": { + "id": "dfareporting.creativeFields.delete", + "path": "userprofiles/{profileId}/creativeFields/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing creative field.", + "parameters": { + "id": { + "type": "string", + "description": "Creative Field ID", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.creativeFields.get", + "path": "userprofiles/{profileId}/creativeFields/{id}", + "httpMethod": "GET", + "description": "Gets one creative field by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Creative Field ID", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.creativeFields.insert", + "path": "userprofiles/{profileId}/creativeFields", + "httpMethod": "POST", + "description": "Inserts a new creative field.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.creativeFields.list", + "path": "userprofiles/{profileId}/creativeFields", + "httpMethod": "GET", + "description": "Retrieves a list of creative fields, possibly filtered.", + "parameters": { + "advertiserIds": { + "type": "string", + "description": "Select only creative fields that belong to these advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only creative fields with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, \"creativefield*2015\" will return creative fields with names like \"creativefield June 2015\", \"creativefield April 2015\" or simply \"creativefield 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativefield\" will match creative fields with the name \"my creativefield\", \"creativefield 2015\" or simply \"creativefield\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CreativeFieldsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.creativeFields.patch", + "path": "userprofiles/{profileId}/creativeFields", + "httpMethod": "PATCH", + "description": "Updates an existing creative field. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Creative Field ID", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.creativeFields.update", + "path": "userprofiles/{profileId}/creativeFields", + "httpMethod": "PUT", + "description": "Updates an existing creative field.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "CreativeField" + }, + "response": { + "$ref": "CreativeField" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creativeGroups": { + "methods": { + "get": { + "id": "dfareporting.creativeGroups.get", + "path": "userprofiles/{profileId}/creativeGroups/{id}", + "httpMethod": "GET", + "description": "Gets one creative group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Creative group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.creativeGroups.insert", + "path": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "POST", + "description": "Inserts a new creative group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.creativeGroups.list", + "path": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "GET", + "description": "Retrieves a list of creative groups, possibly filtered.", + "parameters": { + "advertiserIds": { + "type": "string", + "description": "Select only creative groups that belong to these advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "groupNumber": { + "type": "integer", + "description": "Select only creative groups that belong to this subgroup.", + "format": "int32", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only creative groups with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, \"creativegroup*2015\" will return creative groups with names like \"creativegroup June 2015\", \"creativegroup April 2015\" or simply \"creativegroup 2015\". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of \"creativegroup\" will match creative groups with the name \"my creativegroup\", \"creativegroup 2015\" or simply \"creativegroup\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CreativeGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.creativeGroups.patch", + "path": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "PATCH", + "description": "Updates an existing creative group. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Creative group ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.creativeGroups.update", + "path": "userprofiles/{profileId}/creativeGroups", + "httpMethod": "PUT", + "description": "Updates an existing creative group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "CreativeGroup" + }, + "response": { + "$ref": "CreativeGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "creatives": { + "methods": { + "get": { + "id": "dfareporting.creatives.get", + "path": "userprofiles/{profileId}/creatives/{id}", + "httpMethod": "GET", + "description": "Gets one creative by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Creative ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.creatives.insert", + "path": "userprofiles/{profileId}/creatives", + "httpMethod": "POST", + "description": "Inserts a new creative.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.creatives.list", + "path": "userprofiles/{profileId}/creatives", + "httpMethod": "GET", + "description": "Retrieves a list of creatives, possibly filtered.", + "parameters": { + "active": { + "type": "boolean", + "description": "Select only active creatives. Leave blank to select active and inactive creatives.", + "location": "query" + }, + "advertiserId": { + "type": "string", + "description": "Select only creatives with this advertiser ID.", + "format": "int64", + "location": "query" + }, + "archived": { + "type": "boolean", + "description": "Select only archived creatives. Leave blank to select archived and unarchived creatives.", + "location": "query" + }, + "campaignId": { + "type": "string", + "description": "Select only creatives with this campaign ID.", + "format": "int64", + "location": "query" + }, + "companionCreativeIds": { + "type": "string", + "description": "Select only in-stream video creatives with these companion IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "creativeFieldIds": { + "type": "string", + "description": "Select only creatives with these creative field IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only creatives with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "renderingIds": { + "type": "string", + "description": "Select only creatives with these rendering IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"creative*2015\" will return objects with names like \"creative June 2015\", \"creative April 2015\" or simply \"creative 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"creative\" will match objects with name \"my creative\", \"creative 2015\" or simply \"creative\".", + "location": "query" + }, + "sizeIds": { + "type": "string", + "description": "Select only creatives with these size IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "studioCreativeId": { + "type": "string", + "description": "Select only creatives corresponding to this Studio creative ID.", + "format": "int64", + "location": "query" + }, + "types": { + "type": "string", + "description": "Select only creatives with these creative types.", + "enum": [ + "BRAND_SAFE_DEFAULT_INSTREAM_VIDEO", + "CUSTOM_INPAGE", + "CUSTOM_INTERSTITIAL", + "ENHANCED_BANNER", + "ENHANCED_IMAGE", + "FLASH_INPAGE", + "HTML5_BANNER", + "IMAGE", + "INSTREAM_VIDEO", + "INTERNAL_REDIRECT", + "INTERSTITIAL_INTERNAL_REDIRECT", + "REDIRECT", + "RICH_MEDIA_EXPANDING", + "RICH_MEDIA_IM_EXPAND", + "RICH_MEDIA_INPAGE", + "RICH_MEDIA_INPAGE_FLOATING", + "RICH_MEDIA_INTERSTITIAL_FLOAT", + "RICH_MEDIA_MOBILE_IN_APP", + "RICH_MEDIA_MULTI_FLOATING", + "RICH_MEDIA_PEEL_DOWN", + "TRACKING_TEXT", + "VPAID_LINEAR", + "VPAID_NON_LINEAR" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "CreativesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.creatives.patch", + "path": "userprofiles/{profileId}/creatives", + "httpMethod": "PATCH", + "description": "Updates an existing creative. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Creative ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.creatives.update", + "path": "userprofiles/{profileId}/creatives", + "httpMethod": "PUT", + "description": "Updates an existing creative.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Creative" + }, + "response": { + "$ref": "Creative" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "dimensionValues": { + "methods": { + "query": { + "id": "dfareporting.dimensionValues.query", + "path": "userprofiles/{profileId}/dimensionvalues/query", + "httpMethod": "POST", + "description": "Retrieves list of report dimension values for a list of filters.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "DimensionValueRequest" + }, + "response": { + "$ref": "DimensionValueList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "directorySiteContacts": { + "methods": { + "get": { + "id": "dfareporting.directorySiteContacts.get", + "path": "userprofiles/{profileId}/directorySiteContacts/{id}", + "httpMethod": "GET", + "description": "Gets one directory site contact by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Directory site contact ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "DirectorySiteContact" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.directorySiteContacts.list", + "path": "userprofiles/{profileId}/directorySiteContacts", + "httpMethod": "GET", + "description": "Retrieves a list of directory site contacts, possibly filtered.", + "parameters": { + "directorySiteIds": { + "type": "string", + "description": "Select only directory site contacts with these directory site IDs. This is a required field.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only directory site contacts with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, \"directory site contact*2015\" will return objects with names like \"directory site contact June 2015\", \"directory site contact April 2015\" or simply \"directory site contact 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"directory site contact\" will match objects with name \"my directory site contact\", \"directory site contact 2015\" or simply \"directory site contact\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "DirectorySiteContactsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "directorySites": { + "methods": { + "get": { + "id": "dfareporting.directorySites.get", + "path": "userprofiles/{profileId}/directorySites/{id}", + "httpMethod": "GET", + "description": "Gets one directory site by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Directory site ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "DirectorySite" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.directorySites.list", + "path": "userprofiles/{profileId}/directorySites", + "httpMethod": "GET", + "description": "Retrieves a list of directory sites, possibly filtered.", + "parameters": { + "acceptsInStreamVideoPlacements": { + "type": "boolean", + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query" + }, + "acceptsInterstitialPlacements": { + "type": "boolean", + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query" + }, + "acceptsPublisherPaidPlacements": { + "type": "boolean", + "description": "Select only directory sites that accept publisher paid placements. This field can be left blank.", + "location": "query" + }, + "active": { + "type": "boolean", + "description": "Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.", + "location": "query" + }, + "countryId": { + "type": "string", + "description": "Select only directory sites with this country ID.", + "format": "int64", + "location": "query" + }, + "dfp_network_code": { + "type": "string", + "description": "Select only directory sites with this DFP network code.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only directory sites with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "parentId": { + "type": "string", + "description": "Select only directory sites with this parent ID.", + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, \"directory site*2015\" will return objects with names like \"directory site June 2015\", \"directory site April 2015\" or simply \"directory site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"directory site\" will match objects with name \"my directory site\", \"directory site 2015\" or simply \"directory site\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "DirectorySitesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "eventTags": { + "methods": { + "delete": { + "id": "dfareporting.eventTags.delete", + "path": "userprofiles/{profileId}/eventTags/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing event tag.", + "parameters": { + "id": { + "type": "string", + "description": "Event tag ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.eventTags.get", + "path": "userprofiles/{profileId}/eventTags/{id}", + "httpMethod": "GET", + "description": "Gets one event tag by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Event tag ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.eventTags.insert", + "path": "userprofiles/{profileId}/eventTags", + "httpMethod": "POST", + "description": "Inserts a new event tag.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.eventTags.list", + "path": "userprofiles/{profileId}/eventTags", + "httpMethod": "GET", + "description": "Retrieves a list of event tags, possibly filtered.", + "parameters": { + "adId": { + "type": "string", + "description": "Select only event tags that belong to this ad.", + "format": "int64", + "location": "query" + }, + "advertiserId": { + "type": "string", + "description": "Select only event tags that belong to this advertiser.", + "format": "int64", + "location": "query" + }, + "campaignId": { + "type": "string", + "description": "Select only event tags that belong to this campaign.", + "format": "int64", + "location": "query" + }, + "definitionsOnly": { + "type": "boolean", + "description": "Examine only the specified ad or campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign is examined as well. In addition, when set to false, the status field is examined as well along with the enabledByDefault field.", + "location": "query" + }, + "enabled": { + "type": "boolean", + "description": "Select only enabled event tags. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.", + "location": "query" + }, + "eventTagTypes": { + "type": "string", + "description": "Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking.", + "enum": [ + "CLICK_THROUGH_EVENT_TAG", + "IMPRESSION_IMAGE_EVENT_TAG", + "IMPRESSION_JAVASCRIPT_EVENT_TAG" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only event tags with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"eventtag*2015\" will return objects with names like \"eventtag June 2015\", \"eventtag April 2015\" or simply \"eventtag 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"eventtag\" will match objects with name \"my eventtag\", \"eventtag 2015\" or simply \"eventtag\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "EventTagsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.eventTags.patch", + "path": "userprofiles/{profileId}/eventTags", + "httpMethod": "PATCH", + "description": "Updates an existing event tag. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Event tag ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.eventTags.update", + "path": "userprofiles/{profileId}/eventTags", + "httpMethod": "PUT", + "description": "Updates an existing event tag.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "EventTag" + }, + "response": { + "$ref": "EventTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "files": { + "methods": { + "get": { + "id": "dfareporting.files.get", + "path": "reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file by its report ID and file ID.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.files.list", + "path": "userprofiles/{profileId}/files", + "httpMethod": "GET", + "description": "Lists files for a user profile.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE", + "SHARED_WITH_ME" + ], + "enumDescriptions": [ + "All files in account.", + "My files.", + "Files shared with me." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "floodlightActivities": { + "methods": { + "delete": { + "id": "dfareporting.floodlightActivities.delete", + "path": "userprofiles/{profileId}/floodlightActivities/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing floodlight activity.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "generatetag": { + "id": "dfareporting.floodlightActivities.generatetag", + "path": "userprofiles/{profileId}/floodlightActivities/generatetag", + "httpMethod": "POST", + "description": "Generates a tag for a floodlight activity.", + "parameters": { + "floodlightActivityId": { + "type": "string", + "description": "Floodlight activity ID for which we want to generate a tag.", + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FloodlightActivitiesGenerateTagResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.floodlightActivities.get", + "path": "userprofiles/{profileId}/floodlightActivities/{id}", + "httpMethod": "GET", + "description": "Gets one floodlight activity by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.floodlightActivities.insert", + "path": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "POST", + "description": "Inserts a new floodlight activity.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.floodlightActivities.list", + "path": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "GET", + "description": "Retrieves a list of floodlight activities, possibly filtered.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query" + }, + "floodlightActivityGroupIds": { + "type": "string", + "description": "Select only floodlight activities with the specified floodlight activity group IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "floodlightActivityGroupName": { + "type": "string", + "description": "Select only floodlight activities with the specified floodlight activity group name.", + "location": "query" + }, + "floodlightActivityGroupTagString": { + "type": "string", + "description": "Select only floodlight activities with the specified floodlight activity group tag string.", + "location": "query" + }, + "floodlightActivityGroupType": { + "type": "string", + "description": "Select only floodlight activities with the specified floodlight activity group type.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "floodlightConfigurationId": { + "type": "string", + "description": "Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivity*2015\" will return objects with names like \"floodlightactivity June 2015\", \"floodlightactivity April 2015\" or simply \"floodlightactivity 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivity\" will match objects with name \"my floodlightactivity activity\", \"floodlightactivity 2015\" or simply \"floodlightactivity\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "tagString": { + "type": "string", + "description": "Select only floodlight activities with the specified tag string.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FloodlightActivitiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.floodlightActivities.patch", + "path": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "PATCH", + "description": "Updates an existing floodlight activity. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.floodlightActivities.update", + "path": "userprofiles/{profileId}/floodlightActivities", + "httpMethod": "PUT", + "description": "Updates an existing floodlight activity.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "FloodlightActivity" + }, + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "floodlightActivityGroups": { + "methods": { + "delete": { + "id": "dfareporting.floodlightActivityGroups.delete", + "path": "userprofiles/{profileId}/floodlightActivityGroups/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing floodlight activity group.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity Group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.floodlightActivityGroups.get", + "path": "userprofiles/{profileId}/floodlightActivityGroups/{id}", + "httpMethod": "GET", + "description": "Gets one floodlight activity group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity Group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.floodlightActivityGroups.insert", + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "POST", + "description": "Inserts a new floodlight activity group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.floodlightActivityGroups.list", + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "GET", + "description": "Retrieves a list of floodlight activity groups, possibly filtered.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Select only floodlight activity groups with the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query" + }, + "floodlightConfigurationId": { + "type": "string", + "description": "Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only floodlight activity groups with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"floodlightactivitygroup*2015\" will return objects with names like \"floodlightactivitygroup June 2015\", \"floodlightactivitygroup April 2015\" or simply \"floodlightactivitygroup 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"floodlightactivitygroup\" will match objects with name \"my floodlightactivitygroup activity\", \"floodlightactivitygroup 2015\" or simply \"floodlightactivitygroup\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "type": { + "type": "string", + "description": "Select only floodlight activity groups with the specified floodlight activity group type.", + "enum": [ + "COUNTER", + "SALE" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FloodlightActivityGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.floodlightActivityGroups.patch", + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "PATCH", + "description": "Updates an existing floodlight activity group. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight activity Group ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.floodlightActivityGroups.update", + "path": "userprofiles/{profileId}/floodlightActivityGroups", + "httpMethod": "PUT", + "description": "Updates an existing floodlight activity group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "FloodlightActivityGroup" + }, + "response": { + "$ref": "FloodlightActivityGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "floodlightConfigurations": { + "methods": { + "get": { + "id": "dfareporting.floodlightConfigurations.get", + "path": "userprofiles/{profileId}/floodlightConfigurations/{id}", + "httpMethod": "GET", + "description": "Gets one floodlight configuration by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight configuration ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.floodlightConfigurations.list", + "path": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "GET", + "description": "Retrieves a list of floodlight configurations, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "FloodlightConfigurationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.floodlightConfigurations.patch", + "path": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "PATCH", + "description": "Updates an existing floodlight configuration. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Floodlight configuration ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "FloodlightConfiguration" + }, + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.floodlightConfigurations.update", + "path": "userprofiles/{profileId}/floodlightConfigurations", + "httpMethod": "PUT", + "description": "Updates an existing floodlight configuration.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "FloodlightConfiguration" + }, + "response": { + "$ref": "FloodlightConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "landingPages": { + "methods": { + "delete": { + "id": "dfareporting.landingPages.delete", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing campaign landing page.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Landing page ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.landingPages.get", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages/{id}", + "httpMethod": "GET", + "description": "Gets one campaign landing page by ID.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Landing page ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId", + "id" + ], + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.landingPages.insert", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages", + "httpMethod": "POST", + "description": "Inserts a new landing page for the specified campaign.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId" + ], + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.landingPages.list", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages", + "httpMethod": "GET", + "description": "Retrieves the list of landing pages for the specified campaign.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId" + ], + "response": { + "$ref": "LandingPagesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.landingPages.patch", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages", + "httpMethod": "PATCH", + "description": "Updates an existing campaign landing page. This method supports patch semantics.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "id": { + "type": "string", + "description": "Landing page ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId", + "id" + ], + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.landingPages.update", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/landingPages", + "httpMethod": "PUT", + "description": "Updates an existing campaign landing page.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Landing page campaign ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "campaignId" + ], + "request": { + "$ref": "LandingPage" + }, + "response": { + "$ref": "LandingPage" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "metros": { + "methods": { + "list": { + "id": "dfareporting.metros.list", + "path": "userprofiles/{profileId}/metros", + "httpMethod": "GET", + "description": "Retrieves a list of metros.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "MetrosListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "mobileCarriers": { + "methods": { + "list": { + "id": "dfareporting.mobileCarriers.list", + "path": "userprofiles/{profileId}/mobileCarriers", + "httpMethod": "GET", + "description": "Retrieves a list of mobile carriers.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "MobileCarriersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "operatingSystemVersions": { + "methods": { + "list": { + "id": "dfareporting.operatingSystemVersions.list", + "path": "userprofiles/{profileId}/operatingSystemVersions", + "httpMethod": "GET", + "description": "Retrieves a list of operating system versions.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "OperatingSystemVersionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "operatingSystems": { + "methods": { + "list": { + "id": "dfareporting.operatingSystems.list", + "path": "userprofiles/{profileId}/operatingSystems", + "httpMethod": "GET", + "description": "Retrieves a list of operating systems.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "OperatingSystemsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placementGroups": { + "methods": { + "get": { + "id": "dfareporting.placementGroups.get", + "path": "userprofiles/{profileId}/placementGroups/{id}", + "httpMethod": "GET", + "description": "Gets one placement group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Placement group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.placementGroups.insert", + "path": "userprofiles/{profileId}/placementGroups", + "httpMethod": "POST", + "description": "Inserts a new placement group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.placementGroups.list", + "path": "userprofiles/{profileId}/placementGroups", + "httpMethod": "GET", + "description": "Retrieves a list of placement groups, possibly filtered.", + "parameters": { + "advertiserIds": { + "type": "string", + "description": "Select only placement groups that belong to these advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "archived": { + "type": "boolean", + "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", + "location": "query" + }, + "campaignIds": { + "type": "string", + "description": "Select only placement groups that belong to these campaigns.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "contentCategoryIds": { + "type": "string", + "description": "Select only placement groups that are associated with these content categories.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "directorySiteIds": { + "type": "string", + "description": "Select only placement groups that are associated with these directory sites.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only placement groups with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "placementGroupType": { + "type": "string", + "description": "Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.", + "enum": [ + "PLACEMENT_PACKAGE", + "PLACEMENT_ROADBLOCK" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "placementStrategyIds": { + "type": "string", + "description": "Select only placement groups that are associated with these placement strategies.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "pricingTypes": { + "type": "string", + "description": "Select only placement groups with these pricing types.", + "enum": [ + "PRICING_TYPE_CPA", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPM", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placement groups with names like \"placement group June 2015\", \"placement group May 2015\" or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementgroup\" will match placement groups with name \"my placementgroup\", \"placementgroup 2015\" or simply \"placementgroup\".", + "location": "query" + }, + "siteIds": { + "type": "string", + "description": "Select only placement groups that are associated with these sites.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PlacementGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.placementGroups.patch", + "path": "userprofiles/{profileId}/placementGroups", + "httpMethod": "PATCH", + "description": "Updates an existing placement group. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Placement group ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.placementGroups.update", + "path": "userprofiles/{profileId}/placementGroups", + "httpMethod": "PUT", + "description": "Updates an existing placement group.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "PlacementGroup" + }, + "response": { + "$ref": "PlacementGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placementStrategies": { + "methods": { + "delete": { + "id": "dfareporting.placementStrategies.delete", + "path": "userprofiles/{profileId}/placementStrategies/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing placement strategy.", + "parameters": { + "id": { + "type": "string", + "description": "Placement strategy ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.placementStrategies.get", + "path": "userprofiles/{profileId}/placementStrategies/{id}", + "httpMethod": "GET", + "description": "Gets one placement strategy by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Placement strategy ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.placementStrategies.insert", + "path": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "POST", + "description": "Inserts a new placement strategy.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.placementStrategies.list", + "path": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "GET", + "description": "Retrieves a list of placement strategies, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Select only placement strategies with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"placementstrategy*2015\" will return objects with names like \"placementstrategy June 2015\", \"placementstrategy April 2015\" or simply \"placementstrategy 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placementstrategy\" will match objects with name \"my placementstrategy\", \"placementstrategy 2015\" or simply \"placementstrategy\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PlacementStrategiesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.placementStrategies.patch", + "path": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "PATCH", + "description": "Updates an existing placement strategy. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Placement strategy ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.placementStrategies.update", + "path": "userprofiles/{profileId}/placementStrategies", + "httpMethod": "PUT", + "description": "Updates an existing placement strategy.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "PlacementStrategy" + }, + "response": { + "$ref": "PlacementStrategy" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "placements": { + "methods": { + "generatetags": { + "id": "dfareporting.placements.generatetags", + "path": "userprofiles/{profileId}/placements/generatetags", + "httpMethod": "POST", + "description": "Generates tags for a placement.", + "parameters": { + "campaignId": { + "type": "string", + "description": "Generate placements belonging to this campaign. This is a required field.", + "format": "int64", + "location": "query" + }, + "placementIds": { + "type": "string", + "description": "Generate tags for these placements.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "tagFormats": { + "type": "string", + "description": "Tag formats to generate for these placements.", + "enum": [ + "PLACEMENT_TAG_CLICK_COMMANDS", + "PLACEMENT_TAG_IFRAME_ILAYER", + "PLACEMENT_TAG_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH", + "PLACEMENT_TAG_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT", + "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT", + "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT", + "PLACEMENT_TAG_JAVASCRIPT", + "PLACEMENT_TAG_STANDARD", + "PLACEMENT_TAG_TRACKING", + "PLACEMENT_TAG_TRACKING_IFRAME", + "PLACEMENT_TAG_TRACKING_JAVASCRIPT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PlacementsGenerateTagsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.placements.get", + "path": "userprofiles/{profileId}/placements/{id}", + "httpMethod": "GET", + "description": "Gets one placement by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Placement ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.placements.insert", + "path": "userprofiles/{profileId}/placements", + "httpMethod": "POST", + "description": "Inserts a new placement.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.placements.list", + "path": "userprofiles/{profileId}/placements", + "httpMethod": "GET", + "description": "Retrieves a list of placements, possibly filtered.", + "parameters": { + "advertiserIds": { + "type": "string", + "description": "Select only placements that belong to these advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "archived": { + "type": "boolean", + "description": "Select only archived placements. Don't set this field to select both archived and non-archived placements.", + "location": "query" + }, + "campaignIds": { + "type": "string", + "description": "Select only placements that belong to these campaigns.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "compatibilities": { + "type": "string", + "description": "Select only placements that are associated with these compatibilities. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.", + "enum": [ + "APP", + "APP_INTERSTITIAL", + "IN_STREAM_VIDEO", + "WEB", + "WEB_INTERSTITIAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "contentCategoryIds": { + "type": "string", + "description": "Select only placements that are associated with these content categories.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "directorySiteIds": { + "type": "string", + "description": "Select only placements that are associated with these directory sites.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "groupIds": { + "type": "string", + "description": "Select only placements that belong to these placement groups.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only placements with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "paymentSource": { + "type": "string", + "description": "Select only placements with this payment source.", + "enum": [ + "PLACEMENT_AGENCY_PAID", + "PLACEMENT_PUBLISHER_PAID" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "placementStrategyIds": { + "type": "string", + "description": "Select only placements that are associated with these placement strategies.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "pricingTypes": { + "type": "string", + "description": "Select only placements with these pricing types.", + "enum": [ + "PRICING_TYPE_CPA", + "PRICING_TYPE_CPC", + "PRICING_TYPE_CPM", + "PRICING_TYPE_FLAT_RATE_CLICKS", + "PRICING_TYPE_FLAT_RATE_IMPRESSIONS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, \"placement*2015\" will return placements with names like \"placement June 2015\", \"placement May 2015\" or simply \"placements 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"placement\" will match placements with name \"my placement\", \"placement 2015\" or simply \"placement\".", + "location": "query" + }, + "siteIds": { + "type": "string", + "description": "Select only placements that are associated with these sites.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "sizeIds": { + "type": "string", + "description": "Select only placements that are associated with these sizes.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PlacementsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.placements.patch", + "path": "userprofiles/{profileId}/placements", + "httpMethod": "PATCH", + "description": "Updates an existing placement. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Placement ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.placements.update", + "path": "userprofiles/{profileId}/placements", + "httpMethod": "PUT", + "description": "Updates an existing placement.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Placement" + }, + "response": { + "$ref": "Placement" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "platformTypes": { + "methods": { + "list": { + "id": "dfareporting.platformTypes.list", + "path": "userprofiles/{profileId}/platformTypes", + "httpMethod": "GET", + "description": "Retrieves a list of platform types.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PlatformTypesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "postalCodes": { + "methods": { + "list": { + "id": "dfareporting.postalCodes.list", + "path": "userprofiles/{profileId}/postalCodes", + "httpMethod": "GET", + "description": "Retrieves a list of postal codes.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "PostalCodesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "regions": { + "methods": { + "list": { + "id": "dfareporting.regions.list", + "path": "userprofiles/{profileId}/regions", + "httpMethod": "GET", + "description": "Retrieves a list of regions.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "RegionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "reports": { + "methods": { + "delete": { + "id": "dfareporting.reports.delete", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "DELETE", + "description": "Deletes a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "get": { + "id": "dfareporting.reports.get", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "GET", + "description": "Retrieves a report by its ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "insert": { + "id": "dfareporting.reports.insert", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "POST", + "description": "Creates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "list": { + "id": "dfareporting.reports.list", + "path": "userprofiles/{profileId}/reports", + "httpMethod": "GET", + "description": "Retrieves list of reports.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "scope": { + "type": "string", + "description": "The scope that defines which results are returned, default is 'MINE'.", + "default": "MINE", + "enum": [ + "ALL", + "MINE" + ], + "enumDescriptions": [ + "All reports in account.", + "My reports." + ], + "location": "query" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME", + "NAME" + ], + "enumDescriptions": [ + "Sort by report ID.", + "Sort by 'lastModifiedTime' field.", + "Sort by name of reports." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "ReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "patch": { + "id": "dfareporting.reports.patch", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PATCH", + "description": "Updates a report. This method supports patch semantics.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "run": { + "id": "dfareporting.reports.run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", + "httpMethod": "POST", + "description": "Runs a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + }, + "synchronous": { + "type": "boolean", + "description": "If set and true, tries to run the report synchronously.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + }, + "update": { + "id": "dfareporting.reports.update", + "path": "userprofiles/{profileId}/reports/{reportId}", + "httpMethod": "PUT", + "description": "Updates a report.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + }, + "resources": { + "compatibleFields": { + "methods": { + "query": { + "id": "dfareporting.reports.compatibleFields.query", + "path": "userprofiles/{profileId}/reports/compatiblefields/query", + "httpMethod": "POST", + "description": "Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.", + "parameters": { + "profileId": { + "type": "string", + "description": "The DFA user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Report" + }, + "response": { + "$ref": "CompatibleFields" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + }, + "files": { + "methods": { + "get": { + "id": "dfareporting.reports.files.get", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "httpMethod": "GET", + "description": "Retrieves a report file.", + "parameters": { + "fileId": { + "type": "string", + "description": "The ID of the report file.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the report.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "reportId", + "fileId" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "dfareporting.reports.files.list", + "path": "userprofiles/{profileId}/reports/{reportId}/files", + "httpMethod": "GET", + "description": "Lists files for a report.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "minimum": "0", + "maximum": "10", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of the nextToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "The DFA profile ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "The ID of the parent report.", + "required": true, + "format": "int64", + "location": "path" + }, + "sortField": { + "type": "string", + "description": "The field by which to sort the list.", + "default": "LAST_MODIFIED_TIME", + "enum": [ + "ID", + "LAST_MODIFIED_TIME" + ], + "enumDescriptions": [ + "Sort by file ID.", + "Sort by 'lastmodifiedAt' field." + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is 'DESCENDING'.", + "default": "DESCENDING", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Ascending order.", + "Descending order." + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId", + "reportId" + ], + "response": { + "$ref": "FileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting" + ] + } + } + } + } + }, + "sites": { + "methods": { + "get": { + "id": "dfareporting.sites.get", + "path": "userprofiles/{profileId}/sites/{id}", + "httpMethod": "GET", + "description": "Gets one site by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Site ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.sites.insert", + "path": "userprofiles/{profileId}/sites", + "httpMethod": "POST", + "description": "Inserts a new site.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.sites.list", + "path": "userprofiles/{profileId}/sites", + "httpMethod": "GET", + "description": "Retrieves a list of sites, possibly filtered.", + "parameters": { + "acceptsInStreamVideoPlacements": { + "type": "boolean", + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query" + }, + "acceptsInterstitialPlacements": { + "type": "boolean", + "description": "This search filter is no longer supported and will have no effect on the results returned.", + "location": "query" + }, + "acceptsPublisherPaidPlacements": { + "type": "boolean", + "description": "Select only sites that accept publisher paid placements.", + "location": "query" + }, + "adWordsSite": { + "type": "boolean", + "description": "Select only AdWords sites.", + "location": "query" + }, + "approved": { + "type": "boolean", + "description": "Select only approved sites.", + "location": "query" + }, + "campaignIds": { + "type": "string", + "description": "Select only sites with these campaign IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "directorySiteIds": { + "type": "string", + "description": "Select only sites with these directory site IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only sites with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, \"site*2015\" will return objects with names like \"site June 2015\", \"site April 2015\" or simply \"site 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"site\" will match objects with name \"my site\", \"site 2015\" or simply \"site\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "subaccountId": { + "type": "string", + "description": "Select only sites with this subaccount ID.", + "format": "int64", + "location": "query" + }, + "unmappedSite": { + "type": "boolean", + "description": "Select only sites that have not been mapped to a directory site.", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "SitesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.sites.patch", + "path": "userprofiles/{profileId}/sites", + "httpMethod": "PATCH", + "description": "Updates an existing site. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Site ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.sites.update", + "path": "userprofiles/{profileId}/sites", + "httpMethod": "PUT", + "description": "Updates an existing site.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Site" + }, + "response": { + "$ref": "Site" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "sizes": { + "methods": { + "get": { + "id": "dfareporting.sizes.get", + "path": "userprofiles/{profileId}/sizes/{id}", + "httpMethod": "GET", + "description": "Gets one size by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Size ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Size" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.sizes.insert", + "path": "userprofiles/{profileId}/sizes", + "httpMethod": "POST", + "description": "Inserts a new size.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Size" + }, + "response": { + "$ref": "Size" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.sizes.list", + "path": "userprofiles/{profileId}/sizes", + "httpMethod": "GET", + "description": "Retrieves a list of sizes, possibly filtered.", + "parameters": { + "height": { + "type": "integer", + "description": "Select only sizes with this height.", + "format": "int32", + "location": "query" + }, + "iabStandard": { + "type": "boolean", + "description": "Select only IAB standard sizes.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only sizes with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "width": { + "type": "integer", + "description": "Select only sizes with this width.", + "format": "int32", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "SizesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "subaccounts": { + "methods": { + "get": { + "id": "dfareporting.subaccounts.get", + "path": "userprofiles/{profileId}/subaccounts/{id}", + "httpMethod": "GET", + "description": "Gets one subaccount by ID.", + "parameters": { + "id": { + "type": "string", + "description": "Subaccount ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.subaccounts.insert", + "path": "userprofiles/{profileId}/subaccounts", + "httpMethod": "POST", + "description": "Inserts a new subaccount.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.subaccounts.list", + "path": "userprofiles/{profileId}/subaccounts", + "httpMethod": "GET", + "description": "Gets a list of subaccounts, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Select only subaccounts with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"subaccount*2015\" will return objects with names like \"subaccount June 2015\", \"subaccount April 2015\" or simply \"subaccount 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"subaccount\" will match objects with name \"my subaccount\", \"subaccount 2015\" or simply \"subaccount\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "SubaccountsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.subaccounts.patch", + "path": "userprofiles/{profileId}/subaccounts", + "httpMethod": "PATCH", + "description": "Updates an existing subaccount. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "Subaccount ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.subaccounts.update", + "path": "userprofiles/{profileId}/subaccounts", + "httpMethod": "PUT", + "description": "Updates an existing subaccount.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "Subaccount" + }, + "response": { + "$ref": "Subaccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userProfiles": { + "methods": { + "get": { + "id": "dfareporting.userProfiles.get", + "path": "userprofiles/{profileId}", + "httpMethod": "GET", + "description": "Gets one user profile by ID.", + "parameters": { + "profileId": { + "type": "string", + "description": "The user profile ID.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting", + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.userProfiles.list", + "path": "userprofiles", + "httpMethod": "GET", + "description": "Retrieves list of user profiles for a user.", + "response": { + "$ref": "UserProfileList" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfareporting", + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRolePermissionGroups": { + "methods": { + "get": { + "id": "dfareporting.userRolePermissionGroups.get", + "path": "userprofiles/{profileId}/userRolePermissionGroups/{id}", + "httpMethod": "GET", + "description": "Gets one user role permission group by ID.", + "parameters": { + "id": { + "type": "string", + "description": "User role permission group ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "UserRolePermissionGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.userRolePermissionGroups.list", + "path": "userprofiles/{profileId}/userRolePermissionGroups", + "httpMethod": "GET", + "description": "Gets a list of all supported user role permission groups.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserRolePermissionGroupsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRolePermissions": { + "methods": { + "get": { + "id": "dfareporting.userRolePermissions.get", + "path": "userprofiles/{profileId}/userRolePermissions/{id}", + "httpMethod": "GET", + "description": "Gets one user role permission by ID.", + "parameters": { + "id": { + "type": "string", + "description": "User role permission ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "UserRolePermission" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.userRolePermissions.list", + "path": "userprofiles/{profileId}/userRolePermissions", + "httpMethod": "GET", + "description": "Gets a list of user role permissions, possibly filtered.", + "parameters": { + "ids": { + "type": "string", + "description": "Select only user role permissions with these IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserRolePermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + }, + "userRoles": { + "methods": { + "delete": { + "id": "dfareporting.userRoles.delete", + "path": "userprofiles/{profileId}/userRoles/{id}", + "httpMethod": "DELETE", + "description": "Deletes an existing user role.", + "parameters": { + "id": { + "type": "string", + "description": "User role ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "get": { + "id": "dfareporting.userRoles.get", + "path": "userprofiles/{profileId}/userRoles/{id}", + "httpMethod": "GET", + "description": "Gets one user role by ID.", + "parameters": { + "id": { + "type": "string", + "description": "User role ID.", + "required": true, + "format": "int64", + "location": "path" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "insert": { + "id": "dfareporting.userRoles.insert", + "path": "userprofiles/{profileId}/userRoles", + "httpMethod": "POST", + "description": "Inserts a new user role.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "list": { + "id": "dfareporting.userRoles.list", + "path": "userprofiles/{profileId}/userRoles", + "httpMethod": "GET", + "description": "Retrieves a list of user roles, possibly filtered.", + "parameters": { + "accountUserRoleOnly": { + "type": "boolean", + "description": "Select only account level user roles not associated with any specific subaccount.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Select only user roles with the specified IDs.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Value of the nextPageToken from the previous result page.", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + }, + "searchString": { + "type": "string", + "description": "Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, \"userrole*2015\" will return objects with names like \"userrole June 2015\", \"userrole April 2015\" or simply \"userrole 2015\". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of \"userrole\" will match objects with name \"my userrole\", \"userrole 2015\" or simply \"userrole\".", + "location": "query" + }, + "sortField": { + "type": "string", + "description": "Field by which to sort the list.", + "enum": [ + "ID", + "NAME" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Order of sorted results, default is ASCENDING.", + "enum": [ + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "subaccountId": { + "type": "string", + "description": "Select only user roles that belong to this subaccount.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "profileId" + ], + "response": { + "$ref": "UserRolesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "patch": { + "id": "dfareporting.userRoles.patch", + "path": "userprofiles/{profileId}/userRoles", + "httpMethod": "PATCH", + "description": "Updates an existing user role. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "User role ID.", + "required": true, + "format": "int64", + "location": "query" + }, + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId", + "id" + ], + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + }, + "update": { + "id": "dfareporting.userRoles.update", + "path": "userprofiles/{profileId}/userRoles", + "httpMethod": "PUT", + "description": "Updates an existing user role.", + "parameters": { + "profileId": { + "type": "string", + "description": "User profile ID associated with this request.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "profileId" + ], + "request": { + "$ref": "UserRole" + }, + "response": { + "$ref": "UserRole" + }, + "scopes": [ + "https://www.googleapis.com/auth/dfatrafficking" + ] + } + } + } + } +} diff --git a/etc/api/discovery/v1/discovery-api.json b/etc/api/discovery/v1/discovery-api.json new file mode 100644 index 0000000000..200602e90b --- /dev/null +++ b/etc/api/discovery/v1/discovery-api.json @@ -0,0 +1,674 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"kEk3sFj6Ef5_yR1-H3bAO6qw9mI/UNFMI_ENJ3hAFRWSi4GLSerTeFg\"", + "discoveryVersion": "v1", + "id": "discovery:v1", + "name": "discovery", + "version": "v1", + "title": "APIs Discovery Service", + "description": "Lets you discover information about other Google APIs, such as what APIs are available, the resource and method details for each API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/filing_cabinet_search-g16.png", + "x32": "http://www.google.com/images/icons/feature/filing_cabinet_search-g32.png" + }, + "documentationLink": "https://developers.google.com/discovery/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/discovery/v1/", + "basePath": "/discovery/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "discovery/v1/", + "batchPath": "batch", + "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": { + "DirectoryList": { + "id": "DirectoryList", + "type": "object", + "properties": { + "discoveryVersion": { + "type": "string", + "description": "Indicate the version of the Discovery API used to generate this doc.", + "default": "v1" + }, + "items": { + "type": "array", + "description": "The individual directory entries. One entry per api/version pair.", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of this API." + }, + "discoveryLink": { + "type": "string", + "description": "A link to the discovery document." + }, + "discoveryRestUrl": { + "type": "string", + "description": "The URL for the discovery REST document." + }, + "documentationLink": { + "type": "string", + "description": "A link to human readable documentation for the API." + }, + "icons": { + "type": "object", + "description": "Links to 16x16 and 32x32 icons representing the API.", + "properties": { + "x16": { + "type": "string", + "description": "The URL of the 16x16 icon." + }, + "x32": { + "type": "string", + "description": "The URL of the 32x32 icon." + } + } + }, + "id": { + "type": "string", + "description": "The id of this API." + }, + "kind": { + "type": "string", + "description": "The kind for this response.", + "default": "discovery#directoryItem" + }, + "labels": { + "type": "array", + "description": "Labels for the status of this API, such as labs or deprecated.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the API." + }, + "preferred": { + "type": "boolean", + "description": "True if this version is the preferred version to use." + }, + "title": { + "type": "string", + "description": "The title of this API." + }, + "version": { + "type": "string", + "description": "The version of the API." + } + } + } + }, + "kind": { + "type": "string", + "description": "The kind for this response.", + "default": "discovery#directoryList" + } + } + }, + "JsonSchema": { + "id": "JsonSchema", + "type": "object", + "properties": { + "$ref": { + "type": "string", + "description": "A reference to another schema. The value of this property is the \"id\" of another schema." + }, + "additionalProperties": { + "$ref": "JsonSchema", + "description": "If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object." + }, + "annotations": { + "type": "object", + "description": "Additional information about this property.", + "properties": { + "required": { + "type": "array", + "description": "A list of methods for which this property is required on requests.", + "items": { + "type": "string" + } + } + } + }, + "default": { + "type": "string", + "description": "The default value of this property (if one exists)." + }, + "description": { + "type": "string", + "description": "A description of this object." + }, + "enum": { + "type": "array", + "description": "Values this parameter may take (if it is an enum).", + "items": { + "type": "string" + } + }, + "enumDescriptions": { + "type": "array", + "description": "The descriptions for the enums. Each position maps to the corresponding value in the \"enum\" array.", + "items": { + "type": "string" + } + }, + "format": { + "type": "string", + "description": "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" + }, + "id": { + "type": "string", + "description": "Unique identifier for this schema." + }, + "items": { + "$ref": "JsonSchema", + "description": "If this is a schema for an array, this property is the schema for each element in the array." + }, + "location": { + "type": "string", + "description": "Whether this parameter goes in the query or the path for REST requests." + }, + "maximum": { + "type": "string", + "description": "The maximum value of this parameter." + }, + "minimum": { + "type": "string", + "description": "The minimum value of this parameter." + }, + "pattern": { + "type": "string", + "description": "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" + }, + "properties": { + "type": "object", + "description": "If this is a schema for an object, list the schema for each property of this object.", + "additionalProperties": { + "$ref": "JsonSchema", + "description": "A single property of this object. The value is itself a JSON Schema object describing this property." + } + }, + "readOnly": { + "type": "boolean", + "description": "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." + }, + "repeated": { + "type": "boolean", + "description": "Whether this parameter may appear multiple times." + }, + "required": { + "type": "boolean", + "description": "Whether the parameter is required." + }, + "type": { + "type": "string", + "description": "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" + }, + "variant": { + "type": "object", + "description": "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.", + "properties": { + "discriminant": { + "type": "string", + "description": "The name of the type discriminant property." + }, + "map": { + "type": "array", + "description": "The map of discriminant value to schema to use for parsing..", + "items": { + "type": "object", + "properties": { + "$ref": { + "type": "string" + }, + "type_value": { + "type": "string" + } + } + } + } + } + } + } + }, + "RestDescription": { + "id": "RestDescription", + "type": "object", + "properties": { + "auth": { + "type": "object", + "description": "Authentication information.", + "properties": { + "oauth2": { + "type": "object", + "description": "OAuth 2.0 authentication information.", + "properties": { + "scopes": { + "type": "object", + "description": "Available OAuth 2.0 scopes.", + "additionalProperties": { + "type": "object", + "description": "The scope value.", + "properties": { + "description": { + "type": "string", + "description": "Description of scope." + } + } + } + } + } + } + } + }, + "basePath": { + "type": "string", + "description": "[DEPRECATED] The base path for REST requests." + }, + "baseUrl": { + "type": "string", + "description": "[DEPRECATED] The base URL for REST requests." + }, + "batchPath": { + "type": "string", + "description": "The path for REST batch requests.", + "default": "batch" + }, + "canonicalName": { + "type": "string", + "description": "Indicates how the API name should be capitalized and split into various parts. Useful for generating pretty class names." + }, + "description": { + "type": "string", + "description": "The description of this API." + }, + "discoveryVersion": { + "type": "string", + "description": "Indicate the version of the Discovery API used to generate this doc.", + "default": "v1" + }, + "documentationLink": { + "type": "string", + "description": "A link to human readable documentation for the API." + }, + "etag": { + "type": "string", + "description": "The ETag for this response.", + "readOnly": true + }, + "features": { + "type": "array", + "description": "A list of supported features for this API.", + "items": { + "type": "string" + } + }, + "icons": { + "type": "object", + "description": "Links to 16x16 and 32x32 icons representing the API.", + "properties": { + "x16": { + "type": "string", + "description": "The URL of the 16x16 icon." + }, + "x32": { + "type": "string", + "description": "The URL of the 32x32 icon." + } + } + }, + "id": { + "type": "string", + "description": "The ID of this API." + }, + "kind": { + "type": "string", + "description": "The kind for this response.", + "default": "discovery#restDescription" + }, + "labels": { + "type": "array", + "description": "Labels for the status of this API, such as labs or deprecated.", + "items": { + "type": "string" + } + }, + "methods": { + "type": "object", + "description": "API-level methods for this API.", + "additionalProperties": { + "$ref": "RestMethod", + "description": "An individual method description." + } + }, + "name": { + "type": "string", + "description": "The name of this API." + }, + "ownerDomain": { + "type": "string", + "description": "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." + }, + "ownerName": { + "type": "string", + "description": "The name of the owner of this API. See ownerDomain." + }, + "packagePath": { + "type": "string", + "description": "The package of the owner of this API. See ownerDomain." + }, + "parameters": { + "type": "object", + "description": "Common parameters that apply across all apis.", + "additionalProperties": { + "$ref": "JsonSchema", + "description": "Description of a single parameter." + } + }, + "protocol": { + "type": "string", + "description": "The protocol described by this document.", + "default": "rest" + }, + "resources": { + "type": "object", + "description": "The resources in this API.", + "additionalProperties": { + "$ref": "RestResource", + "description": "An individual resource description. Contains methods and sub-resources related to this resource." + } + }, + "revision": { + "type": "string", + "description": "The version of this API." + }, + "rootUrl": { + "type": "string", + "description": "The root URL under which all API services live." + }, + "schemas": { + "type": "object", + "description": "The schemas for this API.", + "additionalProperties": { + "$ref": "JsonSchema", + "description": "An individual schema description." + } + }, + "servicePath": { + "type": "string", + "description": "The base path for all REST requests." + }, + "title": { + "type": "string", + "description": "The title of this API." + }, + "version": { + "type": "string", + "description": "The version of this API." + } + } + }, + "RestMethod": { + "id": "RestMethod", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of this method." + }, + "etagRequired": { + "type": "boolean", + "description": "Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header." + }, + "httpMethod": { + "type": "string", + "description": "HTTP method used by this method." + }, + "id": { + "type": "string", + "description": "A unique ID for this method. This property can be used to match methods between different versions of Discovery." + }, + "mediaUpload": { + "type": "object", + "description": "Media upload parameters.", + "properties": { + "accept": { + "type": "array", + "description": "MIME Media Ranges for acceptable media uploads to this method.", + "items": { + "type": "string" + } + }, + "maxSize": { + "type": "string", + "description": "Maximum size of a media upload, such as \"1MB\", \"2GB\" or \"3TB\"." + }, + "protocols": { + "type": "object", + "description": "Supported upload protocols.", + "properties": { + "resumable": { + "type": "object", + "description": "Supports the Resumable Media Upload protocol.", + "properties": { + "multipart": { + "type": "boolean", + "description": "True if this endpoint supports uploading multipart media.", + "default": "true" + }, + "path": { + "type": "string", + "description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level." + } + } + }, + "simple": { + "type": "object", + "description": "Supports uploading as a single HTTP request.", + "properties": { + "multipart": { + "type": "boolean", + "description": "True if this endpoint supports upload multipart media.", + "default": "true" + }, + "path": { + "type": "string", + "description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level." + } + } + } + } + } + } + }, + "parameterOrder": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "parameters": { + "type": "object", + "description": "Details for all parameters in this method.", + "additionalProperties": { + "$ref": "JsonSchema", + "description": "Details for a single parameter in this method." + } + }, + "path": { + "type": "string", + "description": "The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level." + }, + "request": { + "type": "object", + "description": "The schema for the request.", + "properties": { + "$ref": { + "type": "string", + "description": "Schema ID for the request schema." + }, + "parameterName": { + "type": "string", + "description": "parameter name." + } + } + }, + "response": { + "type": "object", + "description": "The schema for the response.", + "properties": { + "$ref": { + "type": "string", + "description": "Schema ID for the response schema." + } + } + }, + "scopes": { + "type": "array", + "description": "OAuth 2.0 scopes applicable to this method.", + "items": { + "type": "string" + } + }, + "supportsMediaDownload": { + "type": "boolean", + "description": "Whether this method supports media downloads." + }, + "supportsMediaUpload": { + "type": "boolean", + "description": "Whether this method supports media uploads." + }, + "supportsSubscription": { + "type": "boolean", + "description": "Whether this method supports subscriptions." + } + } + }, + "RestResource": { + "id": "RestResource", + "type": "object", + "properties": { + "methods": { + "type": "object", + "description": "Methods on this resource.", + "additionalProperties": { + "$ref": "RestMethod", + "description": "Description for any methods on this resource." + } + }, + "resources": { + "type": "object", + "description": "Sub-resources on this resource.", + "additionalProperties": { + "$ref": "RestResource", + "description": "Description for any sub-resources on this resource." + } + } + } + } + }, + "resources": { + "apis": { + "methods": { + "getRest": { + "id": "discovery.apis.getRest", + "path": "apis/{api}/{version}/rest", + "httpMethod": "GET", + "description": "Retrieve the description of a particular version of an api.", + "parameters": { + "api": { + "type": "string", + "description": "The name of the API.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "The version of the API.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "api", + "version" + ], + "response": { + "$ref": "RestDescription" + } + }, + "list": { + "id": "discovery.apis.list", + "path": "apis", + "httpMethod": "GET", + "description": "Retrieve the list of APIs supported at this endpoint.", + "parameters": { + "name": { + "type": "string", + "description": "Only include APIs with the given name.", + "location": "query" + }, + "preferred": { + "type": "boolean", + "description": "Return only the preferred version of an API.", + "default": "false", + "location": "query" + } + }, + "response": { + "$ref": "DirectoryList" + } + } + } + } + } +} diff --git a/etc/api/dns/v1beta1/dns-api.json b/etc/api/dns/v1beta1/dns-api.json new file mode 100644 index 0000000000..d52e163c7f --- /dev/null +++ b/etc/api/dns/v1beta1/dns-api.json @@ -0,0 +1,686 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_vgNPwHi8lDV9NY2AVX5qWWTYFo\"", + "discoveryVersion": "v1", + "id": "dns:v1beta1", + "name": "dns", + "version": "v1beta1", + "revision": "20141121", + "title": "Google Cloud DNS API", + "description": "The Google Cloud DNS API provides services for configuring and serving authoritative DNS records.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/cloud-dns", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/dns/v1beta1/projects/", + "basePath": "/dns/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "dns/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/ndev.clouddns.readonly": { + "description": "View your DNS records hosted by Google Cloud DNS" + }, + "https://www.googleapis.com/auth/ndev.clouddns.readwrite": { + "description": "View and manage your DNS records hosted by Google Cloud DNS" + } + } + } + }, + "schemas": { + "Change": { + "id": "Change", + "type": "object", + "description": "An atomic update to a collection of ResourceRecordSets.", + "properties": { + "additions": { + "type": "array", + "description": "Which ResourceRecordSets to add?", + "items": { + "$ref": "ResourceRecordSet" + } + }, + "deletions": { + "type": "array", + "description": "Which ResourceRecordSets to remove? Must match existing data exactly.", + "items": { + "$ref": "ResourceRecordSet" + } + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#change\".", + "default": "dns#change" + }, + "startTime": { + "type": "string", + "description": "The time that this operation was started by the server. This is in RFC3339 text format." + }, + "status": { + "type": "string", + "description": "Status of the operation. Can be one of the following: \"PENDING\" or \"DONE\" (output only)." + } + } + }, + "ChangesListResponse": { + "id": "ChangesListResponse", + "type": "object", + "description": "The response to a request to enumerate Changes to a ResourceRecordSets collection.", + "properties": { + "changes": { + "type": "array", + "description": "The requested changes.", + "items": { + "$ref": "Change" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "dns#changesListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token.\n\nIn this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a \"snapshot\" of collections larger than the maximum page size." + } + } + }, + "ManagedZone": { + "id": "ManagedZone", + "type": "object", + "description": "A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.", + "properties": { + "creationTime": { + "type": "string", + "description": "The time that this resource was created on the server. This is in RFC3339 text format. Output only." + }, + "description": { + "type": "string", + "description": "A string to associate with this resource for the user's convenience. Has no effect on the managed zone's function." + }, + "dnsName": { + "type": "string", + "description": "The DNS name of this managed zone, for instance \"example.com.\"." + }, + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)", + "format": "uint64" + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#managedZone\".", + "default": "dns#managedZone" + }, + "name": { + "type": "string", + "description": "User assigned name for this resource. Must be unique within the project. The name must be 1-32 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes." + }, + "nameServerSet": { + "type": "string", + "description": "Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users will leave this field unset." + }, + "nameServers": { + "type": "array", + "description": "Delegate your managed_zone to these virtual name servers; defined by the server (output only)", + "items": { + "type": "string" + } + } + } + }, + "ManagedZonesListResponse": { + "id": "ManagedZonesListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "dns#managedZonesListResponse" + }, + "managedZones": { + "type": "array", + "description": "The managed zone resources.", + "items": { + "$ref": "ManagedZone" + } + }, + "nextPageToken": { + "type": "string", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your page token.\n\nIn this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a consistent snapshot of a collection larger than the maximum page size." + } + } + }, + "Project": { + "id": "Project", + "type": "object", + "description": "A project resource. The project is a top level container for resources including Cloud DNS ManagedZones. Projects can be created only in the APIs console.", + "properties": { + "id": { + "type": "string", + "description": "User assigned unique identifier for the resource (output only)." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#project\".", + "default": "dns#project" + }, + "number": { + "type": "string", + "description": "Unique numeric identifier for the resource; defined by the server (output only).", + "format": "uint64" + }, + "quota": { + "$ref": "Quota", + "description": "Quotas assigned to this project (output only)." + } + } + }, + "Quota": { + "id": "Quota", + "type": "object", + "description": "Limits associated with a Project.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#quota\".", + "default": "dns#quota" + }, + "managedZones": { + "type": "integer", + "description": "Maximum allowed number of managed zones in the project.", + "format": "int32" + }, + "resourceRecordsPerRrset": { + "type": "integer", + "description": "Maximum allowed number of ResourceRecords per ResourceRecordSet.", + "format": "int32" + }, + "rrsetAdditionsPerChange": { + "type": "integer", + "description": "Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.", + "format": "int32" + }, + "rrsetDeletionsPerChange": { + "type": "integer", + "description": "Maximum allowed number of ResourceRecordSets to delete per ChangesCreateRequest.", + "format": "int32" + }, + "rrsetsPerManagedZone": { + "type": "integer", + "description": "Maximum allowed number of ResourceRecordSets per zone in the project.", + "format": "int32" + }, + "totalRrdataSizePerChange": { + "type": "integer", + "description": "Maximum allowed size for total rrdata in one ChangesCreateRequest in bytes.", + "format": "int32" + } + } + }, + "ResourceRecordSet": { + "id": "ResourceRecordSet", + "type": "object", + "description": "A unit of data that will be returned by the DNS servers.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"dns#resourceRecordSet\".", + "default": "dns#resourceRecordSet" + }, + "name": { + "type": "string", + "description": "For example, www.example.com." + }, + "rrdatas": { + "type": "array", + "description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)", + "items": { + "type": "string" + } + }, + "ttl": { + "type": "integer", + "description": "Number of seconds that this ResourceRecordSet can be cached by resolvers.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "One of A, AAAA, SOA, MX, NS, TXT" + } + } + }, + "ResourceRecordSetsListResponse": { + "id": "ResourceRecordSetsListResponse", + "type": "object", + "properties": { + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "dns#resourceRecordSetsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The presence of this field indicates that there exist more results following your last page of results in pagination order. To fetch them, make another list request using this value as your pagination token.\n\nIn this way you can retrieve the complete contents of even very large collections one page at a time. However, if the contents of the collection change between the first and last paginated list request, the set of all elements returned will be an inconsistent view of the collection. There is no way to retrieve a consistent snapshot of a collection larger than the maximum page size." + }, + "rrsets": { + "type": "array", + "description": "The resource record set resources.", + "items": { + "$ref": "ResourceRecordSet" + } + } + } + } + }, + "resources": { + "changes": { + "methods": { + "create": { + "id": "dns.changes.create", + "path": "{project}/managedZones/{managedZone}/changes", + "httpMethod": "POST", + "description": "Atomically update the ResourceRecordSet collection.", + "parameters": { + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "managedZone" + ], + "request": { + "$ref": "Change" + }, + "response": { + "$ref": "Change" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "id": "dns.changes.get", + "path": "{project}/managedZones/{managedZone}/changes/{changeId}", + "httpMethod": "GET", + "description": "Fetch the representation of an existing Change.", + "parameters": { + "changeId": { + "type": "string", + "description": "The identifier of the requested change, from a previous ResourceRecordSetsChangeResponse.", + "required": true, + "location": "path" + }, + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "managedZone", + "changeId" + ], + "response": { + "$ref": "Change" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "id": "dns.changes.list", + "path": "{project}/managedZones/{managedZone}/changes", + "httpMethod": "GET", + "description": "Enumerate Changes to a ResourceRecordSet collection.", + "parameters": { + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + }, + "sortBy": { + "type": "string", + "description": "Sorting criterion. The only supported value is change sequence.", + "default": "changeSequence", + "enum": [ + "changeSequence" + ], + "enumDescriptions": [ + "" + ], + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "Sorting order direction: 'ascending' or 'descending'.", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "managedZone" + ], + "response": { + "$ref": "ChangesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "managedZones": { + "methods": { + "create": { + "id": "dns.managedZones.create", + "path": "{project}/managedZones", + "httpMethod": "POST", + "description": "Create a new ManagedZone.", + "parameters": { + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "ManagedZone" + }, + "response": { + "$ref": "ManagedZone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "delete": { + "id": "dns.managedZones.delete", + "path": "{project}/managedZones/{managedZone}", + "httpMethod": "DELETE", + "description": "Delete a previously created ManagedZone.", + "parameters": { + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "managedZone" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "get": { + "id": "dns.managedZones.get", + "path": "{project}/managedZones/{managedZone}", + "httpMethod": "GET", + "description": "Fetch the representation of an existing ManagedZone.", + "parameters": { + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "managedZone" + ], + "response": { + "$ref": "ManagedZone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "list": { + "id": "dns.managedZones.list", + "path": "{project}/managedZones", + "httpMethod": "GET", + "description": "Enumerate ManagedZones that have been created but not yet deleted.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ManagedZonesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "projects": { + "methods": { + "get": { + "id": "dns.projects.get", + "path": "{project}", + "httpMethod": "GET", + "description": "Fetch the representation of an existing Project.", + "parameters": { + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Project" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + }, + "resourceRecordSets": { + "methods": { + "list": { + "id": "dns.resourceRecordSets.list", + "path": "{project}/managedZones/{managedZone}/rrsets", + "httpMethod": "GET", + "description": "Enumerate ResourceRecordSets that have been created but not yet deleted.", + "parameters": { + "managedZone": { + "type": "string", + "description": "Identifies the managed zone addressed by this request. Can be the managed zone name or id.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum number of results to be returned. If unspecified, the server will decide how many results to return.", + "format": "int32", + "location": "query" + }, + "name": { + "type": "string", + "description": "Restricts the list to return only records with this fully qualified domain name.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. A tag returned by a previous list request that was truncated. Use this parameter to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Identifies the project addressed by this request.", + "required": true, + "location": "path" + }, + "type": { + "type": "string", + "description": "Restricts the list to return only records of this type. If present, the \"name\" parameter must also be present.", + "location": "query" + } + }, + "parameterOrder": [ + "project", + "managedZone" + ], + "response": { + "$ref": "ResourceRecordSetsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + } + } + } + } +} diff --git a/etc/api/doubleclickbidmanager/v1/doubleclickbidmanager-api.json b/etc/api/doubleclickbidmanager/v1/doubleclickbidmanager-api.json new file mode 100644 index 0000000000..3163308cc4 --- /dev/null +++ b/etc/api/doubleclickbidmanager/v1/doubleclickbidmanager-api.json @@ -0,0 +1,1700 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/dz0RIXMJ6g8PvYu0hLKFSrO2nhc\"", + "discoveryVersion": "v1", + "id": "doubleclickbidmanager:v1", + "name": "doubleclickbidmanager", + "canonicalName": "DoubleClick Bid Manager", + "version": "v1", + "revision": "20150122", + "title": "DoubleClick Bid Manager API", + "description": "API for viewing and managing your reports in DoubleClick Bid Manager.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/bid-manager/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/doubleclickbidmanager/v1/", + "basePath": "/doubleclickbidmanager/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "doubleclickbidmanager/v1/", + "batchPath": "batch", + "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": { + "DownloadLineItemsRequest": { + "id": "DownloadLineItemsRequest", + "type": "object", + "description": "Request to fetch stored line items.", + "properties": { + "filterIds": { + "type": "array", + "description": "Ids of the specified filter type used to filter line items to fetch. If omitted, all the line items will be returned.", + "items": { + "type": "string", + "format": "int64" + } + }, + "filterType": { + "type": "string", + "description": "Filter type used to filter line items to fetch.", + "enum": [ + "ADVERTISER_ID", + "INSERTION_ORDER_ID", + "LINE_ITEM_ID" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "format": { + "type": "string", + "description": "Format in which the line items will be returned. Default to CSV.", + "enum": [ + "CSV" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "DownloadLineItemsResponse": { + "id": "DownloadLineItemsResponse", + "type": "object", + "description": "Download line items response.", + "properties": { + "lineItems": { + "type": "string", + "description": "Retrieved line items in CSV format. Refer to Entity Write File Format for more information on file format." + } + } + }, + "FilterPair": { + "id": "FilterPair", + "type": "object", + "description": "Filter used to match traffic data in your report.", + "properties": { + "type": { + "type": "string", + "description": "Filter type.", + "enum": [ + "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", + "FILTER_ACTIVITY_ID", + "FILTER_ADVERTISER", + "FILTER_ADVERTISER_CURRENCY", + "FILTER_ADVERTISER_TIMEZONE", + "FILTER_AD_POSITION", + "FILTER_AGE", + "FILTER_BRANDSAFE_CHANNEL_ID", + "FILTER_BROWSER", + "FILTER_CAMPAIGN_DAILY_FREQUENCY", + "FILTER_CARRIER", + "FILTER_CHANNEL_ID", + "FILTER_CITY", + "FILTER_CONVERSION_DELAY", + "FILTER_COUNTRY", + "FILTER_CREATIVE_ID", + "FILTER_CREATIVE_SIZE", + "FILTER_CREATIVE_TYPE", + "FILTER_DATA_PROVIDER", + "FILTER_DATE", + "FILTER_DAY_OF_WEEK", + "FILTER_DMA", + "FILTER_EXCHANGE_ID", + "FILTER_FLOODLIGHT_PIXEL_ID", + "FILTER_GENDER", + "FILTER_INSERTION_ORDER", + "FILTER_INVENTORY_FORMAT", + "FILTER_INVENTORY_SOURCE", + "FILTER_KEYWORD", + "FILTER_LINE_ITEM", + "FILTER_LINE_ITEM_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", + "FILTER_LINE_ITEM_TYPE", + "FILTER_MOBILE_DEVICE_MAKE", + "FILTER_MOBILE_DEVICE_MAKE_MODEL", + "FILTER_MOBILE_DEVICE_TYPE", + "FILTER_MOBILE_GEO", + "FILTER_MONTH", + "FILTER_MRAID_SUPPORT", + "FILTER_NIELSEN_AGE", + "FILTER_NIELSEN_COUNTRY_CODE", + "FILTER_NIELSEN_DEVICE_ID", + "FILTER_NIELSEN_GENDER", + "FILTER_ORDER_ID", + "FILTER_OS", + "FILTER_PAGE_CATEGORY", + "FILTER_PAGE_LAYOUT", + "FILTER_PARTNER", + "FILTER_PARTNER_CURRENCY", + "FILTER_PUBLIC_INVENTORY", + "FILTER_QUARTER", + "FILTER_REGION", + "FILTER_REGULAR_CHANNEL_ID", + "FILTER_SITE_ID", + "FILTER_SITE_LANGUAGE", + "FILTER_TARGETED_USER_LIST", + "FILTER_TIME_OF_DAY", + "FILTER_TRUEVIEW_CONVERSION_TYPE", + "FILTER_UNKNOWN", + "FILTER_USER_LIST", + "FILTER_USER_LIST_FIRST_PARTY", + "FILTER_USER_LIST_THIRD_PARTY", + "FILTER_VIDEO_AD_POSITION_IN_STREAM", + "FILTER_VIDEO_CREATIVE_DURATION", + "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", + "FILTER_VIDEO_DURATION_SECONDS", + "FILTER_VIDEO_FORMAT_SUPPORT", + "FILTER_VIDEO_INVENTORY_TYPE", + "FILTER_VIDEO_PLAYER_SIZE", + "FILTER_VIDEO_RATING_TIER", + "FILTER_VIDEO_SKIPPABLE_SUPPORT", + "FILTER_VIDEO_VPAID_SUPPORT", + "FILTER_WEEK", + "FILTER_YEAR", + "FILTER_YOUTUBE_VERTICAL", + "FILTER_ZIP_CODE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "value": { + "type": "string", + "description": "Filter value." + } + } + }, + "ListQueriesResponse": { + "id": "ListQueriesResponse", + "type": "object", + "description": "List queries response.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#listQueriesResponse\".", + "default": "doubleclickbidmanager#listQueriesResponse" + }, + "queries": { + "type": "array", + "description": "Retrieved queries.", + "items": { + "$ref": "Query" + } + } + } + }, + "ListReportsResponse": { + "id": "ListReportsResponse", + "type": "object", + "description": "List reports response.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#listReportsResponse\".", + "default": "doubleclickbidmanager#listReportsResponse" + }, + "reports": { + "type": "array", + "description": "Retrieved reports.", + "items": { + "$ref": "Report" + } + } + } + }, + "Parameters": { + "id": "Parameters", + "type": "object", + "description": "Parameters of a query or report.", + "properties": { + "filters": { + "type": "array", + "description": "Filters used to match traffic data in your report.", + "items": { + "$ref": "FilterPair" + } + }, + "groupBys": { + "type": "array", + "description": "Data is grouped by the filters listed in this field.", + "items": { + "type": "string", + "enum": [ + "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", + "FILTER_ACTIVITY_ID", + "FILTER_ADVERTISER", + "FILTER_ADVERTISER_CURRENCY", + "FILTER_ADVERTISER_TIMEZONE", + "FILTER_AD_POSITION", + "FILTER_AGE", + "FILTER_BRANDSAFE_CHANNEL_ID", + "FILTER_BROWSER", + "FILTER_CAMPAIGN_DAILY_FREQUENCY", + "FILTER_CARRIER", + "FILTER_CHANNEL_ID", + "FILTER_CITY", + "FILTER_CONVERSION_DELAY", + "FILTER_COUNTRY", + "FILTER_CREATIVE_ID", + "FILTER_CREATIVE_SIZE", + "FILTER_CREATIVE_TYPE", + "FILTER_DATA_PROVIDER", + "FILTER_DATE", + "FILTER_DAY_OF_WEEK", + "FILTER_DMA", + "FILTER_EXCHANGE_ID", + "FILTER_FLOODLIGHT_PIXEL_ID", + "FILTER_GENDER", + "FILTER_INSERTION_ORDER", + "FILTER_INVENTORY_FORMAT", + "FILTER_INVENTORY_SOURCE", + "FILTER_KEYWORD", + "FILTER_LINE_ITEM", + "FILTER_LINE_ITEM_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", + "FILTER_LINE_ITEM_TYPE", + "FILTER_MOBILE_DEVICE_MAKE", + "FILTER_MOBILE_DEVICE_MAKE_MODEL", + "FILTER_MOBILE_DEVICE_TYPE", + "FILTER_MOBILE_GEO", + "FILTER_MONTH", + "FILTER_MRAID_SUPPORT", + "FILTER_NIELSEN_AGE", + "FILTER_NIELSEN_COUNTRY_CODE", + "FILTER_NIELSEN_DEVICE_ID", + "FILTER_NIELSEN_GENDER", + "FILTER_ORDER_ID", + "FILTER_OS", + "FILTER_PAGE_CATEGORY", + "FILTER_PAGE_LAYOUT", + "FILTER_PARTNER", + "FILTER_PARTNER_CURRENCY", + "FILTER_PUBLIC_INVENTORY", + "FILTER_QUARTER", + "FILTER_REGION", + "FILTER_REGULAR_CHANNEL_ID", + "FILTER_SITE_ID", + "FILTER_SITE_LANGUAGE", + "FILTER_TARGETED_USER_LIST", + "FILTER_TIME_OF_DAY", + "FILTER_TRUEVIEW_CONVERSION_TYPE", + "FILTER_UNKNOWN", + "FILTER_USER_LIST", + "FILTER_USER_LIST_FIRST_PARTY", + "FILTER_USER_LIST_THIRD_PARTY", + "FILTER_VIDEO_AD_POSITION_IN_STREAM", + "FILTER_VIDEO_CREATIVE_DURATION", + "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", + "FILTER_VIDEO_DURATION_SECONDS", + "FILTER_VIDEO_FORMAT_SUPPORT", + "FILTER_VIDEO_INVENTORY_TYPE", + "FILTER_VIDEO_PLAYER_SIZE", + "FILTER_VIDEO_RATING_TIER", + "FILTER_VIDEO_SKIPPABLE_SUPPORT", + "FILTER_VIDEO_VPAID_SUPPORT", + "FILTER_WEEK", + "FILTER_YEAR", + "FILTER_YOUTUBE_VERTICAL", + "FILTER_ZIP_CODE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "includeInviteData": { + "type": "boolean", + "description": "Whether to include data from Invite Media." + }, + "metrics": { + "type": "array", + "description": "Metrics to include as columns in your report.", + "items": { + "type": "string", + "enum": [ + "METRIC_BID_REQUESTS", + "METRIC_BILLABLE_COST_ADVERTISER", + "METRIC_BILLABLE_COST_PARTNER", + "METRIC_BILLABLE_COST_USD", + "METRIC_CLICKS", + "METRIC_CLICK_TO_POST_CLICK_CONVERSION_RATE", + "METRIC_COMSCORE_VCE_AUDIENCE_AVG_FREQUENCY", + "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS", + "METRIC_COMSCORE_VCE_AUDIENCE_IMPRESSIONS_SHARE", + "METRIC_COMSCORE_VCE_AUDIENCE_REACH_PCT", + "METRIC_COMSCORE_VCE_AUDIENCE_SHARE_PCT", + "METRIC_COMSCORE_VCE_GROSS_RATING_POINTS", + "METRIC_COMSCORE_VCE_POPULATION", + "METRIC_COMSCORE_VCE_UNIQUE_AUDIENCE", + "METRIC_CONVERSIONS_PER_MILLE", + "METRIC_CPM_FEE1_ADVERTISER", + "METRIC_CPM_FEE1_PARTNER", + "METRIC_CPM_FEE1_USD", + "METRIC_CPM_FEE2_ADVERTISER", + "METRIC_CPM_FEE2_PARTNER", + "METRIC_CPM_FEE2_USD", + "METRIC_CPM_FEE3_ADVERTISER", + "METRIC_CPM_FEE3_PARTNER", + "METRIC_CPM_FEE3_USD", + "METRIC_CPM_FEE4_ADVERTISER", + "METRIC_CPM_FEE4_PARTNER", + "METRIC_CPM_FEE4_USD", + "METRIC_CPM_FEE5_ADVERTISER", + "METRIC_CPM_FEE5_PARTNER", + "METRIC_CPM_FEE5_USD", + "METRIC_CTR", + "METRIC_DATA_COST_ADVERTISER", + "METRIC_DATA_COST_PARTNER", + "METRIC_DATA_COST_USD", + "METRIC_FEE10_ADVERTISER", + "METRIC_FEE10_PARTNER", + "METRIC_FEE10_USD", + "METRIC_FEE11_ADVERTISER", + "METRIC_FEE11_PARTNER", + "METRIC_FEE11_USD", + "METRIC_FEE12_ADVERTISER", + "METRIC_FEE12_PARTNER", + "METRIC_FEE12_USD", + "METRIC_FEE13_ADVERTISER", + "METRIC_FEE13_PARTNER", + "METRIC_FEE13_USD", + "METRIC_FEE14_ADVERTISER", + "METRIC_FEE14_PARTNER", + "METRIC_FEE14_USD", + "METRIC_FEE15_ADVERTISER", + "METRIC_FEE15_PARTNER", + "METRIC_FEE15_USD", + "METRIC_FEE16_ADVERTISER", + "METRIC_FEE16_PARTNER", + "METRIC_FEE16_USD", + "METRIC_FEE17_ADVERTISER", + "METRIC_FEE17_PARTNER", + "METRIC_FEE17_USD", + "METRIC_FEE18_ADVERTISER", + "METRIC_FEE18_PARTNER", + "METRIC_FEE18_USD", + "METRIC_FEE19_ADVERTISER", + "METRIC_FEE19_PARTNER", + "METRIC_FEE19_USD", + "METRIC_FEE2_ADVERTISER", + "METRIC_FEE2_PARTNER", + "METRIC_FEE2_USD", + "METRIC_FEE3_ADVERTISER", + "METRIC_FEE3_PARTNER", + "METRIC_FEE3_USD", + "METRIC_FEE4_ADVERTISER", + "METRIC_FEE4_PARTNER", + "METRIC_FEE4_USD", + "METRIC_FEE5_ADVERTISER", + "METRIC_FEE5_PARTNER", + "METRIC_FEE5_USD", + "METRIC_FEE6_ADVERTISER", + "METRIC_FEE6_PARTNER", + "METRIC_FEE6_USD", + "METRIC_FEE7_ADVERTISER", + "METRIC_FEE7_PARTNER", + "METRIC_FEE7_USD", + "METRIC_FEE8_ADVERTISER", + "METRIC_FEE8_PARTNER", + "METRIC_FEE8_USD", + "METRIC_FEE9_ADVERTISER", + "METRIC_FEE9_PARTNER", + "METRIC_FEE9_USD", + "METRIC_IMPRESSIONS", + "METRIC_IMPRESSIONS_TO_CONVERSION_RATE", + "METRIC_LAST_CLICKS", + "METRIC_LAST_IMPRESSIONS", + "METRIC_MEDIA_COST_ADVERTISER", + "METRIC_MEDIA_COST_ECPAPC_ADVERTISER", + "METRIC_MEDIA_COST_ECPAPC_PARTNER", + "METRIC_MEDIA_COST_ECPAPC_USD", + "METRIC_MEDIA_COST_ECPAPV_ADVERTISER", + "METRIC_MEDIA_COST_ECPAPV_PARTNER", + "METRIC_MEDIA_COST_ECPAPV_USD", + "METRIC_MEDIA_COST_ECPA_ADVERTISER", + "METRIC_MEDIA_COST_ECPA_PARTNER", + "METRIC_MEDIA_COST_ECPA_USD", + "METRIC_MEDIA_COST_ECPCV_ADVERTISER", + "METRIC_MEDIA_COST_ECPCV_PARTNER", + "METRIC_MEDIA_COST_ECPCV_USD", + "METRIC_MEDIA_COST_ECPC_ADVERTISER", + "METRIC_MEDIA_COST_ECPC_PARTNER", + "METRIC_MEDIA_COST_ECPC_USD", + "METRIC_MEDIA_COST_ECPM_ADVERTISER", + "METRIC_MEDIA_COST_ECPM_PARTNER", + "METRIC_MEDIA_COST_ECPM_USD", + "METRIC_MEDIA_COST_PARTNER", + "METRIC_MEDIA_COST_USD", + "METRIC_MEDIA_FEE1_ADVERTISER", + "METRIC_MEDIA_FEE1_PARTNER", + "METRIC_MEDIA_FEE1_USD", + "METRIC_MEDIA_FEE2_ADVERTISER", + "METRIC_MEDIA_FEE2_PARTNER", + "METRIC_MEDIA_FEE2_USD", + "METRIC_MEDIA_FEE3_ADVERTISER", + "METRIC_MEDIA_FEE3_PARTNER", + "METRIC_MEDIA_FEE3_USD", + "METRIC_MEDIA_FEE4_ADVERTISER", + "METRIC_MEDIA_FEE4_PARTNER", + "METRIC_MEDIA_FEE4_USD", + "METRIC_MEDIA_FEE5_ADVERTISER", + "METRIC_MEDIA_FEE5_PARTNER", + "METRIC_MEDIA_FEE5_USD", + "METRIC_PIXEL_LOADS", + "METRIC_PLATFORM_FEE_ADVERTISER", + "METRIC_PLATFORM_FEE_PARTNER", + "METRIC_PLATFORM_FEE_USD", + "METRIC_POST_CLICK_DFA_REVENUE", + "METRIC_POST_VIEW_DFA_REVENUE", + "METRIC_PROFIT_ADVERTISER", + "METRIC_PROFIT_ECPAPC_ADVERTISER", + "METRIC_PROFIT_ECPAPC_PARTNER", + "METRIC_PROFIT_ECPAPC_USD", + "METRIC_PROFIT_ECPAPV_ADVERTISER", + "METRIC_PROFIT_ECPAPV_PARTNER", + "METRIC_PROFIT_ECPAPV_USD", + "METRIC_PROFIT_ECPA_ADVERTISER", + "METRIC_PROFIT_ECPA_PARTNER", + "METRIC_PROFIT_ECPA_USD", + "METRIC_PROFIT_ECPC_ADVERTISER", + "METRIC_PROFIT_ECPC_PARTNER", + "METRIC_PROFIT_ECPC_USD", + "METRIC_PROFIT_ECPM_ADVERTISER", + "METRIC_PROFIT_ECPM_PARTNER", + "METRIC_PROFIT_ECPM_USD", + "METRIC_PROFIT_MARGIN", + "METRIC_PROFIT_PARTNER", + "METRIC_PROFIT_USD", + "METRIC_REVENUE_ADVERTISER", + "METRIC_REVENUE_ECPAPC_ADVERTISER", + "METRIC_REVENUE_ECPAPC_PARTNER", + "METRIC_REVENUE_ECPAPC_USD", + "METRIC_REVENUE_ECPAPV_ADVERTISER", + "METRIC_REVENUE_ECPAPV_PARTNER", + "METRIC_REVENUE_ECPAPV_USD", + "METRIC_REVENUE_ECPA_ADVERTISER", + "METRIC_REVENUE_ECPA_PARTNER", + "METRIC_REVENUE_ECPA_USD", + "METRIC_REVENUE_ECPCV_ADVERTISER", + "METRIC_REVENUE_ECPCV_PARTNER", + "METRIC_REVENUE_ECPCV_USD", + "METRIC_REVENUE_ECPC_ADVERTISER", + "METRIC_REVENUE_ECPC_PARTNER", + "METRIC_REVENUE_ECPC_USD", + "METRIC_REVENUE_ECPM_ADVERTISER", + "METRIC_REVENUE_ECPM_PARTNER", + "METRIC_REVENUE_ECPM_USD", + "METRIC_REVENUE_PARTNER", + "METRIC_REVENUE_USD", + "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS", + "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES", + "METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS", + "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS", + "METRIC_RICH_MEDIA_VIDEO_MUTES", + "METRIC_RICH_MEDIA_VIDEO_PAUSES", + "METRIC_RICH_MEDIA_VIDEO_PLAYS", + "METRIC_RICH_MEDIA_VIDEO_SKIPS", + "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES", + "METRIC_TEA_TRUEVIEW_IMPRESSIONS", + "METRIC_TEA_TRUEVIEW_UNIQUE_COOKIES", + "METRIC_TEA_TRUEVIEW_UNIQUE_PEOPLE", + "METRIC_TOTAL_CONVERSIONS", + "METRIC_TOTAL_MEDIA_COST_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_USD", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_USD", + "METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPA_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPA_USD", + "METRIC_TOTAL_MEDIA_COST_ECPCV_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPCV_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPCV_USD", + "METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPC_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPC_USD", + "METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPM_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPM_USD", + "METRIC_TOTAL_MEDIA_COST_PARTNER", + "METRIC_TOTAL_MEDIA_COST_USD", + "METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW", + "METRIC_TRUEVIEW_CONVERSION_ONE_PER_VIEW", + "METRIC_TRUEVIEW_CONVERSION_RATE_ONE_PER_VIEW", + "METRIC_TRUEVIEW_COST_CONVERSION_MANY_PER_VIEW_RATIO", + "METRIC_TRUEVIEW_COST_CONVERSION_ONE_PER_VIEW_RATIO", + "METRIC_TRUEVIEW_CPV_ADVERTISER", + "METRIC_TRUEVIEW_CPV_PARTNER", + "METRIC_TRUEVIEW_CPV_USD", + "METRIC_TRUEVIEW_EARNED_LIKES", + "METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS", + "METRIC_TRUEVIEW_EARNED_SHARES", + "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS", + "METRIC_TRUEVIEW_EARNED_VIEWS", + "METRIC_TRUEVIEW_IMPRESSION_SHARE", + "METRIC_TRUEVIEW_LOST_IS_BUDGET", + "METRIC_TRUEVIEW_LOST_IS_RANK", + "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUE", + "METRIC_TRUEVIEW_UNIQUE_VIEWERS", + "METRIC_TRUEVIEW_VALUE_CONVERSION_MANY_PER_VIEW_RATIO", + "METRIC_TRUEVIEW_VALUE_CONVERSION_ONE_PER_VIEW_RATIO", + "METRIC_TRUEVIEW_VIEWS", + "METRIC_TRUEVIEW_VIEW_RATE", + "METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION", + "METRIC_UNIQUE_VISITORS_COOKIES", + "METRIC_UNKNOWN", + "METRIC_VIDEO_COMPANION_CLICKS", + "METRIC_VIDEO_COMPANION_IMPRESSIONS", + "METRIC_VIDEO_COMPLETION_RATE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "type": { + "type": "string", + "description": "Report type.", + "enum": [ + "TYPE_ACTIVE_GRP", + "TYPE_AUDIENCE_COMPOSITION", + "TYPE_AUDIENCE_PERFORMANCE", + "TYPE_CLIENT_SAFE", + "TYPE_COMSCORE_VCE", + "TYPE_CROSS_FEE", + "TYPE_CROSS_PARTNER", + "TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER", + "TYPE_ESTIMATED_CONVERSION", + "TYPE_FEE", + "TYPE_GENERAL", + "TYPE_INVENTORY_AVAILABILITY", + "TYPE_KEYWORD", + "TYPE_NIELSEN_AUDIENCE_PROFILE", + "TYPE_NIELSEN_DAILY_REACH_BUILD", + "TYPE_NIELSEN_SITE", + "TYPE_ORDER_ID", + "TYPE_PAGE_CATEGORY", + "TYPE_PIXEL_LOAD", + "TYPE_REACH_AND_FREQUENCY", + "TYPE_THIRD_PARTY_DATA_PROVIDER", + "TYPE_TRUEVIEW", + "TYPE_TRUEVIEW_IAR", + "TYPE_VERIFICATION", + "TYPE_YOUTUBE_VERTICAL" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "Query": { + "id": "Query", + "type": "object", + "description": "Represents a query.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#query\".", + "default": "doubleclickbidmanager#query" + }, + "metadata": { + "$ref": "QueryMetadata", + "description": "Query metadata." + }, + "params": { + "$ref": "Parameters", + "description": "Query parameters." + }, + "queryId": { + "type": "string", + "description": "Query ID.", + "format": "int64" + }, + "reportDataEndTimeMs": { + "type": "string", + "description": "The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64" + }, + "reportDataStartTimeMs": { + "type": "string", + "description": "The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64" + }, + "schedule": { + "$ref": "QuerySchedule", + "description": "Information on how often and when to run a query." + }, + "timezoneCode": { + "type": "string", + "description": "Canonical timezone code for report data time. Defaults to America/New_York." + } + } + }, + "QueryMetadata": { + "id": "QueryMetadata", + "type": "object", + "description": "Query metadata.", + "properties": { + "dataRange": { + "type": "string", + "description": "Range of report data.", + "enum": [ + "ALL_TIME", + "CURRENT_DAY", + "CUSTOM_DATES", + "LAST_14_DAYS", + "LAST_30_DAYS", + "LAST_365_DAYS", + "LAST_7_DAYS", + "LAST_90_DAYS", + "MONTH_TO_DATE", + "PREVIOUS_DAY", + "PREVIOUS_HALF_MONTH", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_WEEK", + "PREVIOUS_YEAR", + "QUARTER_TO_DATE", + "WEEK_TO_DATE", + "YEAR_TO_DATE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "format": { + "type": "string", + "description": "Format of the generated report.", + "enum": [ + "CSV", + "EXCEL_CSV", + "XLSX" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "googleCloudStoragePathForLatestReport": { + "type": "string", + "description": "The path to the location in Google Cloud Storage where the latest report is stored." + }, + "googleDrivePathForLatestReport": { + "type": "string", + "description": "The path in Google Drive for the latest report." + }, + "latestReportRunTimeMs": { + "type": "string", + "description": "The time when the latest report started to run.", + "format": "int64" + }, + "locale": { + "type": "string", + "description": "Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE\n\nAn locale string not in the list above will generate reports in English." + }, + "reportCount": { + "type": "integer", + "description": "Number of reports that have been generated for the query.", + "format": "int32" + }, + "running": { + "type": "boolean", + "description": "Whether the latest report is currently running." + }, + "sendNotification": { + "type": "boolean", + "description": "Whether to send an email notification when a report is ready. Default to false." + }, + "shareEmailAddress": { + "type": "array", + "description": "List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.", + "items": { + "type": "string" + } + }, + "title": { + "type": "string", + "description": "Query title. It is used to name the reports generated from this query." + } + } + }, + "QuerySchedule": { + "id": "QuerySchedule", + "type": "object", + "description": "Information on how frequently and when to run a query.", + "properties": { + "endTimeMs": { + "type": "string", + "description": "Datetime to periodically run the query until.", + "format": "int64" + }, + "frequency": { + "type": "string", + "description": "How often the query is run.", + "enum": [ + "DAILY", + "MONTHLY", + "ONE_TIME", + "QUARTERLY", + "SEMI_MONTHLY", + "WEEKLY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "nextRunMinuteOfDay": { + "type": "integer", + "description": "Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.", + "format": "int32" + }, + "nextRunTimezoneCode": { + "type": "string", + "description": "Canonical timezone code for report generation time. Defaults to America/New_York." + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "Represents a report.", + "properties": { + "key": { + "$ref": "ReportKey", + "description": "Key used to identify a report." + }, + "metadata": { + "$ref": "ReportMetadata", + "description": "Report metadata." + }, + "params": { + "$ref": "Parameters", + "description": "Report parameters." + } + } + }, + "ReportFailure": { + "id": "ReportFailure", + "type": "object", + "description": "An explanation of a report failure.", + "properties": { + "errorCode": { + "type": "string", + "description": "Error code that shows why the report was not created.", + "enum": [ + "AUTHENTICATION_ERROR", + "DEPRECATED_REPORTING_INVALID_QUERY", + "REPORTING_BUCKET_NOT_FOUND", + "REPORTING_CREATE_BUCKET_FAILED", + "REPORTING_DELETE_BUCKET_FAILED", + "REPORTING_FATAL_ERROR", + "REPORTING_ILLEGAL_FILENAME", + "REPORTING_IMCOMPATIBLE_METRICS", + "REPORTING_INVALID_QUERY_MISSING_PARTNER_AND_ADVERTISER_FILTERS", + "REPORTING_INVALID_QUERY_TITLE_MISSING", + "REPORTING_INVALID_QUERY_TOO_MANY_UNFILTERED_LARGE_GROUP_BYS", + "REPORTING_QUERY_NOT_FOUND", + "REPORTING_TRANSIENT_ERROR", + "REPORTING_UPDATE_BUCKET_PERMISSION_FAILED", + "REPORTING_WRITE_BUCKET_OBJECT_FAILED", + "SERVER_ERROR", + "UNAUTHORIZED_API_ACCESS", + "VALIDATION_ERROR" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "ReportKey": { + "id": "ReportKey", + "type": "object", + "description": "Key used to identify a report.", + "properties": { + "queryId": { + "type": "string", + "description": "Query ID.", + "format": "int64" + }, + "reportId": { + "type": "string", + "description": "Report ID.", + "format": "int64" + } + } + }, + "ReportMetadata": { + "id": "ReportMetadata", + "type": "object", + "description": "Report metadata.", + "properties": { + "googleCloudStoragePath": { + "type": "string", + "description": "The path to the location in Google Cloud Storage where the report is stored." + }, + "reportDataEndTimeMs": { + "type": "string", + "description": "The ending time for the data that is shown in the report.", + "format": "int64" + }, + "reportDataStartTimeMs": { + "type": "string", + "description": "The starting time for the data that is shown in the report.", + "format": "int64" + }, + "status": { + "$ref": "ReportStatus", + "description": "Report status." + } + } + }, + "ReportStatus": { + "id": "ReportStatus", + "type": "object", + "description": "Report status.", + "properties": { + "failure": { + "$ref": "ReportFailure", + "description": "If the report failed, this records the cause." + }, + "finishTimeMs": { + "type": "string", + "description": "The time when this report either completed successfully or failed.", + "format": "int64" + }, + "format": { + "type": "string", + "description": "The file type of the report.", + "enum": [ + "CSV", + "EXCEL_CSV", + "XLSX" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "state": { + "type": "string", + "description": "The state of the report.", + "enum": [ + "DONE", + "FAILED", + "RUNNING" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "RowStatus": { + "id": "RowStatus", + "type": "object", + "description": "Represents the upload status of a row in the request.", + "properties": { + "changed": { + "type": "boolean", + "description": "Whether the stored entity is changed as a result of upload." + }, + "entityId": { + "type": "string", + "description": "Entity Id.", + "format": "int64" + }, + "entityName": { + "type": "string", + "description": "Entity name." + }, + "errors": { + "type": "array", + "description": "Reasons why the entity can't be uploaded.", + "items": { + "type": "string" + } + }, + "persisted": { + "type": "boolean", + "description": "Whether the entity is persisted." + }, + "rowNumber": { + "type": "integer", + "description": "Row number.", + "format": "int32" + } + } + }, + "RunQueryRequest": { + "id": "RunQueryRequest", + "type": "object", + "description": "Request to run a stored query to generate a report.", + "properties": { + "dataRange": { + "type": "string", + "description": "Report data range used to generate the report.", + "enum": [ + "ALL_TIME", + "CURRENT_DAY", + "CUSTOM_DATES", + "LAST_14_DAYS", + "LAST_30_DAYS", + "LAST_365_DAYS", + "LAST_7_DAYS", + "LAST_90_DAYS", + "MONTH_TO_DATE", + "PREVIOUS_DAY", + "PREVIOUS_HALF_MONTH", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_WEEK", + "PREVIOUS_YEAR", + "QUARTER_TO_DATE", + "WEEK_TO_DATE", + "YEAR_TO_DATE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "reportDataEndTimeMs": { + "type": "string", + "description": "The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64" + }, + "reportDataStartTimeMs": { + "type": "string", + "description": "The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64" + }, + "timezoneCode": { + "type": "string", + "description": "Canonical timezone code for report data time. Defaults to America/New_York." + } + } + }, + "UploadLineItemsRequest": { + "id": "UploadLineItemsRequest", + "type": "object", + "description": "Request to upload line items.", + "properties": { + "dryRun": { + "type": "boolean", + "description": "Set to true to get upload status without actually persisting the line items." + }, + "format": { + "type": "string", + "description": "Format the line items are in. Default to CSV.", + "enum": [ + "CSV" + ], + "enumDescriptions": [ + "" + ] + }, + "lineItems": { + "type": "string", + "description": "Line items in CSV to upload. Refer to Entity Write File Format for more information on file format." + } + } + }, + "UploadLineItemsResponse": { + "id": "UploadLineItemsResponse", + "type": "object", + "description": "Upload line items response.", + "properties": { + "uploadStatus": { + "$ref": "UploadStatus", + "description": "Status of upload." + } + } + }, + "UploadStatus": { + "id": "UploadStatus", + "type": "object", + "description": "Represents the status of upload.", + "properties": { + "errors": { + "type": "array", + "description": "Reasons why upload can't be completed.", + "items": { + "type": "string" + } + }, + "rowStatus": { + "type": "array", + "description": "Per-row upload status.", + "items": { + "$ref": "RowStatus" + } + } + } + } + }, + "resources": { + "lineitems": { + "methods": { + "downloadlineitems": { + "id": "doubleclickbidmanager.lineitems.downloadlineitems", + "path": "lineitems/downloadlineitems", + "httpMethod": "POST", + "description": "Retrieves line items in CSV format.", + "request": { + "$ref": "DownloadLineItemsRequest" + }, + "response": { + "$ref": "DownloadLineItemsResponse" + } + }, + "uploadlineitems": { + "id": "doubleclickbidmanager.lineitems.uploadlineitems", + "path": "lineitems/uploadlineitems", + "httpMethod": "POST", + "description": "Uploads line items in CSV format.", + "request": { + "$ref": "UploadLineItemsRequest" + }, + "response": { + "$ref": "UploadLineItemsResponse" + } + } + } + }, + "queries": { + "methods": { + "createquery": { + "id": "doubleclickbidmanager.queries.createquery", + "path": "query", + "httpMethod": "POST", + "description": "Creates a query.", + "request": { + "$ref": "Query" + }, + "response": { + "$ref": "Query" + } + }, + "deletequery": { + "id": "doubleclickbidmanager.queries.deletequery", + "path": "query/{queryId}", + "httpMethod": "DELETE", + "description": "Deletes a stored query as well as the associated stored reports.", + "parameters": { + "queryId": { + "type": "string", + "description": "Query ID to delete.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "queryId" + ] + }, + "getquery": { + "id": "doubleclickbidmanager.queries.getquery", + "path": "query/{queryId}", + "httpMethod": "GET", + "description": "Retrieves a stored query.", + "parameters": { + "queryId": { + "type": "string", + "description": "Query ID to retrieve.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "queryId" + ], + "response": { + "$ref": "Query" + } + }, + "listqueries": { + "id": "doubleclickbidmanager.queries.listqueries", + "path": "queries", + "httpMethod": "GET", + "description": "Retrieves stored queries.", + "response": { + "$ref": "ListQueriesResponse" + } + }, + "runquery": { + "id": "doubleclickbidmanager.queries.runquery", + "path": "query/{queryId}", + "httpMethod": "POST", + "description": "Runs a stored query to generate a report.", + "parameters": { + "queryId": { + "type": "string", + "description": "Query ID to run.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "queryId" + ], + "request": { + "$ref": "RunQueryRequest" + } + } + } + }, + "reports": { + "methods": { + "listreports": { + "id": "doubleclickbidmanager.reports.listreports", + "path": "queries/{queryId}/reports", + "httpMethod": "GET", + "description": "Retrieves stored reports.", + "parameters": { + "queryId": { + "type": "string", + "description": "Query ID with which the reports are associated.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "queryId" + ], + "response": { + "$ref": "ListReportsResponse" + } + } + } + } + } +} diff --git a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json new file mode 100644 index 0000000000..9b69515cd5 --- /dev/null +++ b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json @@ -0,0 +1,1071 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/cxvPCR_xcZiPo49FRoYXODxx8IM\"", + "discoveryVersion": "v1", + "id": "doubleclicksearch:v2", + "name": "doubleclicksearch", + "version": "v2", + "revision": "20141222", + "title": "DoubleClick Search API", + "description": "Report and modify your advertising data in DoubleClick Search (for example, campaigns, ad groups, keywords, and conversions).", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/doubleclick-search/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/doubleclicksearch/v2/", + "basePath": "/doubleclicksearch/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "doubleclicksearch/v2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/doubleclicksearch": { + "description": "View and manage your advertising data in DoubleClick Search" + } + } + } + }, + "schemas": { + "Availability": { + "id": "Availability", + "type": "object", + "description": "A message containing availability data relevant to DoubleClick Search.", + "properties": { + "advertiserId": { + "type": "string", + "description": "DS advertiser ID.", + "format": "int64", + "annotations": { + "required": [ + "doubleclicksearch.conversion.updateAvailability" + ] + } + }, + "agencyId": { + "type": "string", + "description": "DS agency ID.", + "format": "int64", + "annotations": { + "required": [ + "doubleclicksearch.conversion.updateAvailability" + ] + } + }, + "availabilityTimestamp": { + "type": "string", + "description": "The time by which all conversions have been uploaded, in epoch millis UTC.", + "format": "uint64", + "annotations": { + "required": [ + "doubleclicksearch.conversion.updateAvailability" + ] + } + }, + "segmentationId": { + "type": "string", + "description": "The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).", + "format": "int64" + }, + "segmentationName": { + "type": "string", + "description": "The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name)." + }, + "segmentationType": { + "type": "string", + "description": "The segmentation type that this availability is for (its default value is FLOODLIGHT).", + "annotations": { + "required": [ + "doubleclicksearch.conversion.updateAvailability" + ] + } + } + } + }, + "Conversion": { + "id": "Conversion", + "type": "object", + "description": "A conversion containing data relevant to DoubleClick Search.", + "properties": { + "adGroupId": { + "type": "string", + "description": "DS ad group ID.", + "format": "int64" + }, + "adId": { + "type": "string", + "description": "DS ad ID.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "DS advertiser ID.", + "format": "int64" + }, + "agencyId": { + "type": "string", + "description": "DS agency ID.", + "format": "int64" + }, + "attributionModel": { + "type": "string", + "description": "Attribution model name." + }, + "campaignId": { + "type": "string", + "description": "DS campaign ID.", + "format": "int64" + }, + "clickId": { + "type": "string", + "description": "DS click ID for the conversion." + }, + "conversionId": { + "type": "string", + "description": "Advertiser-provided ID for the conversion, also known as the order ID.", + "annotations": { + "required": [ + "doubleclicksearch.conversion.insert" + ] + } + }, + "conversionModifiedTimestamp": { + "type": "string", + "description": "The time at which the conversion was last modified, in epoch millis UTC.", + "format": "uint64" + }, + "conversionTimestamp": { + "type": "string", + "description": "The time at which the conversion took place, in epoch millis UTC.", + "format": "uint64", + "annotations": { + "required": [ + "doubleclicksearch.conversion.insert" + ] + } + }, + "countMillis": { + "type": "string", + "description": "Conversion count in millis.", + "format": "int64" + }, + "criterionId": { + "type": "string", + "description": "DS criterion (keyword) ID.", + "format": "int64" + }, + "currencyCode": { + "type": "string", + "description": "The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format." + }, + "customDimension": { + "type": "array", + "description": "Custom dimensions for the conversion, which can be used to filter data in a report.", + "items": { + "$ref": "CustomDimension" + } + }, + "customMetric": { + "type": "array", + "description": "Custom metrics for the conversion.", + "items": { + "$ref": "CustomMetric" + } + }, + "dsConversionId": { + "type": "string", + "description": "DS conversion ID.", + "format": "int64" + }, + "engineAccountId": { + "type": "string", + "description": "DS engine account ID.", + "format": "int64" + }, + "floodlightOrderId": { + "type": "string", + "description": "The advertiser-provided order id for the conversion." + }, + "quantityMillis": { + "type": "string", + "description": "The quantity of this conversion, in millis.", + "format": "int64" + }, + "revenueMicros": { + "type": "string", + "description": "The revenue amount of this TRANSACTION conversion, in micros.", + "format": "int64" + }, + "segmentationId": { + "type": "string", + "description": "The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).", + "format": "int64" + }, + "segmentationName": { + "type": "string", + "description": "The friendly segmentation identifier (for example, DoubleClick Search Floodlight activity name)." + }, + "segmentationType": { + "type": "string", + "description": "The segmentation type of this conversion (for example, FLOODLIGHT).", + "annotations": { + "required": [ + "doubleclicksearch.conversion.insert" + ] + } + }, + "state": { + "type": "string", + "description": "The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated." + }, + "type": { + "type": "string", + "description": "The type of the conversion, that is, either ACTION or TRANSACTION. An ACTION conversion is an action by the user that has no monetarily quantifiable value, while a TRANSACTION conversion is an action that does have a monetarily quantifiable value. Examples are email list signups (ACTION) versus ecommerce purchases (TRANSACTION)." + } + } + }, + "ConversionList": { + "id": "ConversionList", + "type": "object", + "description": "A list of conversions.", + "properties": { + "conversion": { + "type": "array", + "description": "The conversions being requested.", + "items": { + "$ref": "Conversion" + } + }, + "kind": { + "type": "string", + "description": "Identifies this as a ConversionList resource. Value: the fixed string doubleclicksearch#conversionList.", + "default": "doubleclicksearch#conversionList" + } + } + }, + "CustomDimension": { + "id": "CustomDimension", + "type": "object", + "description": "A message containing the custome dimension.", + "properties": { + "name": { + "type": "string", + "description": "Custom dimension name." + }, + "value": { + "type": "string", + "description": "Custom dimension value." + } + } + }, + "CustomMetric": { + "id": "CustomMetric", + "type": "object", + "description": "A message containing the custome metric.", + "properties": { + "name": { + "type": "string", + "description": "Custom metric name." + }, + "value": { + "type": "number", + "description": "Custom metric numeric value.", + "format": "double" + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.", + "properties": { + "files": { + "type": "array", + "description": "Asynchronous report only. Contains a list of generated report files once the report has succesfully completed.", + "items": { + "type": "object", + "properties": { + "byteCount": { + "type": "string", + "description": "The size of this report file in bytes.", + "format": "int64" + }, + "url": { + "type": "string", + "description": "Use this url to download the report file." + } + } + } + }, + "id": { + "type": "string", + "description": "Asynchronous report only. Id of the report." + }, + "isReportReady": { + "type": "boolean", + "description": "Asynchronous report only. True if and only if the report has completed successfully and the report files are ready to be downloaded." + }, + "kind": { + "type": "string", + "description": "Identifies this as a Report resource. Value: the fixed string doubleclicksearch#report.", + "default": "doubleclicksearch#report" + }, + "request": { + "$ref": "ReportRequest", + "description": "The request that created the report. Optional fields not specified in the original request are filled with default values." + }, + "rowCount": { + "type": "integer", + "description": "The number of report rows generated by the report, not including headers.", + "format": "int32" + }, + "rows": { + "type": "array", + "description": "Synchronous report only. Generated report rows.", + "items": { + "$ref": "ReportRow" + } + }, + "statisticsCurrencyCode": { + "type": "string", + "description": "The currency code of all monetary values produced in the report, including values that are set by users (e.g., keyword bid settings) and metrics (e.g., cost and revenue). The currency code of a report is determined by the statisticsCurrency field of the report request." + }, + "statisticsTimeZone": { + "type": "string", + "description": "If all statistics of the report are sourced from the same time zone, this would be it. Otherwise the field is unset." + } + } + }, + "ReportApiColumnSpec": { + "id": "ReportApiColumnSpec", + "type": "object", + "description": "A request object used to create a DoubleClick Search report.", + "properties": { + "columnName": { + "type": "string", + "description": "Name of a DoubleClick Search column to include in the report." + }, + "customDimensionName": { + "type": "string", + "description": "Segments a report by a custom dimension. The report must be scoped to an advertiser or lower, and the custom dimension must already be set up in DoubleClick Search. The custom dimension name, which appears in DoubleClick Search, is case sensitive.\nIf used in a conversion report, returns the value of the specified custom dimension for the given conversion, if set. This column does not segment the conversion report." + }, + "customMetricName": { + "type": "string", + "description": "Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive." + }, + "endDate": { + "type": "string", + "description": "Inclusive day in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with startDate." + }, + "groupByColumn": { + "type": "boolean", + "description": "Synchronous report only. Set to true to group by this column. Defaults to false.", + "default": "false" + }, + "headerText": { + "type": "string", + "description": "Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name." + }, + "platformSource": { + "type": "string", + "description": "The platform that is used to provide data for the custom dimension. Acceptable values are \"Floodlight\"." + }, + "savedColumnName": { + "type": "string", + "description": "Name of a saved column to include in the report. The report must be scoped at advertiser or lower, and this saved column must already be created in the DoubleClick Search UI." + }, + "startDate": { + "type": "string", + "description": "Inclusive date in YYYY-MM-DD format. When provided, this overrides the overall time range of the report for this column only. Must be provided together with endDate." + } + } + }, + "ReportRequest": { + "id": "ReportRequest", + "type": "object", + "description": "A request object used to create a DoubleClick Search report.", + "properties": { + "columns": { + "type": "array", + "description": "The columns to include in the report. This includes both DoubleClick Search columns and saved columns. For DoubleClick Search columns, only the columnName parameter is required. For saved columns only the savedColumnName parameter is required. Both columnName and savedColumnName cannot be set in the same stanza.", + "items": { + "$ref": "ReportApiColumnSpec" + } + }, + "downloadFormat": { + "type": "string", + "description": "Format that the report should be returned in. Currently csv or tsv is supported.", + "annotations": { + "required": [ + "doubleclicksearch.reports.request" + ] + } + }, + "filters": { + "type": "array", + "description": "A list of filters to be applied to the report.", + "items": { + "type": "object", + "properties": { + "column": { + "$ref": "ReportApiColumnSpec", + "description": "Column to perform the filter on. This can be a DoubleClick Search column or a saved column." + }, + "operator": { + "type": "string", + "description": "Operator to use in the filter. See the filter reference for a list of available operators." + }, + "values": { + "type": "array", + "description": "A list of values to filter the column value against.", + "items": { + "type": "any" + } + } + } + } + }, + "includeDeletedEntities": { + "type": "boolean", + "description": "Determines if removed entities should be included in the report. Defaults to false. Deprecated, please use includeRemovedEntities instead.", + "default": "false" + }, + "includeRemovedEntities": { + "type": "boolean", + "description": "Determines if removed entities should be included in the report. Defaults to false.", + "default": "false" + }, + "maxRowsPerFile": { + "type": "integer", + "description": "Asynchronous report only. The maximum number of rows per report file. A large report is split into many files based on this field. Acceptable values are 1000000 to 100000000, inclusive.", + "format": "int32", + "minimum": "1000000", + "maximum": "100000000", + "annotations": { + "required": [ + "doubleclicksearch.reports.request" + ] + } + }, + "orderBy": { + "type": "array", + "description": "Synchronous report only. A list of columns and directions defining sorting to be performed on the report rows.", + "items": { + "type": "object", + "properties": { + "column": { + "$ref": "ReportApiColumnSpec", + "description": "Column to perform the sort on. This can be a DoubleClick Search-defined column or a saved column." + }, + "sortOrder": { + "type": "string", + "description": "The sort direction, which is either ascending or descending." + } + } + } + }, + "reportScope": { + "type": "object", + "description": "The reportScope is a set of IDs that are used to determine which subset of entities will be returned in the report. The full lineage of IDs from the lowest scoped level desired up through agency is required.", + "properties": { + "adGroupId": { + "type": "string", + "description": "DS ad group ID.", + "format": "int64" + }, + "adId": { + "type": "string", + "description": "DS ad ID.", + "format": "int64" + }, + "advertiserId": { + "type": "string", + "description": "DS advertiser ID.", + "format": "int64" + }, + "agencyId": { + "type": "string", + "description": "DS agency ID.", + "format": "int64" + }, + "campaignId": { + "type": "string", + "description": "DS campaign ID.", + "format": "int64" + }, + "engineAccountId": { + "type": "string", + "description": "DS engine account ID.", + "format": "int64" + }, + "keywordId": { + "type": "string", + "description": "DS keyword ID.", + "format": "int64" + } + } + }, + "reportType": { + "type": "string", + "description": "Determines the type of rows that are returned in the report. For example, if you specify reportType: keyword, each row in the report will contain data about a keyword. See the Types of Reports reference for the columns that are available for each type.", + "annotations": { + "required": [ + "doubleclicksearch.reports.generate", + "doubleclicksearch.reports.request" + ] + } + }, + "rowCount": { + "type": "integer", + "description": "Synchronous report only. The maxinum number of rows to return; additional rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to 10000.", + "default": "10000", + "format": "int32", + "minimum": "0", + "maximum": "10000", + "annotations": { + "required": [ + "doubleclicksearch.reports.generate" + ] + } + }, + "startRow": { + "type": "integer", + "description": "Synchronous report only. Zero-based index of the first row to return. Acceptable values are 0 to 50000, inclusive. Defaults to 0.", + "default": "0", + "format": "int32", + "minimum": "0", + "maximum": "50000", + "annotations": { + "required": [ + "doubleclicksearch.reports.generate" + ] + } + }, + "statisticsCurrency": { + "type": "string", + "description": "Specifies the currency in which monetary will be returned. Possible values are: usd, agency (valid if the report is scoped to agency or lower), advertiser (valid if the report is scoped to * advertiser or lower), or account (valid if the report is scoped to engine account or lower).", + "annotations": { + "required": [ + "doubleclicksearch.reports.generate", + "doubleclicksearch.reports.request" + ] + } + }, + "timeRange": { + "type": "object", + "description": "If metrics are requested in a report, this argument will be used to restrict the metrics to a specific time range.", + "properties": { + "changedAttributesSinceTimestamp": { + "type": "string", + "description": "Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed attribute reports work.", + "format": "date-time" + }, + "changedMetricsSinceTimestamp": { + "type": "string", + "description": "Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See additional references on how changed metrics reports work.", + "format": "date-time" + }, + "endDate": { + "type": "string", + "description": "Inclusive date in YYYY-MM-DD format." + }, + "startDate": { + "type": "string", + "description": "Inclusive date in YYYY-MM-DD format." + } + } + }, + "verifySingleTimeZone": { + "type": "boolean", + "description": "If true, the report would only be created if all the requested stat data are sourced from a single timezone. Defaults to false.", + "default": "false" + } + } + }, + "ReportRow": { + "id": "ReportRow", + "type": "object", + "description": "A row in a DoubleClick Search report.", + "additionalProperties": { + "type": "any", + "description": "Indicates the columns that are represented in this row. That is, each key corresponds to a column with a non-empty cell in this row." + } + }, + "SavedColumn": { + "id": "SavedColumn", + "type": "object", + "description": "A saved column", + "properties": { + "kind": { + "type": "string", + "description": "Identifies this as a SavedColumn resource. Value: the fixed string doubleclicksearch#savedColumn.", + "default": "doubleclicksearch#savedColumn" + }, + "savedColumnName": { + "type": "string", + "description": "The name of the saved column." + }, + "type": { + "type": "string", + "description": "The type of data this saved column will produce." + } + } + }, + "SavedColumnList": { + "id": "SavedColumnList", + "type": "object", + "description": "A list of saved columns. Advertisers create saved columns to report on Floodlight activities, Google Analytics goals, or custom KPIs. To request reports with saved columns, you'll need the saved column names that are available from this list.", + "properties": { + "items": { + "type": "array", + "description": "The saved columns being requested.", + "items": { + "$ref": "SavedColumn" + } + }, + "kind": { + "type": "string", + "description": "Identifies this as a SavedColumnList resource. Value: the fixed string doubleclicksearch#savedColumnList.", + "default": "doubleclicksearch#savedColumnList" + } + } + }, + "UpdateAvailabilityRequest": { + "id": "UpdateAvailabilityRequest", + "type": "object", + "description": "The request to update availability.", + "properties": { + "availabilities": { + "type": "array", + "description": "The availabilities being requested.", + "items": { + "$ref": "Availability" + } + } + } + }, + "UpdateAvailabilityResponse": { + "id": "UpdateAvailabilityResponse", + "type": "object", + "description": "The response to a update availability request.", + "properties": { + "availabilities": { + "type": "array", + "description": "The availabilities being returned.", + "items": { + "$ref": "Availability" + } + } + } + } + }, + "resources": { + "conversion": { + "methods": { + "get": { + "id": "doubleclicksearch.conversion.get", + "path": "agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion", + "httpMethod": "GET", + "description": "Retrieves a list of conversions from a DoubleClick Search engine account.", + "parameters": { + "adGroupId": { + "type": "string", + "description": "Numeric ID of the ad group.", + "format": "int64", + "location": "query" + }, + "adId": { + "type": "string", + "description": "Numeric ID of the ad.", + "format": "int64", + "location": "query" + }, + "advertiserId": { + "type": "string", + "description": "Numeric ID of the advertiser.", + "required": true, + "format": "int64", + "location": "path" + }, + "agencyId": { + "type": "string", + "description": "Numeric ID of the agency.", + "required": true, + "format": "int64", + "location": "path" + }, + "campaignId": { + "type": "string", + "description": "Numeric ID of the campaign.", + "format": "int64", + "location": "query" + }, + "criterionId": { + "type": "string", + "description": "Numeric ID of the criterion.", + "format": "int64", + "location": "query" + }, + "endDate": { + "type": "integer", + "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "required": true, + "format": "int32", + "minimum": "20091101", + "maximum": "99991231", + "location": "query" + }, + "engineAccountId": { + "type": "string", + "description": "Numeric ID of the engine account.", + "required": true, + "format": "int64", + "location": "path" + }, + "rowCount": { + "type": "integer", + "description": "The number of conversions to return per call.", + "required": true, + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "startDate": { + "type": "integer", + "description": "First date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "required": true, + "format": "int32", + "minimum": "20091101", + "maximum": "99991231", + "location": "query" + }, + "startRow": { + "type": "integer", + "description": "The 0-based starting index for retrieving conversions results.", + "required": true, + "format": "uint32", + "location": "query" + } + }, + "parameterOrder": [ + "agencyId", + "advertiserId", + "engineAccountId", + "endDate", + "rowCount", + "startDate", + "startRow" + ], + "response": { + "$ref": "ConversionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "insert": { + "id": "doubleclicksearch.conversion.insert", + "path": "conversion", + "httpMethod": "POST", + "description": "Inserts a batch of new conversions into DoubleClick Search.", + "request": { + "$ref": "ConversionList" + }, + "response": { + "$ref": "ConversionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "patch": { + "id": "doubleclicksearch.conversion.patch", + "path": "conversion", + "httpMethod": "PATCH", + "description": "Updates a batch of conversions in DoubleClick Search. This method supports patch semantics.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Numeric ID of the advertiser.", + "required": true, + "format": "int64", + "location": "query" + }, + "agencyId": { + "type": "string", + "description": "Numeric ID of the agency.", + "required": true, + "format": "int64", + "location": "query" + }, + "endDate": { + "type": "integer", + "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "required": true, + "format": "int32", + "minimum": "20091101", + "maximum": "99991231", + "location": "query" + }, + "engineAccountId": { + "type": "string", + "description": "Numeric ID of the engine account.", + "required": true, + "format": "int64", + "location": "query" + }, + "rowCount": { + "type": "integer", + "description": "The number of conversions to return per call.", + "required": true, + "format": "int32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "startDate": { + "type": "integer", + "description": "First date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "required": true, + "format": "int32", + "minimum": "20091101", + "maximum": "99991231", + "location": "query" + }, + "startRow": { + "type": "integer", + "description": "The 0-based starting index for retrieving conversions results.", + "required": true, + "format": "uint32", + "location": "query" + } + }, + "parameterOrder": [ + "advertiserId", + "agencyId", + "endDate", + "engineAccountId", + "rowCount", + "startDate", + "startRow" + ], + "request": { + "$ref": "ConversionList" + }, + "response": { + "$ref": "ConversionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "update": { + "id": "doubleclicksearch.conversion.update", + "path": "conversion", + "httpMethod": "PUT", + "description": "Updates a batch of conversions in DoubleClick Search.", + "request": { + "$ref": "ConversionList" + }, + "response": { + "$ref": "ConversionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "updateAvailability": { + "id": "doubleclicksearch.conversion.updateAvailability", + "path": "conversion/updateAvailability", + "httpMethod": "POST", + "description": "Updates the availabilities of a batch of floodlight activities in DoubleClick Search.", + "request": { + "$ref": "UpdateAvailabilityRequest", + "parameterName": "empty" + }, + "response": { + "$ref": "UpdateAvailabilityResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + }, + "reports": { + "methods": { + "generate": { + "id": "doubleclicksearch.reports.generate", + "path": "reports/generate", + "httpMethod": "POST", + "description": "Generates and returns a report immediately.", + "request": { + "$ref": "ReportRequest", + "parameterName": "reportRequest" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "get": { + "id": "doubleclicksearch.reports.get", + "path": "reports/{reportId}", + "httpMethod": "GET", + "description": "Polls for the status of a report request.", + "parameters": { + "reportId": { + "type": "string", + "description": "ID of the report request being polled.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "reportId" + ], + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, + "getFile": { + "id": "doubleclicksearch.reports.getFile", + "path": "reports/{reportId}/files/{reportFragment}", + "httpMethod": "GET", + "description": "Downloads a report file.", + "parameters": { + "reportFragment": { + "type": "integer", + "description": "The index of the report fragment to download.", + "required": true, + "format": "int32", + "minimum": "0", + "location": "path" + }, + "reportId": { + "type": "string", + "description": "ID of the report.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "reportId", + "reportFragment" + ], + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ], + "supportsMediaDownload": true + }, + "request": { + "id": "doubleclicksearch.reports.request", + "path": "reports", + "httpMethod": "POST", + "description": "Inserts a report request into the reporting system.", + "request": { + "$ref": "ReportRequest", + "parameterName": "reportRequest" + }, + "response": { + "$ref": "Report" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + }, + "savedColumns": { + "methods": { + "list": { + "id": "doubleclicksearch.savedColumns.list", + "path": "agency/{agencyId}/advertiser/{advertiserId}/savedcolumns", + "httpMethod": "GET", + "description": "Retrieve the list of saved columns for a specified advertiser.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "DS ID of the advertiser.", + "required": true, + "format": "int64", + "location": "path" + }, + "agencyId": { + "type": "string", + "description": "DS ID of the agency.", + "required": true, + "format": "int64", + "location": "path" + } + }, + "parameterOrder": [ + "agencyId", + "advertiserId" + ], + "response": { + "$ref": "SavedColumnList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + } + } + } + } +} diff --git a/etc/api/drive/v1/drive-api.json b/etc/api/drive/v1/drive-api.json new file mode 100644 index 0000000000..95436ffca5 --- /dev/null +++ b/etc/api/drive/v1/drive-api.json @@ -0,0 +1,418 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/L-3fUMUnxAbeUiUzcuNcz8B5ukA\"", + "discoveryVersion": "v1", + "id": "drive:v1", + "name": "drive", + "version": "v1", + "revision": "20141212", + "title": "Drive API", + "description": "The API to interact with Drive.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", + "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" + }, + "documentationLink": "https://developers.google.com/drive/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/drive/v1/", + "basePath": "/drive/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "drive/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/drive.file": { + "description": "View and manage Google Drive files that you have opened or created with this app" + } + } + } + }, + "schemas": { + "File": { + "id": "File", + "type": "object", + "description": "The metadata for a file.", + "properties": { + "createdDate": { + "type": "string", + "description": "Create time for this file (formatted RFC 3339 timestamp).", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "A short description of the file" + }, + "downloadUrl": { + "type": "string", + "description": "Short term download URL for the file. This will only be populated on files with content stored in Drive." + }, + "etag": { + "type": "string", + "description": "ETag of the file." + }, + "fileExtension": { + "type": "string", + "description": "The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive." + }, + "fileSize": { + "type": "string", + "description": "The size of the file in bytes. This will only be populated on files with content stored in Drive.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The id of the file." + }, + "indexableText": { + "type": "object", + "description": "Indexable text attributes for the file (can only be written)", + "properties": { + "text": { + "type": "string", + "description": "The text to be indexed for this file" + } + } + }, + "kind": { + "type": "string", + "description": "The type of file. This is always drive#file", + "default": "drive#file" + }, + "labels": { + "type": "object", + "description": "Labels for the file.", + "properties": { + "hidden": { + "type": "boolean", + "description": "Whether this file is hidden from the user" + }, + "starred": { + "type": "boolean", + "description": "Whether this file is starred by the user." + }, + "trashed": { + "type": "boolean", + "description": "Whether this file has been trashed." + } + } + }, + "lastViewedDate": { + "type": "string", + "description": "Last time this file was viewed by the user (formatted RFC 3339 timestamp).", + "format": "date-time" + }, + "md5Checksum": { + "type": "string", + "description": "An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive." + }, + "mimeType": { + "type": "string", + "description": "The mimetype of the file" + }, + "modifiedByMeDate": { + "type": "string", + "description": "Last time this file was modified by the user (formatted RFC 3339 timestamp).", + "format": "date-time" + }, + "modifiedDate": { + "type": "string", + "description": "Last time this file was modified by anyone (formatted RFC 3339 timestamp).", + "format": "date-time" + }, + "parentsCollection": { + "type": "array", + "description": "Collection of parent folders which contain this file.\nOn insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of this parent" + }, + "parentLink": { + "type": "string", + "description": "A link to get the metadata for this parent" + } + } + } + }, + "selfLink": { + "type": "string", + "description": "A link back to this file." + }, + "title": { + "type": "string", + "description": "The title of this file." + }, + "userPermission": { + "$ref": "Permission", + "description": "The permissions for the authenticated user on this file." + } + } + }, + "Permission": { + "id": "Permission", + "type": "object", + "description": "A single permission for a file.", + "properties": { + "additionalRoles": { + "type": "array", + "description": "Any additional roles that this permission describes.", + "items": { + "type": "string" + } + }, + "etag": { + "type": "string", + "description": "An etag for this permission." + }, + "kind": { + "type": "string", + "description": "The kind of this permission. This is always drive#permission", + "default": "drive#permission" + }, + "role": { + "type": "string", + "description": "The role that this permission describes. (For example: reader, writer, owner)" + }, + "type": { + "type": "string", + "description": "The type of permission (For example: user, group etc)." + } + } + } + }, + "resources": { + "files": { + "methods": { + "get": { + "id": "drive.files.get", + "path": "files/{id}", + "httpMethod": "GET", + "description": "Gets a file's metadata by id.", + "parameters": { + "id": { + "type": "string", + "description": "The id for the file in question.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "This parameter is deprecated and has no function.", + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Deprecated", + "Deprecated" + ], + "location": "query" + }, + "updateViewedDate": { + "type": "boolean", + "description": "Whether to update the view date after successfully retrieving the file.", + "default": "true", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.file" + ] + }, + "insert": { + "id": "drive.files.insert", + "path": "files", + "httpMethod": "POST", + "description": "Inserts a file, and any settable metadata or blob content sent with the request.", + "request": { + "$ref": "File" + }, + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.file" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "5120GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/drive/v1/files" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/drive/v1/files" + } + } + } + }, + "patch": { + "id": "drive.files.patch", + "path": "files/{id}", + "httpMethod": "PATCH", + "description": "Updates file metadata and/or content. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "The id for the file in question.", + "required": true, + "location": "path" + }, + "newRevision": { + "type": "boolean", + "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).", + "default": "true", + "location": "query" + }, + "updateModifiedDate": { + "type": "boolean", + "description": "Controls updating the modified date of the file. If true, the modified date will be updated to the current time, regardless of whether other changes are being made. If false, the modified date will only be updated to the current time if other changes are also being made (changing the title, for example).", + "default": "false", + "location": "query" + }, + "updateViewedDate": { + "type": "boolean", + "description": "Whether to update the view date after successfully updating the file.", + "default": "true", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "File" + }, + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.file" + ] + }, + "update": { + "id": "drive.files.update", + "path": "files/{id}", + "httpMethod": "PUT", + "description": "Updates file metadata and/or content", + "parameters": { + "id": { + "type": "string", + "description": "The id for the file in question.", + "required": true, + "location": "path" + }, + "newRevision": { + "type": "boolean", + "description": "Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous revisions are preserved (causing increased use of the user's data storage quota).", + "default": "true", + "location": "query" + }, + "updateModifiedDate": { + "type": "boolean", + "description": "Controls updating the modified date of the file. If true, the modified date will be updated to the current time, regardless of whether other changes are being made. If false, the modified date will only be updated to the current time if other changes are also being made (changing the title, for example).", + "default": "false", + "location": "query" + }, + "updateViewedDate": { + "type": "boolean", + "description": "Whether to update the view date after successfully updating the file.", + "default": "true", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "File" + }, + "response": { + "$ref": "File" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.file" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "5120GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/drive/v1/files/{id}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/drive/v1/files/{id}" + } + } + } + } + } + } + } +} diff --git a/etc/api/fitness/v1/fitness-api.json b/etc/api/fitness/v1/fitness-api.json new file mode 100644 index 0000000000..c5c4f587b0 --- /dev/null +++ b/etc/api/fitness/v1/fitness-api.json @@ -0,0 +1,1040 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/lDyElxcTuD_AINzagoHaFK_1_Y4\"", + "discoveryVersion": "v1", + "id": "fitness:v1", + "name": "fitness", + "version": "v1", + "revision": "20150222", + "title": "Fitness", + "description": "Google Fit API", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/fit/rest/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/fitness/v1/users/", + "basePath": "/fitness/v1/users/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "fitness/v1/users/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/fitness.activity.read": { + "description": "View your activity information in Google Fit" + }, + "https://www.googleapis.com/auth/fitness.activity.write": { + "description": "View and store your activity information in Google Fit" + }, + "https://www.googleapis.com/auth/fitness.body.read": { + "description": "View body sensor information in Google Fit" + }, + "https://www.googleapis.com/auth/fitness.body.write": { + "description": "View and store body sensor data in Google Fit" + }, + "https://www.googleapis.com/auth/fitness.location.read": { + "description": "View your stored location data in Google Fit" + }, + "https://www.googleapis.com/auth/fitness.location.write": { + "description": "View and store your location data in Google Fit" + } + } + } + }, + "schemas": { + "Application": { + "id": "Application", + "type": "object", + "description": "See: google3/java/com/google/android/apps/heart/platform/api/Application.java", + "properties": { + "detailsUrl": { + "type": "string", + "description": "An optional URI that can be used to link back to the application." + }, + "name": { + "type": "string", + "description": "The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update", + "fitness.users.sessions.update" + ] + } + }, + "packageName": { + "type": "string", + "description": "Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName." + }, + "version": { + "type": "string", + "description": "Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data." + } + } + }, + "DataPoint": { + "id": "DataPoint", + "type": "object", + "description": "Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type.\n\nA data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type.\n\nData points always contain one value for each field of the data type.", + "properties": { + "computationTimeMillis": { + "type": "string", + "description": "Used for version checking during transformation; that is, a datapoint can only replace another datapoint that has an older computation time stamp.", + "format": "int64" + }, + "dataTypeName": { + "type": "string", + "description": "The data type defining the format of the values in this data point.", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "endTimeNanos": { + "type": "string", + "description": "The end time of the interval represented by this data point, in nanoseconds since epoch.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "modifiedTimeMillis": { + "type": "string", + "description": "Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.", + "format": "int64" + }, + "originDataSourceId": { + "type": "string", + "description": "If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally." + }, + "rawTimestampNanos": { + "type": "string", + "description": "The raw timestamp from the original SensorEvent.", + "format": "int64" + }, + "startTimeNanos": { + "type": "string", + "description": "The start time of the interval represented by this data point, in nanoseconds since epoch.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "value": { + "type": "array", + "description": "Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source.\n\nOnly one of integer and floating point fields will be populated, depending on the format enum value within data source's type field.", + "items": { + "$ref": "Value" + }, + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + } + } + }, + "DataSource": { + "id": "DataSource", + "type": "object", + "description": "Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.\n\nThe data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.\n\nEach data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.", + "properties": { + "application": { + "$ref": "Application", + "description": "Information about an application which feeds sensor data into the platform.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "dataStreamId": { + "type": "string", + "description": "A unique identifier for the data stream produced by this data source. The identifier includes:\n\n \n- The physical device's manufacturer, model, and serial number (UID). \n- The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client. \n- The data source's type. \n- The data source's stream name. Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.\n\nThe exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName \n\nThe exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName \n\nWhen any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number\n\nFinally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.", + "annotations": { + "required": [ + "fitness.users.dataSources.update" + ] + } + }, + "dataStreamName": { + "type": "string", + "description": "The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors." + }, + "dataType": { + "$ref": "DataType", + "description": "The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "device": { + "$ref": "Device", + "description": "Representation of an integrated device (such as a phone or a wearable) that can hold sensors.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "name": { + "type": "string", + "description": "An end-user visible name for this data source." + }, + "type": { + "type": "string", + "description": "A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.", + "enum": [ + "derived", + "raw" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + } + } + }, + "DataType": { + "id": "DataType", + "type": "object", + "description": "See: google3/java/com/google/android/apps/heart/platform/api/DataType.java", + "properties": { + "field": { + "type": "array", + "description": "A field represents one dimension of a data type.", + "items": { + "$ref": "DataTypeField" + }, + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "name": { + "type": "string", + "description": "Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + } + } + }, + "DataTypeField": { + "id": "DataTypeField", + "type": "object", + "description": "In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).\n\nThis message is only instantiated in code and not used for wire comms or stored in any way.", + "properties": { + "format": { + "type": "string", + "description": "The different supported formats for each field in a data type.", + "enum": [ + "floatPoint", + "integer" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "name": { + "type": "string", + "description": "Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "optional": { + "type": "boolean" + } + } + }, + "Dataset": { + "id": "Dataset", + "type": "object", + "description": "A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.", + "properties": { + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source that created the points in this dataset.", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "maxEndTimeNs": { + "type": "string", + "description": "The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "minStartTimeNs": { + "type": "string", + "description": "The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + }, + "nextPageToken": { + "type": "string", + "description": "This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset." + }, + "point": { + "type": "array", + "description": "A partial list of data points contained in the dataset, ordered by largest endTimeNanos first. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.", + "items": { + "$ref": "DataPoint" + }, + "annotations": { + "required": [ + "fitness.users.dataSources.datasets.patch" + ] + } + } + } + }, + "Device": { + "id": "Device", + "type": "object", + "description": "Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source.\n\nThe main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including: \n- Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)\n- Display the source of data to the user (by using the device make / model)\n- Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)\n- Build different analysis models for each device/version.", + "properties": { + "manufacturer": { + "type": "string", + "description": "Manufacturer of the product/hardware.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "model": { + "type": "string", + "description": "End-user visible model name for the device.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "type": { + "type": "string", + "description": "A constant representing the type of the device.", + "enum": [ + "chestStrap", + "phone", + "scale", + "tablet", + "unknown", + "watch" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "uid": { + "type": "string", + "description": "The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + }, + "version": { + "type": "string", + "description": "Version string for the device hardware/software.", + "annotations": { + "required": [ + "fitness.users.dataSources.create", + "fitness.users.dataSources.update" + ] + } + } + } + }, + "ListDataSourcesResponse": { + "id": "ListDataSourcesResponse", + "type": "object", + "properties": { + "dataSource": { + "type": "array", + "description": "A previously created data source.", + "items": { + "$ref": "DataSource" + } + } + } + }, + "ListSessionsResponse": { + "id": "ListSessionsResponse", + "type": "object", + "properties": { + "deletedSession": { + "type": "array", + "description": "If includeDeleted is set to true in the request, this list will contain sessions deleted with original end times that are within the startTime and endTime frame.", + "items": { + "$ref": "Session" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "session": { + "type": "array", + "description": "Sessions with an end time that is between startTime and endTime of the request.", + "items": { + "$ref": "Session" + } + } + } + }, + "Session": { + "id": "Session", + "type": "object", + "description": "Sessions contain metadata, such as a user-friendly name and time interval information.", + "properties": { + "activityType": { + "type": "integer", + "description": "The type of activity this session represents.", + "format": "int32", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + }, + "application": { + "$ref": "Application", + "description": "The application that created the session.", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + }, + "description": { + "type": "string", + "description": "A description for this session." + }, + "endTimeMillis": { + "type": "string", + "description": "An end time, in milliseconds since epoch, inclusive.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + }, + "id": { + "type": "string", + "description": "A client-generated identifier that is unique across all sessions owned by this particular user.", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + }, + "modifiedTimeMillis": { + "type": "string", + "description": "A timestamp that indicates when the session was last modified.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "A human readable name of the session.", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + }, + "startTimeMillis": { + "type": "string", + "description": "A start time, in milliseconds since epoch, inclusive.", + "format": "int64", + "annotations": { + "required": [ + "fitness.users.sessions.update" + ] + } + } + } + }, + "Value": { + "id": "Value", + "type": "object", + "description": "Holder object for the value of a single field in a data point.\n\nA field value has a particular format and is only ever set to one of an integer or a floating point value.", + "properties": { + "fpVal": { + "type": "number", + "description": "Floating point value. When this is set, intVal must not be set.", + "format": "double" + }, + "intVal": { + "type": "integer", + "description": "Integer value. When this is set, fpVal must not be set.", + "format": "int32" + } + } + } + }, + "resources": { + "users": { + "resources": { + "dataSources": { + "methods": { + "create": { + "id": "fitness.users.dataSources.create", + "path": "{userId}/dataSources", + "httpMethod": "POST", + "description": "Creates a new data source that is unique across all data sources belonging to this user. The data stream ID field can be omitted and will be generated by the server with the correct format. The data stream ID is an ordered combination of some fields from the data source. In addition to the data source fields reflected into the data source ID, the developer project number that is authenticated when creating the data source is included. This developer project number is obfuscated when read by any other developer reading public data types.", + "parameters": { + "userId": { + "type": "string", + "description": "Create the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "DataSource" + }, + "response": { + "$ref": "DataSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "get": { + "id": "fitness.users.dataSources.get", + "path": "{userId}/dataSources/{dataSourceId}", + "httpMethod": "GET", + "description": "Returns a data source identified by a data stream ID.", + "parameters": { + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source to retrieve.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Retrieve a data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId" + ], + "response": { + "$ref": "DataSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.read", + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.read", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.read", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "list": { + "id": "fitness.users.dataSources.list", + "path": "{userId}/dataSources", + "httpMethod": "GET", + "description": "Lists all data sources that are visible to the developer, using the OAuth scopes provided. The list is not exhaustive: the user may have private data sources that are only visible to other developers or calls using other scopes.", + "parameters": { + "dataTypeName": { + "type": "string", + "description": "The names of data types to include in the list. If not specified, all data sources will be returned.", + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "List data sources for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListDataSourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.read", + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.read", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.read", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "patch": { + "id": "fitness.users.dataSources.patch", + "path": "{userId}/dataSources/{dataSourceId}", + "httpMethod": "PATCH", + "description": "Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.\n\nData sources are identified by their data stream ID. This method supports patch semantics.", + "parameters": { + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source to update.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Update the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId" + ], + "request": { + "$ref": "DataSource" + }, + "response": { + "$ref": "DataSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "update": { + "id": "fitness.users.dataSources.update", + "path": "{userId}/dataSources/{dataSourceId}", + "httpMethod": "PUT", + "description": "Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.\n\nData sources are identified by their data stream ID.", + "parameters": { + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source to update.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Update the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId" + ], + "request": { + "$ref": "DataSource" + }, + "response": { + "$ref": "DataSource" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.write" + ] + } + }, + "resources": { + "datasets": { + "methods": { + "delete": { + "id": "fitness.users.dataSources.datasets.delete", + "path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", + "httpMethod": "DELETE", + "description": "Performs an inclusive delete of all data points whose start and end times have any overlap with the time range specified by the dataset ID. For most data types, the entire data point will be deleted. For data types where the time span represents a consistent value (such as com.google.activity.segment), and a data point straddles either end point of the dataset, only the overlapping portion of the data point will be deleted.", + "parameters": { + "currentTimeMillis": { + "type": "string", + "description": "The client's current time in milliseconds since epoch.", + "format": "int64", + "location": "query" + }, + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source that created the dataset.", + "required": true, + "location": "path" + }, + "datasetId": { + "type": "string", + "description": "Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: \"startTime-endTime\" where startTime and endTime are 64 bit integers.", + "required": true, + "location": "path" + }, + "modifiedTimeMillis": { + "type": "string", + "description": "When the operation was performed on the client.", + "format": "int64", + "location": "query" + }, + "userId": { + "type": "string", + "description": "Delete a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId", + "datasetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "get": { + "id": "fitness.users.dataSources.datasets.get", + "path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", + "httpMethod": "GET", + "description": "Returns a dataset containing all data points whose start and end times overlap with the specified range of the dataset minimum start time and maximum end time. Specifically, any data point whose start time is less than or equal to the dataset end time and whose end time is greater than or equal to the dataset start time.", + "parameters": { + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source that created the dataset.", + "required": true, + "location": "path" + }, + "datasetId": { + "type": "string", + "description": "Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: \"startTime-endTime\" where startTime and endTime are 64 bit integers.", + "required": true, + "location": "path" + }, + "limit": { + "type": "integer", + "description": "If specified, no more than this many data points will be included in the dataset. If the there are more data points in the dataset, nextPageToken will be set in the dataset response.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large datasets. To get the next page of a dataset, set this parameter to the value of nextPageToken from the previous response. Each subsequent call will yield a partial dataset with data point end timestamps that are strictly smaller than those in the previous partial response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "Retrieve a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId", + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.read", + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.read", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.read", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "patch": { + "id": "fitness.users.dataSources.datasets.patch", + "path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", + "httpMethod": "PATCH", + "description": "Adds data points to a dataset. The dataset need not be previously created. All points within the given dataset will be returned with subsquent calls to retrieve this dataset. Data points can belong to more than one dataset. This method does not use patch semantics.", + "parameters": { + "currentTimeMillis": { + "type": "string", + "description": "The client's current time in milliseconds since epoch. Note that the minStartTimeNs and maxEndTimeNs properties in the request body are in nanoseconds instead of milliseconds.", + "format": "int64", + "location": "query" + }, + "dataSourceId": { + "type": "string", + "description": "The data stream ID of the data source that created the dataset.", + "required": true, + "location": "path" + }, + "datasetId": { + "type": "string", + "description": "Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: \"startTime-endTime\" where startTime and endTime are 64 bit integers.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Patch a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "dataSourceId", + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.write" + ] + } + } + } + } + }, + "sessions": { + "methods": { + "delete": { + "id": "fitness.users.sessions.delete", + "path": "{userId}/sessions/{sessionId}", + "httpMethod": "DELETE", + "description": "Deletes a session specified by the given session ID.", + "parameters": { + "currentTimeMillis": { + "type": "string", + "description": "The client's current time in milliseconds since epoch.", + "format": "int64", + "location": "query" + }, + "sessionId": { + "type": "string", + "description": "The ID of the session to be deleted.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Delete a session for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "sessionId" + ], + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write" + ] + }, + "list": { + "id": "fitness.users.sessions.list", + "path": "{userId}/sessions", + "httpMethod": "GET", + "description": "Lists sessions previously created.", + "parameters": { + "endTime": { + "type": "string", + "description": "An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.", + "location": "query" + }, + "includeDeleted": { + "type": "boolean", + "description": "If true, deleted sessions will be returned. When set to true, sessions returned in this response will only have an ID and will not have any other fields.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "startTime": { + "type": "string", + "description": "An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "List sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListSessionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.read", + "https://www.googleapis.com/auth/fitness.activity.write", + "https://www.googleapis.com/auth/fitness.body.read", + "https://www.googleapis.com/auth/fitness.body.write", + "https://www.googleapis.com/auth/fitness.location.read", + "https://www.googleapis.com/auth/fitness.location.write" + ] + }, + "update": { + "id": "fitness.users.sessions.update", + "path": "{userId}/sessions/{sessionId}", + "httpMethod": "PUT", + "description": "Updates or insert a given session.", + "parameters": { + "currentTimeMillis": { + "type": "string", + "description": "The client's current time in milliseconds since epoch.", + "format": "int64", + "location": "query" + }, + "sessionId": { + "type": "string", + "description": "The ID of the session to be created.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "Create sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "sessionId" + ], + "request": { + "$ref": "Session" + }, + "response": { + "$ref": "Session" + }, + "scopes": [ + "https://www.googleapis.com/auth/fitness.activity.write" + ] + } + } + } + } + } + } +} diff --git a/etc/api/freebase/v1-sandbox/freebase-api.json b/etc/api/freebase/v1-sandbox/freebase-api.json new file mode 100644 index 0000000000..fd98597a38 --- /dev/null +++ b/etc/api/freebase/v1-sandbox/freebase-api.json @@ -0,0 +1,412 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/FwvhaMOD6SZYT0Ouc9Sk-CI5lgY\"", + "discoveryVersion": "v1", + "id": "freebase:v1-sandbox", + "name": "freebase", + "version": "v1-sandbox", + "revision": "20141210", + "title": "Freebase Search", + "description": "Find Freebase entities using textual queries and other constraints.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/freebase-16.png", + "x32": "https://www.google.com/images/icons/product/freebase-32.png" + }, + "documentationLink": "https://developers.google.com/freebase/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/freebase/v1-sandbox/", + "basePath": "/freebase/v1-sandbox/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "freebase/v1-sandbox/", + "batchPath": "batch", + "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": { + "ReconcileCandidate": { + "id": "ReconcileCandidate", + "type": "object", + "properties": { + "confidence": { + "type": "number", + "description": "Percentage likelihood that this candidate is the unique matching entity. Value will be between 0.0 and 1.0", + "format": "float" + }, + "lang": { + "type": "string", + "description": "Language code that candidate and notable names are displayed in." + }, + "mid": { + "type": "string", + "description": "Freebase MID of candidate entity." + }, + "name": { + "type": "string", + "description": "Freebase name of matching entity in specified language." + }, + "notable": { + "type": "object", + "description": "Type or profession the candidate is notable for.", + "properties": { + "id": { + "type": "string", + "description": "MID of notable category." + }, + "name": { + "type": "string", + "description": "Name of notable category in specified language." + } + } + } + } + }, + "ReconcileGet": { + "id": "ReconcileGet", + "type": "object", + "properties": { + "candidate": { + "type": "array", + "description": "If filled, then the listed candidates are potential matches, and such should be evaluated by a more discerning algorithm or human. The matches are ordered by confidence.", + "items": { + "$ref": "ReconcileCandidate" + } + }, + "costs": { + "type": "object", + "description": "Server costs for reconciling.", + "properties": { + "hits": { + "type": "integer", + "description": "Total number of hits found.", + "format": "int32" + }, + "ms": { + "type": "integer", + "description": "Total milliseconds spent.", + "format": "int32" + } + } + }, + "match": { + "$ref": "ReconcileCandidate", + "description": "If filled, this entity is guaranteed to match at requested confidence probability (default 99%)." + }, + "warning": { + "type": "array", + "description": "If filled, then there were recoverable problems that affected the request. For example, some of the properties were ignored because they either are not valid Freebase predicates or are not indexed for reconciliation. The candidates returned should be considered valid results, with the caveat that sections of the request were ignored as specified by the warning text.", + "items": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Location of warning in the request e.g. invalid predicate." + }, + "message": { + "type": "string", + "description": "Warning message to display to the user." + }, + "reason": { + "type": "string", + "description": "Code for identifying classes of warnings." + } + } + } + } + } + } + }, + "methods": { + "reconcile": { + "id": "freebase.reconcile", + "path": "reconcile", + "httpMethod": "GET", + "description": "Reconcile entities to Freebase open data.", + "parameters": { + "confidence": { + "type": "number", + "description": "Required confidence for a candidate to match. Must be between .5 and 1.0", + "default": "0.99", + "format": "float", + "minimum": "0.0", + "maximum": "1.0", + "location": "query" + }, + "kind": { + "type": "string", + "description": "Classifications of entity e.g. type, category, title.", + "repeated": true, + "location": "query" + }, + "lang": { + "type": "string", + "description": "Languages for names and values. First language is used for display. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of candidates to return.", + "default": "3", + "format": "int32", + "minimum": "0", + "maximum": "25", + "location": "query" + }, + "name": { + "type": "string", + "description": "Name of entity.", + "location": "query" + }, + "prop": { + "type": "string", + "description": "Property values for entity formatted as\n:", + "repeated": true, + "location": "query" + } + }, + "response": { + "$ref": "ReconcileGet" + } + }, + "search": { + "id": "freebase.search", + "path": "search", + "httpMethod": "GET", + "description": "Search Freebase open data.", + "parameters": { + "as_of_time": { + "type": "string", + "description": "A mql as_of_time value to use with mql_output queries.", + "location": "query" + }, + "callback": { + "type": "string", + "description": "JS method name for JSONP callbacks.", + "pattern": "([A-Za-z0-9_$.]|\\[|\\])+", + "location": "query" + }, + "cursor": { + "type": "integer", + "description": "The cursor value to use for the next page of results.", + "format": "int32", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Restrict to topics with this Freebase domain id.", + "repeated": true, + "location": "query" + }, + "encode": { + "type": "string", + "description": "The encoding of the response. You can use this parameter to enable html encoding.", + "default": "off", + "enum": [ + "html", + "off" + ], + "enumDescriptions": [ + "Encode certain characters in the response (such as tags and ambersands) using html encoding.", + "No encoding of the response. You should not print the results directly on an web page without html-escaping the content first." + ], + "location": "query" + }, + "exact": { + "type": "boolean", + "description": "Query on exact name and keys only.", + "location": "query" + }, + "filter": { + "type": "string", + "description": "A filter to apply to the query.", + "pattern": "^\\(.*\\)$", + "repeated": true, + "location": "query" + }, + "format": { + "type": "string", + "description": "Structural format of the json response.", + "default": "entity", + "enum": [ + "ac", + "classic", + "entity", + "guids", + "ids", + "mids" + ], + "enumDescriptions": [ + "Compact format useful for autocomplete/suggest UIs.", + "[DEPRECATED] Same format as was returned by api.freebase.com.", + "Basic information about the entities.", + "[DEPRECATED] Ordered list of a freebase guids.", + "Ordered list of freebase ids.", + "Ordered list of freebase mids." + ], + "location": "query" + }, + "help": { + "type": "string", + "description": "The keyword to request help on.", + "enum": [ + "langs", + "mappings", + "predicates" + ], + "enumDescriptions": [ + "The language codes served by the service.", + "The property/path mappings supported by the filter and output request parameters.", + "The predicates and path-terminating properties supported by the filter and output request parameters." + ], + "location": "query" + }, + "indent": { + "type": "boolean", + "description": "Whether to indent the json results or not.", + "location": "query" + }, + "lang": { + "type": "string", + "description": "The code of the language to run the query with. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of results to return.", + "default": "20", + "format": "int32", + "location": "query" + }, + "mid": { + "type": "string", + "description": "A mid to use instead of a query.", + "pattern": "^/[mgtx]/[0-2][0-9bcdfghjklmnpqrstvwxyz_]{1,24}$", + "repeated": true, + "location": "query" + }, + "mql_output": { + "type": "string", + "description": "The MQL query to run againist the results to extract more data.", + "location": "query" + }, + "output": { + "type": "string", + "description": "An output expression to request data from matches.", + "pattern": "^\\(.*\\)$", + "location": "query" + }, + "prefixed": { + "type": "boolean", + "description": "Prefix match against names and aliases.", + "location": "query" + }, + "query": { + "type": "string", + "description": "Query term to search for.", + "location": "query" + }, + "scoring": { + "type": "string", + "description": "Relevance scoring algorithm to use.", + "default": "entity", + "enum": [ + "entity", + "freebase", + "schema" + ], + "enumDescriptions": [ + "Use freebase and popularity entity ranking.", + "Use freebase entity ranking.", + "Use schema ranking for properties and types." + ], + "location": "query" + }, + "spell": { + "type": "string", + "description": "Request 'did you mean' suggestions", + "default": "no_spelling", + "enum": [ + "always", + "no_results", + "no_spelling" + ], + "enumDescriptions": [ + "Request spelling suggestions for any query at least three characters long.", + "Request spelling suggestions if no results were found.", + "Don't request spelling suggestions." + ], + "location": "query" + }, + "stemmed": { + "type": "boolean", + "description": "Query on stemmed names and aliases. May not be used with prefixed.", + "location": "query" + }, + "type": { + "type": "string", + "description": "Restrict to topics with this Freebase type id.", + "repeated": true, + "location": "query" + }, + "with": { + "type": "string", + "description": "A rule to match against.", + "repeated": true, + "location": "query" + }, + "without": { + "type": "string", + "description": "A rule to not match against.", + "repeated": true, + "location": "query" + } + }, + "supportsMediaDownload": true + } + } +} diff --git a/etc/api/freebase/v1/freebase-api.json b/etc/api/freebase/v1/freebase-api.json new file mode 100644 index 0000000000..ef981cc54a --- /dev/null +++ b/etc/api/freebase/v1/freebase-api.json @@ -0,0 +1,412 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/b42JL4j5Mj0i9yGv-ODgLLktQPQ\"", + "discoveryVersion": "v1", + "id": "freebase:v1", + "name": "freebase", + "version": "v1", + "revision": "20141210", + "title": "Freebase Search", + "description": "Find Freebase entities using textual queries and other constraints.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/freebase-16.png", + "x32": "https://www.google.com/images/icons/product/freebase-32.png" + }, + "documentationLink": "https://developers.google.com/freebase/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/freebase/v1/", + "basePath": "/freebase/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "freebase/v1/", + "batchPath": "batch", + "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": { + "ReconcileCandidate": { + "id": "ReconcileCandidate", + "type": "object", + "properties": { + "confidence": { + "type": "number", + "description": "Percentage likelihood that this candidate is the unique matching entity. Value will be between 0.0 and 1.0", + "format": "float" + }, + "lang": { + "type": "string", + "description": "Language code that candidate and notable names are displayed in." + }, + "mid": { + "type": "string", + "description": "Freebase MID of candidate entity." + }, + "name": { + "type": "string", + "description": "Freebase name of matching entity in specified language." + }, + "notable": { + "type": "object", + "description": "Type or profession the candidate is notable for.", + "properties": { + "id": { + "type": "string", + "description": "MID of notable category." + }, + "name": { + "type": "string", + "description": "Name of notable category in specified language." + } + } + } + } + }, + "ReconcileGet": { + "id": "ReconcileGet", + "type": "object", + "properties": { + "candidate": { + "type": "array", + "description": "If filled, then the listed candidates are potential matches, and such should be evaluated by a more discerning algorithm or human. The matches are ordered by confidence.", + "items": { + "$ref": "ReconcileCandidate" + } + }, + "costs": { + "type": "object", + "description": "Server costs for reconciling.", + "properties": { + "hits": { + "type": "integer", + "description": "Total number of hits found.", + "format": "int32" + }, + "ms": { + "type": "integer", + "description": "Total milliseconds spent.", + "format": "int32" + } + } + }, + "match": { + "$ref": "ReconcileCandidate", + "description": "If filled, this entity is guaranteed to match at requested confidence probability (default 99%)." + }, + "warning": { + "type": "array", + "description": "If filled, then there were recoverable problems that affected the request. For example, some of the properties were ignored because they either are not valid Freebase predicates or are not indexed for reconciliation. The candidates returned should be considered valid results, with the caveat that sections of the request were ignored as specified by the warning text.", + "items": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Location of warning in the request e.g. invalid predicate." + }, + "message": { + "type": "string", + "description": "Warning message to display to the user." + }, + "reason": { + "type": "string", + "description": "Code for identifying classes of warnings." + } + } + } + } + } + } + }, + "methods": { + "reconcile": { + "id": "freebase.reconcile", + "path": "reconcile", + "httpMethod": "GET", + "description": "Reconcile entities to Freebase open data.", + "parameters": { + "confidence": { + "type": "number", + "description": "Required confidence for a candidate to match. Must be between .5 and 1.0", + "default": "0.99", + "format": "float", + "minimum": "0.0", + "maximum": "1.0", + "location": "query" + }, + "kind": { + "type": "string", + "description": "Classifications of entity e.g. type, category, title.", + "repeated": true, + "location": "query" + }, + "lang": { + "type": "string", + "description": "Languages for names and values. First language is used for display. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of candidates to return.", + "default": "3", + "format": "int32", + "minimum": "0", + "maximum": "25", + "location": "query" + }, + "name": { + "type": "string", + "description": "Name of entity.", + "location": "query" + }, + "prop": { + "type": "string", + "description": "Property values for entity formatted as\n:", + "repeated": true, + "location": "query" + } + }, + "response": { + "$ref": "ReconcileGet" + } + }, + "search": { + "id": "freebase.search", + "path": "search", + "httpMethod": "GET", + "description": "Search Freebase open data.", + "parameters": { + "as_of_time": { + "type": "string", + "description": "A mql as_of_time value to use with mql_output queries.", + "location": "query" + }, + "callback": { + "type": "string", + "description": "JS method name for JSONP callbacks.", + "pattern": "([A-Za-z0-9_$.]|\\[|\\])+", + "location": "query" + }, + "cursor": { + "type": "integer", + "description": "The cursor value to use for the next page of results.", + "format": "int32", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Restrict to topics with this Freebase domain id.", + "repeated": true, + "location": "query" + }, + "encode": { + "type": "string", + "description": "The encoding of the response. You can use this parameter to enable html encoding.", + "default": "off", + "enum": [ + "html", + "off" + ], + "enumDescriptions": [ + "Encode certain characters in the response (such as tags and ambersands) using html encoding.", + "No encoding of the response. You should not print the results directly on an web page without html-escaping the content first." + ], + "location": "query" + }, + "exact": { + "type": "boolean", + "description": "Query on exact name and keys only.", + "location": "query" + }, + "filter": { + "type": "string", + "description": "A filter to apply to the query.", + "pattern": "^\\(.*\\)$", + "repeated": true, + "location": "query" + }, + "format": { + "type": "string", + "description": "Structural format of the json response.", + "default": "entity", + "enum": [ + "ac", + "classic", + "entity", + "guids", + "ids", + "mids" + ], + "enumDescriptions": [ + "Compact format useful for autocomplete/suggest UIs.", + "[DEPRECATED] Same format as was returned by api.freebase.com.", + "Basic information about the entities.", + "[DEPRECATED] Ordered list of a freebase guids.", + "Ordered list of freebase ids.", + "Ordered list of freebase mids." + ], + "location": "query" + }, + "help": { + "type": "string", + "description": "The keyword to request help on.", + "enum": [ + "langs", + "mappings", + "predicates" + ], + "enumDescriptions": [ + "The language codes served by the service.", + "The property/path mappings supported by the filter and output request parameters.", + "The predicates and path-terminating properties supported by the filter and output request parameters." + ], + "location": "query" + }, + "indent": { + "type": "boolean", + "description": "Whether to indent the json results or not.", + "location": "query" + }, + "lang": { + "type": "string", + "description": "The code of the language to run the query with. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of results to return.", + "default": "20", + "format": "int32", + "location": "query" + }, + "mid": { + "type": "string", + "description": "A mid to use instead of a query.", + "pattern": "^/[mgtx]/[0-2][0-9bcdfghjklmnpqrstvwxyz_]{1,24}$", + "repeated": true, + "location": "query" + }, + "mql_output": { + "type": "string", + "description": "The MQL query to run againist the results to extract more data.", + "location": "query" + }, + "output": { + "type": "string", + "description": "An output expression to request data from matches.", + "pattern": "^\\(.*\\)$", + "location": "query" + }, + "prefixed": { + "type": "boolean", + "description": "Prefix match against names and aliases.", + "location": "query" + }, + "query": { + "type": "string", + "description": "Query term to search for.", + "location": "query" + }, + "scoring": { + "type": "string", + "description": "Relevance scoring algorithm to use.", + "default": "entity", + "enum": [ + "entity", + "freebase", + "schema" + ], + "enumDescriptions": [ + "Use freebase and popularity entity ranking.", + "Use freebase entity ranking.", + "Use schema ranking for properties and types." + ], + "location": "query" + }, + "spell": { + "type": "string", + "description": "Request 'did you mean' suggestions", + "default": "no_spelling", + "enum": [ + "always", + "no_results", + "no_spelling" + ], + "enumDescriptions": [ + "Request spelling suggestions for any query at least three characters long.", + "Request spelling suggestions if no results were found.", + "Don't request spelling suggestions." + ], + "location": "query" + }, + "stemmed": { + "type": "boolean", + "description": "Query on stemmed names and aliases. May not be used with prefixed.", + "location": "query" + }, + "type": { + "type": "string", + "description": "Restrict to topics with this Freebase type id.", + "repeated": true, + "location": "query" + }, + "with": { + "type": "string", + "description": "A rule to match against.", + "repeated": true, + "location": "query" + }, + "without": { + "type": "string", + "description": "A rule to not match against.", + "repeated": true, + "location": "query" + } + }, + "supportsMediaDownload": true + } + } +} diff --git a/etc/api/freebase/v1sandbox/freebase-api.json b/etc/api/freebase/v1sandbox/freebase-api.json new file mode 100644 index 0000000000..6ee89c950d --- /dev/null +++ b/etc/api/freebase/v1sandbox/freebase-api.json @@ -0,0 +1,412 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/9nHTeVvQd2cjR7dq4JoIFQ2AZMU\"", + "discoveryVersion": "v1", + "id": "freebase:v1sandbox", + "name": "freebase", + "version": "v1sandbox", + "revision": "20141210", + "title": "Freebase Search", + "description": "Find Freebase entities using textual queries and other constraints.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/freebase-16.png", + "x32": "https://www.google.com/images/icons/product/freebase-32.png" + }, + "documentationLink": "https://developers.google.com/freebase/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/freebase/v1sandbox/", + "basePath": "/freebase/v1sandbox/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "freebase/v1sandbox/", + "batchPath": "batch", + "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": { + "ReconcileCandidate": { + "id": "ReconcileCandidate", + "type": "object", + "properties": { + "confidence": { + "type": "number", + "description": "Percentage likelihood that this candidate is the unique matching entity. Value will be between 0.0 and 1.0", + "format": "float" + }, + "lang": { + "type": "string", + "description": "Language code that candidate and notable names are displayed in." + }, + "mid": { + "type": "string", + "description": "Freebase MID of candidate entity." + }, + "name": { + "type": "string", + "description": "Freebase name of matching entity in specified language." + }, + "notable": { + "type": "object", + "description": "Type or profession the candidate is notable for.", + "properties": { + "id": { + "type": "string", + "description": "MID of notable category." + }, + "name": { + "type": "string", + "description": "Name of notable category in specified language." + } + } + } + } + }, + "ReconcileGet": { + "id": "ReconcileGet", + "type": "object", + "properties": { + "candidate": { + "type": "array", + "description": "If filled, then the listed candidates are potential matches, and such should be evaluated by a more discerning algorithm or human. The matches are ordered by confidence.", + "items": { + "$ref": "ReconcileCandidate" + } + }, + "costs": { + "type": "object", + "description": "Server costs for reconciling.", + "properties": { + "hits": { + "type": "integer", + "description": "Total number of hits found.", + "format": "int32" + }, + "ms": { + "type": "integer", + "description": "Total milliseconds spent.", + "format": "int32" + } + } + }, + "match": { + "$ref": "ReconcileCandidate", + "description": "If filled, this entity is guaranteed to match at requested confidence probability (default 99%)." + }, + "warning": { + "type": "array", + "description": "If filled, then there were recoverable problems that affected the request. For example, some of the properties were ignored because they either are not valid Freebase predicates or are not indexed for reconciliation. The candidates returned should be considered valid results, with the caveat that sections of the request were ignored as specified by the warning text.", + "items": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Location of warning in the request e.g. invalid predicate." + }, + "message": { + "type": "string", + "description": "Warning message to display to the user." + }, + "reason": { + "type": "string", + "description": "Code for identifying classes of warnings." + } + } + } + } + } + } + }, + "methods": { + "reconcile": { + "id": "freebase.reconcile", + "path": "reconcile", + "httpMethod": "GET", + "description": "Reconcile entities to Freebase open data.", + "parameters": { + "confidence": { + "type": "number", + "description": "Required confidence for a candidate to match. Must be between .5 and 1.0", + "default": "0.99", + "format": "float", + "minimum": "0.0", + "maximum": "1.0", + "location": "query" + }, + "kind": { + "type": "string", + "description": "Classifications of entity e.g. type, category, title.", + "repeated": true, + "location": "query" + }, + "lang": { + "type": "string", + "description": "Languages for names and values. First language is used for display. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of candidates to return.", + "default": "3", + "format": "int32", + "minimum": "0", + "maximum": "25", + "location": "query" + }, + "name": { + "type": "string", + "description": "Name of entity.", + "location": "query" + }, + "prop": { + "type": "string", + "description": "Property values for entity formatted as\n:", + "repeated": true, + "location": "query" + } + }, + "response": { + "$ref": "ReconcileGet" + } + }, + "search": { + "id": "freebase.search", + "path": "search", + "httpMethod": "GET", + "description": "Search Freebase open data.", + "parameters": { + "as_of_time": { + "type": "string", + "description": "A mql as_of_time value to use with mql_output queries.", + "location": "query" + }, + "callback": { + "type": "string", + "description": "JS method name for JSONP callbacks.", + "pattern": "([A-Za-z0-9_$.]|\\[|\\])+", + "location": "query" + }, + "cursor": { + "type": "integer", + "description": "The cursor value to use for the next page of results.", + "format": "int32", + "location": "query" + }, + "domain": { + "type": "string", + "description": "Restrict to topics with this Freebase domain id.", + "repeated": true, + "location": "query" + }, + "encode": { + "type": "string", + "description": "The encoding of the response. You can use this parameter to enable html encoding.", + "default": "off", + "enum": [ + "html", + "off" + ], + "enumDescriptions": [ + "Encode certain characters in the response (such as tags and ambersands) using html encoding.", + "No encoding of the response. You should not print the results directly on an web page without html-escaping the content first." + ], + "location": "query" + }, + "exact": { + "type": "boolean", + "description": "Query on exact name and keys only.", + "location": "query" + }, + "filter": { + "type": "string", + "description": "A filter to apply to the query.", + "pattern": "^\\(.*\\)$", + "repeated": true, + "location": "query" + }, + "format": { + "type": "string", + "description": "Structural format of the json response.", + "default": "entity", + "enum": [ + "ac", + "classic", + "entity", + "guids", + "ids", + "mids" + ], + "enumDescriptions": [ + "Compact format useful for autocomplete/suggest UIs.", + "[DEPRECATED] Same format as was returned by api.freebase.com.", + "Basic information about the entities.", + "[DEPRECATED] Ordered list of a freebase guids.", + "Ordered list of freebase ids.", + "Ordered list of freebase mids." + ], + "location": "query" + }, + "help": { + "type": "string", + "description": "The keyword to request help on.", + "enum": [ + "langs", + "mappings", + "predicates" + ], + "enumDescriptions": [ + "The language codes served by the service.", + "The property/path mappings supported by the filter and output request parameters.", + "The predicates and path-terminating properties supported by the filter and output request parameters." + ], + "location": "query" + }, + "indent": { + "type": "boolean", + "description": "Whether to indent the json results or not.", + "location": "query" + }, + "lang": { + "type": "string", + "description": "The code of the language to run the query with. Default is 'en'.", + "repeated": true, + "location": "query" + }, + "limit": { + "type": "integer", + "description": "Maximum number of results to return.", + "default": "20", + "format": "int32", + "location": "query" + }, + "mid": { + "type": "string", + "description": "A mid to use instead of a query.", + "pattern": "^/[mgtx]/[0-2][0-9bcdfghjklmnpqrstvwxyz_]{1,24}$", + "repeated": true, + "location": "query" + }, + "mql_output": { + "type": "string", + "description": "The MQL query to run againist the results to extract more data.", + "location": "query" + }, + "output": { + "type": "string", + "description": "An output expression to request data from matches.", + "pattern": "^\\(.*\\)$", + "location": "query" + }, + "prefixed": { + "type": "boolean", + "description": "Prefix match against names and aliases.", + "location": "query" + }, + "query": { + "type": "string", + "description": "Query term to search for.", + "location": "query" + }, + "scoring": { + "type": "string", + "description": "Relevance scoring algorithm to use.", + "default": "entity", + "enum": [ + "entity", + "freebase", + "schema" + ], + "enumDescriptions": [ + "Use freebase and popularity entity ranking.", + "Use freebase entity ranking.", + "Use schema ranking for properties and types." + ], + "location": "query" + }, + "spell": { + "type": "string", + "description": "Request 'did you mean' suggestions", + "default": "no_spelling", + "enum": [ + "always", + "no_results", + "no_spelling" + ], + "enumDescriptions": [ + "Request spelling suggestions for any query at least three characters long.", + "Request spelling suggestions if no results were found.", + "Don't request spelling suggestions." + ], + "location": "query" + }, + "stemmed": { + "type": "boolean", + "description": "Query on stemmed names and aliases. May not be used with prefixed.", + "location": "query" + }, + "type": { + "type": "string", + "description": "Restrict to topics with this Freebase type id.", + "repeated": true, + "location": "query" + }, + "with": { + "type": "string", + "description": "A rule to match against.", + "repeated": true, + "location": "query" + }, + "without": { + "type": "string", + "description": "A rule to not match against.", + "repeated": true, + "location": "query" + } + }, + "supportsMediaDownload": true + } + } +} diff --git a/etc/api/games/v1/games-api.json b/etc/api/games/v1/games-api.json new file mode 100644 index 0000000000..f3c3449152 --- /dev/null +++ b/etc/api/games/v1/games-api.json @@ -0,0 +1,4804 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Lk2G3wqb0mjcAChQC6sL6CdXNgs\"", + "discoveryVersion": "v1", + "id": "games:v1", + "name": "games", + "canonicalName": "Games", + "version": "v1", + "revision": "20150119", + "title": "Google Play Game Services API", + "description": "The API for Google Play Game Services.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/games/services/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/games/v1/", + "basePath": "/games/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "games/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/drive.appdata": { + "description": "View and manage its own configuration data in your Google Drive" + }, + "https://www.googleapis.com/auth/games": { + "description": "Share your Google+ profile information and view and manage your game activity" + }, + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + } + } + } + }, + "schemas": { + "AchievementDefinition": { + "id": "AchievementDefinition", + "type": "object", + "description": "This is a JSON template for an achievement definition object.", + "properties": { + "achievementType": { + "type": "string", + "description": "The type of the achievement.\nPossible values are: \n- \"STANDARD\" - Achievement is either locked or unlocked. \n- \"INCREMENTAL\" - Achievement is incremental." + }, + "description": { + "type": "string", + "description": "The description of the achievement." + }, + "experiencePoints": { + "type": "string", + "description": "Experience points which will be earned when unlocking this achievement.", + "format": "int64" + }, + "formattedTotalSteps": { + "type": "string", + "description": "The total steps for an incremental achievement as a string." + }, + "id": { + "type": "string", + "description": "The ID of the achievement." + }, + "initialState": { + "type": "string", + "description": "The initial state of the achievement.\nPossible values are: \n- \"HIDDEN\" - Achievement is hidden. \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "isRevealedIconUrlDefault": { + "type": "boolean", + "description": "Indicates whether the revealed icon image being returned is a default image, or is provided by the game." + }, + "isUnlockedIconUrlDefault": { + "type": "boolean", + "description": "Indicates whether the unlocked icon image being returned is a default image, or is game-provided." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementDefinition.", + "default": "games#achievementDefinition" + }, + "name": { + "type": "string", + "description": "The name of the achievement." + }, + "revealedIconUrl": { + "type": "string", + "description": "The image URL for the revealed achievement icon." + }, + "totalSteps": { + "type": "integer", + "description": "The total steps for an incremental achievement.", + "format": "int32" + }, + "unlockedIconUrl": { + "type": "string", + "description": "The image URL for the unlocked achievement icon." + } + } + }, + "AchievementDefinitionsListResponse": { + "id": "AchievementDefinitionsListResponse", + "type": "object", + "description": "This is a JSON template for a list of achievement definition objects.", + "properties": { + "items": { + "type": "array", + "description": "The achievement definitions.", + "items": { + "$ref": "AchievementDefinition" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementDefinitionsListResponse.", + "default": "games#achievementDefinitionsListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "AchievementIncrementResponse": { + "id": "AchievementIncrementResponse", + "type": "object", + "description": "This is a JSON template for an achievement increment response", + "properties": { + "currentSteps": { + "type": "integer", + "description": "The current steps recorded for this incremental achievement.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementIncrementResponse.", + "default": "games#achievementIncrementResponse" + }, + "newlyUnlocked": { + "type": "boolean", + "description": "Whether the the current steps for the achievement has reached the number of steps required to unlock." + } + } + }, + "AchievementRevealResponse": { + "id": "AchievementRevealResponse", + "type": "object", + "description": "This is a JSON template for an achievement reveal response", + "properties": { + "currentState": { + "type": "string", + "description": "The current state of the achievement for which a reveal was attempted. This might be UNLOCKED if the achievement was already unlocked.\nPossible values are: \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementRevealResponse.", + "default": "games#achievementRevealResponse" + } + } + }, + "AchievementSetStepsAtLeastResponse": { + "id": "AchievementSetStepsAtLeastResponse", + "type": "object", + "description": "This is a JSON template for an achievement set steps at least response.", + "properties": { + "currentSteps": { + "type": "integer", + "description": "The current steps recorded for this incremental achievement.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementSetStepsAtLeastResponse.", + "default": "games#achievementSetStepsAtLeastResponse" + }, + "newlyUnlocked": { + "type": "boolean", + "description": "Whether the the current steps for the achievement has reached the number of steps required to unlock." + } + } + }, + "AchievementUnlockResponse": { + "id": "AchievementUnlockResponse", + "type": "object", + "description": "This is a JSON template for an achievement unlock response", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUnlockResponse.", + "default": "games#achievementUnlockResponse" + }, + "newlyUnlocked": { + "type": "boolean", + "description": "Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player)." + } + } + }, + "AchievementUpdateMultipleRequest": { + "id": "AchievementUpdateMultipleRequest", + "type": "object", + "description": "This is a JSON template for a list of achievement update requests.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateMultipleRequest.", + "default": "games#achievementUpdateMultipleRequest" + }, + "updates": { + "type": "array", + "description": "The individual achievement update requests.", + "items": { + "$ref": "AchievementUpdateRequest" + } + } + } + }, + "AchievementUpdateMultipleResponse": { + "id": "AchievementUpdateMultipleResponse", + "type": "object", + "description": "This is a JSON template for an achievement unlock response.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateListResponse.", + "default": "games#achievementUpdateMultipleResponse" + }, + "updatedAchievements": { + "type": "array", + "description": "The updated state of the achievements.", + "items": { + "$ref": "AchievementUpdateResponse" + } + } + } + }, + "AchievementUpdateRequest": { + "id": "AchievementUpdateRequest", + "type": "object", + "description": "This is a JSON template for a request to update an achievement.", + "properties": { + "achievementId": { + "type": "string", + "description": "The achievement this update is being applied to." + }, + "incrementPayload": { + "$ref": "GamesAchievementIncrement", + "description": "The payload if an update of type INCREMENT was requested for the achievement." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateRequest.", + "default": "games#achievementUpdateRequest" + }, + "setStepsAtLeastPayload": { + "$ref": "GamesAchievementSetStepsAtLeast", + "description": "The payload if an update of type SET_STEPS_AT_LEAST was requested for the achievement." + }, + "updateType": { + "type": "string", + "description": "The type of update being applied.\nPossible values are: \n- \"REVEAL\" - Achievement is revealed. \n- \"UNLOCK\" - Achievement is unlocked. \n- \"INCREMENT\" - Achievement is incremented. \n- \"SET_STEPS_AT_LEAST\" - Achievement progress is set to at least the passed value." + } + } + }, + "AchievementUpdateResponse": { + "id": "AchievementUpdateResponse", + "type": "object", + "description": "This is a JSON template for an achievement update response.", + "properties": { + "achievementId": { + "type": "string", + "description": "The achievement this update is was applied to." + }, + "currentState": { + "type": "string", + "description": "The current state of the achievement.\nPossible values are: \n- \"HIDDEN\" - Achievement is hidden. \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "currentSteps": { + "type": "integer", + "description": "The current steps recorded for this achievement if it is incremental.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementUpdateResponse.", + "default": "games#achievementUpdateResponse" + }, + "newlyUnlocked": { + "type": "boolean", + "description": "Whether this achievement was newly unlocked (that is, whether the unlock request for the achievement was the first for the player)." + }, + "updateOccurred": { + "type": "boolean", + "description": "Whether the requested updates actually affected the achievement." + } + } + }, + "AggregateStats": { + "id": "AggregateStats", + "type": "object", + "description": "This is a JSON template for aggregate stats.", + "properties": { + "count": { + "type": "string", + "description": "The number of messages sent between a pair of peers.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#aggregateStats.", + "default": "games#aggregateStats" + }, + "max": { + "type": "string", + "description": "The maximum amount.", + "format": "int64" + }, + "min": { + "type": "string", + "description": "The minimum amount.", + "format": "int64" + }, + "sum": { + "type": "string", + "description": "The total number of bytes sent for messages between a pair of peers.", + "format": "int64" + } + } + }, + "AnonymousPlayer": { + "id": "AnonymousPlayer", + "type": "object", + "description": "This is a JSON template for an anonymous player", + "properties": { + "avatarImageUrl": { + "type": "string", + "description": "The base URL for the image to display for the anonymous player." + }, + "displayName": { + "type": "string", + "description": "The name to display for the anonymous player." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.", + "default": "games#anonymousPlayer" + } + } + }, + "Application": { + "id": "Application", + "type": "object", + "description": "This is a JSON template for the Application resource.", + "properties": { + "achievement_count": { + "type": "integer", + "description": "The number of achievements visible to the currently authenticated player.", + "format": "int32" + }, + "assets": { + "type": "array", + "description": "The assets of the application.", + "items": { + "$ref": "ImageAsset" + } + }, + "author": { + "type": "string", + "description": "The author of the application." + }, + "category": { + "$ref": "ApplicationCategory", + "description": "The category of the application." + }, + "description": { + "type": "string", + "description": "The description of the application." + }, + "enabledFeatures": { + "type": "array", + "description": "A list of features that have been enabled for the application.\nPossible values are: \n- \"SNAPSHOTS\" - Snapshots has been enabled", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "The ID of the application." + }, + "instances": { + "type": "array", + "description": "The instances of the application.", + "items": { + "$ref": "Instance" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#application.", + "default": "games#application" + }, + "lastUpdatedTimestamp": { + "type": "string", + "description": "The last updated timestamp of the application.", + "format": "int64" + }, + "leaderboard_count": { + "type": "integer", + "description": "The number of leaderboards visible to the currently authenticated player.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "themeColor": { + "type": "string", + "description": "A hint to the client UI for what color to use as an app-themed color. The color is given as an RGB triplet (e.g. \"E0E0E0\")." + } + } + }, + "ApplicationCategory": { + "id": "ApplicationCategory", + "type": "object", + "description": "This is a JSON template for an application category object.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#applicationCategory.", + "default": "games#applicationCategory" + }, + "primary": { + "type": "string", + "description": "The primary category." + }, + "secondary": { + "type": "string", + "description": "The secondary category." + } + } + }, + "Category": { + "id": "Category", + "type": "object", + "description": "This is a JSON template for data related to individual game categories.", + "properties": { + "category": { + "type": "string", + "description": "The category name." + }, + "experiencePoints": { + "type": "string", + "description": "Experience points earned in this category.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#category.", + "default": "games#category" + } + } + }, + "CategoryListResponse": { + "id": "CategoryListResponse", + "type": "object", + "description": "This is a JSON template for a list of category data objects.", + "properties": { + "items": { + "type": "array", + "description": "The list of categories with usage data.", + "items": { + "$ref": "Category" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#categoryListResponse.", + "default": "games#categoryListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "EventBatchRecordFailure": { + "id": "EventBatchRecordFailure", + "type": "object", + "description": "This is a JSON template for a batch update failure resource.", + "properties": { + "failureCause": { + "type": "string", + "description": "The cause for the update failure.\nPossible values are: \n- \"TOO_LARGE\": A batch request was issued with more events than are allowed in a single batch. \n- \"TIME_PERIOD_EXPIRED\": A batch was sent with data too far in the past to record. \n- \"TIME_PERIOD_SHORT\": A batch was sent with a time range that was too short. \n- \"TIME_PERIOD_LONG\": A batch was sent with a time range that was too long. \n- \"ALREADY_UPDATED\": An attempt was made to record a batch of data which was already seen. \n- \"RECORD_RATE_HIGH\": An attempt was made to record data faster than the server will apply updates." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventBatchRecordFailure.", + "default": "games#eventBatchRecordFailure" + }, + "range": { + "$ref": "EventPeriodRange", + "description": "The time range which was rejected; empty for a request-wide failure." + } + } + }, + "EventChild": { + "id": "EventChild", + "type": "object", + "description": "This is a JSON template for an event child relationship resource.", + "properties": { + "childId": { + "type": "string", + "description": "The ID of the child event." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventChild.", + "default": "games#eventChild" + } + } + }, + "EventDefinition": { + "id": "EventDefinition", + "type": "object", + "description": "This is a JSON template for an event definition resource.", + "properties": { + "childEvents": { + "type": "array", + "description": "A list of events that are a child of this event.", + "items": { + "$ref": "EventChild" + } + }, + "description": { + "type": "string", + "description": "Description of what this event represents." + }, + "displayName": { + "type": "string", + "description": "The name to display for the event." + }, + "id": { + "type": "string", + "description": "The ID of the event." + }, + "imageUrl": { + "type": "string", + "description": "The base URL for the image that represents the event." + }, + "isDefaultImageUrl": { + "type": "boolean", + "description": "Indicates whether the icon image being returned is a default image, or is game-provided." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventDefinition.", + "default": "games#eventDefinition" + }, + "visibility": { + "type": "string", + "description": "The visibility of event being tracked in this definition.\nPossible values are: \n- \"REVEALED\": This event should be visible to all users. \n- \"HIDDEN\": This event should only be shown to users that have recorded this event at least once." + } + } + }, + "EventDefinitionListResponse": { + "id": "EventDefinitionListResponse", + "type": "object", + "description": "This is a JSON template for a ListDefinitions response.", + "properties": { + "items": { + "type": "array", + "description": "The event definitions.", + "items": { + "$ref": "EventDefinition" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventDefinitionListResponse.", + "default": "games#eventDefinitionListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "EventPeriodRange": { + "id": "EventPeriodRange", + "type": "object", + "description": "This is a JSON template for an event period time range.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventPeriodRange.", + "default": "games#eventPeriodRange" + }, + "periodEndMillis": { + "type": "string", + "description": "The time when this update period ends, in millis, since 1970 UTC (Unix Epoch).", + "format": "int64" + }, + "periodStartMillis": { + "type": "string", + "description": "The time when this update period begins, in millis, since 1970 UTC (Unix Epoch).", + "format": "int64" + } + } + }, + "EventPeriodUpdate": { + "id": "EventPeriodUpdate", + "type": "object", + "description": "This is a JSON template for an event period update resource.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventPeriodUpdate.", + "default": "games#eventPeriodUpdate" + }, + "timePeriod": { + "$ref": "EventPeriodRange", + "description": "The time period being covered by this update." + }, + "updates": { + "type": "array", + "description": "The updates being made for this time period.", + "items": { + "$ref": "EventUpdateRequest" + } + } + } + }, + "EventRecordFailure": { + "id": "EventRecordFailure", + "type": "object", + "description": "This is a JSON template for an event update failure resource.", + "properties": { + "eventId": { + "type": "string", + "description": "The ID of the event that was not updated." + }, + "failureCause": { + "type": "string", + "description": "The cause for the update failure.\nPossible values are: \n- \"NOT_FOUND\" - An attempt was made to set an event that was not defined. \n- \"INVALID_UPDATE_VALUE\" - An attempt was made to increment an event by a non-positive value." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventRecordFailure.", + "default": "games#eventRecordFailure" + } + } + }, + "EventRecordRequest": { + "id": "EventRecordRequest", + "type": "object", + "description": "This is a JSON template for an event period update resource.", + "properties": { + "currentTimeMillis": { + "type": "string", + "description": "The current time when this update was sent, in milliseconds, since 1970 UTC (Unix Epoch).", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventRecordRequest.", + "default": "games#eventRecordRequest" + }, + "requestId": { + "type": "string", + "description": "The request ID used to identify this attempt to record events.", + "format": "int64" + }, + "timePeriods": { + "type": "array", + "description": "A list of the time period updates being made in this request.", + "items": { + "$ref": "EventPeriodUpdate" + } + } + } + }, + "EventUpdateRequest": { + "id": "EventUpdateRequest", + "type": "object", + "description": "This is a JSON template for an event period update resource.", + "properties": { + "definitionId": { + "type": "string", + "description": "The ID of the event being modified in this update." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventUpdateRequest.", + "default": "games#eventUpdateRequest" + }, + "updateCount": { + "type": "string", + "description": "The number of times this event occurred in this time period.", + "format": "int64" + } + } + }, + "EventUpdateResponse": { + "id": "EventUpdateResponse", + "type": "object", + "description": "This is a JSON template for an event period update resource.", + "properties": { + "batchFailures": { + "type": "array", + "description": "Any batch-wide failures which occurred applying updates.", + "items": { + "$ref": "EventBatchRecordFailure" + } + }, + "eventFailures": { + "type": "array", + "description": "Any failures updating a particular event.", + "items": { + "$ref": "EventRecordFailure" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#eventUpdateResponse.", + "default": "games#eventUpdateResponse" + }, + "playerEvents": { + "type": "array", + "description": "The current status of any updated events", + "items": { + "$ref": "PlayerEvent" + } + } + } + }, + "GamesAchievementIncrement": { + "id": "GamesAchievementIncrement", + "type": "object", + "description": "This is a JSON template for the payload to request to increment an achievement.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementIncrement.", + "default": "games#GamesAchievementIncrement" + }, + "requestId": { + "type": "string", + "description": "The requestId associated with an increment to an achievement.", + "format": "int64" + }, + "steps": { + "type": "integer", + "description": "The number of steps to be incremented.", + "format": "int32" + } + } + }, + "GamesAchievementSetStepsAtLeast": { + "id": "GamesAchievementSetStepsAtLeast", + "type": "object", + "description": "This is a JSON template for the payload to request to increment an achievement.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#GamesAchievementSetStepsAtLeast.", + "default": "games#GamesAchievementSetStepsAtLeast" + }, + "steps": { + "type": "integer", + "description": "The minimum number of steps for the achievement to be set to.", + "format": "int32" + } + } + }, + "ImageAsset": { + "id": "ImageAsset", + "type": "object", + "description": "This is a JSON template for an image asset object.", + "properties": { + "height": { + "type": "integer", + "description": "The height of the asset.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#imageAsset.", + "default": "games#imageAsset" + }, + "name": { + "type": "string", + "description": "The name of the asset." + }, + "url": { + "type": "string", + "description": "The URL of the asset." + }, + "width": { + "type": "integer", + "description": "The width of the asset.", + "format": "int32" + } + } + }, + "Instance": { + "id": "Instance", + "type": "object", + "description": "This is a JSON template for the Instance resource.", + "properties": { + "acquisitionUri": { + "type": "string", + "description": "URI which shows where a user can acquire this instance." + }, + "androidInstance": { + "$ref": "InstanceAndroidDetails", + "description": "Platform dependent details for Android." + }, + "iosInstance": { + "$ref": "InstanceIosDetails", + "description": "Platform dependent details for iOS." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#instance.", + "default": "games#instance" + }, + "name": { + "type": "string", + "description": "Localized display name." + }, + "platformType": { + "type": "string", + "description": "The platform type.\nPossible values are: \n- \"ANDROID\" - Instance is for Android. \n- \"IOS\" - Instance is for iOS \n- \"WEB_APP\" - Instance is for Web App." + }, + "realtimePlay": { + "type": "boolean", + "description": "Flag to show if this game instance supports realtime play." + }, + "turnBasedPlay": { + "type": "boolean", + "description": "Flag to show if this game instance supports turn based play." + }, + "webInstance": { + "$ref": "InstanceWebDetails", + "description": "Platform dependent details for Web." + } + } + }, + "InstanceAndroidDetails": { + "id": "InstanceAndroidDetails", + "type": "object", + "description": "This is a JSON template for the Android instance details resource.", + "properties": { + "enablePiracyCheck": { + "type": "boolean", + "description": "Flag indicating whether the anti-piracy check is enabled." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#instanceAndroidDetails.", + "default": "games#instanceAndroidDetails" + }, + "packageName": { + "type": "string", + "description": "Android package name which maps to Google Play URL." + }, + "preferred": { + "type": "boolean", + "description": "Indicates that this instance is the default for new installations." + } + } + }, + "InstanceIosDetails": { + "id": "InstanceIosDetails", + "type": "object", + "description": "This is a JSON template for the iOS details resource.", + "properties": { + "bundleIdentifier": { + "type": "string", + "description": "Bundle identifier." + }, + "itunesAppId": { + "type": "string", + "description": "iTunes App ID." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#instanceIosDetails.", + "default": "games#instanceIosDetails" + }, + "preferredForIpad": { + "type": "boolean", + "description": "Indicates that this instance is the default for new installations on iPad devices." + }, + "preferredForIphone": { + "type": "boolean", + "description": "Indicates that this instance is the default for new installations on iPhone devices." + }, + "supportIpad": { + "type": "boolean", + "description": "Flag to indicate if this instance supports iPad." + }, + "supportIphone": { + "type": "boolean", + "description": "Flag to indicate if this instance supports iPhone." + } + } + }, + "InstanceWebDetails": { + "id": "InstanceWebDetails", + "type": "object", + "description": "This is a JSON template for the Web details resource.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#instanceWebDetails.", + "default": "games#instanceWebDetails" + }, + "launchUrl": { + "type": "string", + "description": "Launch URL for the game." + }, + "preferred": { + "type": "boolean", + "description": "Indicates that this instance is the default for new installations." + } + } + }, + "Leaderboard": { + "id": "Leaderboard", + "type": "object", + "description": "This is a JSON template for the Leaderboard resource.", + "properties": { + "iconUrl": { + "type": "string", + "description": "The icon for the leaderboard." + }, + "id": { + "type": "string", + "description": "The leaderboard ID." + }, + "isIconUrlDefault": { + "type": "boolean", + "description": "Indicates whether the icon image being returned is a default image, or is game-provided." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboard.", + "default": "games#leaderboard" + }, + "name": { + "type": "string", + "description": "The name of the leaderboard." + }, + "order": { + "type": "string", + "description": "How scores are ordered.\nPossible values are: \n- \"LARGER_IS_BETTER\" - Larger values are better; scores are sorted in descending order. \n- \"SMALLER_IS_BETTER\" - Smaller values are better; scores are sorted in ascending order." + } + } + }, + "LeaderboardEntry": { + "id": "LeaderboardEntry", + "type": "object", + "description": "This is a JSON template for the Leaderboard Entry resource.", + "properties": { + "formattedScore": { + "type": "string", + "description": "The localized string for the numerical value of this score." + }, + "formattedScoreRank": { + "type": "string", + "description": "The localized string for the rank of this score for this leaderboard." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardEntry.", + "default": "games#leaderboardEntry" + }, + "player": { + "$ref": "Player", + "description": "The player who holds this score." + }, + "scoreRank": { + "type": "string", + "description": "The rank of this score for this leaderboard.", + "format": "int64" + }, + "scoreTag": { + "type": "string", + "description": "Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986." + }, + "scoreValue": { + "type": "string", + "description": "The numerical value of this score.", + "format": "int64" + }, + "timeSpan": { + "type": "string", + "description": "The time span of this high score.\nPossible values are: \n- \"ALL_TIME\" - The score is an all-time high score. \n- \"WEEKLY\" - The score is a weekly high score. \n- \"DAILY\" - The score is a daily high score." + }, + "writeTimestampMillis": { + "type": "string", + "description": "The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.", + "format": "int64" + } + } + }, + "LeaderboardListResponse": { + "id": "LeaderboardListResponse", + "type": "object", + "description": "This is a JSON template for a list of leaderboard objects.", + "properties": { + "items": { + "type": "array", + "description": "The leaderboards.", + "items": { + "$ref": "Leaderboard" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardListResponse.", + "default": "games#leaderboardListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "LeaderboardScoreRank": { + "id": "LeaderboardScoreRank", + "type": "object", + "description": "This is a JSON template for a score rank in a leaderboard.", + "properties": { + "formattedNumScores": { + "type": "string", + "description": "The number of scores in the leaderboard as a string." + }, + "formattedRank": { + "type": "string", + "description": "The rank in the leaderboard as a string." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScoreRank.", + "default": "games#leaderboardScoreRank" + }, + "numScores": { + "type": "string", + "description": "The number of scores in the leaderboard.", + "format": "int64" + }, + "rank": { + "type": "string", + "description": "The rank in the leaderboard.", + "format": "int64" + } + } + }, + "LeaderboardScores": { + "id": "LeaderboardScores", + "type": "object", + "description": "This is a JSON template for a ListScores response.", + "properties": { + "items": { + "type": "array", + "description": "The scores in the leaderboard.", + "items": { + "$ref": "LeaderboardEntry" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardScores.", + "default": "games#leaderboardScores" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + }, + "numScores": { + "type": "string", + "description": "The total number of scores in the leaderboard.", + "format": "int64" + }, + "playerScore": { + "$ref": "LeaderboardEntry", + "description": "The score of the requesting player on the leaderboard. The player's score may appear both here and in the list of scores above. If you are viewing a public leaderboard and the player is not sharing their gameplay information publicly, the scoreRank and formattedScoreRank values will not be present." + }, + "prevPageToken": { + "type": "string", + "description": "The pagination token for the previous page of results." + } + } + }, + "MetagameConfig": { + "id": "MetagameConfig", + "type": "object", + "description": "This is a JSON template for the metagame config resource", + "properties": { + "currentVersion": { + "type": "integer", + "description": "Current version of the metagame configuration data. When this data is updated, the version number will be increased by one.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#metagameConfig.", + "default": "games#metagameConfig" + }, + "playerLevels": { + "type": "array", + "description": "The list of player levels.", + "items": { + "$ref": "PlayerLevel" + } + } + } + }, + "NetworkDiagnostics": { + "id": "NetworkDiagnostics", + "type": "object", + "description": "This is a JSON template for network diagnostics reported for a client.", + "properties": { + "androidNetworkSubtype": { + "type": "integer", + "description": "The Android network subtype.", + "format": "int32" + }, + "androidNetworkType": { + "type": "integer", + "description": "The Android network type.", + "format": "int32" + }, + "iosNetworkType": { + "type": "integer", + "description": "iOS network type as defined in Reachability.h.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#networkDiagnostics.", + "default": "games#networkDiagnostics" + }, + "networkOperatorCode": { + "type": "string", + "description": "The MCC+MNC code for the client's network connection. On Android: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperator() On iOS, see: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html" + }, + "networkOperatorName": { + "type": "string", + "description": "The name of the carrier of the client's network connection. On Android: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName() On iOS: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html#//apple_ref/occ/instp/CTCarrier/carrierName" + }, + "registrationLatencyMillis": { + "type": "integer", + "description": "The amount of time in milliseconds it took for the client to establish a connection with the XMPP server.", + "format": "int32" + } + } + }, + "ParticipantResult": { + "id": "ParticipantResult", + "type": "object", + "description": "This is a JSON template for a result for a match participant.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.", + "default": "games#participantResult" + }, + "participantId": { + "type": "string", + "description": "The ID of the participant." + }, + "placing": { + "type": "integer", + "description": "The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.", + "format": "int32" + }, + "result": { + "type": "string", + "description": "The result of the participant for this match.\nPossible values are: \n- \"MATCH_RESULT_WIN\" - The participant won the match. \n- \"MATCH_RESULT_LOSS\" - The participant lost the match. \n- \"MATCH_RESULT_TIE\" - The participant tied the match. \n- \"MATCH_RESULT_NONE\" - There was no winner for the match (nobody wins or loses this kind of game.) \n- \"MATCH_RESULT_DISCONNECT\" - The participant disconnected / left during the match. \n- \"MATCH_RESULT_DISAGREED\" - Different clients reported different results for this participant." + } + } + }, + "PeerChannelDiagnostics": { + "id": "PeerChannelDiagnostics", + "type": "object", + "description": "This is a JSON template for peer channel diagnostics.", + "properties": { + "bytesReceived": { + "$ref": "AggregateStats", + "description": "Number of bytes received." + }, + "bytesSent": { + "$ref": "AggregateStats", + "description": "Number of bytes sent." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#peerChannelDiagnostics.", + "default": "games#peerChannelDiagnostics" + }, + "numMessagesLost": { + "type": "integer", + "description": "Number of messages lost.", + "format": "int32" + }, + "numMessagesReceived": { + "type": "integer", + "description": "Number of messages received.", + "format": "int32" + }, + "numMessagesSent": { + "type": "integer", + "description": "Number of messages sent.", + "format": "int32" + }, + "numSendFailures": { + "type": "integer", + "description": "Number of send failures.", + "format": "int32" + }, + "roundtripLatencyMillis": { + "$ref": "AggregateStats", + "description": "Roundtrip latency stats in milliseconds." + } + } + }, + "PeerSessionDiagnostics": { + "id": "PeerSessionDiagnostics", + "type": "object", + "description": "This is a JSON template for peer session diagnostics.", + "properties": { + "connectedTimestampMillis": { + "type": "string", + "description": "Connected time in milliseconds.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#peerSessionDiagnostics.", + "default": "games#peerSessionDiagnostics" + }, + "participantId": { + "type": "string", + "description": "The participant ID of the peer." + }, + "reliableChannel": { + "$ref": "PeerChannelDiagnostics", + "description": "Reliable channel diagnostics." + }, + "unreliableChannel": { + "$ref": "PeerChannelDiagnostics", + "description": "Unreliable channel diagnostics." + } + } + }, + "Played": { + "id": "Played", + "type": "object", + "description": "This is a JSON template for metadata about a player playing a game with the currently authenticated user.", + "properties": { + "autoMatched": { + "type": "boolean", + "description": "True if the player was auto-matched with the currently authenticated user." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#played.", + "default": "games#played" + }, + "timeMillis": { + "type": "string", + "description": "The last time the player played the game in milliseconds since the epoch in UTC.", + "format": "int64" + } + } + }, + "Player": { + "id": "Player", + "type": "object", + "description": "This is a JSON template for a Player resource.", + "properties": { + "avatarImageUrl": { + "type": "string", + "description": "The base URL for the image that represents the player." + }, + "displayName": { + "type": "string", + "description": "The name to display for the player." + }, + "experienceInfo": { + "$ref": "PlayerExperienceInfo", + "description": "An object to represent Play Game experience information for the player." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#player.", + "default": "games#player" + }, + "lastPlayedWith": { + "$ref": "Played", + "description": "Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members." + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of the player's name. For some players, these fields may not be present.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name of this player. In some places, this is known as the last name." + }, + "givenName": { + "type": "string", + "description": "The given name of this player. In some places, this is known as the first name." + } + } + }, + "playerId": { + "type": "string", + "description": "The ID of the player." + }, + "title": { + "type": "string", + "description": "The player's title rewarded for their game activities." + } + } + }, + "PlayerAchievement": { + "id": "PlayerAchievement", + "type": "object", + "description": "This is a JSON template for an achievement object.", + "properties": { + "achievementState": { + "type": "string", + "description": "The state of the achievement.\nPossible values are: \n- \"HIDDEN\" - Achievement is hidden. \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "currentSteps": { + "type": "integer", + "description": "The current steps for an incremental achievement.", + "format": "int32" + }, + "experiencePoints": { + "type": "string", + "description": "Experience points earned for the achievement. This field is absent for achievements that have not yet been unlocked and 0 for achievements that have been unlocked by testers but that are unpublished.", + "format": "int64" + }, + "formattedCurrentStepsString": { + "type": "string", + "description": "The current steps for an incremental achievement as a string." + }, + "id": { + "type": "string", + "description": "The ID of the achievement." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievement.", + "default": "games#playerAchievement" + }, + "lastUpdatedTimestamp": { + "type": "string", + "description": "The timestamp of the last modification to this achievement's state.", + "format": "int64" + } + } + }, + "PlayerAchievementListResponse": { + "id": "PlayerAchievementListResponse", + "type": "object", + "description": "This is a JSON template for a list of achievement objects.", + "properties": { + "items": { + "type": "array", + "description": "The achievements.", + "items": { + "$ref": "PlayerAchievement" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerAchievementListResponse.", + "default": "games#playerAchievementListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "PlayerEvent": { + "id": "PlayerEvent", + "type": "object", + "description": "This is a JSON template for an event status resource.", + "properties": { + "definitionId": { + "type": "string", + "description": "The ID of the event definition." + }, + "formattedNumEvents": { + "type": "string", + "description": "The current number of times this event has occurred, as a string. The formatting of this string depends on the configuration of your event in the Play Games Developer Console." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerEvent.", + "default": "games#playerEvent" + }, + "numEvents": { + "type": "string", + "description": "The current number of times this event has occurred.", + "format": "int64" + }, + "playerId": { + "type": "string", + "description": "The ID of the player." + } + } + }, + "PlayerEventListResponse": { + "id": "PlayerEventListResponse", + "type": "object", + "description": "This is a JSON template for a ListByPlayer response.", + "properties": { + "items": { + "type": "array", + "description": "The player events.", + "items": { + "$ref": "PlayerEvent" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerEventListResponse.", + "default": "games#playerEventListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "PlayerExperienceInfo": { + "id": "PlayerExperienceInfo", + "type": "object", + "description": "This is a JSON template for 1P/3P metadata about the player's experience.", + "properties": { + "currentExperiencePoints": { + "type": "string", + "description": "The current number of experience points for the player.", + "format": "int64" + }, + "currentLevel": { + "$ref": "PlayerLevel", + "description": "The current level of the player." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.", + "default": "games#playerExperienceInfo" + }, + "lastLevelUpTimestampMillis": { + "type": "string", + "description": "The timestamp when the player was leveled up, in millis since Unix epoch UTC.", + "format": "int64" + }, + "nextLevel": { + "$ref": "PlayerLevel", + "description": "The next level of the player. If the current level is the maximum level, this should be same as the current level." + } + } + }, + "PlayerLeaderboardScore": { + "id": "PlayerLeaderboardScore", + "type": "object", + "description": "This is a JSON template for a player leaderboard score object.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerLeaderboardScore.", + "default": "games#playerLeaderboardScore" + }, + "leaderboard_id": { + "type": "string", + "description": "The ID of the leaderboard this score is in." + }, + "publicRank": { + "$ref": "LeaderboardScoreRank", + "description": "The public rank of the score in this leaderboard. This object will not be present if the user is not sharing their scores publicly." + }, + "scoreString": { + "type": "string", + "description": "The formatted value of this score." + }, + "scoreTag": { + "type": "string", + "description": "Additional information about the score. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986." + }, + "scoreValue": { + "type": "string", + "description": "The numerical value of this score.", + "format": "int64" + }, + "socialRank": { + "$ref": "LeaderboardScoreRank", + "description": "The social rank of the score in this leaderboard." + }, + "timeSpan": { + "type": "string", + "description": "The time span of this score.\nPossible values are: \n- \"ALL_TIME\" - The score is an all-time score. \n- \"WEEKLY\" - The score is a weekly score. \n- \"DAILY\" - The score is a daily score." + }, + "writeTimestamp": { + "type": "string", + "description": "The timestamp at which this score was recorded, in milliseconds since the epoch in UTC.", + "format": "int64" + } + } + }, + "PlayerLeaderboardScoreListResponse": { + "id": "PlayerLeaderboardScoreListResponse", + "type": "object", + "description": "This is a JSON template for a list of player leaderboard scores.", + "properties": { + "items": { + "type": "array", + "description": "The leaderboard scores.", + "items": { + "$ref": "PlayerLeaderboardScore" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerLeaderboardScoreListResponse.", + "default": "games#playerLeaderboardScoreListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + }, + "player": { + "$ref": "Player", + "description": "The Player resources for the owner of this score." + } + } + }, + "PlayerLevel": { + "id": "PlayerLevel", + "type": "object", + "description": "This is a JSON template for 1P/3P metadata about a user's level.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.", + "default": "games#playerLevel" + }, + "level": { + "type": "integer", + "description": "The level for the user.", + "format": "int32" + }, + "maxExperiencePoints": { + "type": "string", + "description": "The maximum experience points for this level.", + "format": "int64" + }, + "minExperiencePoints": { + "type": "string", + "description": "The minimum experience points for this level.", + "format": "int64" + } + } + }, + "PlayerListResponse": { + "id": "PlayerListResponse", + "type": "object", + "description": "This is a JSON template for a third party player list response.", + "properties": { + "items": { + "type": "array", + "description": "The players.", + "items": { + "$ref": "Player" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerListResponse.", + "default": "games#playerListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "PlayerScore": { + "id": "PlayerScore", + "type": "object", + "description": "This is a JSON template for a player score.", + "properties": { + "formattedScore": { + "type": "string", + "description": "The formatted score for this player score." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerScore.", + "default": "games#playerScore" + }, + "score": { + "type": "string", + "description": "The numerical value for this player score.", + "format": "int64" + }, + "scoreTag": { + "type": "string", + "description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986." + }, + "timeSpan": { + "type": "string", + "description": "The time span for this player score.\nPossible values are: \n- \"ALL_TIME\" - The score is an all-time score. \n- \"WEEKLY\" - The score is a weekly score. \n- \"DAILY\" - The score is a daily score." + } + } + }, + "PlayerScoreListResponse": { + "id": "PlayerScoreListResponse", + "type": "object", + "description": "This is a JSON template for a list of score submission statuses.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreListResponse.", + "default": "games#playerScoreListResponse" + }, + "submittedScores": { + "type": "array", + "description": "The score submissions statuses.", + "items": { + "$ref": "PlayerScoreResponse" + } + } + } + }, + "PlayerScoreResponse": { + "id": "PlayerScoreResponse", + "type": "object", + "description": "This is a JSON template for a list of leaderboard entry resources.", + "properties": { + "beatenScoreTimeSpans": { + "type": "array", + "description": "The time spans where the submitted score is better than the existing score for that time span.\nPossible values are: \n- \"ALL_TIME\" - The score is an all-time score. \n- \"WEEKLY\" - The score is a weekly score. \n- \"DAILY\" - The score is a daily score.", + "items": { + "type": "string" + } + }, + "formattedScore": { + "type": "string", + "description": "The formatted value of the submitted score." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreResponse.", + "default": "games#playerScoreResponse" + }, + "leaderboardId": { + "type": "string", + "description": "The leaderboard ID that this score was submitted to." + }, + "scoreTag": { + "type": "string", + "description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986." + }, + "unbeatenScores": { + "type": "array", + "description": "The scores in time spans that have not been beaten. As an example, the submitted score may be better than the player's DAILY score, but not better than the player's scores for the WEEKLY or ALL_TIME time spans.", + "items": { + "$ref": "PlayerScore" + } + } + } + }, + "PlayerScoreSubmissionList": { + "id": "PlayerScoreSubmissionList", + "type": "object", + "description": "This is a JSON template for a list of score submission requests", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#playerScoreSubmissionList.", + "default": "games#playerScoreSubmissionList" + }, + "scores": { + "type": "array", + "description": "The score submissions.", + "items": { + "$ref": "ScoreSubmission" + } + } + } + }, + "PushToken": { + "id": "PushToken", + "type": "object", + "description": "This is a JSON template for a push token resource.", + "properties": { + "clientRevision": { + "type": "string", + "description": "The revision of the client SDK used by your application, in the same format that's used by revisions.check. Used to send backward compatible messages. Format: [PLATFORM_TYPE]:[VERSION_NUMBER]. Possible values of PLATFORM_TYPE are: \n- IOS - Push token is for iOS" + }, + "id": { + "$ref": "PushTokenId", + "description": "Unique identifier for this push token." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#pushToken.", + "default": "games#pushToken" + }, + "language": { + "type": "string", + "description": "The preferred language for notifications that are sent using this token." + } + } + }, + "PushTokenId": { + "id": "PushTokenId", + "type": "object", + "description": "This is a JSON template for a push token ID resource.", + "properties": { + "ios": { + "type": "object", + "description": "A push token ID for iOS devices.", + "properties": { + "apns_device_token": { + "type": "string", + "description": "Device token supplied by an iOS system call to register for remote notifications. Encode this field as web-safe base64.", + "format": "byte" + }, + "apns_environment": { + "type": "string", + "description": "Indicates whether this token should be used for the production or sandbox APNS server." + } + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#pushTokenId.", + "default": "games#pushTokenId" + } + } + }, + "Quest": { + "id": "Quest", + "type": "object", + "description": "This is a JSON template for a Quest resource.", + "properties": { + "acceptedTimestampMillis": { + "type": "string", + "description": "The timestamp at which the user accepted the quest in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.", + "format": "int64" + }, + "applicationId": { + "type": "string", + "description": "The ID of the application this quest is part of." + }, + "bannerUrl": { + "type": "string", + "description": "The banner image URL for the quest." + }, + "description": { + "type": "string", + "description": "The description of the quest." + }, + "endTimestampMillis": { + "type": "string", + "description": "The timestamp at which the quest ceases to be active in milliseconds since the epoch in UTC.", + "format": "int64" + }, + "iconUrl": { + "type": "string", + "description": "The icon image URL for the quest." + }, + "id": { + "type": "string", + "description": "The ID of the quest." + }, + "isDefaultBannerUrl": { + "type": "boolean", + "description": "Indicates whether the banner image being returned is a default image, or is game-provided." + }, + "isDefaultIconUrl": { + "type": "boolean", + "description": "Indicates whether the icon image being returned is a default image, or is game-provided." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#quest.", + "default": "games#quest" + }, + "lastUpdatedTimestampMillis": { + "type": "string", + "description": "The timestamp at which the quest was last updated by the user in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.", + "format": "int64" + }, + "milestones": { + "type": "array", + "description": "The quest milestones.", + "items": { + "$ref": "QuestMilestone" + } + }, + "name": { + "type": "string", + "description": "The name of the quest." + }, + "notifyTimestampMillis": { + "type": "string", + "description": "The timestamp at which the user should be notified that the quest will end soon in milliseconds since the epoch in UTC.", + "format": "int64" + }, + "startTimestampMillis": { + "type": "string", + "description": "The timestamp at which the quest becomes active in milliseconds since the epoch in UTC.", + "format": "int64" + }, + "state": { + "type": "string", + "description": "The state of the quest.\nPossible values are: \n- \"UPCOMING\": The quest is upcoming. The user can see the quest, but cannot accept it until it is open. \n- \"OPEN\": The quest is currently open and may be accepted at this time. \n- \"ACCEPTED\": The user is currently participating in this quest. \n- \"COMPLETED\": The user has completed the quest. \n- \"FAILED\": The quest was attempted but was not completed before the deadline expired. \n- \"EXPIRED\": The quest has expired and was not accepted. \n- \"DELETED\": The quest should be deleted from the local database." + } + } + }, + "QuestContribution": { + "id": "QuestContribution", + "type": "object", + "description": "This is a JSON template for a Quest Criterion Contribution resource.", + "properties": { + "formattedValue": { + "type": "string", + "description": "The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.", + "default": "games#questContribution" + }, + "value": { + "type": "string", + "description": "The value of the contribution.", + "format": "int64" + } + } + }, + "QuestCriterion": { + "id": "QuestCriterion", + "type": "object", + "description": "This is a JSON template for a Quest Criterion resource.", + "properties": { + "completionContribution": { + "$ref": "QuestContribution", + "description": "The total number of times the associated event must be incremented for the player to complete this quest." + }, + "currentContribution": { + "$ref": "QuestContribution", + "description": "The number of increments the player has made toward the completion count event increments required to complete the quest. This value will not exceed the completion contribution.\nThere will be no currentContribution until the player has accepted the quest." + }, + "eventId": { + "type": "string", + "description": "The ID of the event the criterion corresponds to." + }, + "initialPlayerProgress": { + "$ref": "QuestContribution", + "description": "The value of the event associated with this quest at the time that the quest was accepted. This value may change if event increments that took place before the start of quest are uploaded after the quest starts.\nThere will be no initialPlayerProgress until the player has accepted the quest." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#questCriterion.", + "default": "games#questCriterion" + } + } + }, + "QuestListResponse": { + "id": "QuestListResponse", + "type": "object", + "description": "This is a JSON template for a list of quest objects.", + "properties": { + "items": { + "type": "array", + "description": "The quests.", + "items": { + "$ref": "Quest" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#questListResponse.", + "default": "games#questListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results." + } + } + }, + "QuestMilestone": { + "id": "QuestMilestone", + "type": "object", + "description": "This is a JSON template for a Quest Milestone resource.", + "properties": { + "completionRewardData": { + "type": "string", + "description": "The completion reward data of the milestone, represented as a Base64-encoded string. This is a developer-specified binary blob with size between 0 and 2 KB before encoding.", + "format": "byte" + }, + "criteria": { + "type": "array", + "description": "The criteria of the milestone.", + "items": { + "$ref": "QuestCriterion" + } + }, + "id": { + "type": "string", + "description": "The milestone ID." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#questMilestone.", + "default": "games#questMilestone" + }, + "state": { + "type": "string", + "description": "The current state of the milestone.\nPossible values are: \n- \"COMPLETED_NOT_CLAIMED\" - The milestone is complete, but has not yet been claimed. \n- \"CLAIMED\" - The milestone is complete and has been claimed. \n- \"NOT_COMPLETED\" - The milestone has not yet been completed. \n- \"NOT_STARTED\" - The milestone is for a quest that has not yet been accepted." + } + } + }, + "RevisionCheckResponse": { + "id": "RevisionCheckResponse", + "type": "object", + "description": "This is a JSON template for the result of checking a revision.", + "properties": { + "apiVersion": { + "type": "string", + "description": "The version of the API this client revision should use when calling API methods." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#revisionCheckResponse.", + "default": "games#revisionCheckResponse" + }, + "revisionStatus": { + "type": "string", + "description": "The result of the revision check.\nPossible values are: \n- \"OK\" - The revision being used is current. \n- \"DEPRECATED\" - There is currently a newer version available, but the revision being used still works. \n- \"INVALID\" - The revision being used is not supported in any released version." + } + } + }, + "Room": { + "id": "Room", + "type": "object", + "description": "This is a JSON template for a room resource object.", + "properties": { + "applicationId": { + "type": "string", + "description": "The ID of the application being played." + }, + "autoMatchingCriteria": { + "$ref": "RoomAutoMatchingCriteria", + "description": "Criteria for auto-matching players into this room." + }, + "autoMatchingStatus": { + "$ref": "RoomAutoMatchStatus", + "description": "Auto-matching status for this room. Not set if the room is not currently in the auto-matching queue." + }, + "creationDetails": { + "$ref": "RoomModification", + "description": "Details about the room creation." + }, + "description": { + "type": "string", + "description": "This short description is generated by our servers and worded relative to the player requesting the room. It is intended to be displayed when the room is shown in a list (that is, an invitation to a room.)" + }, + "inviterId": { + "type": "string", + "description": "The ID of the participant that invited the user to the room. Not set if the user was not invited to the room." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#room.", + "default": "games#room" + }, + "lastUpdateDetails": { + "$ref": "RoomModification", + "description": "Details about the last update to the room." + }, + "participants": { + "type": "array", + "description": "The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.", + "items": { + "$ref": "RoomParticipant" + } + }, + "roomId": { + "type": "string", + "description": "Globally unique ID for a room." + }, + "roomStatusVersion": { + "type": "integer", + "description": "The version of the room status: an increasing counter, used by the client to ignore out-of-order updates to room status.", + "format": "int32" + }, + "status": { + "type": "string", + "description": "The status of the room.\nPossible values are: \n- \"ROOM_INVITING\" - One or more players have been invited and not responded. \n- \"ROOM_AUTO_MATCHING\" - One or more slots need to be filled by auto-matching. \n- \"ROOM_CONNECTING\" - Players have joined and are connecting to each other (either before or after auto-matching). \n- \"ROOM_ACTIVE\" - All players have joined and connected to each other. \n- \"ROOM_DELETED\" - The room should no longer be shown on the client. Returned in sync calls when a player joins a room (as a tombstone), or for rooms where all joined participants have left." + }, + "variant": { + "type": "integer", + "description": "The variant / mode of the application being played; can be any integer value, or left blank.", + "format": "int32" + } + } + }, + "RoomAutoMatchStatus": { + "id": "RoomAutoMatchStatus", + "type": "object", + "description": "This is a JSON template for status of room automatching that is in progress.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchStatus.", + "default": "games#roomAutoMatchStatus" + }, + "waitEstimateSeconds": { + "type": "integer", + "description": "An estimate for the amount of time (in seconds) that auto-matching is expected to take to complete.", + "format": "int32" + } + } + }, + "RoomAutoMatchingCriteria": { + "id": "RoomAutoMatchingCriteria", + "type": "object", + "description": "This is a JSON template for a room auto-match criteria object.", + "properties": { + "exclusiveBitmask": { + "type": "string", + "description": "A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomAutoMatchingCriteria.", + "default": "games#roomAutoMatchingCriteria" + }, + "maxAutoMatchingPlayers": { + "type": "integer", + "description": "The maximum number of players that should be added to the room by auto-matching.", + "format": "int32" + }, + "minAutoMatchingPlayers": { + "type": "integer", + "description": "The minimum number of players that should be added to the room by auto-matching.", + "format": "int32" + } + } + }, + "RoomClientAddress": { + "id": "RoomClientAddress", + "type": "object", + "description": "This is a JSON template for the client address when setting up a room.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomClientAddress.", + "default": "games#roomClientAddress" + }, + "xmppAddress": { + "type": "string", + "description": "The XMPP address of the client on the Google Games XMPP network." + } + } + }, + "RoomCreateRequest": { + "id": "RoomCreateRequest", + "type": "object", + "description": "This is a JSON template for a room creation request.", + "properties": { + "autoMatchingCriteria": { + "$ref": "RoomAutoMatchingCriteria", + "description": "Criteria for auto-matching players into this room." + }, + "capabilities": { + "type": "array", + "description": "The capabilities that this client supports for realtime communication.", + "items": { + "type": "string" + } + }, + "clientAddress": { + "$ref": "RoomClientAddress", + "description": "Client address for the player creating the room." + }, + "invitedPlayerIds": { + "type": "array", + "description": "The player IDs to invite to the room.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomCreateRequest.", + "default": "games#roomCreateRequest" + }, + "networkDiagnostics": { + "$ref": "NetworkDiagnostics", + "description": "Network diagnostics for the client creating the room." + }, + "requestId": { + "type": "string", + "description": "A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.", + "format": "int64" + }, + "variant": { + "type": "integer", + "description": "The variant / mode of the application to be played. This can be any integer value, or left blank. You should use a small number of variants to keep the auto-matching pool as large as possible.", + "format": "int32" + } + } + }, + "RoomJoinRequest": { + "id": "RoomJoinRequest", + "type": "object", + "description": "This is a JSON template for a join room request.", + "properties": { + "capabilities": { + "type": "array", + "description": "The capabilities that this client supports for realtime communication.", + "items": { + "type": "string" + } + }, + "clientAddress": { + "$ref": "RoomClientAddress", + "description": "Client address for the player joining the room." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomJoinRequest.", + "default": "games#roomJoinRequest" + }, + "networkDiagnostics": { + "$ref": "NetworkDiagnostics", + "description": "Network diagnostics for the client joining the room." + } + } + }, + "RoomLeaveDiagnostics": { + "id": "RoomLeaveDiagnostics", + "type": "object", + "description": "This is a JSON template for room leave diagnostics.", + "properties": { + "androidNetworkSubtype": { + "type": "integer", + "description": "Android network subtype. http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtype()", + "format": "int32" + }, + "androidNetworkType": { + "type": "integer", + "description": "Android network type. http://developer.android.com/reference/android/net/NetworkInfo.html#getType()", + "format": "int32" + }, + "iosNetworkType": { + "type": "integer", + "description": "iOS network type as defined in Reachability.h.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomLeaveDiagnostics.", + "default": "games#roomLeaveDiagnostics" + }, + "networkOperatorCode": { + "type": "string", + "description": "The MCC+MNC code for the client's network connection. On Android: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperator() On iOS, see: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html" + }, + "networkOperatorName": { + "type": "string", + "description": "The name of the carrier of the client's network connection. On Android: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName() On iOS: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html#//apple_ref/occ/instp/CTCarrier/carrierName" + }, + "peerSession": { + "type": "array", + "description": "Diagnostics about all peer sessions.", + "items": { + "$ref": "PeerSessionDiagnostics" + } + }, + "socketsUsed": { + "type": "boolean", + "description": "Whether or not sockets were used." + } + } + }, + "RoomLeaveRequest": { + "id": "RoomLeaveRequest", + "type": "object", + "description": "This is a JSON template for a leave room request.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomLeaveRequest.", + "default": "games#roomLeaveRequest" + }, + "leaveDiagnostics": { + "$ref": "RoomLeaveDiagnostics", + "description": "Diagnostics for a player leaving the room." + }, + "reason": { + "type": "string", + "description": "Reason for leaving the match.\nPossible values are: \n- \"PLAYER_LEFT\" - The player chose to leave the room.. \n- \"GAME_LEFT\" - The game chose to remove the player from the room. \n- \"REALTIME_ABANDONED\" - The player switched to another application and abandoned the room. \n- \"REALTIME_PEER_CONNECTION_FAILURE\" - The client was unable to establish a connection to other peer(s). \n- \"REALTIME_SERVER_CONNECTION_FAILURE\" - The client was unable to communicate with the server. \n- \"REALTIME_SERVER_ERROR\" - The client received an error response when it tried to communicate with the server. \n- \"REALTIME_TIMEOUT\" - The client timed out while waiting for a room. \n- \"REALTIME_CLIENT_DISCONNECTING\" - The client disconnects without first calling Leave. \n- \"REALTIME_SIGN_OUT\" - The user signed out of G+ while in the room. \n- \"REALTIME_GAME_CRASHED\" - The game crashed. \n- \"REALTIME_ROOM_SERVICE_CRASHED\" - RoomAndroidService crashed. \n- \"REALTIME_DIFFERENT_CLIENT_ROOM_OPERATION\" - Another client is trying to enter a room. \n- \"REALTIME_SAME_CLIENT_ROOM_OPERATION\" - The same client is trying to enter a new room." + } + } + }, + "RoomList": { + "id": "RoomList", + "type": "object", + "description": "This is a JSON template for a list of rooms.", + "properties": { + "items": { + "type": "array", + "description": "The rooms.", + "items": { + "$ref": "Room" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomList.", + "default": "games#roomList" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "RoomModification": { + "id": "RoomModification", + "type": "object", + "description": "This is a JSON template for room modification metadata.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomModification.", + "default": "games#roomModification" + }, + "modifiedTimestampMillis": { + "type": "string", + "description": "The timestamp at which they modified the room, in milliseconds since the epoch in UTC.", + "format": "int64" + }, + "participantId": { + "type": "string", + "description": "The ID of the participant that modified the room." + } + } + }, + "RoomP2PStatus": { + "id": "RoomP2PStatus", + "type": "object", + "description": "This is a JSON template for an update on the status of a peer in a room.", + "properties": { + "connectionSetupLatencyMillis": { + "type": "integer", + "description": "The amount of time in milliseconds it took to establish connections with this peer.", + "format": "int32" + }, + "error": { + "type": "string", + "description": "The error code in event of a failure.\nPossible values are: \n- \"P2P_FAILED\" - The client failed to establish a P2P connection with the peer. \n- \"PRESENCE_FAILED\" - The client failed to register to receive P2P connections. \n- \"RELAY_SERVER_FAILED\" - The client received an error when trying to use the relay server to establish a P2P connection with the peer." + }, + "error_reason": { + "type": "string", + "description": "More detailed diagnostic message returned in event of a failure." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomP2PStatus.", + "default": "games#roomP2PStatus" + }, + "participantId": { + "type": "string", + "description": "The ID of the participant." + }, + "status": { + "type": "string", + "description": "The status of the peer in the room.\nPossible values are: \n- \"CONNECTION_ESTABLISHED\" - The client established a P2P connection with the peer. \n- \"CONNECTION_FAILED\" - The client failed to establish directed presence with the peer." + }, + "unreliableRoundtripLatencyMillis": { + "type": "integer", + "description": "The amount of time in milliseconds it took to send packets back and forth on the unreliable channel with this peer.", + "format": "int32" + } + } + }, + "RoomP2PStatuses": { + "id": "RoomP2PStatuses", + "type": "object", + "description": "This is a JSON template for an update on the status of peers in a room.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomP2PStatuses.", + "default": "games#roomP2PStatuses" + }, + "updates": { + "type": "array", + "description": "The updates for the peers.", + "items": { + "$ref": "RoomP2PStatus" + } + } + } + }, + "RoomParticipant": { + "id": "RoomParticipant", + "type": "object", + "description": "This is a JSON template for a participant in a room.", + "properties": { + "autoMatched": { + "type": "boolean", + "description": "True if this participant was auto-matched with the requesting player." + }, + "autoMatchedPlayer": { + "$ref": "AnonymousPlayer", + "description": "Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)" + }, + "capabilities": { + "type": "array", + "description": "The capabilities which can be used when communicating with this participant.", + "items": { + "type": "string" + } + }, + "clientAddress": { + "$ref": "RoomClientAddress", + "description": "Client address for the participant." + }, + "connected": { + "type": "boolean", + "description": "True if this participant is in the fully connected set of peers in the room." + }, + "id": { + "type": "string", + "description": "An identifier for the participant in the scope of the room. Cannot be used to identify a player across rooms or in other contexts." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomParticipant.", + "default": "games#roomParticipant" + }, + "leaveReason": { + "type": "string", + "description": "The reason the participant left the room; populated if the participant status is PARTICIPANT_LEFT.\nPossible values are: \n- \"PLAYER_LEFT\" - The player explicitly chose to leave the room. \n- \"GAME_LEFT\" - The game chose to remove the player from the room. \n- \"ABANDONED\" - The player switched to another application and abandoned the room.\n- \"PEER_CONNECTION_FAILURE\" - The client was unable to establish or maintain a connection to other peer(s) in the room.\n- \"SERVER_ERROR\" - The client received an error response when it tried to communicate with the server. \n- \"TIMEOUT\" - The client timed out while waiting for players to join and connect. \n- \"PRESENCE_FAILURE\" - The client's XMPP connection ended abruptly." + }, + "player": { + "$ref": "Player", + "description": "Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)" + }, + "status": { + "type": "string", + "description": "The status of the participant with respect to the room.\nPossible values are: \n- \"PARTICIPANT_INVITED\" - The participant has been invited to join the room, but has not yet responded. \n- \"PARTICIPANT_JOINED\" - The participant has joined the room (either after creating it or accepting an invitation.) \n- \"PARTICIPANT_DECLINED\" - The participant declined an invitation to join the room. \n- \"PARTICIPANT_LEFT\" - The participant joined the room and then left it." + } + } + }, + "RoomStatus": { + "id": "RoomStatus", + "type": "object", + "description": "This is a JSON template for the status of a room that the player has joined.", + "properties": { + "autoMatchingStatus": { + "$ref": "RoomAutoMatchStatus", + "description": "Auto-matching status for this room. Not set if the room is not currently in the automatching queue." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#roomStatus.", + "default": "games#roomStatus" + }, + "participants": { + "type": "array", + "description": "The participants involved in the room, along with their statuses. Includes participants who have left or declined invitations.", + "items": { + "$ref": "RoomParticipant" + } + }, + "roomId": { + "type": "string", + "description": "Globally unique ID for a room." + }, + "status": { + "type": "string", + "description": "The status of the room.\nPossible values are: \n- \"ROOM_INVITING\" - One or more players have been invited and not responded. \n- \"ROOM_AUTO_MATCHING\" - One or more slots need to be filled by auto-matching. \n- \"ROOM_CONNECTING\" - Players have joined are connecting to each other (either before or after auto-matching). \n- \"ROOM_ACTIVE\" - All players have joined and connected to each other. \n- \"ROOM_DELETED\" - All joined players have left." + }, + "statusVersion": { + "type": "integer", + "description": "The version of the status for the room: an increasing counter, used by the client to ignore out-of-order updates to room status.", + "format": "int32" + } + } + }, + "ScoreSubmission": { + "id": "ScoreSubmission", + "type": "object", + "description": "This is a JSON template for a request to submit a score to leaderboards.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#scoreSubmission.", + "default": "games#scoreSubmission" + }, + "leaderboardId": { + "type": "string", + "description": "The leaderboard this score is being submitted to." + }, + "score": { + "type": "string", + "description": "The new score being submitted.", + "format": "int64" + }, + "scoreTag": { + "type": "string", + "description": "Additional information about this score. Values will contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", + "pattern": "[a-zA-Z0-9-._~]{0,64}" + }, + "signature": { + "type": "string", + "description": "Signature Values will contain URI-safe characters as defined by section 2.3 of RFC 3986." + } + } + }, + "Snapshot": { + "id": "Snapshot", + "type": "object", + "description": "This is a JSON template for an snapshot object.", + "properties": { + "coverImage": { + "$ref": "SnapshotImage", + "description": "The cover image of this snapshot. May be absent if there is no image." + }, + "description": { + "type": "string", + "description": "The description of this snapshot." + }, + "driveId": { + "type": "string", + "description": "The ID of the file underlying this snapshot in the Drive API. Only present if the snapshot is a view on a Drive file and the file is owned by the caller." + }, + "durationMillis": { + "type": "string", + "description": "The duration associated with this snapshot, in millis.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The ID of the snapshot." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#snapshot.", + "default": "games#snapshot" + }, + "lastModifiedMillis": { + "type": "string", + "description": "The timestamp (in millis since Unix epoch) of the last modification to this snapshot.", + "format": "int64" + }, + "progressValue": { + "type": "string", + "description": "The progress value (64-bit integer set by developer) associated with this snapshot.", + "format": "int64" + }, + "title": { + "type": "string", + "description": "The title of this snapshot." + }, + "type": { + "type": "string", + "description": "The type of this snapshot.\nPossible values are: \n- \"SAVE_GAME\" - A snapshot representing a save game." + }, + "uniqueName": { + "type": "string", + "description": "The unique name provided when the snapshot was created." + } + } + }, + "SnapshotImage": { + "id": "SnapshotImage", + "type": "object", + "description": "This is a JSON template for an image of a snapshot.", + "properties": { + "height": { + "type": "integer", + "description": "The height of the image.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#snapshotImage.", + "default": "games#snapshotImage" + }, + "mime_type": { + "type": "string", + "description": "The MIME type of the image." + }, + "url": { + "type": "string", + "description": "The URL of the image. This URL may be invalidated at any time and should not be cached." + }, + "width": { + "type": "integer", + "description": "The width of the image.", + "format": "int32" + } + } + }, + "SnapshotListResponse": { + "id": "SnapshotListResponse", + "type": "object", + "description": "This is a JSON template for a list of snapshot objects.", + "properties": { + "items": { + "type": "array", + "description": "The snapshots.", + "items": { + "$ref": "Snapshot" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#snapshotListResponse.", + "default": "games#snapshotListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "Token corresponding to the next page of results. If there are no more results, the token is omitted." + } + } + }, + "TurnBasedAutoMatchingCriteria": { + "id": "TurnBasedAutoMatchingCriteria", + "type": "object", + "description": "This is a JSON template for an turn-based auto-match criteria object.", + "properties": { + "exclusiveBitmask": { + "type": "string", + "description": "A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.", + "default": "games#turnBasedAutoMatchingCriteria" + }, + "maxAutoMatchingPlayers": { + "type": "integer", + "description": "The maximum number of players that should be added to the match by auto-matching.", + "format": "int32" + }, + "minAutoMatchingPlayers": { + "type": "integer", + "description": "The minimum number of players that should be added to the match by auto-matching.", + "format": "int32" + } + } + }, + "TurnBasedMatch": { + "id": "TurnBasedMatch", + "type": "object", + "description": "This is a JSON template for a turn-based match resource object.", + "properties": { + "applicationId": { + "type": "string", + "description": "The ID of the application being played." + }, + "autoMatchingCriteria": { + "$ref": "TurnBasedAutoMatchingCriteria", + "description": "Criteria for auto-matching players into this match." + }, + "creationDetails": { + "$ref": "TurnBasedMatchModification", + "description": "Details about the match creation." + }, + "data": { + "$ref": "TurnBasedMatchData", + "description": "The data / game state for this match." + }, + "description": { + "type": "string", + "description": "This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list." + }, + "inviterId": { + "type": "string", + "description": "The ID of the participant that invited the user to the match. Not set if the user was not invited to the match." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.", + "default": "games#turnBasedMatch" + }, + "lastUpdateDetails": { + "$ref": "TurnBasedMatchModification", + "description": "Details about the last update to the match." + }, + "matchId": { + "type": "string", + "description": "Globally unique ID for a turn-based match." + }, + "matchNumber": { + "type": "integer", + "description": "The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.", + "format": "int32" + }, + "matchVersion": { + "type": "integer", + "description": "The version of this match: an increasing counter, used to avoid out-of-date updates to the match.", + "format": "int32" + }, + "participants": { + "type": "array", + "description": "The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.", + "items": { + "$ref": "TurnBasedMatchParticipant" + } + }, + "pendingParticipantId": { + "type": "string", + "description": "The ID of the participant that is taking a turn." + }, + "previousMatchData": { + "$ref": "TurnBasedMatchData", + "description": "The data / game state for the previous match; set for the first turn of rematches only." + }, + "rematchId": { + "type": "string", + "description": "The ID of a rematch of this match. Only set for completed matches that have been rematched." + }, + "results": { + "type": "array", + "description": "The results reported for this match.", + "items": { + "$ref": "ParticipantResult" + } + }, + "status": { + "type": "string", + "description": "The status of the match.\nPossible values are: \n- \"MATCH_AUTO_MATCHING\" - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled. \n- \"MATCH_ACTIVE\" - The match has started. \n- \"MATCH_COMPLETE\" - The match has finished. \n- \"MATCH_CANCELED\" - The match was canceled. \n- \"MATCH_EXPIRED\" - The match expired due to inactivity. \n- \"MATCH_DELETED\" - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called." + }, + "userMatchStatus": { + "type": "string", + "description": "The status of the current user in the match. Derived from the match type, match status, the user's participant status, and the pending participant for the match.\nPossible values are: \n- \"USER_INVITED\" - The user has been invited to join the match and has not responded yet. \n- \"USER_AWAITING_TURN\" - The user is waiting for their turn. \n- \"USER_TURN\" - The user has an action to take in the match. \n- \"USER_MATCH_COMPLETED\" - The match has ended (it is completed, canceled, or expired.)" + }, + "variant": { + "type": "integer", + "description": "The variant / mode of the application being played; can be any integer value, or left blank.", + "format": "int32" + }, + "withParticipantId": { + "type": "string", + "description": "The ID of another participant in the match that can be used when describing the participants the user is playing with." + } + } + }, + "TurnBasedMatchCreateRequest": { + "id": "TurnBasedMatchCreateRequest", + "type": "object", + "description": "This is a JSON template for a turn-based match creation request.", + "properties": { + "autoMatchingCriteria": { + "$ref": "TurnBasedAutoMatchingCriteria", + "description": "Criteria for auto-matching players into this match." + }, + "invitedPlayerIds": { + "type": "array", + "description": "The player ids to invite to the match.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchCreateRequest.", + "default": "games#turnBasedMatchCreateRequest" + }, + "requestId": { + "type": "string", + "description": "A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.", + "format": "int64" + }, + "variant": { + "type": "integer", + "description": "The variant / mode of the application to be played. This can be any integer value, or left blank. You should use a small number of variants to keep the auto-matching pool as large as possible.", + "format": "int32" + } + } + }, + "TurnBasedMatchData": { + "id": "TurnBasedMatchData", + "type": "object", + "description": "This is a JSON template for a turn-based match data object.", + "properties": { + "data": { + "type": "string", + "description": "The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.", + "format": "byte" + }, + "dataAvailable": { + "type": "boolean", + "description": "True if this match has data available but it wasn't returned in a list response; fetching the match individually will retrieve this data." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.", + "default": "games#turnBasedMatchData" + } + } + }, + "TurnBasedMatchDataRequest": { + "id": "TurnBasedMatchDataRequest", + "type": "object", + "description": "This is a JSON template for sending a turn-based match data object.", + "properties": { + "data": { + "type": "string", + "description": "The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.", + "format": "byte" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.", + "default": "games#turnBasedMatchDataRequest" + } + } + }, + "TurnBasedMatchList": { + "id": "TurnBasedMatchList", + "type": "object", + "description": "This is a JSON template for a list of turn-based matches.", + "properties": { + "items": { + "type": "array", + "description": "The matches.", + "items": { + "$ref": "TurnBasedMatch" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchList.", + "default": "games#turnBasedMatchList" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "TurnBasedMatchModification": { + "id": "TurnBasedMatchModification", + "type": "object", + "description": "This is a JSON template for turn-based match modification metadata.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.", + "default": "games#turnBasedMatchModification" + }, + "modifiedTimestampMillis": { + "type": "string", + "description": "The timestamp at which they modified the match, in milliseconds since the epoch in UTC.", + "format": "int64" + }, + "participantId": { + "type": "string", + "description": "The ID of the participant that modified the match." + } + } + }, + "TurnBasedMatchParticipant": { + "id": "TurnBasedMatchParticipant", + "type": "object", + "description": "This is a JSON template for a participant in a turn-based match.", + "properties": { + "autoMatched": { + "type": "boolean", + "description": "True if this participant was auto-matched with the requesting player." + }, + "autoMatchedPlayer": { + "$ref": "AnonymousPlayer", + "description": "Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)" + }, + "id": { + "type": "string", + "description": "An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.", + "default": "games#turnBasedMatchParticipant" + }, + "player": { + "$ref": "Player", + "description": "Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)" + }, + "status": { + "type": "string", + "description": "The status of the participant with respect to the match.\nPossible values are: \n- \"PARTICIPANT_NOT_INVITED_YET\" - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn. \n- \"PARTICIPANT_INVITED\" - The participant has been invited to join the match, but has not yet responded. \n- \"PARTICIPANT_JOINED\" - The participant has joined the match (either after creating it or accepting an invitation.) \n- \"PARTICIPANT_DECLINED\" - The participant declined an invitation to join the match. \n- \"PARTICIPANT_LEFT\" - The participant joined the match and then left it. \n- \"PARTICIPANT_FINISHED\" - The participant finished playing in the match. \n- \"PARTICIPANT_UNRESPONSIVE\" - The participant did not take their turn in the allotted time." + } + } + }, + "TurnBasedMatchRematch": { + "id": "TurnBasedMatchRematch", + "type": "object", + "description": "This is a JSON template for a rematch response.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchRematch.", + "default": "games#turnBasedMatchRematch" + }, + "previousMatch": { + "$ref": "TurnBasedMatch", + "description": "The old match that the rematch was created from; will be updated such that the rematchId field will point at the new match." + }, + "rematch": { + "$ref": "TurnBasedMatch", + "description": "The newly created match; a rematch of the old match with the same participants." + } + } + }, + "TurnBasedMatchResults": { + "id": "TurnBasedMatchResults", + "type": "object", + "description": "This is a JSON template for a turn-based match results object.", + "properties": { + "data": { + "$ref": "TurnBasedMatchDataRequest", + "description": "The final match data." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchResults.", + "default": "games#turnBasedMatchResults" + }, + "matchVersion": { + "type": "integer", + "description": "The version of the match being updated.", + "format": "int32" + }, + "results": { + "type": "array", + "description": "The match results for the participants in the match.", + "items": { + "$ref": "ParticipantResult" + } + } + } + }, + "TurnBasedMatchSync": { + "id": "TurnBasedMatchSync", + "type": "object", + "description": "This is a JSON template for a list of turn-based matches returned from a sync.", + "properties": { + "items": { + "type": "array", + "description": "The matches.", + "items": { + "$ref": "TurnBasedMatch" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchSync.", + "default": "games#turnBasedMatchSync" + }, + "moreAvailable": { + "type": "boolean", + "description": "True if there were more matches available to fetch at the time the response was generated (which were not returned due to page size limits.)" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "TurnBasedMatchTurn": { + "id": "TurnBasedMatchTurn", + "type": "object", + "description": "This is a JSON template for the object representing a turn.", + "properties": { + "data": { + "$ref": "TurnBasedMatchDataRequest", + "description": "The shared game state data after the turn is over." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchTurn.", + "default": "games#turnBasedMatchTurn" + }, + "matchVersion": { + "type": "integer", + "description": "The version of this match: an increasing counter, used to avoid out-of-date updates to the match.", + "format": "int32" + }, + "pendingParticipantId": { + "type": "string", + "description": "The ID of the participant who should take their turn next. May be set to the current player's participant ID to update match state without changing the turn. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players." + }, + "results": { + "type": "array", + "description": "The match results for the participants in the match.", + "items": { + "$ref": "ParticipantResult" + } + } + } + } + }, + "resources": { + "achievementDefinitions": { + "methods": { + "list": { + "id": "games.achievementDefinitions.list", + "path": "achievements", + "httpMethod": "GET", + "description": "Lists all the achievement definitions for your application.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "AchievementDefinitionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "achievements": { + "methods": { + "increment": { + "id": "games.achievements.increment", + "path": "achievements/{achievementId}/increment", + "httpMethod": "POST", + "description": "Increments the steps of the achievement with the given ID for the currently authenticated player.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + }, + "requestId": { + "type": "string", + "description": "A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.", + "format": "int64", + "location": "query" + }, + "stepsToIncrement": { + "type": "integer", + "description": "The number of steps to increment.", + "required": true, + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "achievementId", + "stepsToIncrement" + ], + "response": { + "$ref": "AchievementIncrementResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.achievements.list", + "path": "players/{playerId}/achievements", + "httpMethod": "GET", + "description": "Lists the progress for all your application's achievements for the currently authenticated player.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of achievement resources to return in the response, used for paging. For any response, the actual number of achievement resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + }, + "state": { + "type": "string", + "description": "Tells the server to return only achievements with the specified state. If this parameter isn't specified, all achievements are returned.", + "enum": [ + "ALL", + "HIDDEN", + "REVEALED", + "UNLOCKED" + ], + "enumDescriptions": [ + "List all achievements. This is the default.", + "List only hidden achievements.", + "List only revealed achievements.", + "List only unlocked achievements." + ], + "location": "query" + } + }, + "parameterOrder": [ + "playerId" + ], + "response": { + "$ref": "PlayerAchievementListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "reveal": { + "id": "games.achievements.reveal", + "path": "achievements/{achievementId}/reveal", + "httpMethod": "POST", + "description": "Sets the state of the achievement with the given ID to REVEALED for the currently authenticated player.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "response": { + "$ref": "AchievementRevealResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "setStepsAtLeast": { + "id": "games.achievements.setStepsAtLeast", + "path": "achievements/{achievementId}/setStepsAtLeast", + "httpMethod": "POST", + "description": "Sets the steps for the currently authenticated player towards unlocking an achievement. If the steps parameter is less than the current number of steps that the player already gained for the achievement, the achievement is not modified.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + }, + "steps": { + "type": "integer", + "description": "The minimum value to set the steps to.", + "required": true, + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "achievementId", + "steps" + ], + "response": { + "$ref": "AchievementSetStepsAtLeastResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "unlock": { + "id": "games.achievements.unlock", + "path": "achievements/{achievementId}/unlock", + "httpMethod": "POST", + "description": "Unlocks this achievement for the currently authenticated player.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "response": { + "$ref": "AchievementUnlockResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "updateMultiple": { + "id": "games.achievements.updateMultiple", + "path": "achievements/updateMultiple", + "httpMethod": "POST", + "description": "Updates multiple achievements for the currently authenticated player.", + "request": { + "$ref": "AchievementUpdateMultipleRequest" + }, + "response": { + "$ref": "AchievementUpdateMultipleResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "applications": { + "methods": { + "get": { + "id": "games.applications.get", + "path": "applications/{applicationId}", + "httpMethod": "GET", + "description": "Retrieves the metadata of the application with the given ID. If the requested application is not available for the specified platformType, the returned response will not include any instance data.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "platformType": { + "type": "string", + "description": "Restrict application details returned to the specific platform.", + "enum": [ + "ANDROID", + "IOS", + "WEB_APP" + ], + "enumDescriptions": [ + "Retrieve applications that can be played on Android.", + "Retrieve applications that can be played on iOS.", + "Retrieve applications that can be played on desktop web." + ], + "location": "query" + } + }, + "parameterOrder": [ + "applicationId" + ], + "response": { + "$ref": "Application" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "played": { + "id": "games.applications.played", + "path": "applications/played", + "httpMethod": "POST", + "description": "Indicate that the the currently authenticated user is playing your application.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "events": { + "methods": { + "listByPlayer": { + "id": "games.events.listByPlayer", + "path": "events", + "httpMethod": "GET", + "description": "Returns a list showing the current progress on events in this application for the currently authenticated user.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of events to return in the response, used for paging. For any response, the actual number of events to return may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "PlayerEventListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "listDefinitions": { + "id": "games.events.listDefinitions", + "path": "eventDefinitions", + "httpMethod": "GET", + "description": "Returns a list of the event definitions in this application.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of event definitions to return in the response, used for paging. For any response, the actual number of event definitions to return may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "EventDefinitionListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "record": { + "id": "games.events.record", + "path": "events", + "httpMethod": "POST", + "description": "Records a batch of changes to the number of times events have occurred for the currently authenticated user of this application.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + } + }, + "request": { + "$ref": "EventRecordRequest" + }, + "response": { + "$ref": "EventUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "leaderboards": { + "methods": { + "get": { + "id": "games.leaderboards.get", + "path": "leaderboards/{leaderboardId}", + "httpMethod": "GET", + "description": "Retrieves the metadata of the leaderboard with the given ID.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "response": { + "$ref": "Leaderboard" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.leaderboards.list", + "path": "leaderboards", + "httpMethod": "GET", + "description": "Lists all the leaderboard metadata for your application.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of leaderboards to return in the response. For any response, the actual number of leaderboards returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "LeaderboardListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "metagame": { + "methods": { + "getMetagameConfig": { + "id": "games.metagame.getMetagameConfig", + "path": "metagameConfig", + "httpMethod": "GET", + "description": "Return the metagame configuration data for the calling application.", + "response": { + "$ref": "MetagameConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "listCategoriesByPlayer": { + "id": "games.metagame.listCategoriesByPlayer", + "path": "players/{playerId}/categories/{collection}", + "httpMethod": "GET", + "description": "List play data aggregated per category for the player corresponding to playerId.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of categories for which data will be returned.", + "required": true, + "enum": [ + "all" + ], + "enumDescriptions": [ + "Retrieve data for all categories. This is the default." + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of category resources to return in the response, used for paging. For any response, the actual number of category resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "playerId", + "collection" + ], + "response": { + "$ref": "CategoryListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "players": { + "methods": { + "get": { + "id": "games.players.get", + "path": "players/{playerId}", + "httpMethod": "GET", + "description": "Retrieves the Player resource with the given ID. To retrieve the player for the currently authenticated user, set playerId to me.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "playerId" + ], + "response": { + "$ref": "Player" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.players.list", + "path": "players/me/players/{collection}", + "httpMethod": "GET", + "description": "Get the collection of players for the currently authenticated user.", + "parameters": { + "collection": { + "type": "string", + "description": "Collection of players being retrieved", + "required": true, + "enum": [ + "playedWith", + "played_with" + ], + "enumDescriptions": [ + "(DEPRECATED: please use played_with!) Retrieve a list of players you have played a multiplayer game (realtime or turn-based) with recently.", + "Retrieve a list of players you have played a multiplayer game (realtime or turn-based) with recently." + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "15", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "collection" + ], + "response": { + "$ref": "PlayerListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "pushtokens": { + "methods": { + "remove": { + "id": "games.pushtokens.remove", + "path": "pushtokens/remove", + "httpMethod": "POST", + "description": "Removes a push token for the current user and application. Removing a non-existent push token will report success.", + "request": { + "$ref": "PushTokenId" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "update": { + "id": "games.pushtokens.update", + "path": "pushtokens", + "httpMethod": "PUT", + "description": "Registers a push token for the current user and application.", + "request": { + "$ref": "PushToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "questMilestones": { + "methods": { + "claim": { + "id": "games.questMilestones.claim", + "path": "quests/{questId}/milestones/{milestoneId}/claim", + "httpMethod": "PUT", + "description": "Report that a reward for the milestone corresponding to milestoneId for the quest corresponding to questId has been claimed by the currently authorized user.", + "parameters": { + "milestoneId": { + "type": "string", + "description": "The ID of the milestone.", + "required": true, + "location": "path" + }, + "questId": { + "type": "string", + "description": "The ID of the quest.", + "required": true, + "location": "path" + }, + "requestId": { + "type": "string", + "description": "A numeric ID to ensure that the request is handled correctly across retries. Your client application must generate this ID randomly.", + "required": true, + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "questId", + "milestoneId", + "requestId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "quests": { + "methods": { + "accept": { + "id": "games.quests.accept", + "path": "quests/{questId}/accept", + "httpMethod": "POST", + "description": "Indicates that the currently authorized user will participate in the quest.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "questId": { + "type": "string", + "description": "The ID of the quest.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "questId" + ], + "response": { + "$ref": "Quest" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.quests.list", + "path": "players/{playerId}/quests", + "httpMethod": "GET", + "description": "Get a list of quests for your application and the currently authenticated player.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of quest resources to return in the response, used for paging. For any response, the actual number of quest resources returned may be less than the specified maxResults. Acceptable values are 1 to 50, inclusive. (Default: 50).", + "format": "int32", + "minimum": "1", + "maximum": "50", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "playerId" + ], + "response": { + "$ref": "QuestListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "revisions": { + "methods": { + "check": { + "id": "games.revisions.check", + "path": "revisions/check", + "httpMethod": "GET", + "description": "Checks whether the games client is out of date.", + "parameters": { + "clientRevision": { + "type": "string", + "description": "The revision of the client SDK used by your application. Format:\n[PLATFORM_TYPE]:[VERSION_NUMBER]. Possible values of PLATFORM_TYPE are:\n \n- \"ANDROID\" - Client is running the Android SDK. \n- \"IOS\" - Client is running the iOS SDK. \n- \"WEB_APP\" - Client is running as a Web App.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "clientRevision" + ], + "response": { + "$ref": "RevisionCheckResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "rooms": { + "methods": { + "create": { + "id": "games.rooms.create", + "path": "rooms/create", + "httpMethod": "POST", + "description": "Create a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + } + }, + "request": { + "$ref": "RoomCreateRequest" + }, + "response": { + "$ref": "Room" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "decline": { + "id": "games.rooms.decline", + "path": "rooms/{roomId}/decline", + "httpMethod": "POST", + "description": "Decline an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "response": { + "$ref": "Room" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "dismiss": { + "id": "games.rooms.dismiss", + "path": "rooms/{roomId}/dismiss", + "httpMethod": "POST", + "description": "Dismiss an invitation to join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "get": { + "id": "games.rooms.get", + "path": "rooms/{roomId}", + "httpMethod": "GET", + "description": "Get the data for a room.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "response": { + "$ref": "Room" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "join": { + "id": "games.rooms.join", + "path": "rooms/{roomId}/join", + "httpMethod": "POST", + "description": "Join a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "request": { + "$ref": "RoomJoinRequest" + }, + "response": { + "$ref": "Room" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "leave": { + "id": "games.rooms.leave", + "path": "rooms/{roomId}/leave", + "httpMethod": "POST", + "description": "Leave a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "request": { + "$ref": "RoomLeaveRequest" + }, + "response": { + "$ref": "Room" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.rooms.list", + "path": "rooms", + "httpMethod": "GET", + "description": "Returns invitations to join rooms.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of rooms to return in the response, used for paging. For any response, the actual number of rooms to return may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "RoomList" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "reportStatus": { + "id": "games.rooms.reportStatus", + "path": "rooms/{roomId}/reportstatus", + "httpMethod": "POST", + "description": "Updates sent by a client reporting the status of peers in a room. For internal use by the Games SDK only. Calling this method directly is unsupported.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "roomId": { + "type": "string", + "description": "The ID of the room.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "roomId" + ], + "request": { + "$ref": "RoomP2PStatuses" + }, + "response": { + "$ref": "RoomStatus" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "scores": { + "methods": { + "get": { + "id": "games.scores.get", + "path": "players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}", + "httpMethod": "GET", + "description": "Get high scores, and optionally ranks, in leaderboards for the currently authenticated player. For a specific time span, leaderboardId can be set to ALL to retrieve data for all leaderboards in a given time span.\nNOTE: You cannot ask for 'ALL' leaderboards and 'ALL' timeSpans in the same request; only one parameter may be set to 'ALL'.", + "parameters": { + "includeRankType": { + "type": "string", + "description": "The types of ranks to return. If the parameter is omitted, no ranks will be returned.", + "enum": [ + "ALL", + "PUBLIC", + "SOCIAL" + ], + "enumDescriptions": [ + "Retrieve public and social ranks.", + "Retrieve public ranks, if the player is sharing their gameplay activity publicly.", + "Retrieve the social rank." + ], + "location": "query" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard. Can be set to 'ALL' to retrieve data for all leaderboards for this application.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "30", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + }, + "timeSpan": { + "type": "string", + "description": "The time span for the scores and ranks you're requesting.", + "required": true, + "enum": [ + "ALL", + "ALL_TIME", + "DAILY", + "WEEKLY" + ], + "enumDescriptions": [ + "Get the high scores for all time spans. If this is used, maxResults values will be ignored.", + "Get the all time high score.", + "List the top scores for the current day.", + "List the top scores for the current week." + ], + "location": "path" + } + }, + "parameterOrder": [ + "playerId", + "leaderboardId", + "timeSpan" + ], + "response": { + "$ref": "PlayerLeaderboardScoreListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.scores.list", + "path": "leaderboards/{leaderboardId}/scores/{collection}", + "httpMethod": "GET", + "description": "Lists the scores in a leaderboard, starting from the top.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of scores you're requesting.", + "required": true, + "enum": [ + "PUBLIC", + "SOCIAL" + ], + "enumDescriptions": [ + "List all scores in the public leaderboard.", + "List only social scores." + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "30", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "timeSpan": { + "type": "string", + "description": "The time span for the scores and ranks you're requesting.", + "required": true, + "enum": [ + "ALL_TIME", + "DAILY", + "WEEKLY" + ], + "enumDescriptions": [ + "List the all-time top scores.", + "List the top scores for the current day.", + "List the top scores for the current week." + ], + "location": "query" + } + }, + "parameterOrder": [ + "leaderboardId", + "collection", + "timeSpan" + ], + "response": { + "$ref": "LeaderboardScores" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "listWindow": { + "id": "games.scores.listWindow", + "path": "leaderboards/{leaderboardId}/window/{collection}", + "httpMethod": "GET", + "description": "Lists the scores in a leaderboard around (and including) a player's score.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of scores you're requesting.", + "required": true, + "enum": [ + "PUBLIC", + "SOCIAL" + ], + "enumDescriptions": [ + "List all scores in the public leaderboard.", + "List only social scores." + ], + "location": "path" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of leaderboard scores to return in the response. For any response, the actual number of leaderboard scores returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "30", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "resultsAbove": { + "type": "integer", + "description": "The preferred number of scores to return above the player's score. More scores may be returned if the player is at the bottom of the leaderboard; fewer may be returned if the player is at the top. Must be less than or equal to maxResults.", + "format": "int32", + "location": "query" + }, + "returnTopIfAbsent": { + "type": "boolean", + "description": "True if the top scores should be returned when the player is not in the leaderboard. Defaults to true.", + "location": "query" + }, + "timeSpan": { + "type": "string", + "description": "The time span for the scores and ranks you're requesting.", + "required": true, + "enum": [ + "ALL_TIME", + "DAILY", + "WEEKLY" + ], + "enumDescriptions": [ + "List the all-time top scores.", + "List the top scores for the current day.", + "List the top scores for the current week." + ], + "location": "query" + } + }, + "parameterOrder": [ + "leaderboardId", + "collection", + "timeSpan" + ], + "response": { + "$ref": "LeaderboardScores" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "submit": { + "id": "games.scores.submit", + "path": "leaderboards/{leaderboardId}/scores", + "httpMethod": "POST", + "description": "Submits a score to the specified leaderboard.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + }, + "score": { + "type": "string", + "description": "The score you're submitting. The submitted score is ignored if it is worse than a previously submitted score, where worse depends on the leaderboard sort order. The meaning of the score value depends on the leaderboard format type. For fixed-point, the score represents the raw value. For time, the score represents elapsed time in milliseconds. For currency, the score represents a value in micro units.", + "required": true, + "format": "int64", + "location": "query" + }, + "scoreTag": { + "type": "string", + "description": "Additional information about the score you're submitting. Values must contain no more than 64 URI-safe characters as defined by section 2.3 of RFC 3986.", + "pattern": "[a-zA-Z0-9-._~]{0,64}", + "location": "query" + } + }, + "parameterOrder": [ + "leaderboardId", + "score" + ], + "response": { + "$ref": "PlayerScoreResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "submitMultiple": { + "id": "games.scores.submitMultiple", + "path": "leaderboards/scores", + "httpMethod": "POST", + "description": "Submits multiple scores to leaderboards.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + } + }, + "request": { + "$ref": "PlayerScoreSubmissionList" + }, + "response": { + "$ref": "PlayerScoreListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "snapshots": { + "methods": { + "get": { + "id": "games.snapshots.get", + "path": "snapshots/{snapshotId}", + "httpMethod": "GET", + "description": "Retrieves the metadata for a given snapshot ID.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "snapshotId": { + "type": "string", + "description": "The ID of the snapshot.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "snapshotId" + ], + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.appdata", + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.snapshots.list", + "path": "players/{playerId}/snapshots", + "httpMethod": "GET", + "description": "Retrieves a list of snapshots created by your application for the player corresponding to the player ID.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of snapshot resources to return in the response, used for paging. For any response, the actual number of snapshot resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "25", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "playerId" + ], + "response": { + "$ref": "SnapshotListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.appdata", + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "turnBasedMatches": { + "methods": { + "cancel": { + "id": "games.turnBasedMatches.cancel", + "path": "turnbasedmatches/{matchId}/cancel", + "httpMethod": "PUT", + "description": "Cancel a turn-based match.", + "parameters": { + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "create": { + "id": "games.turnBasedMatches.create", + "path": "turnbasedmatches/create", + "httpMethod": "POST", + "description": "Create a turn-based match.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + } + }, + "request": { + "$ref": "TurnBasedMatchCreateRequest" + }, + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "decline": { + "id": "games.turnBasedMatches.decline", + "path": "turnbasedmatches/{matchId}/decline", + "httpMethod": "PUT", + "description": "Decline an invitation to play a turn-based match.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "dismiss": { + "id": "games.turnBasedMatches.dismiss", + "path": "turnbasedmatches/{matchId}/dismiss", + "httpMethod": "PUT", + "description": "Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.", + "parameters": { + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "finish": { + "id": "games.turnBasedMatches.finish", + "path": "turnbasedmatches/{matchId}/finish", + "httpMethod": "PUT", + "description": "Finish a turn-based match. Each player should make this call once, after all results are in. Only the player whose turn it is may make the first call to Finish, and can pass in the final match state.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "request": { + "$ref": "TurnBasedMatchResults" + }, + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "get": { + "id": "games.turnBasedMatches.get", + "path": "turnbasedmatches/{matchId}", + "httpMethod": "GET", + "description": "Get the data for a turn-based match.", + "parameters": { + "includeMatchData": { + "type": "boolean", + "description": "Get match data along with metadata.", + "location": "query" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "join": { + "id": "games.turnBasedMatches.join", + "path": "turnbasedmatches/{matchId}/join", + "httpMethod": "PUT", + "description": "Join a turn-based match.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "leave": { + "id": "games.turnBasedMatches.leave", + "path": "turnbasedmatches/{matchId}/leave", + "httpMethod": "PUT", + "description": "Leave a turn-based match when it is not the current player's turn, without canceling the match.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "leaveTurn": { + "id": "games.turnBasedMatches.leaveTurn", + "path": "turnbasedmatches/{matchId}/leaveTurn", + "httpMethod": "PUT", + "description": "Leave a turn-based match during the current player's turn, without canceling the match.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + }, + "matchVersion": { + "type": "integer", + "description": "The version of the match being updated.", + "required": true, + "format": "int32", + "location": "query" + }, + "pendingParticipantId": { + "type": "string", + "description": "The ID of another participant who should take their turn next. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players.", + "location": "query" + } + }, + "parameterOrder": [ + "matchId", + "matchVersion" + ], + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "list": { + "id": "games.turnBasedMatches.list", + "path": "turnbasedmatches", + "httpMethod": "GET", + "description": "Returns turn-based matches the player is or was involved in.", + "parameters": { + "includeMatchData": { + "type": "boolean", + "description": "True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.", + "location": "query" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxCompletedMatches": { + "type": "integer", + "description": "The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.", + "format": "int32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "TurnBasedMatchList" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "rematch": { + "id": "games.turnBasedMatches.rematch", + "path": "turnbasedmatches/{matchId}/rematch", + "httpMethod": "POST", + "description": "Create a rematch of a match that was previously completed, with the same participants. This can be called by only one player on a match still in their list; the player must have called Finish first. Returns the newly created match; it will be the caller's turn.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + }, + "requestId": { + "type": "string", + "description": "A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "matchId" + ], + "response": { + "$ref": "TurnBasedMatchRematch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "sync": { + "id": "games.turnBasedMatches.sync", + "path": "turnbasedmatches/sync", + "httpMethod": "GET", + "description": "Returns turn-based matches the player is or was involved in that changed since the last sync call, with the least recent changes coming first. Matches that should be removed from the local cache will have a status of MATCH_DELETED.", + "parameters": { + "includeMatchData": { + "type": "boolean", + "description": "True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.", + "location": "query" + }, + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "maxCompletedMatches": { + "type": "integer", + "description": "The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.", + "format": "int32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "response": { + "$ref": "TurnBasedMatchSync" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "takeTurn": { + "id": "games.turnBasedMatches.takeTurn", + "path": "turnbasedmatches/{matchId}/turn", + "httpMethod": "PUT", + "description": "Commit the results of a player turn.", + "parameters": { + "language": { + "type": "string", + "description": "The preferred language to use for strings returned by this method.", + "location": "query" + }, + "matchId": { + "type": "string", + "description": "The ID of the match.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "matchId" + ], + "request": { + "$ref": "TurnBasedMatchTurn" + }, + "response": { + "$ref": "TurnBasedMatch" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + } + } +} diff --git a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json new file mode 100644 index 0000000000..eb48c0324b --- /dev/null +++ b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json @@ -0,0 +1,774 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Jkr0IKioflJu_aUgxoI27vUdCqY\"", + "discoveryVersion": "v1", + "id": "gamesConfiguration:v1configuration", + "name": "gamesConfiguration", + "canonicalName": "Games Configuration", + "version": "v1configuration", + "revision": "20150119", + "title": "Google Play Game Services Publishing API", + "description": "The Publishing API for Google Play Game Services.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/games/services", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/games/v1configuration/", + "basePath": "/games/v1configuration/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "games/v1configuration/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/androidpublisher": { + "description": "View and manage your Google Play Android Developer account" + } + } + } + }, + "schemas": { + "AchievementConfiguration": { + "id": "AchievementConfiguration", + "type": "object", + "description": "This is a JSON template for an achievement configuration resource.", + "properties": { + "achievementType": { + "type": "string", + "description": "The type of the achievement.\nPossible values are: \n- \"STANDARD\" - Achievement is either locked or unlocked. \n- \"INCREMENTAL\" - Achievement is incremental." + }, + "draft": { + "$ref": "AchievementConfigurationDetail", + "description": "The draft data of the achievement." + }, + "id": { + "type": "string", + "description": "The ID of the achievement." + }, + "initialState": { + "type": "string", + "description": "The initial state of the achievement.\nPossible values are: \n- \"HIDDEN\" - Achievement is hidden. \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.", + "default": "gamesConfiguration#achievementConfiguration" + }, + "published": { + "$ref": "AchievementConfigurationDetail", + "description": "The read-only published data of the achievement." + }, + "stepsToUnlock": { + "type": "integer", + "description": "Steps to unlock. Only applicable to incremental achievements.", + "format": "int32" + }, + "token": { + "type": "string", + "description": "The token for this resource." + } + } + }, + "AchievementConfigurationDetail": { + "id": "AchievementConfigurationDetail", + "type": "object", + "description": "This is a JSON template for an achievement configuration detail.", + "properties": { + "description": { + "$ref": "LocalizedStringBundle", + "description": "Localized strings for the achievement description." + }, + "iconUrl": { + "type": "string", + "description": "The icon url of this achievement. Writes to this field are ignored." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.", + "default": "gamesConfiguration#achievementConfigurationDetail" + }, + "name": { + "$ref": "LocalizedStringBundle", + "description": "Localized strings for the achievement name." + }, + "pointValue": { + "type": "integer", + "description": "Point value for the achievement.", + "format": "int32" + }, + "sortRank": { + "type": "integer", + "description": "The sort rank of this achievement. Writes to this field are ignored.", + "format": "int32" + } + } + }, + "AchievementConfigurationListResponse": { + "id": "AchievementConfigurationListResponse", + "type": "object", + "description": "This is a JSON template for a ListConfigurations response.", + "properties": { + "items": { + "type": "array", + "description": "The achievement configurations.", + "items": { + "$ref": "AchievementConfiguration" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#achievementConfigurationListResponse.", + "default": "gamesConfiguration#achievementConfigurationListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "GamesNumberAffixConfiguration": { + "id": "GamesNumberAffixConfiguration", + "type": "object", + "description": "This is a JSON template for a number affix resource.", + "properties": { + "few": { + "$ref": "LocalizedStringBundle", + "description": "When the language requires special treatment of \"small\" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish)." + }, + "many": { + "$ref": "LocalizedStringBundle", + "description": "When the language requires special treatment of \"large\" numbers (as with numbers ending 11-99 in Maltese)." + }, + "one": { + "$ref": "LocalizedStringBundle", + "description": "When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class)." + }, + "other": { + "$ref": "LocalizedStringBundle", + "description": "When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English)." + }, + "two": { + "$ref": "LocalizedStringBundle", + "description": "When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian)." + }, + "zero": { + "$ref": "LocalizedStringBundle", + "description": "When the language requires special treatment of the number 0 (as in Arabic)." + } + } + }, + "GamesNumberFormatConfiguration": { + "id": "GamesNumberFormatConfiguration", + "type": "object", + "description": "This is a JSON template for a number format resource.", + "properties": { + "currencyCode": { + "type": "string", + "description": "The curreny code string. Only used for CURRENCY format type." + }, + "numDecimalPlaces": { + "type": "integer", + "description": "The number of decimal places for number. Only used for NUMERIC format type.", + "format": "int32" + }, + "numberFormatType": { + "type": "string", + "description": "The formatting for the number.\nPossible values are: \n- \"NUMERIC\" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.\n- \"TIME_DURATION\" - Numbers are formatted to hours, minutes and seconds.\n- \"CURRENCY\" - Numbers are formatted to currency according to locale." + }, + "suffix": { + "$ref": "GamesNumberAffixConfiguration", + "description": "An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources." + } + } + }, + "ImageConfiguration": { + "id": "ImageConfiguration", + "type": "object", + "description": "This is a JSON template for an image configuration resource.", + "properties": { + "imageType": { + "type": "string", + "description": "The image type for the image." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#imageConfiguration.", + "default": "gamesConfiguration#imageConfiguration" + }, + "resourceId": { + "type": "string", + "description": "The resource ID of resource which the image belongs to." + }, + "url": { + "type": "string", + "description": "The url for this image." + } + } + }, + "LeaderboardConfiguration": { + "id": "LeaderboardConfiguration", + "type": "object", + "description": "This is a JSON template for an leaderboard configuration resource.", + "properties": { + "draft": { + "$ref": "LeaderboardConfigurationDetail", + "description": "The draft data of the leaderboard." + }, + "id": { + "type": "string", + "description": "The ID of the leaderboard." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.", + "default": "gamesConfiguration#leaderboardConfiguration" + }, + "published": { + "$ref": "LeaderboardConfigurationDetail", + "description": "The read-only published data of the leaderboard." + }, + "scoreMax": { + "type": "string", + "description": "Maximum score that can be posted to this leaderboard.", + "format": "int64" + }, + "scoreMin": { + "type": "string", + "description": "Minimum score that can be posted to this leaderboard.", + "format": "int64" + }, + "scoreOrder": { + "type": "string", + "description": "The type of the leaderboard.\nPossible values are: \n- \"LARGER_IS_BETTER\" - Larger scores posted are ranked higher. \n- \"SMALLER_IS_BETTER\" - Smaller scores posted are ranked higher." + }, + "token": { + "type": "string", + "description": "The token for this resource." + } + } + }, + "LeaderboardConfigurationDetail": { + "id": "LeaderboardConfigurationDetail", + "type": "object", + "description": "This is a JSON template for a leaderboard configuration detail.", + "properties": { + "iconUrl": { + "type": "string", + "description": "The icon url of this leaderboard. Writes to this field are ignored." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.", + "default": "gamesConfiguration#leaderboardConfigurationDetail" + }, + "name": { + "$ref": "LocalizedStringBundle", + "description": "Localized strings for the leaderboard name." + }, + "scoreFormat": { + "$ref": "GamesNumberFormatConfiguration", + "description": "The score formatting for the leaderboard." + }, + "sortRank": { + "type": "integer", + "description": "The sort rank of this leaderboard. Writes to this field are ignored.", + "format": "int32" + } + } + }, + "LeaderboardConfigurationListResponse": { + "id": "LeaderboardConfigurationListResponse", + "type": "object", + "description": "This is a JSON template for a ListConfigurations response.", + "properties": { + "items": { + "type": "array", + "description": "The leaderboard configurations.", + "items": { + "$ref": "LeaderboardConfiguration" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardConfigurationListResponse.", + "default": "gamesConfiguration#leaderboardConfigurationListResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "LocalizedString": { + "id": "LocalizedString", + "type": "object", + "description": "This is a JSON template for a localized string resource.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.", + "default": "gamesConfiguration#localizedString" + }, + "locale": { + "type": "string", + "description": "The locale string." + }, + "value": { + "type": "string", + "description": "The string value." + } + } + }, + "LocalizedStringBundle": { + "id": "LocalizedStringBundle", + "type": "object", + "description": "This is a JSON template for a localized string bundle resource.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.", + "default": "gamesConfiguration#localizedStringBundle" + }, + "translations": { + "type": "array", + "description": "The locale strings.", + "items": { + "$ref": "LocalizedString" + } + } + } + } + }, + "resources": { + "achievementConfigurations": { + "methods": { + "delete": { + "id": "gamesConfiguration.achievementConfigurations.delete", + "path": "achievements/{achievementId}", + "httpMethod": "DELETE", + "description": "Delete the achievement configuration with the given ID.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "gamesConfiguration.achievementConfigurations.get", + "path": "achievements/{achievementId}", + "httpMethod": "GET", + "description": "Retrieves the metadata of the achievement configuration with the given ID.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "response": { + "$ref": "AchievementConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "insert": { + "id": "gamesConfiguration.achievementConfigurations.insert", + "path": "applications/{applicationId}/achievements", + "httpMethod": "POST", + "description": "Insert a new achievement configuration in this application.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "applicationId" + ], + "request": { + "$ref": "AchievementConfiguration" + }, + "response": { + "$ref": "AchievementConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "gamesConfiguration.achievementConfigurations.list", + "path": "applications/{applicationId}/achievements", + "httpMethod": "GET", + "description": "Returns a list of the achievement configurations in this application.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "applicationId" + ], + "response": { + "$ref": "AchievementConfigurationListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "gamesConfiguration.achievementConfigurations.patch", + "path": "achievements/{achievementId}", + "httpMethod": "PATCH", + "description": "Update the metadata of the achievement configuration with the given ID. This method supports patch semantics.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "request": { + "$ref": "AchievementConfiguration" + }, + "response": { + "$ref": "AchievementConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "gamesConfiguration.achievementConfigurations.update", + "path": "achievements/{achievementId}", + "httpMethod": "PUT", + "description": "Update the metadata of the achievement configuration with the given ID.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "request": { + "$ref": "AchievementConfiguration" + }, + "response": { + "$ref": "AchievementConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, + "imageConfigurations": { + "methods": { + "upload": { + "id": "gamesConfiguration.imageConfigurations.upload", + "path": "images/{resourceId}/imageType/{imageType}", + "httpMethod": "POST", + "description": "Uploads an image for a resource with the given ID and image type.", + "parameters": { + "imageType": { + "type": "string", + "description": "Selects which image in a resource for this method.", + "required": true, + "enum": [ + "ACHIEVEMENT_ICON", + "LEADERBOARD_ICON" + ], + "enumDescriptions": [ + "The icon image for an achievement resource.", + "The icon image for a leaderboard resource." + ], + "location": "path" + }, + "resourceId": { + "type": "string", + "description": "The ID of the resource used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "resourceId", + "imageType" + ], + "response": { + "$ref": "ImageConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "image/*" + ], + "maxSize": "15MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/games/v1configuration/images/{resourceId}/imageType/{imageType}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/games/v1configuration/images/{resourceId}/imageType/{imageType}" + } + } + } + } + } + }, + "leaderboardConfigurations": { + "methods": { + "delete": { + "id": "gamesConfiguration.leaderboardConfigurations.delete", + "path": "leaderboards/{leaderboardId}", + "httpMethod": "DELETE", + "description": "Delete the leaderboard configuration with the given ID.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "id": "gamesConfiguration.leaderboardConfigurations.get", + "path": "leaderboards/{leaderboardId}", + "httpMethod": "GET", + "description": "Retrieves the metadata of the leaderboard configuration with the given ID.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "response": { + "$ref": "LeaderboardConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "insert": { + "id": "gamesConfiguration.leaderboardConfigurations.insert", + "path": "applications/{applicationId}/leaderboards", + "httpMethod": "POST", + "description": "Insert a new leaderboard configuration in this application.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "applicationId" + ], + "request": { + "$ref": "LeaderboardConfiguration" + }, + "response": { + "$ref": "LeaderboardConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "id": "gamesConfiguration.leaderboardConfigurations.list", + "path": "applications/{applicationId}/leaderboards", + "httpMethod": "GET", + "description": "Returns a list of the leaderboard configurations in this application.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "200", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "applicationId" + ], + "response": { + "$ref": "LeaderboardConfigurationListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "id": "gamesConfiguration.leaderboardConfigurations.patch", + "path": "leaderboards/{leaderboardId}", + "httpMethod": "PATCH", + "description": "Update the metadata of the leaderboard configuration with the given ID. This method supports patch semantics.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "request": { + "$ref": "LeaderboardConfiguration" + }, + "response": { + "$ref": "LeaderboardConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "update": { + "id": "gamesConfiguration.leaderboardConfigurations.update", + "path": "leaderboards/{leaderboardId}", + "httpMethod": "PUT", + "description": "Update the metadata of the leaderboard configuration with the given ID.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "request": { + "$ref": "LeaderboardConfiguration" + }, + "response": { + "$ref": "LeaderboardConfiguration" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } +} diff --git a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json new file mode 100644 index 0000000000..2dc4549dc9 --- /dev/null +++ b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json @@ -0,0 +1,881 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/6aiv7cDwqgyYEVRSZQkoMExBeXA\"", + "discoveryVersion": "v1", + "id": "gamesManagement:v1management", + "name": "gamesManagement", + "canonicalName": "Games Management", + "version": "v1management", + "revision": "20150119", + "title": "Google Play Game Services Management API", + "description": "The Management API for Google Play Game Services.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/games/services", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/games/v1management/", + "basePath": "/games/v1management/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "games/v1management/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/games": { + "description": "Share your Google+ profile information and view and manage your game activity" + }, + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + } + } + } + }, + "schemas": { + "AchievementResetAllResponse": { + "id": "AchievementResetAllResponse", + "type": "object", + "description": "This is a JSON template for achievement reset all response.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetAllResponse.", + "default": "gamesManagement#achievementResetAllResponse" + }, + "results": { + "type": "array", + "description": "The achievement reset results.", + "items": { + "$ref": "AchievementResetResponse" + } + } + } + }, + "AchievementResetMultipleForAllRequest": { + "id": "AchievementResetMultipleForAllRequest", + "type": "object", + "description": "This is a JSON template for multiple achievements reset all request.", + "properties": { + "achievement_ids": { + "type": "array", + "description": "The IDs of achievements to reset.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetMultipleForAllRequest.", + "default": "gamesManagement#achievementResetMultipleForAllRequest" + } + } + }, + "AchievementResetResponse": { + "id": "AchievementResetResponse", + "type": "object", + "description": "This is a JSON template for an achievement reset response.", + "properties": { + "currentState": { + "type": "string", + "description": "The current state of the achievement. This is the same as the initial state of the achievement.\nPossible values are: \n- \"HIDDEN\"- Achievement is hidden. \n- \"REVEALED\" - Achievement is revealed. \n- \"UNLOCKED\" - Achievement is unlocked." + }, + "definitionId": { + "type": "string", + "description": "The ID of an achievement for which player state has been updated." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#achievementResetResponse.", + "default": "gamesManagement#achievementResetResponse" + }, + "updateOccurred": { + "type": "boolean", + "description": "Flag to indicate if the requested update actually occurred." + } + } + }, + "EventsResetMultipleForAllRequest": { + "id": "EventsResetMultipleForAllRequest", + "type": "object", + "description": "This is a JSON template for multiple events reset all request.", + "properties": { + "event_ids": { + "type": "array", + "description": "The IDs of events to reset.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#eventsResetMultipleForAllRequest.", + "default": "gamesManagement#eventsResetMultipleForAllRequest" + } + } + }, + "GamesPlayedResource": { + "id": "GamesPlayedResource", + "type": "object", + "description": "This is a JSON template for metadata about a player playing a game with the currently authenticated user.", + "properties": { + "autoMatched": { + "type": "boolean", + "description": "True if the player was auto-matched with the currently authenticated user." + }, + "timeMillis": { + "type": "string", + "description": "The last time the player played the game in milliseconds since the epoch in UTC.", + "format": "int64" + } + } + }, + "GamesPlayerExperienceInfoResource": { + "id": "GamesPlayerExperienceInfoResource", + "type": "object", + "description": "This is a JSON template for 1P/3P metadata about the player's experience.", + "properties": { + "currentExperiencePoints": { + "type": "string", + "description": "The current number of experience points for the player.", + "format": "int64" + }, + "currentLevel": { + "$ref": "GamesPlayerLevelResource", + "description": "The current level of the player." + }, + "lastLevelUpTimestampMillis": { + "type": "string", + "description": "The timestamp when the player was leveled up, in millis since Unix epoch UTC.", + "format": "int64" + }, + "nextLevel": { + "$ref": "GamesPlayerLevelResource", + "description": "The next level of the player. If the current level is the maximum level, this should be same as the current level." + } + } + }, + "GamesPlayerLevelResource": { + "id": "GamesPlayerLevelResource", + "type": "object", + "description": "This is a JSON template for 1P/3P metadata about a user's level.", + "properties": { + "level": { + "type": "integer", + "description": "The level for the user.", + "format": "int32" + }, + "maxExperiencePoints": { + "type": "string", + "description": "The maximum experience points for this level.", + "format": "int64" + }, + "minExperiencePoints": { + "type": "string", + "description": "The minimum experience points for this level.", + "format": "int64" + } + } + }, + "HiddenPlayer": { + "id": "HiddenPlayer", + "type": "object", + "description": "This is a JSON template for the HiddenPlayer resource.", + "properties": { + "hiddenTimeMillis": { + "type": "string", + "description": "The time this player was hidden.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#hiddenPlayer.", + "default": "gamesManagement#hiddenPlayer" + }, + "player": { + "$ref": "Player", + "description": "The player information." + } + } + }, + "HiddenPlayerList": { + "id": "HiddenPlayerList", + "type": "object", + "description": "This is a JSON template for a list of hidden players.", + "properties": { + "items": { + "type": "array", + "description": "The players.", + "items": { + "$ref": "HiddenPlayer" + } + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#hiddenPlayerList.", + "default": "gamesManagement#hiddenPlayerList" + }, + "nextPageToken": { + "type": "string", + "description": "The pagination token for the next page of results." + } + } + }, + "Player": { + "id": "Player", + "type": "object", + "description": "This is a JSON template for a Player resource.", + "properties": { + "avatarImageUrl": { + "type": "string", + "description": "The base URL for the image that represents the player." + }, + "displayName": { + "type": "string", + "description": "The name to display for the player." + }, + "experienceInfo": { + "$ref": "GamesPlayerExperienceInfoResource", + "description": "An object to represent Play Game experience information for the player." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#player.", + "default": "gamesManagement#player" + }, + "lastPlayedWith": { + "$ref": "GamesPlayedResource", + "description": "Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members." + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of the player's name. For some players, these fields may not be present.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name of this player. In some places, this is known as the last name." + }, + "givenName": { + "type": "string", + "description": "The given name of this player. In some places, this is known as the first name." + } + } + }, + "playerId": { + "type": "string", + "description": "The ID of the player." + }, + "title": { + "type": "string", + "description": "The player's title rewarded for their game activities." + } + } + }, + "PlayerScoreResetAllResponse": { + "id": "PlayerScoreResetAllResponse", + "type": "object", + "description": "This is a JSON template for a list of leaderboard reset resources.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#playerScoreResetResponse.", + "default": "gamesManagement#playerScoreResetAllResponse" + }, + "results": { + "type": "array", + "description": "The leaderboard reset results.", + "items": { + "$ref": "PlayerScoreResetResponse" + } + } + } + }, + "PlayerScoreResetResponse": { + "id": "PlayerScoreResetResponse", + "type": "object", + "description": "This is a JSON template for a list of reset leaderboard entry resources.", + "properties": { + "definitionId": { + "type": "string", + "description": "The ID of an leaderboard for which player state has been updated." + }, + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#playerScoreResetResponse.", + "default": "gamesManagement#playerScoreResetResponse" + }, + "resetScoreTimeSpans": { + "type": "array", + "description": "The time spans of the updated score.\nPossible values are: \n- \"ALL_TIME\" - The score is an all-time score. \n- \"WEEKLY\" - The score is a weekly score. \n- \"DAILY\" - The score is a daily score.", + "items": { + "type": "string" + } + } + } + }, + "QuestsResetMultipleForAllRequest": { + "id": "QuestsResetMultipleForAllRequest", + "type": "object", + "description": "This is a JSON template for multiple quests reset all request.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#questsResetMultipleForAllRequest.", + "default": "gamesManagement#questsResetMultipleForAllRequest" + }, + "quest_ids": { + "type": "array", + "description": "The IDs of quests to reset.", + "items": { + "type": "string" + } + } + } + }, + "ScoresResetMultipleForAllRequest": { + "id": "ScoresResetMultipleForAllRequest", + "type": "object", + "description": "This is a JSON template for multiple scores reset all request.", + "properties": { + "kind": { + "type": "string", + "description": "Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#scoresResetMultipleForAllRequest.", + "default": "gamesManagement#scoresResetMultipleForAllRequest" + }, + "leaderboard_ids": { + "type": "array", + "description": "The IDs of leaderboards to reset.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "achievements": { + "methods": { + "reset": { + "id": "gamesManagement.achievements.reset", + "path": "achievements/{achievementId}/reset", + "httpMethod": "POST", + "description": "Resets the achievement with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "response": { + "$ref": "AchievementResetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAll": { + "id": "gamesManagement.achievements.resetAll", + "path": "achievements/reset", + "httpMethod": "POST", + "description": "Resets all achievements for the currently authenticated player for your application. This method is only accessible to whitelisted tester accounts for your application.", + "response": { + "$ref": "AchievementResetAllResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAllForAllPlayers": { + "id": "gamesManagement.achievements.resetAllForAllPlayers", + "path": "achievements/resetAllForAllPlayers", + "httpMethod": "POST", + "description": "Resets all draft achievements for all players. This method is only available to user accounts for your developer console.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.achievements.resetForAllPlayers", + "path": "achievements/{achievementId}/resetForAllPlayers", + "httpMethod": "POST", + "description": "Resets the achievement with the given ID for all players. This method is only available to user accounts for your developer console. Only draft achievements can be reset.", + "parameters": { + "achievementId": { + "type": "string", + "description": "The ID of the achievement used by this method.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "achievementId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetMultipleForAllPlayers": { + "id": "gamesManagement.achievements.resetMultipleForAllPlayers", + "path": "achievements/resetMultipleForAllPlayers", + "httpMethod": "POST", + "description": "Resets achievements with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft achievements may be reset.", + "request": { + "$ref": "AchievementResetMultipleForAllRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "applications": { + "methods": { + "listHidden": { + "id": "gamesManagement.applications.listHidden", + "path": "applications/{applicationId}/players/hidden", + "httpMethod": "GET", + "description": "Get the list of players hidden from the given application. This method is only available to user accounts for your developer console.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified maxResults.", + "format": "int32", + "minimum": "1", + "maximum": "15", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The token returned by the previous request.", + "location": "query" + } + }, + "parameterOrder": [ + "applicationId" + ], + "response": { + "$ref": "HiddenPlayerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "events": { + "methods": { + "reset": { + "id": "gamesManagement.events.reset", + "path": "events/{eventId}/reset", + "httpMethod": "POST", + "description": "Resets all player progress on the event with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player that use the event will also be reset.", + "parameters": { + "eventId": { + "type": "string", + "description": "The ID of the event.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "eventId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAll": { + "id": "gamesManagement.events.resetAll", + "path": "events/reset", + "httpMethod": "POST", + "description": "Resets all player progress on all events for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player will also be reset.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAllForAllPlayers": { + "id": "gamesManagement.events.resetAllForAllPlayers", + "path": "events/resetAllForAllPlayers", + "httpMethod": "POST", + "description": "Resets all draft events for all players. This method is only available to user accounts for your developer console. All quests that use any of these events will also be reset.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.events.resetForAllPlayers", + "path": "events/{eventId}/resetForAllPlayers", + "httpMethod": "POST", + "description": "Resets the event with the given ID for all players. This method is only available to user accounts for your developer console. Only draft events can be reset. All quests that use the event will also be reset.", + "parameters": { + "eventId": { + "type": "string", + "description": "The ID of the event.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "eventId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetMultipleForAllPlayers": { + "id": "gamesManagement.events.resetMultipleForAllPlayers", + "path": "events/resetMultipleForAllPlayers", + "httpMethod": "POST", + "description": "Resets events with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft events may be reset. All quests that use any of the events will also be reset.", + "request": { + "$ref": "EventsResetMultipleForAllRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "players": { + "methods": { + "hide": { + "id": "gamesManagement.players.hide", + "path": "applications/{applicationId}/players/hidden/{playerId}", + "httpMethod": "POST", + "description": "Hide the given player's leaderboard scores from the given application. This method is only available to user accounts for your developer console.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "applicationId", + "playerId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "unhide": { + "id": "gamesManagement.players.unhide", + "path": "applications/{applicationId}/players/hidden/{playerId}", + "httpMethod": "DELETE", + "description": "Unhide the given player's leaderboard scores from the given application. This method is only available to user accounts for your developer console.", + "parameters": { + "applicationId": { + "type": "string", + "description": "The application ID from the Google Play developer console.", + "required": true, + "location": "path" + }, + "playerId": { + "type": "string", + "description": "A player ID. A value of me may be used in place of the authenticated player's ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "applicationId", + "playerId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "quests": { + "methods": { + "reset": { + "id": "gamesManagement.quests.reset", + "path": "quests/{questId}/reset", + "httpMethod": "POST", + "description": "Resets all player progress on the quest with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.", + "parameters": { + "questId": { + "type": "string", + "description": "The ID of the quest.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "questId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAll": { + "id": "gamesManagement.quests.resetAll", + "path": "quests/reset", + "httpMethod": "POST", + "description": "Resets all player progress on all quests for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAllForAllPlayers": { + "id": "gamesManagement.quests.resetAllForAllPlayers", + "path": "quests/resetAllForAllPlayers", + "httpMethod": "POST", + "description": "Resets all draft quests for all players. This method is only available to user accounts for your developer console.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.quests.resetForAllPlayers", + "path": "quests/{questId}/resetForAllPlayers", + "httpMethod": "POST", + "description": "Resets all player progress on the quest with the given ID for all players. This method is only available to user accounts for your developer console. Only draft quests can be reset.", + "parameters": { + "questId": { + "type": "string", + "description": "The ID of the quest.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "questId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetMultipleForAllPlayers": { + "id": "gamesManagement.quests.resetMultipleForAllPlayers", + "path": "quests/resetMultipleForAllPlayers", + "httpMethod": "POST", + "description": "Resets quests with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft quests may be reset.", + "request": { + "$ref": "QuestsResetMultipleForAllRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "rooms": { + "methods": { + "reset": { + "id": "gamesManagement.rooms.reset", + "path": "rooms/reset", + "httpMethod": "POST", + "description": "Reset all rooms for the currently authenticated player for your application. This method is only accessible to whitelisted tester accounts for your application.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.rooms.resetForAllPlayers", + "path": "rooms/resetForAllPlayers", + "httpMethod": "POST", + "description": "Deletes rooms where the only room participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "scores": { + "methods": { + "reset": { + "id": "gamesManagement.scores.reset", + "path": "leaderboards/{leaderboardId}/scores/reset", + "httpMethod": "POST", + "description": "Resets scores for the leaderboard with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "response": { + "$ref": "PlayerScoreResetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAll": { + "id": "gamesManagement.scores.resetAll", + "path": "scores/reset", + "httpMethod": "POST", + "description": "Resets all scores for all leaderboards for the currently authenticated players. This method is only accessible to whitelisted tester accounts for your application.", + "response": { + "$ref": "PlayerScoreResetAllResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetAllForAllPlayers": { + "id": "gamesManagement.scores.resetAllForAllPlayers", + "path": "scores/resetAllForAllPlayers", + "httpMethod": "POST", + "description": "Resets scores for all draft leaderboards for all players. This method is only available to user accounts for your developer console.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.scores.resetForAllPlayers", + "path": "leaderboards/{leaderboardId}/scores/resetForAllPlayers", + "httpMethod": "POST", + "description": "Resets scores for the leaderboard with the given ID for all players. This method is only available to user accounts for your developer console. Only draft leaderboards can be reset.", + "parameters": { + "leaderboardId": { + "type": "string", + "description": "The ID of the leaderboard.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "leaderboardId" + ], + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetMultipleForAllPlayers": { + "id": "gamesManagement.scores.resetMultipleForAllPlayers", + "path": "scores/resetMultipleForAllPlayers", + "httpMethod": "POST", + "description": "Resets scores for the leaderboards with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft leaderboards may be reset.", + "request": { + "$ref": "ScoresResetMultipleForAllRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "turnBasedMatches": { + "methods": { + "reset": { + "id": "gamesManagement.turnBasedMatches.reset", + "path": "turnbasedmatches/reset", + "httpMethod": "POST", + "description": "Reset all turn-based match data for a user. This method is only accessible to whitelisted tester accounts for your application.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "resetForAllPlayers": { + "id": "gamesManagement.turnBasedMatches.resetForAllPlayers", + "path": "turnbasedmatches/resetForAllPlayers", + "httpMethod": "POST", + "description": "Deletes turn-based matches where the only match participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.", + "scopes": [ + "https://www.googleapis.com/auth/games", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + } + } +} diff --git a/etc/api/gan/v1beta1/gan-api.json b/etc/api/gan/v1beta1/gan-api.json new file mode 100644 index 0000000000..a66341c800 --- /dev/null +++ b/etc/api/gan/v1beta1/gan-api.json @@ -0,0 +1,1860 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/sUp2RhXMaDQQQ4TJDISV0wjpOdU\"", + "discoveryVersion": "v1", + "id": "gan:v1beta1", + "name": "gan", + "version": "v1beta1", + "revision": "20130205", + "title": "Google Affiliate Network API", + "description": "Lets you have programmatic access to your Google Affiliate Network data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/affiliatenetwork-16.png", + "x32": "http://www.google.com/images/icons/product/affiliatenetwork-32.png" + }, + "documentationLink": "https://developers.google.com/affiliate-network/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/gan/v1beta1/", + "basePath": "/gan/v1beta1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "gan/v1beta1/", + "batchPath": "batch", + "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": { + "Advertiser": { + "id": "Advertiser", + "type": "object", + "description": "An AdvertiserResource.", + "properties": { + "allowPublisherCreatedLinks": { + "type": "boolean", + "description": "True if the advertiser allows publisher created links, otherwise false." + }, + "category": { + "type": "string", + "description": "Category that this advertiser belongs to. A valid list of categories can be found here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581" + }, + "commissionDuration": { + "type": "integer", + "description": "The longest possible length of a commission (how long the cookies on the customer's browser last before they expire).", + "format": "int32" + }, + "contactEmail": { + "type": "string", + "description": "Email that this advertiser would like publishers to contact them with." + }, + "contactPhone": { + "type": "string", + "description": "Phone that this advertiser would like publishers to contact them with." + }, + "defaultLinkId": { + "type": "string", + "description": "The default link id for this advertiser.", + "format": "int64" + }, + "description": { + "type": "string", + "description": "Description of the website the advertiser advertises from." + }, + "epcNinetyDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to publishers divided by the total number of clicks over the past three months. This value should be multiplied by 100 at the time of display." + }, + "epcSevenDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to publishers divided by the total number of clicks over the past seven days. This value should be multiplied by 100 at the time of display." + }, + "id": { + "type": "string", + "description": "The ID of this advertiser.", + "format": "int64" + }, + "item": { + "$ref": "Advertiser", + "description": "The requested advertiser." + }, + "joinDate": { + "type": "string", + "description": "Date that this advertiser was approved as a Google Affiliate Network advertiser.", + "format": "date-time" + }, + "kind": { + "type": "string", + "description": "The kind for an advertiser.", + "default": "gan#advertiser" + }, + "logoUrl": { + "type": "string", + "description": "URL to the logo this advertiser uses on the Google Affiliate Network." + }, + "merchantCenterIds": { + "type": "array", + "description": "List of merchant center ids for this advertiser", + "items": { + "type": "string", + "format": "int64" + } + }, + "name": { + "type": "string", + "description": "The name of this advertiser." + }, + "payoutRank": { + "type": "string", + "description": "A rank based on commissions paid to publishers over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid)." + }, + "productFeedsEnabled": { + "type": "boolean", + "description": "Allows advertisers to submit product listings to Google Product Search." + }, + "redirectDomains": { + "type": "array", + "description": "List of redirect URLs for this advertiser", + "items": { + "type": "string" + } + }, + "siteUrl": { + "type": "string", + "description": "URL of the website this advertiser advertises from." + }, + "status": { + "type": "string", + "description": "The status of the requesting publisher's relationship this advertiser." + } + } + }, + "Advertisers": { + "id": "Advertisers", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The advertiser list.", + "items": { + "$ref": "Advertiser" + } + }, + "kind": { + "type": "string", + "description": "The kind for a page of advertisers.", + "default": "gan#advertisers" + }, + "nextPageToken": { + "type": "string", + "description": "The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve." + } + } + }, + "CcOffer": { + "id": "CcOffer", + "type": "object", + "description": "A credit card offer. There are many possible result fields. We provide two different views of the data, or \"projections.\" The \"full\" projection includes every result field. And the \"summary\" projection, which is the default, includes a smaller subset of the fields. The fields included in the summary projection are marked as such in their descriptions.", + "properties": { + "additionalCardBenefits": { + "type": "array", + "description": "More marketing copy about the card's benefits. A summary field.", + "items": { + "type": "string" + } + }, + "additionalCardHolderFee": { + "type": "string", + "description": "Any extra fees levied on card holders." + }, + "ageMinimum": { + "type": "number", + "description": "The youngest a recipient of this card may be.", + "format": "double" + }, + "ageMinimumDetails": { + "type": "string", + "description": "Text describing the details of the age minimum restriction." + }, + "annualFee": { + "type": "number", + "description": "The ongoing annual fee, in dollars.", + "format": "double" + }, + "annualFeeDisplay": { + "type": "string", + "description": "Text describing the annual fee, including any difference for the first year. A summary field." + }, + "annualRewardMaximum": { + "type": "number", + "description": "The largest number of units you may accumulate in a year.", + "format": "double" + }, + "approvedCategories": { + "type": "array", + "description": "Possible categories for this card, eg \"Low Interest\" or \"Good.\" A summary field.", + "items": { + "type": "string" + } + }, + "aprDisplay": { + "type": "string", + "description": "Text describing the purchase APR. A summary field." + }, + "balanceComputationMethod": { + "type": "string", + "description": "Text describing how the balance is computed. A summary field." + }, + "balanceTransferTerms": { + "type": "string", + "description": "Text describing the terms for balance transfers. A summary field." + }, + "bonusRewards": { + "type": "array", + "description": "For cards with rewards programs, extra circumstances whereby additional rewards may be granted.", + "items": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "How many units of reward will be granted.", + "format": "double" + }, + "details": { + "type": "string", + "description": "The circumstances under which this rule applies, for example, booking a flight via Orbitz." + } + } + } + }, + "carRentalInsurance": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "cardBenefits": { + "type": "array", + "description": "A list of what the issuer thinks are the most important benefits of the card. Usually summarizes the rewards program, if there is one. A summary field.", + "items": { + "type": "string" + } + }, + "cardName": { + "type": "string", + "description": "The issuer's name for the card, including any trademark or service mark designators. A summary field." + }, + "cardType": { + "type": "string", + "description": "What kind of credit card this is, for example secured or unsecured." + }, + "cashAdvanceTerms": { + "type": "string", + "description": "Text describing the terms for cash advances. A summary field." + }, + "creditLimitMax": { + "type": "number", + "description": "The high end for credit limits the issuer imposes on recipients of this card.", + "format": "double" + }, + "creditLimitMin": { + "type": "number", + "description": "The low end for credit limits the issuer imposes on recipients of this card.", + "format": "double" + }, + "creditRatingDisplay": { + "type": "string", + "description": "Text describing the credit ratings required for recipients of this card, for example \"Excellent/Good.\" A summary field." + }, + "defaultFees": { + "type": "array", + "description": "Fees for defaulting on your payments.", + "items": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "The type of charge, for example Purchases." + }, + "maxRate": { + "type": "number", + "description": "The highest rate the issuer may charge for defaulting on debt in this category. Expressed as an absolute number, not as a percentage.", + "format": "double" + }, + "minRate": { + "type": "number", + "description": "The lowest rate the issuer may charge for defaulting on debt in this category. Expressed as an absolute number, not as a percentage.", + "format": "double" + }, + "rateType": { + "type": "string", + "description": "Fixed or variable." + } + } + } + }, + "disclaimer": { + "type": "string", + "description": "A notice that, if present, is referenced via an asterisk by many of the other summary fields. If this field is present, it will always start with an asterisk (\"*\"), and must be prominently displayed with the offer. A summary field." + }, + "emergencyInsurance": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "existingCustomerOnly": { + "type": "boolean", + "description": "Whether this card is only available to existing customers of the issuer." + }, + "extendedWarranty": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "firstYearAnnualFee": { + "type": "number", + "description": "The annual fee for the first year, if different from the ongoing fee. Optional.", + "format": "double" + }, + "flightAccidentInsurance": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "foreignCurrencyTransactionFee": { + "type": "string", + "description": "Fee for each transaction involving a foreign currency." + }, + "fraudLiability": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "gracePeriodDisplay": { + "type": "string", + "description": "Text describing the grace period before finance charges apply. A summary field." + }, + "imageUrl": { + "type": "string", + "description": "The link to the image of the card that is shown on Connect Commerce. A summary field." + }, + "initialSetupAndProcessingFee": { + "type": "string", + "description": "Fee for setting up the card." + }, + "introBalanceTransferTerms": { + "type": "string", + "description": "Text describing the terms for introductory period balance transfers. A summary field." + }, + "introCashAdvanceTerms": { + "type": "string", + "description": "Text describing the terms for introductory period cash advances. A summary field." + }, + "introPurchaseTerms": { + "type": "string", + "description": "Text describing the terms for introductory period purchases. A summary field." + }, + "issuer": { + "type": "string", + "description": "Name of card issuer. A summary field." + }, + "issuerId": { + "type": "string", + "description": "The Google Affiliate Network ID of the advertiser making this offer." + }, + "issuerWebsite": { + "type": "string", + "description": "The generic link to the issuer's site." + }, + "kind": { + "type": "string", + "description": "The kind for one credit card offer. A summary field.", + "default": "gan#ccOffer" + }, + "landingPageUrl": { + "type": "string", + "description": "The link to the issuer's page for this card. A summary field." + }, + "latePaymentFee": { + "type": "string", + "description": "Text describing how much a late payment will cost, eg \"up to $35.\" A summary field." + }, + "luggageInsurance": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "maxPurchaseRate": { + "type": "number", + "description": "The highest interest rate the issuer charges on this card. Expressed as an absolute number, not as a percentage.", + "format": "double" + }, + "minPurchaseRate": { + "type": "number", + "description": "The lowest interest rate the issuer charges on this card. Expressed as an absolute number, not as a percentage.", + "format": "double" + }, + "minimumFinanceCharge": { + "type": "string", + "description": "Text describing how much missing the grace period will cost." + }, + "network": { + "type": "string", + "description": "Which network (eg Visa) the card belongs to. A summary field." + }, + "offerId": { + "type": "string", + "description": "This offer's ID. A summary field." + }, + "offersImmediateCashReward": { + "type": "boolean", + "description": "Whether a cash reward program lets you get cash back sooner than end of year or other longish period." + }, + "overLimitFee": { + "type": "string", + "description": "Fee for exceeding the card's charge limit." + }, + "prohibitedCategories": { + "type": "array", + "description": "Categories in which the issuer does not wish the card to be displayed. A summary field.", + "items": { + "type": "string" + } + }, + "purchaseRateAdditionalDetails": { + "type": "string", + "description": "Text describing any additional details for the purchase rate. A summary field." + }, + "purchaseRateType": { + "type": "string", + "description": "Fixed or variable." + }, + "returnedPaymentFee": { + "type": "string", + "description": "Text describing the fee for a payment that doesn't clear. A summary field." + }, + "rewardPartner": { + "type": "string", + "description": "The company that redeems the rewards, if different from the issuer." + }, + "rewardUnit": { + "type": "string", + "description": "For cards with rewards programs, the unit of reward. For example, miles, cash back, points." + }, + "rewards": { + "type": "array", + "description": "For cards with rewards programs, detailed rules about how the program works.", + "items": { + "type": "object", + "properties": { + "additionalDetails": { + "type": "string", + "description": "Other limits, for example, if this rule only applies during an introductory period." + }, + "amount": { + "type": "number", + "description": "The number of units rewarded per purchase dollar.", + "format": "double" + }, + "category": { + "type": "string", + "description": "The kind of purchases covered by this rule." + }, + "expirationMonths": { + "type": "number", + "description": "How long rewards granted by this rule last.", + "format": "double" + }, + "maxRewardTier": { + "type": "number", + "description": "The maximum purchase amount in the given category for this rule to apply.", + "format": "double" + }, + "minRewardTier": { + "type": "number", + "description": "The minimum purchase amount in the given category before this rule applies.", + "format": "double" + } + } + } + }, + "rewardsExpire": { + "type": "boolean", + "description": "Whether accumulated rewards ever expire." + }, + "rewardsHaveBlackoutDates": { + "type": "boolean", + "description": "For airline miles rewards, tells whether blackout dates apply to the miles." + }, + "statementCopyFee": { + "type": "string", + "description": "Fee for requesting a copy of your statement." + }, + "trackingUrl": { + "type": "string", + "description": "The link to ping to register a click on this offer. A summary field." + }, + "travelInsurance": { + "type": "string", + "description": "If you get coverage when you use the card for the given activity, this field describes it." + }, + "variableRatesLastUpdated": { + "type": "string", + "description": "When variable rates were last updated." + }, + "variableRatesUpdateFrequency": { + "type": "string", + "description": "How often variable rates are updated." + } + } + }, + "CcOffers": { + "id": "CcOffers", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The credit card offers.", + "items": { + "$ref": "CcOffer" + } + }, + "kind": { + "type": "string", + "description": "The kind for a page of credit card offers.", + "default": "gan#ccOffers" + } + } + }, + "Event": { + "id": "Event", + "type": "object", + "description": "An EventResource.", + "properties": { + "advertiserId": { + "type": "string", + "description": "The ID of advertiser for this event.", + "format": "int64" + }, + "advertiserName": { + "type": "string", + "description": "The name of the advertiser for this event." + }, + "chargeId": { + "type": "string", + "description": "The charge ID for this event. Only returned for charge events." + }, + "chargeType": { + "type": "string", + "description": "Charge type of the event (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only returned for charge events." + }, + "commissionableSales": { + "$ref": "Money", + "description": "Amount of money exchanged during the transaction. Only returned for charge and conversion events." + }, + "earnings": { + "$ref": "Money", + "description": "Earnings by the publisher." + }, + "eventDate": { + "type": "string", + "description": "The date-time this event was initiated as a RFC 3339 date-time value.", + "format": "date-time" + }, + "kind": { + "type": "string", + "description": "The kind for one event.", + "default": "gan#event" + }, + "memberId": { + "type": "string", + "description": "The ID of the member attached to this event. Only returned for conversion events." + }, + "modifyDate": { + "type": "string", + "description": "The date-time this event was last modified as a RFC 3339 date-time value.", + "format": "date-time" + }, + "networkFee": { + "$ref": "Money", + "description": "Fee that the advertiser paid to the Google Affiliate Network." + }, + "orderId": { + "type": "string", + "description": "The order ID for this event. Only returned for conversion events." + }, + "products": { + "type": "array", + "description": "Products associated with the event.", + "items": { + "type": "object", + "properties": { + "categoryId": { + "type": "string", + "description": "Id of the category this product belongs to." + }, + "categoryName": { + "type": "string", + "description": "Name of the category this product belongs to." + }, + "earnings": { + "$ref": "Money", + "description": "Amount earned by the publisher on this product." + }, + "networkFee": { + "$ref": "Money", + "description": "Fee that the advertiser paid to the Google Affiliate Network for this product." + }, + "publisherFee": { + "$ref": "Money", + "description": "Fee that the advertiser paid to the publisehr for this product." + }, + "quantity": { + "type": "string", + "description": "Quantity of this product bought/exchanged.", + "format": "int64" + }, + "sku": { + "type": "string", + "description": "Sku of this product." + }, + "skuName": { + "type": "string", + "description": "Sku name of this product." + }, + "unitPrice": { + "$ref": "Money", + "description": "Price per unit of this product." + } + } + } + }, + "publisherFee": { + "$ref": "Money", + "description": "Fee that the advertiser paid to the publisher." + }, + "publisherId": { + "type": "string", + "description": "The ID of the publisher for this event.", + "format": "int64" + }, + "publisherName": { + "type": "string", + "description": "The name of the publisher for this event." + }, + "status": { + "type": "string", + "description": "Status of the event (active|canceled). Only returned for charge and conversion events." + }, + "type": { + "type": "string", + "description": "Type of the event (action|transaction|charge)." + } + } + }, + "Events": { + "id": "Events", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The event list.", + "items": { + "$ref": "Event" + } + }, + "kind": { + "type": "string", + "description": "The kind for a page of events.", + "default": "gan#events" + }, + "nextPageToken": { + "type": "string", + "description": "The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve." + } + } + }, + "Link": { + "id": "Link", + "type": "object", + "description": "A LinkResource.", + "properties": { + "advertiserId": { + "type": "string", + "description": "The advertiser id for the advertiser who owns this link.", + "format": "int64" + }, + "authorship": { + "type": "string", + "description": "Authorship" + }, + "availability": { + "type": "string", + "description": "Availability." + }, + "clickTrackingUrl": { + "type": "string", + "description": "Tracking url for clicks." + }, + "createDate": { + "type": "string", + "description": "Date that this link was created.", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "Description." + }, + "destinationUrl": { + "type": "string", + "description": "The destination URL for the link." + }, + "duration": { + "type": "string", + "description": "Duration" + }, + "endDate": { + "type": "string", + "description": "Date that this link becomes inactive.", + "format": "date-time" + }, + "epcNinetyDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to publishers divided by the total number of clicks over the past three months on this link. This value should be multiplied by 100 at the time of display." + }, + "epcSevenDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to publishers divided by the total number of clicks over the past seven days on this link. This value should be multiplied by 100 at the time of display." + }, + "id": { + "type": "string", + "description": "The ID of this link.", + "format": "int64" + }, + "imageAltText": { + "type": "string", + "description": "image alt text." + }, + "impressionTrackingUrl": { + "type": "string", + "description": "Tracking url for impressions." + }, + "isActive": { + "type": "boolean", + "description": "Flag for if this link is active." + }, + "kind": { + "type": "string", + "description": "The kind for one entity.", + "default": "gan#link" + }, + "linkType": { + "type": "string", + "description": "The link type." + }, + "name": { + "type": "string", + "description": "The logical name for this link." + }, + "promotionType": { + "type": "string", + "description": "Promotion Type" + }, + "specialOffers": { + "type": "object", + "description": "Special offers on the link.", + "properties": { + "freeGift": { + "type": "boolean", + "description": "Whether there is a free gift" + }, + "freeShipping": { + "type": "boolean", + "description": "Whether there is free shipping" + }, + "freeShippingMin": { + "$ref": "Money", + "description": "Minimum purchase amount for free shipping promotion" + }, + "percentOff": { + "type": "number", + "description": "Percent off on the purchase", + "format": "double" + }, + "percentOffMin": { + "$ref": "Money", + "description": "Minimum purchase amount for percent off promotion" + }, + "priceCut": { + "$ref": "Money", + "description": "Price cut on the purchase" + }, + "priceCutMin": { + "$ref": "Money", + "description": "Minimum purchase amount for price cut promotion" + }, + "promotionCodes": { + "type": "array", + "description": "List of promotion code associated with the link", + "items": { + "type": "string" + } + } + } + }, + "startDate": { + "type": "string", + "description": "Date that this link becomes active.", + "format": "date-time" + } + } + }, + "Links": { + "id": "Links", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The links.", + "items": { + "$ref": "Link" + } + }, + "kind": { + "type": "string", + "description": "The kind for a page of links.", + "default": "gan#links" + }, + "nextPageToken": { + "type": "string", + "description": "The next page token." + } + } + }, + "Money": { + "id": "Money", + "type": "object", + "description": "An ApiMoneyProto.", + "properties": { + "amount": { + "type": "number", + "description": "The amount of money.", + "format": "double" + }, + "currencyCode": { + "type": "string", + "description": "The 3-letter code of the currency in question." + } + } + }, + "Publisher": { + "id": "Publisher", + "type": "object", + "description": "A PublisherResource.", + "properties": { + "classification": { + "type": "string", + "description": "Classification that this publisher belongs to. See this link for all publisher classifications: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4" + }, + "epcNinetyDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to this publisher divided by the total number of clicks over the past three months. Values are multiplied by 100 for display purposes." + }, + "epcSevenDayAverage": { + "$ref": "Money", + "description": "The sum of fees paid to this publisher divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes." + }, + "id": { + "type": "string", + "description": "The ID of this publisher.", + "format": "int64" + }, + "item": { + "$ref": "Publisher", + "description": "The requested publisher." + }, + "joinDate": { + "type": "string", + "description": "Date that this publisher was approved as a Google Affiliate Network publisher.", + "format": "date-time" + }, + "kind": { + "type": "string", + "description": "The kind for a publisher.", + "default": "gan#publisher" + }, + "name": { + "type": "string", + "description": "The name of this publisher." + }, + "payoutRank": { + "type": "string", + "description": "A rank based on commissions paid to this publisher over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid)." + }, + "sites": { + "type": "array", + "description": "Websites that this publisher uses to advertise.", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "The status of the requesting advertiser's relationship with this publisher." + } + } + }, + "Publishers": { + "id": "Publishers", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The entity list.", + "items": { + "$ref": "Publisher" + } + }, + "kind": { + "type": "string", + "description": "The kind for a page of entities.", + "default": "gan#publishers" + }, + "nextPageToken": { + "type": "string", + "description": "The 'pageToken' to pass to the next request to get the next page, if there are more to retrieve." + } + } + }, + "Report": { + "id": "Report", + "type": "object", + "description": "A ReportResource representing a report of a certain type either for an advertiser or publisher.", + "properties": { + "column_names": { + "type": "array", + "description": "The column names for the report", + "items": { + "type": "string" + } + }, + "end_date": { + "type": "string", + "description": "The end of the date range for this report, exclusive." + }, + "kind": { + "type": "string", + "description": "The kind for a report.", + "default": "gan#report" + }, + "matching_row_count": { + "type": "string", + "description": "The number of matching rows before paging is applied.", + "format": "int64" + }, + "rows": { + "type": "array", + "description": "The rows of data for the report", + "items": { + "type": "array", + "description": "Loop over each column in the row.", + "items": { + "type": "any" + } + } + }, + "start_date": { + "type": "string", + "description": "The start of the date range for this report, inclusive." + }, + "totals_rows": { + "type": "array", + "description": "The totals rows for the report", + "items": { + "type": "array", + "description": "Loop over each column in the row.", + "items": { + "type": "any" + } + } + }, + "type": { + "type": "string", + "description": "The report type." + } + } + } + }, + "resources": { + "advertisers": { + "methods": { + "get": { + "id": "gan.advertisers.get", + "path": "{role}/{roleId}/advertiser", + "httpMethod": "GET", + "description": "Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only publishers can lookup advertisers. Advertisers can request information about themselves by omitting the advertiserId query parameter.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "The ID of the advertiser to look up. Optional.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Advertiser" + } + }, + "list": { + "id": "gan.advertisers.list", + "path": "{role}/{roleId}/advertisers", + "httpMethod": "GET", + "description": "Retrieves data about all advertisers that the requesting advertiser/publisher has access to.", + "parameters": { + "advertiserCategory": { + "type": "string", + "description": "Caret(^) delimted list of advertiser categories. Valid categories are defined here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581. Filters out all advertisers not in one of the given advertiser categories. Optional.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Max number of items to return in this page. Optional. Defaults to 20.", + "format": "uint32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "minNinetyDayEpc": { + "type": "number", + "description": "Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.", + "format": "double", + "location": "query" + }, + "minPayoutRank": { + "type": "integer", + "description": "A value between 1 and 4, where 1 represents the quartile of advertisers with the lowest ranks and 4 represents the quartile of advertisers with the highest ranks. Filters out all advertisers with a lower rank than the given quartile. For example if a 2 was given only advertisers with a payout rank of 25 or higher would be included. Optional.", + "format": "int32", + "minimum": "1", + "maximum": "4", + "location": "query" + }, + "minSevenDayEpc": { + "type": "number", + "description": "Filters out all advertisers that have a seven day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.", + "format": "double", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of 'nextPageToken' from the previous page. Optional.", + "location": "query" + }, + "relationshipStatus": { + "type": "string", + "description": "Filters out all advertisers for which do not have the given relationship status with the requesting publisher.", + "enum": [ + "approved", + "available", + "deactivated", + "declined", + "pending" + ], + "enumDescriptions": [ + "An advertiser that has approved your application.", + "An advertiser program that's accepting new publishers.", + "Deactivated means either the advertiser has removed you from their program, or it could also mean that you chose to remove yourself from the advertiser's program.", + "An advertiser that did not approve your application.", + "An advertiser program that you've already applied to, but they haven't yet decided to approve or decline your application." + ], + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Advertisers" + } + } + } + }, + "ccOffers": { + "methods": { + "list": { + "id": "gan.ccOffers.list", + "path": "publishers/{publisher}/ccOffers", + "httpMethod": "GET", + "description": "Retrieves credit card offers for the given publisher.", + "parameters": { + "advertiser": { + "type": "string", + "description": "The advertiser ID of a card issuer whose offers to include. Optional, may be repeated.", + "repeated": true, + "location": "query" + }, + "projection": { + "type": "string", + "description": "The set of fields to return.", + "enum": [ + "full", + "summary" + ], + "enumDescriptions": [ + "Include all offer fields. This is the default.", + "Include only the basic fields needed to display an offer." + ], + "location": "query" + }, + "publisher": { + "type": "string", + "description": "The ID of the publisher in question.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "publisher" + ], + "response": { + "$ref": "CcOffers" + } + } + } + }, + "events": { + "methods": { + "list": { + "id": "gan.events.list", + "path": "{role}/{roleId}/events", + "httpMethod": "GET", + "description": "Retrieves event data for a given advertiser/publisher.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Caret(^) delimited list of advertiser IDs. Filters out all events that do not reference one of the given advertiser IDs. Only used when under publishers role. Optional.", + "location": "query" + }, + "chargeType": { + "type": "string", + "description": "Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.", + "enum": [ + "credit", + "debit", + "monthly_minimum", + "other", + "slotting_fee", + "tier_bonus" + ], + "enumDescriptions": [ + "A credit increases the publisher's payout amount and decreases the advertiser's invoice amount.", + "A debit reduces the publisher's payout and increases the advertiser's invoice amount.", + "A payment made to Google by an advertiser as a minimum monthly network fee.", + "Catch all. Default if unset", + "A one time payment made from an advertiser to a publisher.", + "A payment from an advertiser to a publisher for the publisher maintaining a high tier level" + ], + "location": "query" + }, + "eventDateMax": { + "type": "string", + "description": "Filters out all events later than given date. Optional. Defaults to 24 hours after eventMin.", + "location": "query" + }, + "eventDateMin": { + "type": "string", + "description": "Filters out all events earlier than given date. Optional. Defaults to 24 hours from current date/time.", + "location": "query" + }, + "linkId": { + "type": "string", + "description": "Caret(^) delimited list of link IDs. Filters out all events that do not reference one of the given link IDs. Optional.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Max number of offers to return in this page. Optional. Defaults to 20.", + "format": "uint32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "memberId": { + "type": "string", + "description": "Caret(^) delimited list of member IDs. Filters out all events that do not reference one of the given member IDs. Optional.", + "location": "query" + }, + "modifyDateMax": { + "type": "string", + "description": "Filters out all events modified later than given date. Optional. Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly set.", + "location": "query" + }, + "modifyDateMin": { + "type": "string", + "description": "Filters out all events modified earlier than given date. Optional. Defaults to 24 hours before the current modifyDateMax, if modifyDateMax is explicitly set.", + "location": "query" + }, + "orderId": { + "type": "string", + "description": "Caret(^) delimited list of order IDs. Filters out all events that do not reference one of the given order IDs. Optional.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of 'nextPageToken' from the previous page. Optional.", + "location": "query" + }, + "productCategory": { + "type": "string", + "description": "Caret(^) delimited list of product categories. Filters out all events that do not reference a product in one of the given product categories. Optional.", + "location": "query" + }, + "publisherId": { + "type": "string", + "description": "Caret(^) delimited list of publisher IDs. Filters out all events that do not reference one of the given publishers IDs. Only used when under advertiser role. Optional.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + }, + "sku": { + "type": "string", + "description": "Caret(^) delimited list of SKUs. Filters out all events that do not reference one of the given SKU. Optional.", + "location": "query" + }, + "status": { + "type": "string", + "description": "Filters out all events that do not have the given status. Valid values: 'active', 'canceled'. Optional.", + "enum": [ + "active", + "canceled" + ], + "enumDescriptions": [ + "Event is currently active.", + "Event is currently canceled." + ], + "location": "query" + }, + "type": { + "type": "string", + "description": "Filters out all events that are not of the given type. Valid values: 'action', 'transaction', 'charge'. Optional.", + "enum": [ + "action", + "charge", + "transaction" + ], + "enumDescriptions": [ + "The completion of an application, sign-up, or other process. For example, an action occurs if a user clicks an ad for a credit card and completes an application for that card.", + "A charge event is typically a payment between an advertiser, publisher or Google.", + "A conversion event, typically an e-commerce transaction. Some advertisers use a transaction to record other types of events, such as magazine subscriptions." + ], + "location": "query" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Events" + } + } + } + }, + "links": { + "methods": { + "get": { + "id": "gan.links.get", + "path": "{role}/{roleId}/link/{linkId}", + "httpMethod": "GET", + "description": "Retrieves data about a single link if the requesting advertiser/publisher has access to it. Advertisers can look up their own links. Publishers can look up visible links or links belonging to advertisers they are in a relationship with.", + "parameters": { + "linkId": { + "type": "string", + "description": "The ID of the link to look up.", + "required": true, + "format": "int64", + "location": "path" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId", + "linkId" + ], + "response": { + "$ref": "Link" + } + }, + "insert": { + "id": "gan.links.insert", + "path": "{role}/{roleId}/link", + "httpMethod": "POST", + "description": "Inserts a new link.", + "parameters": { + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "request": { + "$ref": "Link" + }, + "response": { + "$ref": "Link" + } + }, + "list": { + "id": "gan.links.list", + "path": "{role}/{roleId}/links", + "httpMethod": "GET", + "description": "Retrieves all links that match the query parameters.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "Limits the resulting links to the ones belonging to the listed advertisers.", + "format": "int64", + "repeated": true, + "location": "query" + }, + "assetSize": { + "type": "string", + "description": "The size of the given asset.", + "repeated": true, + "location": "query" + }, + "authorship": { + "type": "string", + "description": "The role of the author of the link.", + "enum": [ + "advertiser", + "publisher" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "createDateMax": { + "type": "string", + "description": "The end of the create date range.", + "location": "query" + }, + "createDateMin": { + "type": "string", + "description": "The beginning of the create date range.", + "location": "query" + }, + "linkType": { + "type": "string", + "description": "The type of the link.", + "enum": [ + "banner", + "text" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Max number of items to return in this page. Optional. Defaults to 20.", + "format": "uint32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of 'nextPageToken' from the previous page. Optional.", + "location": "query" + }, + "promotionType": { + "type": "string", + "description": "The promotion type.", + "enum": [ + "coupon", + "free_gift", + "free_shipping", + "percent_off", + "price_cut" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "repeated": true, + "location": "query" + }, + "relationshipStatus": { + "type": "string", + "description": "The status of the relationship.", + "enum": [ + "approved", + "available" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + }, + "searchText": { + "type": "string", + "description": "Field for full text search across title and merchandising text, supports link id search.", + "location": "query" + }, + "startDateMax": { + "type": "string", + "description": "The end of the start date range.", + "location": "query" + }, + "startDateMin": { + "type": "string", + "description": "The beginning of the start date range.", + "location": "query" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Links" + } + } + } + }, + "publishers": { + "methods": { + "get": { + "id": "gan.publishers.get", + "path": "{role}/{roleId}/publisher", + "httpMethod": "GET", + "description": "Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only advertisers can look up publishers. Publishers can request information about themselves by omitting the publisherId query parameter.", + "parameters": { + "publisherId": { + "type": "string", + "description": "The ID of the publisher to look up. Optional.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Publisher" + } + }, + "list": { + "id": "gan.publishers.list", + "path": "{role}/{roleId}/publishers", + "httpMethod": "GET", + "description": "Retrieves data about all publishers that the requesting advertiser/publisher has access to.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Max number of items to return in this page. Optional. Defaults to 20.", + "format": "uint32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "minNinetyDayEpc": { + "type": "number", + "description": "Filters out all publishers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.", + "format": "double", + "location": "query" + }, + "minPayoutRank": { + "type": "integer", + "description": "A value between 1 and 4, where 1 represents the quartile of publishers with the lowest ranks and 4 represents the quartile of publishers with the highest ranks. Filters out all publishers with a lower rank than the given quartile. For example if a 2 was given only publishers with a payout rank of 25 or higher would be included. Optional.", + "format": "int32", + "minimum": "1", + "maximum": "4", + "location": "query" + }, + "minSevenDayEpc": { + "type": "number", + "description": "Filters out all publishers that have a seven day EPC average lower than the given value (inclusive). Min value 0.0. Optional.", + "format": "double", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value of 'nextPageToken' from the previous page. Optional.", + "location": "query" + }, + "publisherCategory": { + "type": "string", + "description": "Caret(^) delimted list of publisher categories. Valid categories: (unclassified|community_and_content|shopping_and_promotion|loyalty_and_rewards|network|search_specialist|comparison_shopping|email). Filters out all publishers not in one of the given advertiser categories. Optional.", + "location": "query" + }, + "relationshipStatus": { + "type": "string", + "description": "Filters out all publishers for which do not have the given relationship status with the requesting publisher.", + "enum": [ + "approved", + "available", + "deactivated", + "declined", + "pending" + ], + "enumDescriptions": [ + "Publishers you've approved to your program.", + "Publishers available for you to recruit.", + "A publisher that you terminated from your program. Publishers also have the ability to remove themselves from your program.", + "A publisher that you did not approve to your program.", + "Publishers that have applied to your program. We recommend reviewing and deciding on pending publishers on a weekly basis." + ], + "location": "query" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "role", + "roleId" + ], + "response": { + "$ref": "Publishers" + } + } + } + }, + "reports": { + "methods": { + "get": { + "id": "gan.reports.get", + "path": "{role}/{roleId}/report/{reportType}", + "httpMethod": "GET", + "description": "Retrieves a report of the specified type.", + "parameters": { + "advertiserId": { + "type": "string", + "description": "The IDs of the advertisers to look up, if applicable.", + "repeated": true, + "location": "query" + }, + "calculateTotals": { + "type": "boolean", + "description": "Whether or not to calculate totals rows. Optional.", + "location": "query" + }, + "endDate": { + "type": "string", + "description": "The end date (exclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day after startDate, if that is given, or today. Optional.", + "location": "query" + }, + "eventType": { + "type": "string", + "description": "Filters out all events that are not of the given type. Valid values: 'action', 'transaction', or 'charge'. Optional.", + "enum": [ + "action", + "charge", + "transaction" + ], + "enumDescriptions": [ + "Event type is action.", + "Event type is charge.", + "Event type is transaction." + ], + "location": "query" + }, + "linkId": { + "type": "string", + "description": "Filters to capture one of given link IDs. Optional.", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Max number of items to return in this page. Optional. Defaults to return all results.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "orderId": { + "type": "string", + "description": "Filters to capture one of the given order IDs. Optional.", + "repeated": true, + "location": "query" + }, + "publisherId": { + "type": "string", + "description": "The IDs of the publishers to look up, if applicable.", + "repeated": true, + "location": "query" + }, + "reportType": { + "type": "string", + "description": "The type of report being requested. Valid values: 'order_delta'. Required.", + "required": true, + "enum": [ + "order_delta" + ], + "enumDescriptions": [ + "The order delta report type." + ], + "location": "path" + }, + "role": { + "type": "string", + "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.", + "required": true, + "enum": [ + "advertisers", + "publishers" + ], + "enumDescriptions": [ + "The requester is requesting as an advertiser.", + "The requester is requesting as a publisher." + ], + "location": "path" + }, + "roleId": { + "type": "string", + "description": "The ID of the requesting advertiser or publisher.", + "required": true, + "location": "path" + }, + "startDate": { + "type": "string", + "description": "The start date (inclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day before endDate, if that is given, or yesterday. Optional.", + "location": "query" + }, + "startIndex": { + "type": "integer", + "description": "Offset on which to return results when paging. Optional.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "status": { + "type": "string", + "description": "Filters out all events that do not have the given status. Valid values: 'active', 'canceled', or 'invalid'. Optional.", + "enum": [ + "active", + "canceled", + "invalid" + ], + "enumDescriptions": [ + "Event is currently active.", + "Event is currently canceled.", + "Event is currently invalid." + ], + "location": "query" + } + }, + "parameterOrder": [ + "role", + "roleId", + "reportType" + ], + "response": { + "$ref": "Report" + } + } + } + } + } +} diff --git a/etc/api/genomics/v1beta/genomics-api.json b/etc/api/genomics/v1beta/genomics-api.json new file mode 100644 index 0000000000..16d75e6e7d --- /dev/null +++ b/etc/api/genomics/v1beta/genomics-api.json @@ -0,0 +1,2315 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/P0iF9O81Ih4OkuOxr8vmJcp5un4\"", + "discoveryVersion": "v1", + "id": "genomics:v1beta", + "name": "genomics", + "version": "v1beta", + "revision": "20150208", + "title": "Genomics API", + "description": "Provides access to Genomics data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/genomics/v1beta/reference", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/genomics/v1beta/", + "basePath": "/genomics/v1beta/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "genomics/v1beta/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/bigquery": { + "description": "View and manage your data in Google BigQuery" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/genomics": { + "description": "View and manage Genomics data" + }, + "https://www.googleapis.com/auth/genomics.readonly": { + "description": "View Genomics data" + } + } + } + }, + "schemas": { + "Call": { + "id": "Call", + "type": "object", + "description": "A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.", + "properties": { + "callSetId": { + "type": "string", + "description": "The ID of the call set this variant call belongs to." + }, + "callSetName": { + "type": "string", + "description": "The name of the call set this variant call belongs to." + }, + "genotype": { + "type": "array", + "description": "The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of [\"A\", \"C\"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "genotypeLikelihood": { + "type": "array", + "description": "The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.", + "items": { + "type": "number", + "format": "double" + } + }, + "info": { + "type": "object", + "description": "A map of additional variant call information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "phaseset": { + "type": "string", + "description": "If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *." + } + } + }, + "CallSet": { + "id": "CallSet", + "type": "object", + "description": "A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.", + "properties": { + "created": { + "type": "string", + "description": "The date this call set was created in milliseconds from the epoch.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The Google generated ID of the call set, immutable." + }, + "info": { + "type": "object", + "description": "A map of additional call set information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The call set name." + }, + "sampleId": { + "type": "string", + "description": "The sample ID this call set corresponds to." + }, + "variantSetIds": { + "type": "array", + "description": "The IDs of the variant sets this call set belongs to.", + "items": { + "type": "string" + } + } + } + }, + "CoverageBucket": { + "id": "CoverageBucket", + "type": "object", + "description": "A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.", + "properties": { + "meanCoverage": { + "type": "number", + "description": "The average number of reads which are aligned to each individual reference base in this bucket.", + "format": "float" + }, + "range": { + "$ref": "GenomicRange", + "description": "The genomic coordinate range spanned by this bucket." + } + } + }, + "Dataset": { + "id": "Dataset", + "type": "object", + "description": "A Dataset is a collection of genomic data.", + "properties": { + "id": { + "type": "string", + "description": "The Google generated ID of the dataset, immutable." + }, + "isPublic": { + "type": "boolean", + "description": "Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project." + }, + "name": { + "type": "string", + "description": "The dataset name." + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project number that this dataset belongs to.", + "format": "int64" + } + } + }, + "ExperimentalCreateJobRequest": { + "id": "ExperimentalCreateJobRequest", + "type": "object", + "description": "The job creation request.", + "properties": { + "align": { + "type": "boolean", + "description": "Specifies whether or not to run the alignment pipeline. Either align or callVariants must be set." + }, + "callVariants": { + "type": "boolean", + "description": "Specifies whether or not to run the variant calling pipeline. Either align or callVariants must be set." + }, + "gcsOutputPath": { + "type": "string", + "description": "Specifies where to copy the results of certain pipelines. This should be in the form of gs://bucket/path." + }, + "pairedSourceUris": { + "type": "array", + "description": "A list of Google Cloud Storage URIs of paired end .fastq files to operate upon. If specified, this represents the second file of each paired .fastq file. The first file of each pair should be specified in sourceUris.", + "items": { + "type": "string" + } + }, + "projectId": { + "type": "string", + "description": "Required. The Google Cloud Project ID with which to associate the request.", + "format": "int64" + }, + "sourceUris": { + "type": "array", + "description": "A list of Google Cloud Storage URIs of data files to operate upon. These can be .bam, interleaved .fastq, or paired .fastq. If specifying paired .fastq files, the first of each pair of files should be listed here, and the second of each pair should be listed in pairedSourceUris.", + "items": { + "type": "string" + } + } + } + }, + "ExperimentalCreateJobResponse": { + "id": "ExperimentalCreateJobResponse", + "type": "object", + "description": "The job creation response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ExportReadsetsRequest": { + "id": "ExportReadsetsRequest", + "type": "object", + "description": "The readset export request.", + "properties": { + "exportUri": { + "type": "string", + "description": "A Google Cloud Storage URI where the exported BAM file will be created. The currently authenticated user must have write access to the new file location. An error will be returned if the URI already contains data." + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project number that owns this export.", + "format": "int64" + }, + "readsetIds": { + "type": "array", + "description": "The IDs of the readsets to export.", + "items": { + "type": "string" + } + }, + "referenceNames": { + "type": "array", + "description": "The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use * to export only unmapped reads.", + "items": { + "type": "string" + } + } + } + }, + "ExportReadsetsResponse": { + "id": "ExportReadsetsResponse", + "type": "object", + "description": "The readset export response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ExportVariantsRequest": { + "id": "ExportVariantsRequest", + "type": "object", + "description": "The variant data export request.", + "properties": { + "bigqueryDataset": { + "type": "string", + "description": "The BigQuery dataset to export data to. Note that this is distinct from the Genomics concept of \"dataset\"." + }, + "bigqueryTable": { + "type": "string", + "description": "The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten." + }, + "callSetIds": { + "type": "array", + "description": "If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.", + "items": { + "type": "string" + } + }, + "format": { + "type": "string", + "description": "The format for the exported data.", + "enum": [ + "bigquery" + ], + "enumDescriptions": [ + "" + ] + }, + "projectId": { + "type": "string", + "description": "The Google Cloud project number that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.", + "format": "int64" + }, + "variantSetId": { + "type": "string", + "description": "Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set." + } + } + }, + "ExportVariantsResponse": { + "id": "ExportVariantsResponse", + "type": "object", + "description": "The variant data export response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "GenomicRange": { + "id": "GenomicRange", + "type": "object", + "description": "An inclusive, exclusive genomic coordinate range over a reference sequence.", + "properties": { + "sequenceEnd": { + "type": "string", + "description": "The end position of the range on the reference, 1-based exclusive. If specified, sequenceName must also be specified.", + "format": "uint64" + }, + "sequenceName": { + "type": "string", + "description": "The reference sequence name, for example chr1, 1, or chrX." + }, + "sequenceStart": { + "type": "string", + "description": "The start position of the range on the reference, 1-based inclusive. If specified, sequenceName must also be specified.", + "format": "uint64" + } + } + }, + "Header": { + "id": "Header", + "type": "object", + "properties": { + "sortingOrder": { + "type": "string", + "description": "(SO) Sorting order of alignments." + }, + "version": { + "type": "string", + "description": "(VN) BAM format version." + } + } + }, + "HeaderSection": { + "id": "HeaderSection", + "type": "object", + "description": "The header section of the BAM/SAM file.", + "properties": { + "comments": { + "type": "array", + "description": "(@CO) One-line text comments.", + "items": { + "type": "string" + } + }, + "fileUri": { + "type": "string", + "description": "[Deprecated] This field is deprecated and will no longer be populated. Please use filename instead." + }, + "filename": { + "type": "string", + "description": "The name of the file from which this data was imported." + }, + "headers": { + "type": "array", + "description": "(@HD) The header line.", + "items": { + "$ref": "Header" + } + }, + "programs": { + "type": "array", + "description": "(@PG) Programs.", + "items": { + "$ref": "Program" + } + }, + "readGroups": { + "type": "array", + "description": "(@RG) Read group.", + "items": { + "$ref": "ReadGroup" + } + }, + "refSequences": { + "type": "array", + "description": "(@SQ) Reference sequence dictionary.", + "items": { + "$ref": "ReferenceSequence" + } + } + } + }, + "ImportReadsetsRequest": { + "id": "ImportReadsetsRequest", + "type": "object", + "description": "The readset import request.", + "properties": { + "datasetId": { + "type": "string", + "description": "Required. The ID of the dataset these readsets will belong to. The caller must have WRITE permissions to this dataset." + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at BAM files in Google Cloud Storage.", + "items": { + "type": "string" + } + } + } + }, + "ImportReadsetsResponse": { + "id": "ImportReadsetsResponse", + "type": "object", + "description": "The readset import response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ImportVariantsRequest": { + "id": "ImportVariantsRequest", + "type": "object", + "description": "The variant data import request.", + "properties": { + "format": { + "type": "string", + "description": "The format of the variant data being imported.", + "enum": [ + "completeGenomics", + "vcf" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at VCF files in Google Cloud Storage. See the VCF Specification for more details on the input format.", + "items": { + "type": "string" + } + }, + "variantSetId": { + "type": "string", + "description": "Required. The variant set to which variant data should be imported." + } + } + }, + "ImportVariantsResponse": { + "id": "ImportVariantsResponse", + "type": "object", + "description": "The variant data import response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "Job": { + "id": "Job", + "type": "object", + "description": "A Job represents an ongoing process that can be monitored for status information.", + "properties": { + "created": { + "type": "string", + "description": "The date this job was created, in milliseconds from the epoch.", + "format": "int64" + }, + "description": { + "type": "string", + "description": "A more detailed description of this job's current status." + }, + "errors": { + "type": "array", + "description": "Any errors that occurred during processing.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "The job ID." + }, + "importedIds": { + "type": "array", + "description": "If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.", + "items": { + "type": "string" + } + }, + "projectId": { + "type": "string", + "description": "The Google Developers Console project number to which this job belongs.", + "format": "int64" + }, + "request": { + "$ref": "JobRequest", + "description": "A summarized representation of the original service request." + }, + "status": { + "type": "string", + "description": "The status of this job.", + "enum": [ + "canceled", + "failure", + "new", + "pending", + "running", + "success", + "unknownStatus" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + }, + "warnings": { + "type": "array", + "description": "Any warnings that occurred during processing.", + "items": { + "type": "string" + } + } + } + }, + "JobRequest": { + "id": "JobRequest", + "type": "object", + "description": "A summary representation of the service request that spawned the job.", + "properties": { + "destination": { + "type": "array", + "description": "The data destination of the request, for example, a Google BigQuery Table or Dataset ID.", + "items": { + "type": "string" + } + }, + "source": { + "type": "array", + "description": "The data source of the request, for example, a Google Cloud Storage object path or Readset ID.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The original request type.", + "enum": [ + "alignReadsets", + "callReadsets", + "experimentalCreateJob", + "exportReadsets", + "exportVariants", + "importReadsets", + "importVariants", + "unknownType" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "ListCoverageBucketsResponse": { + "id": "ListCoverageBucketsResponse", + "type": "object", + "properties": { + "bucketWidth": { + "type": "string", + "description": "The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or targetBucketWidth).", + "format": "uint64" + }, + "coverageBuckets": { + "type": "array", + "description": "The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width bucketWidth, unless its end is the end of the reference sequence.", + "items": { + "$ref": "CoverageBucket" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "ListDatasetsResponse": { + "id": "ListDatasetsResponse", + "type": "object", + "description": "The dataset list response.", + "properties": { + "datasets": { + "type": "array", + "description": "The list of matching Datasets.", + "items": { + "$ref": "Dataset" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "MergeVariantsRequest": { + "id": "MergeVariantsRequest", + "type": "object", + "properties": { + "variants": { + "type": "array", + "description": "The variants to be merged with existing variants.", + "items": { + "$ref": "Variant" + } + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "description": "Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.", + "properties": { + "description": { + "type": "string", + "description": "A textual description of this metadata." + }, + "id": { + "type": "string", + "description": "User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent." + }, + "info": { + "type": "object", + "description": "Remaining structured metadata key-value pairs.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "key": { + "type": "string", + "description": "The top-level key." + }, + "number": { + "type": "string", + "description": "The number of values that can be included in a field described by this metadata." + }, + "type": { + "type": "string", + "description": "The type of data. Possible types include: Integer, Float, Flag, Character, and String.", + "enum": [ + "character", + "flag", + "float", + "integer", + "string", + "unknownType" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "value": { + "type": "string", + "description": "The value field for simple metadata" + } + } + }, + "Program": { + "id": "Program", + "type": "object", + "properties": { + "commandLine": { + "type": "string", + "description": "(CL) Command line." + }, + "id": { + "type": "string", + "description": "(ID) Program record identifier." + }, + "name": { + "type": "string", + "description": "(PN) Program name." + }, + "prevProgramId": { + "type": "string", + "description": "(PP) Previous program ID." + }, + "version": { + "type": "string", + "description": "(VN) Program version." + } + } + }, + "Read": { + "id": "Read", + "type": "object", + "description": "A Read is a group of bases that may or may not have been aligned to a reference. It contains quality information and other metadata.", + "properties": { + "alignedBases": { + "type": "string", + "description": "The originalBases after the cigar field has been applied. Deletions are represented with '-' and insertions are omitted." + }, + "baseQuality": { + "type": "string", + "description": "Represents the quality of each base in this read. Each character represents one base. To get the quality, take the ASCII value of the character and subtract 33. (QUAL)" + }, + "cigar": { + "type": "string", + "description": "A condensed representation of how this read matches up to the reference. (CIGAR)" + }, + "flags": { + "type": "integer", + "description": "Each bit of this number has a different meaning if enabled. See the full BAM spec for more details. (FLAG)", + "format": "int32" + }, + "id": { + "type": "string", + "description": "The Google generated ID of the read, immutable." + }, + "mappingQuality": { + "type": "integer", + "description": "A score up to 255 that represents how likely this read's aligned position is to be correct. A higher value is better. (MAPQ)", + "format": "int32" + }, + "matePosition": { + "type": "integer", + "description": "The 1-based start position of the paired read. (PNEXT)", + "format": "int32" + }, + "mateReferenceSequenceName": { + "type": "string", + "description": "The name of the sequence that the paired read is aligned to. This is usually the same as referenceSequenceName. (RNEXT)" + }, + "name": { + "type": "string", + "description": "The name of the read. When imported from a BAM file, this is the query template name. (QNAME)" + }, + "originalBases": { + "type": "string", + "description": "The list of bases that this read represents (such as \"CATCGA\"). (SEQ)" + }, + "position": { + "type": "integer", + "description": "The 1-based start position of the aligned read. If the first base starts at the very beginning of the reference sequence, then the position would be '1'. (POS)", + "format": "int32" + }, + "readsetId": { + "type": "string", + "description": "The ID of the readset this read belongs to." + }, + "referenceSequenceName": { + "type": "string", + "description": "The name of the sequence that this read is aligned to. This would be, for example, 'X' for the X Chromosome or '20' for Chromosome 20. (RNAME)" + }, + "tags": { + "type": "object", + "description": "A map of additional read information. (TAG)", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "templateLength": { + "type": "integer", + "description": "Length of the original piece of DNA that produced both this read and the paired read. (TLEN)", + "format": "int32" + } + } + }, + "ReadGroup": { + "id": "ReadGroup", + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "(DT) Date the run was produced (ISO8601 date or date/time)." + }, + "description": { + "type": "string", + "description": "(DS) Description." + }, + "flowOrder": { + "type": "string", + "description": "(FO) Flow order. The array of nucleotide bases that correspond to the nucleotides used for each flow of each read." + }, + "id": { + "type": "string", + "description": "(ID) Read group identifier." + }, + "keySequence": { + "type": "string", + "description": "(KS) The array of nucleotide bases that correspond to the key sequence of each read." + }, + "library": { + "type": "string", + "description": "(LS) Library." + }, + "platformUnit": { + "type": "string", + "description": "(PU) Platform unit." + }, + "predictedInsertSize": { + "type": "integer", + "description": "(PI) Predicted median insert size.", + "format": "int32" + }, + "processingProgram": { + "type": "string", + "description": "(PG) Programs used for processing the read group." + }, + "sample": { + "type": "string", + "description": "(SM) Sample." + }, + "sequencingCenterName": { + "type": "string", + "description": "(CN) Name of sequencing center producing the read." + }, + "sequencingTechnology": { + "type": "string", + "description": "(PL) Platform/technology used to produce the reads." + } + } + }, + "Readset": { + "id": "Readset", + "type": "object", + "description": "A Readset is a collection of Reads.", + "properties": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset this readset belongs to." + }, + "fileData": { + "type": "array", + "description": "File information from the original BAM import. See the BAM format specification for additional information on each field.", + "items": { + "$ref": "HeaderSection" + } + }, + "id": { + "type": "string", + "description": "The Google generated ID of the readset, immutable." + }, + "name": { + "type": "string", + "description": "The readset name, typically this is the sample name." + } + } + }, + "ReferenceBound": { + "id": "ReferenceBound", + "type": "object", + "description": "ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.", + "properties": { + "referenceName": { + "type": "string", + "description": "The reference the bound is associate with." + }, + "upperBound": { + "type": "string", + "description": "An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.", + "format": "int64" + } + } + }, + "ReferenceSequence": { + "id": "ReferenceSequence", + "type": "object", + "properties": { + "assemblyId": { + "type": "string", + "description": "(AS) Genome assembly identifier." + }, + "length": { + "type": "integer", + "description": "(LN) Reference sequence length.", + "format": "int32" + }, + "md5Checksum": { + "type": "string", + "description": "(M5) MD5 checksum of the sequence in the uppercase, excluding spaces but including pads as *." + }, + "name": { + "type": "string", + "description": "(SN) Reference sequence name." + }, + "species": { + "type": "string", + "description": "(SP) Species." + }, + "uri": { + "type": "string", + "description": "(UR) URI of the sequence." + } + } + }, + "SearchCallSetsRequest": { + "id": "SearchCallSetsRequest", + "type": "object", + "description": "The call set search request.", + "properties": { + "name": { + "type": "string", + "description": "Only return call sets for which a substring of the name matches this string." + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of call sets to return.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "variantSetIds": { + "type": "array", + "description": "Restrict the query to call sets within the given variant sets. At least one ID must be provided.", + "items": { + "type": "string" + } + } + } + }, + "SearchCallSetsResponse": { + "id": "SearchCallSetsResponse", + "type": "object", + "description": "The call set search response.", + "properties": { + "callSets": { + "type": "array", + "description": "The list of matching call sets.", + "items": { + "$ref": "CallSet" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "SearchJobsRequest": { + "id": "SearchJobsRequest", + "type": "object", + "description": "The jobs search request.", + "properties": { + "createdAfter": { + "type": "string", + "description": "If specified, only jobs created on or after this date, given in milliseconds since Unix epoch, will be returned.", + "format": "int64" + }, + "createdBefore": { + "type": "string", + "description": "If specified, only jobs created prior to this date, given in milliseconds since Unix epoch, will be returned.", + "format": "int64" + }, + "maxResults": { + "type": "string", + "description": "Specifies the number of results to return in a single page. Defaults to 128. The maximum value is 256.", + "format": "uint64" + }, + "pageToken": { + "type": "string", + "description": "The continuation token which is used to page through large result sets. To get the next page of results, set this parameter to the value of the nextPageToken from the previous response." + }, + "projectId": { + "type": "string", + "description": "Required. Only return jobs which belong to this Google Developers Console project.", + "format": "int64" + }, + "status": { + "type": "array", + "description": "Only return jobs which have a matching status.", + "items": { + "type": "string", + "enum": [ + "canceled", + "failure", + "new", + "pending", + "running", + "success", + "unknownStatus" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + } + } + } + }, + "SearchJobsResponse": { + "id": "SearchJobsResponse", + "type": "object", + "description": "The job search response.", + "properties": { + "jobs": { + "type": "array", + "description": "The list of jobs results, ordered newest to oldest.", + "items": { + "$ref": "Job" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token which is used to page through large result sets. Provide this value is a subsequent request to return the next page of results. This field will be empty if there are no more results." + } + } + }, + "SearchReadsRequest": { + "id": "SearchReadsRequest", + "type": "object", + "description": "The read search request.", + "properties": { + "maxResults": { + "type": "string", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 256. The maximum value is 2048.", + "format": "uint64" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "readsetIds": { + "type": "array", + "description": "The readsets within which to search for reads. At least one readset ID must be provided. All specified readsets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query.", + "items": { + "type": "string" + } + }, + "sequenceEnd": { + "type": "string", + "description": "The end position (1-based, inclusive) of the target range. If specified, sequenceName must also be specified. Defaults to the end of the target reference sequence, if any.", + "format": "uint64" + }, + "sequenceName": { + "type": "string", + "description": "Restricts the results to a particular reference sequence such as 1, chr1, or X. The set of valid references sequences depends on the readsets specified. If set to *, only unmapped Reads are returned." + }, + "sequenceStart": { + "type": "string", + "description": "The start position (1-based, inclusive) of the target range. If specified, sequenceName must also be specified. Defaults to the start of the target reference sequence, if any.", + "format": "uint64" + } + } + }, + "SearchReadsResponse": { + "id": "SearchReadsResponse", + "type": "object", + "description": "The read search response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "reads": { + "type": "array", + "description": "The list of matching Reads. The resulting Reads are sorted by position; the smallest positions are returned first. Unmapped reads, which have no position, are returned last and are further sorted alphabetically by name.", + "items": { + "$ref": "Read" + } + } + } + }, + "SearchReadsetsRequest": { + "id": "SearchReadsetsRequest", + "type": "object", + "description": "The readset search request.", + "properties": { + "datasetIds": { + "type": "array", + "description": "Restricts this query to readsets within the given datasets. At least one ID must be provided.", + "items": { + "type": "string" + } + }, + "maxResults": { + "type": "string", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 128. The maximum value is 1024.", + "format": "uint64" + }, + "name": { + "type": "string", + "description": "Only return readsets for which a substring of the name matches this string." + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + } + } + }, + "SearchReadsetsResponse": { + "id": "SearchReadsetsResponse", + "type": "object", + "description": "The readset search response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "readsets": { + "type": "array", + "description": "The list of matching Readsets.", + "items": { + "$ref": "Readset" + } + } + } + }, + "SearchVariantSetsRequest": { + "id": "SearchVariantSetsRequest", + "type": "object", + "description": "The search variant sets request.", + "properties": { + "datasetIds": { + "type": "array", + "description": "Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of variant sets to return in a request.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + } + } + }, + "SearchVariantSetsResponse": { + "id": "SearchVariantSetsResponse", + "type": "object", + "description": "The search variant sets response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "variantSets": { + "type": "array", + "description": "The variant sets belonging to the requested dataset.", + "items": { + "$ref": "VariantSet" + } + } + } + }, + "SearchVariantsRequest": { + "id": "SearchVariantsRequest", + "type": "object", + "description": "The variant search request.", + "properties": { + "callSetIds": { + "type": "array", + "description": "Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all. Currently, variants with no calls from any call set will never be returned.", + "items": { + "type": "string" + } + }, + "end": { + "type": "string", + "description": "Required. The end of the window (0-based, exclusive) for which overlapping variants should be returned.", + "format": "int64" + }, + "maxCalls": { + "type": "integer", + "description": "The maximum number of calls to return. However, at least one variant will always be returned, even if it has more calls than this limit.", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of variants to return.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "referenceName": { + "type": "string", + "description": "Required. Only return variants in this reference sequence." + }, + "start": { + "type": "string", + "description": "Required. The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.", + "format": "int64" + }, + "variantName": { + "type": "string", + "description": "Only return variants which have exactly this name." + }, + "variantSetIds": { + "type": "array", + "description": "Exactly one variant set ID must be provided. Only variants from this variant set will be returned.", + "items": { + "type": "string" + } + } + } + }, + "SearchVariantsResponse": { + "id": "SearchVariantsResponse", + "type": "object", + "description": "The variant search response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "variants": { + "type": "array", + "description": "The list of matching Variants.", + "items": { + "$ref": "Variant" + } + } + } + }, + "Variant": { + "id": "Variant", + "type": "object", + "description": "A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.", + "properties": { + "alternateBases": { + "type": "array", + "description": "The bases that appear instead of the reference bases.", + "items": { + "type": "string" + } + }, + "calls": { + "type": "array", + "description": "The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.", + "items": { + "$ref": "Call" + } + }, + "created": { + "type": "string", + "description": "The date this variant was created, in milliseconds from the epoch.", + "format": "int64" + }, + "end": { + "type": "string", + "description": "The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.", + "format": "int64" + }, + "filter": { + "type": "array", + "description": "A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "The Google generated ID of the variant, immutable." + }, + "info": { + "type": "object", + "description": "A map of additional variant information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "names": { + "type": "array", + "description": "Names for the variant, for example a RefSNP ID.", + "items": { + "type": "string" + } + }, + "quality": { + "type": "number", + "description": "A measure of how likely this variant is to be real. A higher value is better.", + "format": "double" + }, + "referenceBases": { + "type": "string", + "description": "The reference bases for this variant. They start at the given position." + }, + "referenceName": { + "type": "string", + "description": "The reference on which this variant occurs. (such as chr20 or X)" + }, + "start": { + "type": "string", + "description": "The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.", + "format": "int64" + }, + "variantSetId": { + "type": "string", + "description": "The ID of the variant set this variant belongs to." + } + } + }, + "VariantSet": { + "id": "VariantSet", + "type": "object", + "description": "A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.", + "properties": { + "datasetId": { + "type": "string", + "description": "The dataset to which this variant set belongs. Immutable." + }, + "id": { + "type": "string", + "description": "The Google-generated ID of the variant set. Immutable." + }, + "metadata": { + "type": "array", + "description": "The metadata associated with this variant set.", + "items": { + "$ref": "Metadata" + } + }, + "referenceBounds": { + "type": "array", + "description": "A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.", + "items": { + "$ref": "ReferenceBound" + } + } + } + } + }, + "resources": { + "callsets": { + "methods": { + "create": { + "id": "genomics.callsets.create", + "path": "callsets", + "httpMethod": "POST", + "description": "Creates a new call set.", + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.callsets.delete", + "path": "callsets/{callSetId}", + "httpMethod": "DELETE", + "description": "Deletes a call set.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.callsets.get", + "path": "callsets/{callSetId}", + "httpMethod": "GET", + "description": "Gets a call set by ID.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.callsets.patch", + "path": "callsets/{callSetId}", + "httpMethod": "PATCH", + "description": "Updates a call set. This method supports patch semantics.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.callsets.search", + "path": "callsets/search", + "httpMethod": "POST", + "description": "Gets a list of call sets matching the criteria.\n\nImplements GlobalAllianceApi.searchCallSets.", + "request": { + "$ref": "SearchCallSetsRequest" + }, + "response": { + "$ref": "SearchCallSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.callsets.update", + "path": "callsets/{callSetId}", + "httpMethod": "PUT", + "description": "Updates a call set.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "datasets": { + "methods": { + "create": { + "id": "genomics.datasets.create", + "path": "datasets", + "httpMethod": "POST", + "description": "Creates a new dataset.", + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.datasets.delete", + "path": "datasets/{datasetId}", + "httpMethod": "DELETE", + "description": "Deletes a dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.datasets.get", + "path": "datasets/{datasetId}", + "httpMethod": "GET", + "description": "Gets a dataset by ID.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "list": { + "id": "genomics.datasets.list", + "path": "datasets", + "httpMethod": "GET", + "description": "Lists all datasets.", + "parameters": { + "maxResults": { + "type": "string", + "description": "The maximum number of results returned by this request.", + "default": "50", + "format": "uint64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "Only return datasets which belong to this Google Developers Console project. Only accepts project numbers. Returns all public projects if no project number is specified.", + "format": "int64", + "location": "query" + } + }, + "response": { + "$ref": "ListDatasetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.datasets.patch", + "path": "datasets/{datasetId}", + "httpMethod": "PATCH", + "description": "Updates a dataset. This method supports patch semantics.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "undelete": { + "id": "genomics.datasets.undelete", + "path": "datasets/{datasetId}/undelete", + "httpMethod": "POST", + "description": "Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be undeleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "update": { + "id": "genomics.datasets.update", + "path": "datasets/{datasetId}", + "httpMethod": "PUT", + "description": "Updates a dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "experimental": { + "resources": { + "jobs": { + "methods": { + "create": { + "id": "genomics.experimental.jobs.create", + "path": "experimental/jobs/create", + "httpMethod": "POST", + "description": "Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.", + "request": { + "$ref": "ExperimentalCreateJobRequest" + }, + "response": { + "$ref": "ExperimentalCreateJobResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + } + } + } + } + }, + "jobs": { + "methods": { + "cancel": { + "id": "genomics.jobs.cancel", + "path": "jobs/{jobId}/cancel", + "httpMethod": "POST", + "description": "Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.", + "parameters": { + "jobId": { + "type": "string", + "description": "Required. The ID of the job.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "jobId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.jobs.get", + "path": "jobs/{jobId}", + "httpMethod": "GET", + "description": "Gets a job by ID.", + "parameters": { + "jobId": { + "type": "string", + "description": "Required. The ID of the job.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "jobId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "search": { + "id": "genomics.jobs.search", + "path": "jobs/search", + "httpMethod": "POST", + "description": "Gets a list of jobs matching the criteria.", + "request": { + "$ref": "SearchJobsRequest" + }, + "response": { + "$ref": "SearchJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + }, + "reads": { + "methods": { + "search": { + "id": "genomics.reads.search", + "path": "reads/search", + "httpMethod": "POST", + "description": "Gets a list of reads for one or more readsets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested readsets are aligned. If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only readset IDs yields all reads in those readsets, including unmapped reads. All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (reference sequence & position). Reads with equivalent genomic coordinates are returned in a deterministic order.", + "request": { + "$ref": "SearchReadsRequest" + }, + "response": { + "$ref": "SearchReadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + }, + "readsets": { + "methods": { + "delete": { + "id": "genomics.readsets.delete", + "path": "readsets/{readsetId}", + "httpMethod": "DELETE", + "description": "Deletes a readset.", + "parameters": { + "readsetId": { + "type": "string", + "description": "The ID of the readset to be deleted. The caller must have WRITE permissions to the dataset associated with this readset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readsetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "export": { + "id": "genomics.readsets.export", + "path": "readsets/export", + "httpMethod": "POST", + "description": "Exports readsets to a BAM file in Google Cloud Storage. Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. In particular, comments in the input file header will not be preserved, and some custom tags will be converted to strings.", + "request": { + "$ref": "ExportReadsetsRequest" + }, + "response": { + "$ref": "ExportReadsetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.readsets.get", + "path": "readsets/{readsetId}", + "httpMethod": "GET", + "description": "Gets a readset by ID.", + "parameters": { + "readsetId": { + "type": "string", + "description": "The ID of the readset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readsetId" + ], + "response": { + "$ref": "Readset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "import": { + "id": "genomics.readsets.import", + "path": "readsets/import", + "httpMethod": "POST", + "description": "Creates readsets by asynchronously importing the provided information. Note that currently comments in the input file header are not imported and some custom tags will be converted to strings, rather than preserving tag types. The caller must have WRITE permissions to the dataset.", + "request": { + "$ref": "ImportReadsetsRequest" + }, + "response": { + "$ref": "ImportReadsetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "patch": { + "id": "genomics.readsets.patch", + "path": "readsets/{readsetId}", + "httpMethod": "PATCH", + "description": "Updates a readset. This method supports patch semantics.", + "parameters": { + "readsetId": { + "type": "string", + "description": "The ID of the readset to be updated. The caller must have WRITE permissions to the dataset associated with this readset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readsetId" + ], + "request": { + "$ref": "Readset" + }, + "response": { + "$ref": "Readset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.readsets.search", + "path": "readsets/search", + "httpMethod": "POST", + "description": "Gets a list of readsets matching the criteria.", + "request": { + "$ref": "SearchReadsetsRequest" + }, + "response": { + "$ref": "SearchReadsetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.readsets.update", + "path": "readsets/{readsetId}", + "httpMethod": "PUT", + "description": "Updates a readset.", + "parameters": { + "readsetId": { + "type": "string", + "description": "The ID of the readset to be updated. The caller must have WRITE permissions to the dataset associated with this readset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readsetId" + ], + "request": { + "$ref": "Readset" + }, + "response": { + "$ref": "Readset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + }, + "resources": { + "coveragebuckets": { + "methods": { + "list": { + "id": "genomics.readsets.coveragebuckets.list", + "path": "readsets/{readsetId}/coveragebuckets", + "httpMethod": "GET", + "description": "Lists fixed width coverage buckets for a readset, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range. Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at various bucket widths, enabling various coverage \"zoom levels\". The caller must have READ permissions for the target readset.", + "parameters": { + "maxResults": { + "type": "string", + "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.", + "default": "1024", + "format": "uint64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "range.sequenceEnd": { + "type": "string", + "description": "The end position of the range on the reference, 1-based exclusive. If specified, sequenceName must also be specified.", + "format": "uint64", + "location": "query" + }, + "range.sequenceName": { + "type": "string", + "description": "The reference sequence name, for example chr1, 1, or chrX.", + "location": "query" + }, + "range.sequenceStart": { + "type": "string", + "description": "The start position of the range on the reference, 1-based inclusive. If specified, sequenceName must also be specified.", + "format": "uint64", + "location": "query" + }, + "readsetId": { + "type": "string", + "description": "Required. The ID of the readset over which coverage is requested.", + "required": true, + "location": "path" + }, + "targetBucketWidth": { + "type": "string", + "description": "The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as bucketWidth in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed bucketWidth is currently 2048 base pairs; this is subject to change.", + "format": "uint64", + "location": "query" + } + }, + "parameterOrder": [ + "readsetId" + ], + "response": { + "$ref": "ListCoverageBucketsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + } + } + }, + "variants": { + "methods": { + "create": { + "id": "genomics.variants.create", + "path": "variants", + "httpMethod": "POST", + "description": "Creates a new variant.", + "request": { + "$ref": "Variant" + }, + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.variants.delete", + "path": "variants/{variantId}", + "httpMethod": "DELETE", + "description": "Deletes a variant.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "export": { + "id": "genomics.variants.export", + "path": "variants/export", + "httpMethod": "POST", + "description": "Exports variant data to an external destination.", + "request": { + "$ref": "ExportVariantsRequest" + }, + "response": { + "$ref": "ExportVariantsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.variants.get", + "path": "variants/{variantId}", + "httpMethod": "GET", + "description": "Gets a variant by ID.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "import": { + "id": "genomics.variants.import", + "path": "variants/import", + "httpMethod": "POST", + "description": "Creates variant data by asynchronously importing the provided information. The variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting INFO fields, some data will be arbitrarily discarded. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.", + "request": { + "$ref": "ImportVariantsRequest" + }, + "response": { + "$ref": "ImportVariantsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.variants.search", + "path": "variants/search", + "httpMethod": "POST", + "description": "Gets a list of variants matching the criteria.\n\nImplements GlobalAllianceApi.searchVariants.", + "request": { + "$ref": "SearchVariantsRequest" + }, + "response": { + "$ref": "SearchVariantsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.variants.update", + "path": "variants/{variantId}", + "httpMethod": "PUT", + "description": "Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "request": { + "$ref": "Variant" + }, + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "variantsets": { + "methods": { + "delete": { + "id": "genomics.variantsets.delete", + "path": "variantsets/{variantSetId}", + "httpMethod": "DELETE", + "description": "Deletes the contents of a variant set. The variant set object is not deleted.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.variantsets.get", + "path": "variantsets/{variantSetId}", + "httpMethod": "GET", + "description": "Gets a variant set by ID.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "Required. The ID of the variant set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "mergeVariants": { + "id": "genomics.variantsets.mergeVariants", + "path": "variantsets/{variantSetId}/mergeVariants", + "httpMethod": "POST", + "description": "Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant is added to the existing variant, and other fields (such as key/value pairs) are discarded.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The destination variant set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "MergeVariantsRequest" + } + }, + "patch": { + "id": "genomics.variantsets.patch", + "path": "variantsets/{variantSetId}", + "httpMethod": "PATCH", + "description": "Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "VariantSet" + }, + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.variantsets.search", + "path": "variantsets/search", + "httpMethod": "POST", + "description": "Returns a list of all variant sets matching search criteria.\n\nImplements GlobalAllianceApi.searchVariantSets.", + "request": { + "$ref": "SearchVariantSetsRequest" + }, + "response": { + "$ref": "SearchVariantSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.variantsets.update", + "path": "variantsets/{variantSetId}", + "httpMethod": "PUT", + "description": "Updates a variant set's metadata. All other modifications are silently ignored.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "VariantSet" + }, + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + } + } +} diff --git a/etc/api/genomics/v1beta2/genomics-api.json b/etc/api/genomics/v1beta2/genomics-api.json new file mode 100644 index 0000000000..c9803e7319 --- /dev/null +++ b/etc/api/genomics/v1beta2/genomics-api.json @@ -0,0 +1,3688 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Rkk_7Yu2BNIHc2z3p4FKuem23zE\"", + "discoveryVersion": "v1", + "id": "genomics:v1beta2", + "name": "genomics", + "version": "v1beta2", + "revision": "20150213", + "title": "Genomics API", + "description": "Provides access to Genomics data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/genomics/v1beta2/reference", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/genomics/v1beta2/", + "basePath": "/genomics/v1beta2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "genomics/v1beta2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/bigquery": { + "description": "View and manage your data in Google BigQuery" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/genomics": { + "description": "View and manage Genomics data" + }, + "https://www.googleapis.com/auth/genomics.readonly": { + "description": "View Genomics data" + } + } + } + }, + "schemas": { + "AlignReadGroupSetsRequest": { + "id": "AlignReadGroupSetsRequest", + "type": "object", + "description": "The read group set align request.", + "properties": { + "bamSourceUris": { + "type": "array", + "description": "The BAM source files for alignment. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided. The caller must have READ permissions for these files.", + "items": { + "type": "string" + } + }, + "datasetId": { + "type": "string", + "description": "Required. The ID of the dataset the newly aligned read group sets will belong to. The caller must have WRITE permissions to this dataset." + }, + "interleavedFastqSource": { + "$ref": "InterleavedFastqSource", + "description": "The interleaved FASTQ source files for alignment, where both members of each pair of reads are found on consecutive records within the same FASTQ file. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided." + }, + "pairedFastqSource": { + "$ref": "PairedFastqSource", + "description": "The paired end FASTQ source files for alignment, where each member of a pair of reads are found in separate files. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided." + }, + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set which will be aligned. A new read group set will be generated to hold the aligned data, the originals will not be modified. The caller must have READ permissions for this read group set. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided." + } + } + }, + "AlignReadGroupSetsResponse": { + "id": "AlignReadGroupSetsResponse", + "type": "object", + "description": "The read group set align response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "Annotation": { + "id": "Annotation", + "type": "object", + "description": "An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.", + "properties": { + "annotationSetId": { + "type": "string", + "description": "The ID of the containing annotation set." + }, + "id": { + "type": "string", + "description": "The generated unique ID for this annotation." + }, + "info": { + "type": "object", + "description": "A map of additional data for this annotation.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The display name of this annotation." + }, + "position": { + "$ref": "RangePosition", + "description": "The position of this annotation on the reference sequence." + }, + "transcript": { + "$ref": "Transcript", + "description": "A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT." + }, + "type": { + "type": "string", + "description": "The data type for this annotation. Must match the containing annotation set's type.", + "enum": [ + "GENE", + "GENERIC", + "TRANSCRIPT", + "VARIANT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + }, + "variant": { + "$ref": "VariantAnnotation", + "description": "A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT." + } + } + }, + "AnnotationSet": { + "id": "AnnotationSet", + "type": "object", + "description": "An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.", + "properties": { + "datasetId": { + "type": "string", + "description": "The ID of the containing dataset." + }, + "id": { + "type": "string", + "description": "The generated unique ID for this annotation set." + }, + "info": { + "type": "object", + "description": "A map of additional data for this annotation set.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The display name for this annotation set." + }, + "referenceSetId": { + "type": "string", + "description": "The ID of the reference set which defines the coordinate-space for this set's annotations." + }, + "sourceUri": { + "type": "string", + "description": "The source URI describing the file from which this annotation set was generated, if any." + }, + "type": { + "type": "string", + "description": "The type of annotations contained within this set.", + "enum": [ + "GENE", + "GENERIC", + "TRANSCRIPT", + "VARIANT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "Call": { + "id": "Call", + "type": "object", + "description": "A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.", + "properties": { + "callSetId": { + "type": "string", + "description": "The ID of the call set this variant call belongs to." + }, + "callSetName": { + "type": "string", + "description": "The name of the call set this variant call belongs to." + }, + "genotype": { + "type": "array", + "description": "The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of [\"A\", \"C\"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "genotypeLikelihood": { + "type": "array", + "description": "The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.", + "items": { + "type": "number", + "format": "double" + } + }, + "info": { + "type": "object", + "description": "A map of additional variant call information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "phaseset": { + "type": "string", + "description": "If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *." + } + } + }, + "CallReadGroupSetsRequest": { + "id": "CallReadGroupSetsRequest", + "type": "object", + "description": "The read group set call request.", + "properties": { + "datasetId": { + "type": "string", + "description": "Required. The ID of the dataset the called variants will belong to. The caller must have WRITE permissions to this dataset." + }, + "readGroupSetId": { + "type": "string", + "description": "The IDs of the read group sets which will be called. The caller must have READ permissions for these read group sets. One of readGroupSetId or sourceUris must be provided." + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at BAM files in Google Cloud Storage which will be called. FASTQ files are not allowed. The caller must have READ permissions for these files. One of readGroupSetId or sourceUris must be provided.", + "items": { + "type": "string" + } + } + } + }, + "CallReadGroupSetsResponse": { + "id": "CallReadGroupSetsResponse", + "type": "object", + "description": "The read group set call response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "CallSet": { + "id": "CallSet", + "type": "object", + "description": "A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.", + "properties": { + "created": { + "type": "string", + "description": "The date this call set was created in milliseconds from the epoch.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The Google generated ID of the call set, immutable." + }, + "info": { + "type": "object", + "description": "A map of additional call set information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The call set name." + }, + "sampleId": { + "type": "string", + "description": "The sample ID this call set corresponds to." + }, + "variantSetIds": { + "type": "array", + "description": "The IDs of the variant sets this call set belongs to.", + "items": { + "type": "string" + } + } + } + }, + "CigarUnit": { + "id": "CigarUnit", + "type": "object", + "description": "A single CIGAR operation.", + "properties": { + "operation": { + "type": "string", + "enum": [ + "ALIGNMENT_MATCH", + "CLIP_HARD", + "CLIP_SOFT", + "DELETE", + "INSERT", + "PAD", + "SEQUENCE_MATCH", + "SEQUENCE_MISMATCH", + "SKIP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "operationLength": { + "type": "string", + "description": "The number of bases that the operation runs for. Required.", + "format": "int64" + }, + "referenceSequence": { + "type": "string", + "description": "referenceSequence is only used at mismatches (SEQUENCE_MISMATCH) and deletions (DELETE). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset." + } + } + }, + "CoverageBucket": { + "id": "CoverageBucket", + "type": "object", + "description": "A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.", + "properties": { + "meanCoverage": { + "type": "number", + "description": "The average number of reads which are aligned to each individual reference base in this bucket.", + "format": "float" + }, + "range": { + "$ref": "Range", + "description": "The genomic coordinate range spanned by this bucket." + } + } + }, + "Dataset": { + "id": "Dataset", + "type": "object", + "description": "A Dataset is a collection of genomic data.", + "properties": { + "id": { + "type": "string", + "description": "The Google generated ID of the dataset, immutable." + }, + "isPublic": { + "type": "boolean", + "description": "Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project." + }, + "name": { + "type": "string", + "description": "The dataset name." + }, + "projectNumber": { + "type": "string", + "description": "The Google Developers Console project number that this dataset belongs to.", + "format": "int64" + } + } + }, + "ExperimentalCreateJobRequest": { + "id": "ExperimentalCreateJobRequest", + "type": "object", + "description": "The job creation request.", + "properties": { + "align": { + "type": "boolean", + "description": "Specifies whether or not to run the alignment pipeline. Either align or callVariants must be set." + }, + "callVariants": { + "type": "boolean", + "description": "Specifies whether or not to run the variant calling pipeline. Either align or callVariants must be set." + }, + "gcsOutputPath": { + "type": "string", + "description": "Specifies where to copy the results of certain pipelines. This should be in the form of gs://bucket/path." + }, + "pairedSourceUris": { + "type": "array", + "description": "A list of Google Cloud Storage URIs of paired end .fastq files to operate upon. If specified, this represents the second file of each paired .fastq file. The first file of each pair should be specified in sourceUris.", + "items": { + "type": "string" + } + }, + "projectNumber": { + "type": "string", + "description": "Required. The Google Cloud Project ID with which to associate the request.", + "format": "int64" + }, + "sourceUris": { + "type": "array", + "description": "A list of Google Cloud Storage URIs of data files to operate upon. These can be .bam, interleaved .fastq, or paired .fastq. If specifying paired .fastq files, the first of each pair of files should be listed here, and the second of each pair should be listed in pairedSourceUris.", + "items": { + "type": "string" + } + } + } + }, + "ExperimentalCreateJobResponse": { + "id": "ExperimentalCreateJobResponse", + "type": "object", + "description": "The job creation response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ExportReadGroupSetsRequest": { + "id": "ExportReadGroupSetsRequest", + "type": "object", + "description": "The read group set export request.", + "properties": { + "exportUri": { + "type": "string", + "description": "A Google Cloud Storage URI where the exported BAM file will be created. The currently authenticated user must have write access to the new file location. An error will be returned if the URI already contains data." + }, + "projectNumber": { + "type": "string", + "description": "The Google Developers Console project number that owns this export.", + "format": "int64" + }, + "readGroupSetIds": { + "type": "array", + "description": "The IDs of the read group sets to export.", + "items": { + "type": "string" + } + }, + "referenceNames": { + "type": "array", + "description": "The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use * to export only unmapped reads.", + "items": { + "type": "string" + } + } + } + }, + "ExportReadGroupSetsResponse": { + "id": "ExportReadGroupSetsResponse", + "type": "object", + "description": "The read group set export response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ExportVariantSetRequest": { + "id": "ExportVariantSetRequest", + "type": "object", + "description": "The variant data export request.", + "properties": { + "bigqueryDataset": { + "type": "string", + "description": "The BigQuery dataset to export data to. Note that this is distinct from the Genomics concept of \"dataset\"." + }, + "bigqueryTable": { + "type": "string", + "description": "The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten." + }, + "callSetIds": { + "type": "array", + "description": "If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.", + "items": { + "type": "string" + } + }, + "format": { + "type": "string", + "description": "The format for the exported data.", + "enum": [ + "BIGQUERY" + ], + "enumDescriptions": [ + "" + ] + }, + "projectNumber": { + "type": "string", + "description": "The Google Cloud project number that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.", + "format": "int64" + } + } + }, + "ExportVariantSetResponse": { + "id": "ExportVariantSetResponse", + "type": "object", + "description": "The variant data export response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ExternalId": { + "id": "ExternalId", + "type": "object", + "description": "", + "properties": { + "id": { + "type": "string", + "description": "The id used by the source of this data." + }, + "sourceName": { + "type": "string", + "description": "The name of the source of this data." + } + } + }, + "FastqMetadata": { + "id": "FastqMetadata", + "type": "object", + "properties": { + "libraryName": { + "type": "string", + "description": "Optionally specifies the library name for alignment from FASTQ." + }, + "platformName": { + "type": "string", + "description": "Optionally specifies the platform name for alignment from FASTQ. For example: CAPILLARY, LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT, PACBIO." + }, + "platformUnit": { + "type": "string", + "description": "Optionally specifies the platform unit for alignment from FASTQ. For example: flowcell-barcode.lane for Illumina or slide for SOLID." + }, + "readGroupName": { + "type": "string", + "description": "Optionally specifies the read group name for alignment from FASTQ." + }, + "sampleName": { + "type": "string", + "description": "Optionally specifies the sample name for alignment from FASTQ." + } + } + }, + "ImportReadGroupSetsRequest": { + "id": "ImportReadGroupSetsRequest", + "type": "object", + "description": "The read group set import request.", + "properties": { + "datasetId": { + "type": "string", + "description": "Required. The ID of the dataset these read group sets will belong to. The caller must have WRITE permissions to this dataset." + }, + "partitionStrategy": { + "type": "string", + "description": "The partition strategy describes how read groups are partitioned into read group sets.", + "enum": [ + "MERGE_ALL", + "PER_FILE_PER_SAMPLE" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "referenceSetId": { + "type": "string", + "description": "The reference set to which the imported read group sets are aligned to, if any. The reference names of this reference set must be a superset of those found in the imported file headers. If no reference set id is provided, a best effort is made to associate with a matching reference set." + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at BAM files in Google Cloud Storage.", + "items": { + "type": "string" + } + } + } + }, + "ImportReadGroupSetsResponse": { + "id": "ImportReadGroupSetsResponse", + "type": "object", + "description": "The read group set import response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "ImportVariantsRequest": { + "id": "ImportVariantsRequest", + "type": "object", + "description": "The variant data import request.", + "properties": { + "format": { + "type": "string", + "description": "The format of the variant data being imported.", + "enum": [ + "COMPLETE_GENOMICS", + "VCF" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at VCF files in Google Cloud Storage. See the VCF Specification for more details on the input format.", + "items": { + "type": "string" + } + } + } + }, + "ImportVariantsResponse": { + "id": "ImportVariantsResponse", + "type": "object", + "description": "The variant data import response.", + "properties": { + "jobId": { + "type": "string", + "description": "A job ID that can be used to get status information." + } + } + }, + "Int32Value": { + "id": "Int32Value", + "type": "object", + "description": "Wrapper message for int32.", + "properties": { + "value": { + "type": "integer", + "description": "The int32 value.", + "format": "int32" + } + } + }, + "InterleavedFastqSource": { + "id": "InterleavedFastqSource", + "type": "object", + "description": "Describes an interleaved FASTQ file source for alignment.", + "properties": { + "metadata": { + "$ref": "FastqMetadata", + "description": "Optionally specifies the metadata to be associated with the final aligned read group set." + }, + "sourceUris": { + "type": "array", + "description": "A list of URIs pointing at interleaved FASTQ files in Google Cloud Storage which will be aligned. The caller must have READ permissions for these files.", + "items": { + "type": "string" + } + } + } + }, + "Job": { + "id": "Job", + "type": "object", + "description": "A Job represents an ongoing process that can be monitored for status information.", + "properties": { + "created": { + "type": "string", + "description": "The date this job was created, in milliseconds from the epoch.", + "format": "int64" + }, + "detailedStatus": { + "type": "string", + "description": "A more detailed description of this job's current status." + }, + "errors": { + "type": "array", + "description": "Any errors that occurred during processing.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "The job ID." + }, + "importedIds": { + "type": "array", + "description": "If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.", + "items": { + "type": "string" + } + }, + "projectNumber": { + "type": "string", + "description": "The Google Developers Console project number to which this job belongs.", + "format": "int64" + }, + "request": { + "$ref": "JobRequest", + "description": "A summarized representation of the original service request." + }, + "status": { + "type": "string", + "description": "The status of this job.", + "enum": [ + "CANCELED", + "FAILURE", + "NEW", + "PENDING", + "RUNNING", + "SUCCESS", + "UNKNOWN_STATUS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + }, + "warnings": { + "type": "array", + "description": "Any warnings that occurred during processing.", + "items": { + "type": "string" + } + } + } + }, + "JobRequest": { + "id": "JobRequest", + "type": "object", + "description": "A summary representation of the service request that spawned the job.", + "properties": { + "destination": { + "type": "array", + "description": "The data destination of the request, for example, a Google BigQuery Table or Dataset ID.", + "items": { + "type": "string" + } + }, + "source": { + "type": "array", + "description": "The data source of the request, for example, a Google Cloud Storage object path or Readset ID.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The original request type.", + "enum": [ + "ALIGN_READSETS", + "CALL_READSETS", + "EXPERIMENTAL_CREATE_JOB", + "EXPORT_READSETS", + "EXPORT_VARIANTS", + "IMPORT_READSETS", + "IMPORT_VARIANTS", + "UNKNOWN_TYPE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "LinearAlignment": { + "id": "LinearAlignment", + "type": "object", + "description": "A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference.", + "properties": { + "cigar": { + "type": "array", + "description": "Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.", + "items": { + "$ref": "CigarUnit" + } + }, + "mappingQuality": { + "type": "integer", + "description": "The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations.", + "format": "int32" + }, + "position": { + "$ref": "Position", + "description": "The position of this alignment." + } + } + }, + "ListBasesResponse": { + "id": "ListBasesResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "offset": { + "type": "string", + "description": "The offset position (0-based) of the given sequence from the start of this Reference. This value will differ for each page in a paginated request.", + "format": "int64" + }, + "sequence": { + "type": "string", + "description": "A substring of the bases that make up this reference." + } + } + }, + "ListCoverageBucketsResponse": { + "id": "ListCoverageBucketsResponse", + "type": "object", + "properties": { + "bucketWidth": { + "type": "string", + "description": "The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or targetBucketWidth).", + "format": "int64" + }, + "coverageBuckets": { + "type": "array", + "description": "The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width bucketWidth, unless its end is the end of the reference sequence.", + "items": { + "$ref": "CoverageBucket" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "ListDatasetsResponse": { + "id": "ListDatasetsResponse", + "type": "object", + "description": "The dataset list response.", + "properties": { + "datasets": { + "type": "array", + "description": "The list of matching Datasets.", + "items": { + "$ref": "Dataset" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "MergeVariantsRequest": { + "id": "MergeVariantsRequest", + "type": "object", + "properties": { + "variants": { + "type": "array", + "description": "The variants to be merged with existing variants.", + "items": { + "$ref": "Variant" + } + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "description": "Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.", + "properties": { + "description": { + "type": "string", + "description": "A textual description of this metadata." + }, + "id": { + "type": "string", + "description": "User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent." + }, + "info": { + "type": "object", + "description": "Remaining structured metadata key-value pairs.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "key": { + "type": "string", + "description": "The top-level key." + }, + "number": { + "type": "string", + "description": "The number of values that can be included in a field described by this metadata." + }, + "type": { + "type": "string", + "description": "The type of data. Possible types include: Integer, Float, Flag, Character, and String.", + "enum": [ + "CHARACTER", + "FLAG", + "FLOAT", + "INTEGER", + "STRING", + "UNKNOWN_TYPE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "value": { + "type": "string", + "description": "The value field for simple metadata" + } + } + }, + "PairedFastqSource": { + "id": "PairedFastqSource", + "type": "object", + "description": "Describes a paired-end FASTQ file source for alignment.", + "properties": { + "firstSourceUris": { + "type": "array", + "description": "A list of URIs pointing at paired end FASTQ files in Google Cloud Storage which will be aligned. The first of each paired file should be specified here, in an order that matches the second of each paired file specified in secondSourceUris. For example: firstSourceUris: [file1_1.fq, file2_1.fq], secondSourceUris: [file1_2.fq, file2_2.fq]. The caller must have READ permissions for these files.", + "items": { + "type": "string" + } + }, + "metadata": { + "$ref": "FastqMetadata", + "description": "Optionally specifies the metadata to be associated with the final aligned read group set." + }, + "secondSourceUris": { + "type": "array", + "description": "A list of URIs pointing at paired end FASTQ files in Google Cloud Storage which will be aligned. The second of each paired file should be specified here, in an order that matches the first of each paired file specified in firstSourceUris. For example: firstSourceUris: [file1_1.fq, file2_1.fq], secondSourceUris: [file1_2.fq, file2_2.fq]. The caller must have READ permissions for these files.", + "items": { + "type": "string" + } + } + } + }, + "Position": { + "id": "Position", + "type": "object", + "description": "An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand.", + "properties": { + "position": { + "type": "string", + "description": "The 0-based offset from the start of the forward strand for that reference.", + "format": "int64" + }, + "referenceName": { + "type": "string", + "description": "The name of the reference in whatever reference set is being used." + }, + "reverseStrand": { + "type": "boolean", + "description": "Whether this position is on the reverse strand, as opposed to the forward strand." + } + } + }, + "QueryRange": { + "id": "QueryRange", + "type": "object", + "description": "A 0-based half-open genomic coordinate range for search requests.", + "properties": { + "end": { + "type": "string", + "description": "The end position of the range on the reference, 0-based exclusive. If specified, referenceId or referenceName must also be specified. If unset or 0, defaults to the length of the reference.", + "format": "int64" + }, + "referenceId": { + "type": "string", + "description": "The ID of the reference to query. At most one of referenceId and referenceName should be specified." + }, + "referenceName": { + "type": "string", + "description": "The name of the reference to query, within the reference set associated with this query. At most one of referenceId and referenceName pshould be specified." + }, + "start": { + "type": "string", + "description": "The start position of the range on the reference, 0-based inclusive. If specified, referenceId or referenceName must also be specified. Defaults to 0.", + "format": "int64" + } + } + }, + "Range": { + "id": "Range", + "type": "object", + "description": "A 0-based half-open genomic coordinate range over a reference sequence.", + "properties": { + "end": { + "type": "string", + "description": "The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.", + "format": "int64" + }, + "referenceName": { + "type": "string", + "description": "The reference sequence name, for example chr1, 1, or chrX." + }, + "start": { + "type": "string", + "description": "The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.", + "format": "int64" + } + } + }, + "RangePosition": { + "id": "RangePosition", + "type": "object", + "description": "A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource.", + "properties": { + "end": { + "type": "string", + "description": "The end position of the range on the reference, 0-based exclusive.", + "format": "int64" + }, + "referenceId": { + "type": "string", + "description": "The ID of the Google Genomics reference associated with this range." + }, + "referenceName": { + "type": "string", + "description": "The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX." + }, + "reverseStrand": { + "type": "boolean", + "description": "Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand." + }, + "start": { + "type": "string", + "description": "The start position of the range on the reference, 0-based inclusive.", + "format": "int64" + } + } + }, + "Read": { + "id": "Read", + "type": "object", + "description": "A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this:\nout = \"\" offset = 0 for c in read.alignment.cigar { switch c.operation { case \"ALIGNMENT_MATCH\", \"SEQUENCE_MATCH\", \"SEQUENCE_MISMATCH\": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case \"CLIP_SOFT\", \"INSERT\": offset += c.operationLength break case \"PAD\": out += repeat(\"*\", c.operationLength) break case \"DELETE\": out += repeat(\"-\", c.operationLength) break case \"SKIP\": out += repeat(\" \", c.operationLength) break case \"CLIP_HARD\": break } } return out\nConverting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the cigar field. Note that this is a lossy conversion (cigar.referenceSequence is lost).\ncigarMap = { \"ALIGNMENT_MATCH\": \"M\", \"INSERT\": \"I\", \"DELETE\": \"D\", \"SKIP\": \"N\", \"CLIP_SOFT\": \"S\", \"CLIP_HARD\": \"H\", \"PAD\": \"P\", \"SEQUENCE_MATCH\": \"=\", \"SEQUENCE_MISMATCH\": \"X\", } cigarStr = \"\" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr", + "properties": { + "alignedQuality": { + "type": "array", + "description": "The quality of the read sequence contained in this alignment record. alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "alignedSequence": { + "type": "string", + "description": "The bases of the read sequence contained in this alignment record, without CIGAR operations applied. alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence." + }, + "alignment": { + "$ref": "LinearAlignment", + "description": "The linear alignment for this alignment record. This field will be null if the read is unmapped." + }, + "duplicateFragment": { + "type": "boolean", + "description": "The fragment is a PCR or optical duplicate (SAM flag 0x400)" + }, + "failedVendorQualityChecks": { + "type": "boolean", + "description": "SAM flag 0x200" + }, + "fragmentLength": { + "type": "integer", + "description": "The observed length of the fragment, equivalent to TLEN in SAM.", + "format": "int32" + }, + "fragmentName": { + "type": "string", + "description": "The fragment name. Equivalent to QNAME (query template name) in SAM." + }, + "id": { + "type": "string", + "description": "The unique ID for this read. This is a generated unique ID, not to be confused with fragmentName." + }, + "info": { + "type": "object", + "description": "A map of additional read alignment information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "nextMatePosition": { + "$ref": "Position", + "description": "The mapping of the primary alignment of the (readNumber+1)%numberReads read in the fragment. It replaces mate position and mate strand in SAM." + }, + "numberReads": { + "type": "integer", + "description": "The number of reads in the fragment (extension to SAM flag 0x1).", + "format": "int32" + }, + "properPlacement": { + "type": "boolean", + "description": "The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2)" + }, + "readGroupId": { + "type": "string", + "description": "The ID of the read group this read belongs to. (Every read must belong to exactly one read group.)" + }, + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set this read belongs to. (Every read must belong to exactly one read group set.)" + }, + "readNumber": { + "type": "integer", + "description": "The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.", + "format": "int32" + }, + "secondaryAlignment": { + "type": "boolean", + "description": "Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both secondaryAlignment and supplementaryAlignment are false." + }, + "supplementaryAlignment": { + "type": "boolean", + "description": "Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The alignedSequence and alignedQuality fields in the alignment record will only represent the bases for its respective linear alignment." + } + } + }, + "ReadGroup": { + "id": "ReadGroup", + "type": "object", + "description": "A read group is all the data that's processed the same way by the sequencer.", + "properties": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset this read group belongs to." + }, + "description": { + "type": "string", + "description": "A free-form text description of this read group." + }, + "experiment": { + "$ref": "ReadGroupExperiment", + "description": "The experiment used to generate this read group." + }, + "id": { + "type": "string", + "description": "The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field." + }, + "info": { + "type": "object", + "description": "A map of additional read group information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The read group name. This corresponds to the @RG ID field in the SAM spec." + }, + "predictedInsertSize": { + "type": "integer", + "description": "The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.", + "format": "int32" + }, + "programs": { + "type": "array", + "description": "The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.", + "items": { + "$ref": "ReadGroupProgram" + } + }, + "referenceSetId": { + "type": "string", + "description": "The reference set the reads in this read group are aligned to. Required if there are any read alignments." + }, + "sampleId": { + "type": "string", + "description": "The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system." + } + } + }, + "ReadGroupExperiment": { + "id": "ReadGroupExperiment", + "type": "object", + "properties": { + "instrumentModel": { + "type": "string", + "description": "The instrument model used as part of this experiment. This maps to sequencing technology in BAM." + }, + "libraryId": { + "type": "string", + "description": "The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system." + }, + "platformUnit": { + "type": "string", + "description": "The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the" + }, + "sequencingCenter": { + "type": "string", + "description": "The sequencing center used as part of this experiment." + } + } + }, + "ReadGroupProgram": { + "id": "ReadGroupProgram", + "type": "object", + "properties": { + "commandLine": { + "type": "string", + "description": "The command line used to run this program." + }, + "id": { + "type": "string", + "description": "The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs." + }, + "name": { + "type": "string", + "description": "The name of the program." + }, + "prevProgramId": { + "type": "string", + "description": "The ID of the program run before this one." + }, + "version": { + "type": "string", + "description": "The version of the program run." + } + } + }, + "ReadGroupSet": { + "id": "ReadGroupSet", + "type": "object", + "description": "A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way. \n- A read group set belongs to one dataset.\n- A read group belongs to one read group set.\n- A read belongs to one read group.", + "properties": { + "datasetId": { + "type": "string", + "description": "The dataset ID." + }, + "filename": { + "type": "string", + "description": "The filename of the original source file for this read group set, if any." + }, + "id": { + "type": "string", + "description": "The read group set ID." + }, + "info": { + "type": "object", + "description": "A map of additional read group set information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "name": { + "type": "string", + "description": "The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set." + }, + "readGroups": { + "type": "array", + "description": "The read groups in this set. There are typically 1-10 read groups in a read group set.", + "items": { + "$ref": "ReadGroup" + } + }, + "referenceSetId": { + "type": "string", + "description": "The reference set the reads in this read group set are aligned to." + } + } + }, + "Reference": { + "id": "Reference", + "type": "object", + "description": "A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets.", + "properties": { + "id": { + "type": "string", + "description": "The Google generated immutable ID of the reference." + }, + "length": { + "type": "string", + "description": "The length of this reference's sequence.", + "format": "int64" + }, + "md5checksum": { + "type": "string", + "description": "MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format." + }, + "name": { + "type": "string", + "description": "The name of this reference, for example 22." + }, + "ncbiTaxonId": { + "type": "integer", + "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606-\u003ehuman) if not specified by the containing reference set.", + "format": "int32" + }, + "sourceAccessions": { + "type": "array", + "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example GCF_000001405.26.", + "items": { + "type": "string" + } + }, + "sourceURI": { + "type": "string", + "description": "The URI from which the sequence was obtained. Specifies a FASTA format file/string with one name, sequence pair." + } + } + }, + "ReferenceBound": { + "id": "ReferenceBound", + "type": "object", + "description": "ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.", + "properties": { + "referenceName": { + "type": "string", + "description": "The reference the bound is associate with." + }, + "upperBound": { + "type": "string", + "description": "An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.", + "format": "int64" + } + } + }, + "ReferenceSet": { + "id": "ReferenceSet", + "type": "object", + "description": "A reference set is a set of references which typically comprise a reference assembly for a species, such as GRCh38 which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references.", + "properties": { + "assemblyId": { + "type": "string", + "description": "Public id of this reference set, such as GRCh37." + }, + "description": { + "type": "string", + "description": "Optional free text description of this reference set." + }, + "id": { + "type": "string", + "description": "The Google generated immutable ID of the reference set." + }, + "md5checksum": { + "type": "string", + "description": "Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string reference.md5checksum (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format." + }, + "ncbiTaxonId": { + "type": "integer", + "description": "ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606-\u003ehuman) indicating the species which this assembly is intended to model. Note that contained references may specify a different ncbiTaxonId, as assemblies may contain reference sequences which do not belong to the modeled species, e.g. EBV in a human reference genome.", + "format": "int32" + }, + "referenceIds": { + "type": "array", + "description": "The IDs of the reference objects that are part of this set. Reference.md5checksum must be unique within this set.", + "items": { + "type": "string" + } + }, + "sourceAccessions": { + "type": "array", + "description": "All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example NC_000001.11.", + "items": { + "type": "string" + } + }, + "sourceURI": { + "type": "string", + "description": "The URI from which the references were obtained." + } + } + }, + "SearchAnnotationSetsRequest": { + "id": "SearchAnnotationSetsRequest", + "type": "object", + "properties": { + "datasetIds": { + "type": "array", + "description": "The dataset IDs to search within. Caller must have READ access to these datasets.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Only return annotations sets for which a substring of the name matches this string (case insensitive)." + }, + "pageSize": { + "type": "integer", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 128. The maximum value is 1024.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "referenceSetId": { + "type": "string", + "description": "If specified, only annotation sets associated with the given reference set are returned." + }, + "types": { + "type": "array", + "description": "If specified, only annotation sets which have any of these types are returned.", + "items": { + "type": "string", + "enum": [ + "GENE", + "GENERIC", + "TRANSCRIPT", + "VARIANT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + } + }, + "SearchAnnotationSetsResponse": { + "id": "SearchAnnotationSetsResponse", + "type": "object", + "properties": { + "annotationSets": { + "type": "array", + "description": "The matching annotation sets.", + "items": { + "$ref": "AnnotationSet" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "SearchAnnotationsRequest": { + "id": "SearchAnnotationsRequest", + "type": "object", + "properties": { + "annotationSetIds": { + "type": "array", + "description": "The annotation sets to search within. The caller must have READ access to these annotation sets. Required. All queried annotation sets must have the same type.", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "integer", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 256. The maximum value is 2048.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "range": { + "$ref": "QueryRange", + "description": "If specified, this query matches only annotations which overlap this range." + } + } + }, + "SearchAnnotationsResponse": { + "id": "SearchAnnotationsResponse", + "type": "object", + "properties": { + "annotations": { + "type": "array", + "description": "The matching annotations.", + "items": { + "$ref": "Annotation" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "SearchCallSetsRequest": { + "id": "SearchCallSetsRequest", + "type": "object", + "description": "The call set search request.", + "properties": { + "name": { + "type": "string", + "description": "Only return call sets for which a substring of the name matches this string." + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of call sets to return.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "variantSetIds": { + "type": "array", + "description": "Restrict the query to call sets within the given variant sets. At least one ID must be provided.", + "items": { + "type": "string" + } + } + } + }, + "SearchCallSetsResponse": { + "id": "SearchCallSetsResponse", + "type": "object", + "description": "The call set search response.", + "properties": { + "callSets": { + "type": "array", + "description": "The list of matching call sets.", + "items": { + "$ref": "CallSet" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "SearchJobsRequest": { + "id": "SearchJobsRequest", + "type": "object", + "description": "The jobs search request.", + "properties": { + "createdAfter": { + "type": "string", + "description": "If specified, only jobs created on or after this date, given in milliseconds since Unix epoch, will be returned.", + "format": "int64" + }, + "createdBefore": { + "type": "string", + "description": "If specified, only jobs created prior to this date, given in milliseconds since Unix epoch, will be returned.", + "format": "int64" + }, + "pageSize": { + "type": "integer", + "description": "Specifies the number of results to return in a single page. Defaults to 128. The maximum value is 256.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token which is used to page through large result sets. To get the next page of results, set this parameter to the value of the nextPageToken from the previous response." + }, + "projectNumber": { + "type": "string", + "description": "Required. Only return jobs which belong to this Google Developers Console project.", + "format": "int64" + }, + "status": { + "type": "array", + "description": "Only return jobs which have a matching status.", + "items": { + "type": "string", + "enum": [ + "CANCELED", + "FAILURE", + "NEW", + "PENDING", + "RUNNING", + "SUCCESS", + "UNKNOWN_STATUS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ] + } + } + } + }, + "SearchJobsResponse": { + "id": "SearchJobsResponse", + "type": "object", + "description": "The job search response.", + "properties": { + "jobs": { + "type": "array", + "description": "The list of jobs results, ordered newest to oldest.", + "items": { + "$ref": "Job" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token which is used to page through large result sets. Provide this value is a subsequent request to return the next page of results. This field will be empty if there are no more results." + } + } + }, + "SearchReadGroupSetsRequest": { + "id": "SearchReadGroupSetsRequest", + "type": "object", + "description": "The read group set search request.", + "properties": { + "datasetIds": { + "type": "array", + "description": "Restricts this query to read group sets within the given datasets. At least one ID must be provided.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Only return read group sets for which a substring of the name matches this string." + }, + "pageSize": { + "type": "integer", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 128. The maximum value is 1024.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + } + } + }, + "SearchReadGroupSetsResponse": { + "id": "SearchReadGroupSetsResponse", + "type": "object", + "description": "The read group set search response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "readGroupSets": { + "type": "array", + "description": "The list of matching read group sets.", + "items": { + "$ref": "ReadGroupSet" + } + } + } + }, + "SearchReadsRequest": { + "id": "SearchReadsRequest", + "type": "object", + "description": "The read search request.", + "properties": { + "end": { + "type": "string", + "description": "The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.", + "format": "int64" + }, + "pageSize": { + "type": "integer", + "description": "Specifies number of results to return in a single page. If unspecified, it will default to 256. The maximum value is 2048.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "readGroupIds": { + "type": "array", + "description": "The IDs of the read groups within which to search for reads. All specified read groups must belong to the same read group sets. Must specify one of readGroupSetIds or readGroupIds.", + "items": { + "type": "string" + } + }, + "readGroupSetIds": { + "type": "array", + "description": "The IDs of the read groups sets within which to search for reads. All specified read group sets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query. Must specify one of readGroupSetIds or readGroupIds.", + "items": { + "type": "string" + } + }, + "referenceName": { + "type": "string", + "description": "The reference sequence name, for example chr1, 1, or chrX. If set to *, only unmapped reads are returned." + }, + "start": { + "type": "string", + "description": "The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.", + "format": "int64" + } + } + }, + "SearchReadsResponse": { + "id": "SearchReadsResponse", + "type": "object", + "description": "The read search response.", + "properties": { + "alignments": { + "type": "array", + "description": "The list of matching alignments sorted by mapped genomic coordinate, if any, ascending in position within the same reference. Unmapped reads, which have no position, are returned last and are further sorted in ascending lexicographic order by fragment name.", + "items": { + "$ref": "Read" + } + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + } + } + }, + "SearchReferenceSetsRequest": { + "id": "SearchReferenceSetsRequest", + "type": "object", + "description": "", + "properties": { + "accessions": { + "type": "array", + "description": "If present, return references for which the accession matches any of these strings. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.", + "items": { + "type": "string" + } + }, + "assemblyId": { + "type": "string", + "description": "If present, return reference sets for which a substring of their assemblyId matches this string (case insensitive)." + }, + "md5checksums": { + "type": "array", + "description": "If present, return references for which the md5checksum matches. See ReferenceSet.md5checksum for details.", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "integer", + "description": "Specifies the maximum number of results to return in a single page.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + } + } + }, + "SearchReferenceSetsResponse": { + "id": "SearchReferenceSetsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "referenceSets": { + "type": "array", + "description": "The matching references sets.", + "items": { + "$ref": "ReferenceSet" + } + } + } + }, + "SearchReferencesRequest": { + "id": "SearchReferencesRequest", + "type": "object", + "description": "", + "properties": { + "accessions": { + "type": "array", + "description": "If present, return references for which the accession matches this string. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.", + "items": { + "type": "string" + } + }, + "md5checksums": { + "type": "array", + "description": "If present, return references for which the md5checksum matches. See Reference.md5checksum for construction details.", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "integer", + "description": "Specifies the maximum number of results to return in a single page.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "referenceSetId": { + "type": "string", + "description": "If present, return only references which belong to this reference set." + } + } + }, + "SearchReferencesResponse": { + "id": "SearchReferencesResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "references": { + "type": "array", + "description": "The matching references.", + "items": { + "$ref": "Reference" + } + } + } + }, + "SearchVariantSetsRequest": { + "id": "SearchVariantSetsRequest", + "type": "object", + "description": "The search variant sets request.", + "properties": { + "datasetIds": { + "type": "array", + "description": "Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of variant sets to return in a request.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + } + } + }, + "SearchVariantSetsResponse": { + "id": "SearchVariantSetsResponse", + "type": "object", + "description": "The search variant sets response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "variantSets": { + "type": "array", + "description": "The variant sets belonging to the requested dataset.", + "items": { + "$ref": "VariantSet" + } + } + } + }, + "SearchVariantsRequest": { + "id": "SearchVariantsRequest", + "type": "object", + "description": "The variant search request.", + "properties": { + "callSetIds": { + "type": "array", + "description": "Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all. Currently, variants with no calls from any call set will never be returned.", + "items": { + "type": "string" + } + }, + "end": { + "type": "string", + "description": "Required. The end of the window (0-based, exclusive) for which overlapping variants should be returned.", + "format": "int64" + }, + "maxCalls": { + "type": "integer", + "description": "The maximum number of calls to return. However, at least one variant will always be returned, even if it has more calls than this limit.", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "description": "The maximum number of variants to return.", + "format": "int32" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response." + }, + "referenceName": { + "type": "string", + "description": "Required. Only return variants in this reference sequence." + }, + "start": { + "type": "string", + "description": "Required. The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.", + "format": "int64" + }, + "variantName": { + "type": "string", + "description": "Only return variants which have exactly this name." + }, + "variantSetIds": { + "type": "array", + "description": "Exactly one variant set ID must be provided. Only variants from this variant set will be returned.", + "items": { + "type": "string" + } + } + } + }, + "SearchVariantsResponse": { + "id": "SearchVariantsResponse", + "type": "object", + "description": "The variant search response.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results." + }, + "variants": { + "type": "array", + "description": "The list of matching Variants.", + "items": { + "$ref": "Variant" + } + } + } + }, + "Transcript": { + "id": "Transcript", + "type": "object", + "description": "A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA.", + "properties": { + "codingSequence": { + "$ref": "TranscriptCodingSequence", + "description": "The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.\n\nNote that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA." + }, + "exons": { + "type": "array", + "description": "The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.\n\n\nIntrons are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.\n\n\nExonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.\n\n\nExons are ordered by start position and may not overlap.", + "items": { + "$ref": "TranscriptExon" + } + }, + "geneId": { + "type": "string", + "description": "The annotation ID of the gene from which this transcript is transcribed." + } + } + }, + "TranscriptCodingSequence": { + "id": "TranscriptCodingSequence", + "type": "object", + "properties": { + "end": { + "type": "string", + "description": "The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.", + "format": "int64" + }, + "start": { + "type": "string", + "description": "The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.", + "format": "int64" + } + } + }, + "TranscriptExon": { + "id": "TranscriptExon", + "type": "object", + "properties": { + "end": { + "type": "string", + "description": "The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.", + "format": "int64" + }, + "frame": { + "$ref": "Int32Value", + "description": "The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.\n\nUnset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons." + }, + "start": { + "type": "string", + "description": "The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.", + "format": "int64" + } + } + }, + "Variant": { + "id": "Variant", + "type": "object", + "description": "A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.", + "properties": { + "alternateBases": { + "type": "array", + "description": "The bases that appear instead of the reference bases.", + "items": { + "type": "string" + } + }, + "calls": { + "type": "array", + "description": "The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.", + "items": { + "$ref": "Call" + } + }, + "created": { + "type": "string", + "description": "The date this variant was created, in milliseconds from the epoch.", + "format": "int64" + }, + "end": { + "type": "string", + "description": "The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.", + "format": "int64" + }, + "filter": { + "type": "array", + "description": "A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.", + "items": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "The Google generated ID of the variant, immutable." + }, + "info": { + "type": "object", + "description": "A map of additional variant information.", + "additionalProperties": { + "type": "array", + "description": "A string which maps to an array of values.", + "items": { + "type": "string" + } + } + }, + "names": { + "type": "array", + "description": "Names for the variant, for example a RefSNP ID.", + "items": { + "type": "string" + } + }, + "quality": { + "type": "number", + "description": "A measure of how likely this variant is to be real. A higher value is better.", + "format": "double" + }, + "referenceBases": { + "type": "string", + "description": "The reference bases for this variant. They start at the given position." + }, + "referenceName": { + "type": "string", + "description": "The reference on which this variant occurs. (such as chr20 or X)" + }, + "start": { + "type": "string", + "description": "The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.", + "format": "int64" + }, + "variantSetId": { + "type": "string", + "description": "The ID of the variant set this variant belongs to." + } + } + }, + "VariantAnnotation": { + "id": "VariantAnnotation", + "type": "object", + "description": "A Variant annotation.", + "properties": { + "alternateBases": { + "type": "string", + "description": "The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions." + }, + "clinicalSignificance": { + "type": "string", + "description": "Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/", + "enum": [ + "ASSOCIATION", + "BENIGN", + "CLINICAL_SIGNIFICANCE_UNSPECIFIED", + "CONFERS_SENSITIVITY", + "DRUG_RESPONSE", + "HISTOCOMPATIBILITY", + "LIKELY_BENIGN", + "LIKELY_PATHOGENIC", + "MULTIPLE_REPORTED", + "OTHER", + "PATHOGENIC", + "PROTECTIVE", + "RISK_FACTOR", + "UNCERTAIN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "conditions": { + "type": "array", + "description": "The set of conditions associated with this variant. A condition describes the way a variant influences human health.", + "items": { + "$ref": "VariantAnnotationCondition" + } + }, + "effect": { + "type": "string", + "description": "Effect of the variant on the coding sequence.", + "enum": [ + "EFFECT_UNSPECIFIED", + "FRAMESHIFT", + "FRAME_PRESERVING_INDEL", + "NONSYNONYMOUS_SNP", + "OTHER", + "SPLICE_SITE_DISRUPTION", + "STOP_GAIN", + "STOP_LOSS", + "SYNONYMOUS_SNP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "geneId": { + "type": "string", + "description": "Google annotation ID of the gene affected by this variant. This should be provided when the variant is created." + }, + "transcriptIds": { + "type": "array", + "description": "Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "Type has been adapted from ClinVar's list of variant types.", + "enum": [ + "CNV", + "DELETION", + "INSERTION", + "OTHER", + "SNP", + "STRUCTURAL", + "SUBSTITUTION", + "TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + } + }, + "VariantAnnotationCondition": { + "id": "VariantAnnotationCondition", + "type": "object", + "description": "", + "properties": { + "conceptId": { + "type": "string", + "description": "The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/" + }, + "externalIds": { + "type": "array", + "description": "The set of external ids for this condition.", + "items": { + "$ref": "ExternalId" + } + }, + "names": { + "type": "array", + "description": "A set of names for the condition.", + "items": { + "type": "string" + } + }, + "omimId": { + "type": "string", + "description": "The OMIM id for this condition. Search for these IDs at http://omim.org/" + } + } + }, + "VariantSet": { + "id": "VariantSet", + "type": "object", + "description": "A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.", + "properties": { + "datasetId": { + "type": "string", + "description": "The dataset to which this variant set belongs. Immutable." + }, + "id": { + "type": "string", + "description": "The Google-generated ID of the variant set. Immutable." + }, + "metadata": { + "type": "array", + "description": "The metadata associated with this variant set.", + "items": { + "$ref": "Metadata" + } + }, + "referenceBounds": { + "type": "array", + "description": "A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.", + "items": { + "$ref": "ReferenceBound" + } + } + } + } + }, + "resources": { + "annotationSets": { + "methods": { + "create": { + "id": "genomics.annotationSets.create", + "path": "annotationSets", + "httpMethod": "POST", + "description": "Creates a new annotation set. Caller must have WRITE permission for the associated dataset.", + "request": { + "$ref": "AnnotationSet" + }, + "response": { + "$ref": "AnnotationSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.annotationSets.delete", + "path": "annotationSets/{annotationSetId}", + "httpMethod": "DELETE", + "description": "Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.", + "parameters": { + "annotationSetId": { + "type": "string", + "description": "The ID of the annotation set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.annotationSets.get", + "path": "annotationSets/{annotationSetId}", + "httpMethod": "GET", + "description": "Gets an annotation set. Caller must have READ permission for the associated dataset.", + "parameters": { + "annotationSetId": { + "type": "string", + "description": "The ID of the annotation set to be retrieved.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationSetId" + ], + "response": { + "$ref": "AnnotationSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.annotationSets.patch", + "path": "annotationSets/{annotationSetId}", + "httpMethod": "PATCH", + "description": "Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.", + "parameters": { + "annotationSetId": { + "type": "string", + "description": "The ID of the annotation set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationSetId" + ], + "request": { + "$ref": "AnnotationSet" + }, + "response": { + "$ref": "AnnotationSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.annotationSets.search", + "path": "annotationSets/search", + "httpMethod": "POST", + "description": "Searches for annotation sets which match the given criteria. Results are returned in a deterministic order. Caller must have READ permission for the queried datasets.", + "request": { + "$ref": "SearchAnnotationSetsRequest" + }, + "response": { + "$ref": "SearchAnnotationSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.annotationSets.update", + "path": "annotationSets/{annotationSetId}", + "httpMethod": "PUT", + "description": "Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.", + "parameters": { + "annotationSetId": { + "type": "string", + "description": "The ID of the annotation set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationSetId" + ], + "request": { + "$ref": "AnnotationSet" + }, + "response": { + "$ref": "AnnotationSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "annotations": { + "methods": { + "create": { + "id": "genomics.annotations.create", + "path": "annotations", + "httpMethod": "POST", + "description": "Creates a new annotation. Caller must have WRITE permission for the associated annotation set.", + "request": { + "$ref": "Annotation" + }, + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.annotations.delete", + "path": "annotations/{annotationId}", + "httpMethod": "DELETE", + "description": "Deletes an annotation. Caller must have WRITE permission for the associated annotation set.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID of the annotation set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.annotations.get", + "path": "annotations/{annotationId}", + "httpMethod": "GET", + "description": "Gets an annotation. Caller must have READ permission for the associated annotation set.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID of the annotation set to be retrieved.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationId" + ], + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.annotations.patch", + "path": "annotations/{annotationId}", + "httpMethod": "PATCH", + "description": "Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID of the annotation set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationId" + ], + "request": { + "$ref": "Annotation" + }, + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.annotations.search", + "path": "annotations/search", + "httpMethod": "POST", + "description": "Searches for annotations which match the given criteria. Results are returned ordered by start position. Annotations which have matching start positions are ordered deterministically. Caller must have READ permission for the queried annotation sets.", + "request": { + "$ref": "SearchAnnotationsRequest" + }, + "response": { + "$ref": "SearchAnnotationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.annotations.update", + "path": "annotations/{annotationId}", + "httpMethod": "PUT", + "description": "Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset.", + "parameters": { + "annotationId": { + "type": "string", + "description": "The ID of the annotation set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "annotationId" + ], + "request": { + "$ref": "Annotation" + }, + "response": { + "$ref": "Annotation" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "callsets": { + "methods": { + "create": { + "id": "genomics.callsets.create", + "path": "callsets", + "httpMethod": "POST", + "description": "Creates a new call set.", + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.callsets.delete", + "path": "callsets/{callSetId}", + "httpMethod": "DELETE", + "description": "Deletes a call set.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.callsets.get", + "path": "callsets/{callSetId}", + "httpMethod": "GET", + "description": "Gets a call set by ID.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.callsets.patch", + "path": "callsets/{callSetId}", + "httpMethod": "PATCH", + "description": "Updates a call set. This method supports patch semantics.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.callsets.search", + "path": "callsets/search", + "httpMethod": "POST", + "description": "Gets a list of call sets matching the criteria.\n\nImplements GlobalAllianceApi.searchCallSets.", + "request": { + "$ref": "SearchCallSetsRequest" + }, + "response": { + "$ref": "SearchCallSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.callsets.update", + "path": "callsets/{callSetId}", + "httpMethod": "PUT", + "description": "Updates a call set.", + "parameters": { + "callSetId": { + "type": "string", + "description": "The ID of the call set to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "callSetId" + ], + "request": { + "$ref": "CallSet" + }, + "response": { + "$ref": "CallSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "datasets": { + "methods": { + "create": { + "id": "genomics.datasets.create", + "path": "datasets", + "httpMethod": "POST", + "description": "Creates a new dataset.", + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.datasets.delete", + "path": "datasets/{datasetId}", + "httpMethod": "DELETE", + "description": "Deletes a dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.datasets.get", + "path": "datasets/{datasetId}", + "httpMethod": "GET", + "description": "Gets a dataset by ID.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "list": { + "id": "genomics.datasets.list", + "path": "datasets", + "httpMethod": "GET", + "description": "Lists all datasets.", + "parameters": { + "pageSize": { + "type": "integer", + "description": "The maximum number of results returned by this request.", + "default": "50", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectNumber": { + "type": "string", + "description": "Only return datasets which belong to this Google Developers Console project. Only accepts project numbers. Returns all public projects if no project number is specified.", + "format": "int64", + "location": "query" + } + }, + "response": { + "$ref": "ListDatasetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "patch": { + "id": "genomics.datasets.patch", + "path": "datasets/{datasetId}", + "httpMethod": "PATCH", + "description": "Updates a dataset. This method supports patch semantics.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "undelete": { + "id": "genomics.datasets.undelete", + "path": "datasets/{datasetId}/undelete", + "httpMethod": "POST", + "description": "Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be undeleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "update": { + "id": "genomics.datasets.update", + "path": "datasets/{datasetId}", + "httpMethod": "PUT", + "description": "Updates a dataset.", + "parameters": { + "datasetId": { + "type": "string", + "description": "The ID of the dataset to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "datasetId" + ], + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "experimental": { + "resources": { + "jobs": { + "methods": { + "create": { + "id": "genomics.experimental.jobs.create", + "path": "experimental/jobs/create", + "httpMethod": "POST", + "description": "Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.", + "request": { + "$ref": "ExperimentalCreateJobRequest" + }, + "response": { + "$ref": "ExperimentalCreateJobResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + } + } + } + } + }, + "jobs": { + "methods": { + "cancel": { + "id": "genomics.jobs.cancel", + "path": "jobs/{jobId}/cancel", + "httpMethod": "POST", + "description": "Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.", + "parameters": { + "jobId": { + "type": "string", + "description": "Required. The ID of the job.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "jobId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.jobs.get", + "path": "jobs/{jobId}", + "httpMethod": "GET", + "description": "Gets a job by ID.", + "parameters": { + "jobId": { + "type": "string", + "description": "Required. The ID of the job.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "jobId" + ], + "response": { + "$ref": "Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "search": { + "id": "genomics.jobs.search", + "path": "jobs/search", + "httpMethod": "POST", + "description": "Gets a list of jobs matching the criteria.", + "request": { + "$ref": "SearchJobsRequest" + }, + "response": { + "$ref": "SearchJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + }, + "readgroupsets": { + "methods": { + "align": { + "id": "genomics.readgroupsets.align", + "path": "readgroupsets/align", + "httpMethod": "POST", + "description": "Aligns read data from existing read group sets or files from Google Cloud Storage. See the alignment and variant calling documentation for more details.", + "request": { + "$ref": "AlignReadGroupSetsRequest" + }, + "response": { + "$ref": "AlignReadGroupSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "call": { + "id": "genomics.readgroupsets.call", + "path": "readgroupsets/call", + "httpMethod": "POST", + "description": "Calls variants on read data from existing read group sets or files from Google Cloud Storage. See the alignment and variant calling documentation for more details.", + "request": { + "$ref": "CallReadGroupSetsRequest" + }, + "response": { + "$ref": "CallReadGroupSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.readgroupsets.delete", + "path": "readgroupsets/{readGroupSetId}", + "httpMethod": "DELETE", + "description": "Deletes a read group set.", + "parameters": { + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set to be deleted. The caller must have WRITE permissions to the dataset associated with this read group set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readGroupSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "export": { + "id": "genomics.readgroupsets.export", + "path": "readgroupsets/export", + "httpMethod": "POST", + "description": "Exports read group sets to a BAM file in Google Cloud Storage.\n\nNote that currently there may be some differences between exported BAM files and the original BAM file at the time of import. In particular, comments in the input file header will not be preserved, some custom tags will be converted to strings, and original reference sequence order is not necessarily preserved.", + "request": { + "$ref": "ExportReadGroupSetsRequest" + }, + "response": { + "$ref": "ExportReadGroupSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.readgroupsets.get", + "path": "readgroupsets/{readGroupSetId}", + "httpMethod": "GET", + "description": "Gets a read group set by ID.", + "parameters": { + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readGroupSetId" + ], + "response": { + "$ref": "ReadGroupSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "import": { + "id": "genomics.readgroupsets.import", + "path": "readgroupsets/import", + "httpMethod": "POST", + "description": "Creates read group sets by asynchronously importing the provided information.\n\nNote that currently comments in the input file header are not imported and some custom tags will be converted to strings, rather than preserving tag types. The caller must have WRITE permissions to the dataset.", + "request": { + "$ref": "ImportReadGroupSetsRequest" + }, + "response": { + "$ref": "ImportReadGroupSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "patch": { + "id": "genomics.readgroupsets.patch", + "path": "readgroupsets/{readGroupSetId}", + "httpMethod": "PATCH", + "description": "Updates a read group set. This method supports patch semantics.", + "parameters": { + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readGroupSetId" + ], + "request": { + "$ref": "ReadGroupSet" + }, + "response": { + "$ref": "ReadGroupSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.readgroupsets.search", + "path": "readgroupsets/search", + "httpMethod": "POST", + "description": "Searches for read group sets matching the criteria.\n\nImplements GlobalAllianceApi.searchReadGroupSets.", + "request": { + "$ref": "SearchReadGroupSetsRequest" + }, + "response": { + "$ref": "SearchReadGroupSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.readgroupsets.update", + "path": "readgroupsets/{readGroupSetId}", + "httpMethod": "PUT", + "description": "Updates a read group set.", + "parameters": { + "readGroupSetId": { + "type": "string", + "description": "The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "readGroupSetId" + ], + "request": { + "$ref": "ReadGroupSet" + }, + "response": { + "$ref": "ReadGroupSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + }, + "resources": { + "coveragebuckets": { + "methods": { + "list": { + "id": "genomics.readgroupsets.coveragebuckets.list", + "path": "readgroupsets/{readGroupSetId}/coveragebuckets", + "httpMethod": "GET", + "description": "Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range.\n\nCoverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.", + "parameters": { + "pageSize": { + "type": "integer", + "description": "The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.", + "default": "1024", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "range.end": { + "type": "string", + "description": "The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.", + "format": "int64", + "location": "query" + }, + "range.referenceName": { + "type": "string", + "description": "The reference sequence name, for example chr1, 1, or chrX.", + "location": "query" + }, + "range.start": { + "type": "string", + "description": "The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.", + "format": "int64", + "location": "query" + }, + "readGroupSetId": { + "type": "string", + "description": "Required. The ID of the read group set over which coverage is requested.", + "required": true, + "location": "path" + }, + "targetBucketWidth": { + "type": "string", + "description": "The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as bucketWidth in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed bucketWidth is currently 2048 base pairs; this is subject to change.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "readGroupSetId" + ], + "response": { + "$ref": "ListCoverageBucketsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + } + } + }, + "reads": { + "methods": { + "search": { + "id": "genomics.reads.search", + "path": "reads/search", + "httpMethod": "POST", + "description": "Gets a list of reads for one or more read group sets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned.\n\nIf a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads.\n\nAll reads returned (including reads on subsequent pages) are ordered by genomic coordinate (reference sequence & position). Reads with equivalent genomic coordinates are returned in a deterministic order.\n\nImplements GlobalAllianceApi.searchReads.", + "request": { + "$ref": "SearchReadsRequest" + }, + "response": { + "$ref": "SearchReadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + }, + "references": { + "methods": { + "get": { + "id": "genomics.references.get", + "path": "references/{referenceId}", + "httpMethod": "GET", + "description": "Gets a reference.\n\nImplements GlobalAllianceApi.getReference.", + "parameters": { + "referenceId": { + "type": "string", + "description": "The ID of the reference.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "referenceId" + ], + "response": { + "$ref": "Reference" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "search": { + "id": "genomics.references.search", + "path": "references/search", + "httpMethod": "POST", + "description": "Searches for references which match the given criteria.\n\nImplements GlobalAllianceApi.searchReferences.", + "request": { + "$ref": "SearchReferencesRequest" + }, + "response": { + "$ref": "SearchReferencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + }, + "resources": { + "bases": { + "methods": { + "list": { + "id": "genomics.references.bases.list", + "path": "references/{referenceId}/bases", + "httpMethod": "GET", + "description": "Lists the bases in a reference, optionally restricted to a range.\n\nImplements GlobalAllianceApi.getReferenceBases.", + "parameters": { + "end": { + "type": "string", + "description": "The end position (0-based, exclusive) of this query. Defaults to the length of this reference.", + "format": "int64", + "location": "query" + }, + "pageSize": { + "type": "integer", + "description": "Specifies the maximum number of bases to return in a single page.", + "default": "200000", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "referenceId": { + "type": "string", + "description": "The ID of the reference.", + "required": true, + "location": "path" + }, + "start": { + "type": "string", + "description": "The start position (0-based) of this query. Defaults to 0.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "referenceId" + ], + "response": { + "$ref": "ListBasesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + } + } + }, + "referencesets": { + "methods": { + "get": { + "id": "genomics.referencesets.get", + "path": "referencesets/{referenceSetId}", + "httpMethod": "GET", + "description": "Gets a reference set.\n\nImplements GlobalAllianceApi.getReferenceSet.", + "parameters": { + "referenceSetId": { + "type": "string", + "description": "The ID of the reference set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "referenceSetId" + ], + "response": { + "$ref": "ReferenceSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "search": { + "id": "genomics.referencesets.search", + "path": "referencesets/search", + "httpMethod": "POST", + "description": "Searches for reference sets which match the given criteria.\n\nImplements GlobalAllianceApi.searchReferenceSets.", + "request": { + "$ref": "SearchReferenceSetsRequest" + }, + "response": { + "$ref": "SearchReferenceSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + } + } + }, + "variants": { + "methods": { + "create": { + "id": "genomics.variants.create", + "path": "variants", + "httpMethod": "POST", + "description": "Creates a new variant.", + "request": { + "$ref": "Variant" + }, + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "delete": { + "id": "genomics.variants.delete", + "path": "variants/{variantId}", + "httpMethod": "DELETE", + "description": "Deletes a variant.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.variants.get", + "path": "variants/{variantId}", + "httpMethod": "GET", + "description": "Gets a variant by ID.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "search": { + "id": "genomics.variants.search", + "path": "variants/search", + "httpMethod": "POST", + "description": "Gets a list of variants matching the criteria.\n\nImplements GlobalAllianceApi.searchVariants.", + "request": { + "$ref": "SearchVariantsRequest" + }, + "response": { + "$ref": "SearchVariantsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.variants.update", + "path": "variants/{variantId}", + "httpMethod": "PUT", + "description": "Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.", + "parameters": { + "variantId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantId" + ], + "request": { + "$ref": "Variant" + }, + "response": { + "$ref": "Variant" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + }, + "variantsets": { + "methods": { + "delete": { + "id": "genomics.variantsets.delete", + "path": "variantsets/{variantSetId}", + "httpMethod": "DELETE", + "description": "Deletes the contents of a variant set. The variant set object is not deleted.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant set to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "export": { + "id": "genomics.variantsets.export", + "path": "variantsets/{variantSetId}/export", + "httpMethod": "POST", + "description": "Exports variant set data to an external destination.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "ExportVariantSetRequest" + }, + "response": { + "$ref": "ExportVariantSetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/genomics" + ] + }, + "get": { + "id": "genomics.variantsets.get", + "path": "variantsets/{variantSetId}", + "httpMethod": "GET", + "description": "Gets a variant set by ID.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "Required. The ID of the variant set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "importVariants": { + "id": "genomics.variantsets.importVariants", + "path": "variantsets/{variantSetId}/importVariants", + "httpMethod": "POST", + "description": "Creates variant data by asynchronously importing the provided information.\n\nThe variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting INFO fields, some data will be arbitrarily discarded. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "Required. The variant set to which variant data should be imported.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "ImportVariantsRequest" + }, + "response": { + "$ref": "ImportVariantsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/genomics" + ] + }, + "mergeVariants": { + "id": "genomics.variantsets.mergeVariants", + "path": "variantsets/{variantSetId}/mergeVariants", + "httpMethod": "POST", + "description": "Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.\n\nWhen variants are merged, the call information from the new variant is added to the existing variant, and other fields (such as key/value pairs) are discarded.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The destination variant set.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "MergeVariantsRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "patch": { + "id": "genomics.variantsets.patch", + "path": "variantsets/{variantSetId}", + "httpMethod": "PATCH", + "description": "Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "VariantSet" + }, + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + }, + "search": { + "id": "genomics.variantsets.search", + "path": "variantsets/search", + "httpMethod": "POST", + "description": "Returns a list of all variant sets matching search criteria.\n\nImplements GlobalAllianceApi.searchVariantSets.", + "request": { + "$ref": "SearchVariantSetsRequest" + }, + "response": { + "$ref": "SearchVariantSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics", + "https://www.googleapis.com/auth/genomics.readonly" + ] + }, + "update": { + "id": "genomics.variantsets.update", + "path": "variantsets/{variantSetId}", + "httpMethod": "PUT", + "description": "Updates a variant set's metadata. All other modifications are silently ignored.", + "parameters": { + "variantSetId": { + "type": "string", + "description": "The ID of the variant to be updated.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "variantSetId" + ], + "request": { + "$ref": "VariantSet" + }, + "response": { + "$ref": "VariantSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/genomics" + ] + } + } + } + } +} diff --git a/etc/api/gmail/v1/gmail-api.json b/etc/api/gmail/v1/gmail-api.json new file mode 100644 index 0000000000..c551cac5da --- /dev/null +++ b/etc/api/gmail/v1/gmail-api.json @@ -0,0 +1,1881 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Z8EmGyPlhp7KjhJWnQbLacCZ3G8\"", + "discoveryVersion": "v1", + "id": "gmail:v1", + "name": "gmail", + "version": "v1", + "revision": "20150218", + "title": "Gmail API", + "description": "The Gmail REST API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/googlemail-16.png", + "x32": "https://www.google.com/images/icons/product/googlemail-32.png" + }, + "documentationLink": "https://developers.google.com/gmail/api/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/gmail/v1/users/", + "basePath": "/gmail/v1/users/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "gmail/v1/users/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://mail.google.com/": { + "description": "View and manage your mail" + }, + "https://www.googleapis.com/auth/gmail.compose": { + "description": "Manage drafts and send emails" + }, + "https://www.googleapis.com/auth/gmail.modify": { + "description": "View and modify but not delete your email" + }, + "https://www.googleapis.com/auth/gmail.readonly": { + "description": "View your emails messages and settings" + } + } + } + }, + "schemas": { + "Draft": { + "id": "Draft", + "type": "object", + "description": "A draft email in the user's mailbox.", + "properties": { + "id": { + "type": "string", + "description": "The immutable ID of the draft.", + "annotations": { + "required": [ + "gmail.users.drafts.send" + ] + } + }, + "message": { + "$ref": "Message", + "description": "The message content of the draft." + } + } + }, + "History": { + "id": "History", + "type": "object", + "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.", + "properties": { + "id": { + "type": "string", + "description": "The mailbox sequence ID.", + "format": "uint64" + }, + "labelsAdded": { + "type": "array", + "description": "Labels added to messages in this history record.", + "items": { + "$ref": "HistoryLabelAdded" + } + }, + "labelsRemoved": { + "type": "array", + "description": "Labels removed from messages in this history record.", + "items": { + "$ref": "HistoryLabelRemoved" + } + }, + "messages": { + "type": "array", + "description": "List of messages changed in this history record. The fields for specific change types, such as messagesAdded may duplicate messages in this field. We recommend using the specific change-type fields instead of this.", + "items": { + "$ref": "Message" + } + }, + "messagesAdded": { + "type": "array", + "description": "Messages added to the mailbox in this history record.", + "items": { + "$ref": "HistoryMessageAdded" + } + }, + "messagesDeleted": { + "type": "array", + "description": "Messages deleted (not Trashed) from the mailbox in this history record.", + "items": { + "$ref": "HistoryMessageDeleted" + } + } + } + }, + "HistoryLabelAdded": { + "id": "HistoryLabelAdded", + "type": "object", + "properties": { + "labelIds": { + "type": "array", + "description": "Label IDs added to the message.", + "items": { + "type": "string" + } + }, + "message": { + "$ref": "Message" + } + } + }, + "HistoryLabelRemoved": { + "id": "HistoryLabelRemoved", + "type": "object", + "properties": { + "labelIds": { + "type": "array", + "description": "Label IDs removed from the message.", + "items": { + "type": "string" + } + }, + "message": { + "$ref": "Message" + } + } + }, + "HistoryMessageAdded": { + "id": "HistoryMessageAdded", + "type": "object", + "properties": { + "message": { + "$ref": "Message" + } + } + }, + "HistoryMessageDeleted": { + "id": "HistoryMessageDeleted", + "type": "object", + "properties": { + "message": { + "$ref": "Message" + } + } + }, + "Label": { + "id": "Label", + "type": "object", + "description": "Labels are used to categorize messages and threads within the user's mailbox.", + "properties": { + "id": { + "type": "string", + "description": "The immutable ID of the label.", + "annotations": { + "required": [ + "gmail.users.labels.update" + ] + } + }, + "labelListVisibility": { + "type": "string", + "description": "The visibility of the label in the label list in the Gmail web interface.", + "enum": [ + "labelHide", + "labelShow", + "labelShowIfUnread" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "annotations": { + "required": [ + "gmail.users.labels.create", + "gmail.users.labels.update" + ] + } + }, + "messageListVisibility": { + "type": "string", + "description": "The visibility of the label in the message list in the Gmail web interface.", + "enum": [ + "hide", + "show" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "gmail.users.labels.create", + "gmail.users.labels.update" + ] + } + }, + "messagesTotal": { + "type": "integer", + "description": "The total number of messages with the label.", + "format": "int32" + }, + "messagesUnread": { + "type": "integer", + "description": "The number of unread messages with the label.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The display name of the label.", + "annotations": { + "required": [ + "gmail.users.labels.create", + "gmail.users.labels.update" + ] + } + }, + "threadsTotal": { + "type": "integer", + "description": "The total number of threads with the label.", + "format": "int32" + }, + "threadsUnread": { + "type": "integer", + "description": "The number of unread threads with the label.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The owner type for the label. User labels are created by the user and can be modified and deleted by the user and can be applied to any message or thread. System labels are internally created and cannot be added, modified, or deleted. System labels may be able to be applied to or removed from messages and threads under some circumstances but this is not guaranteed. For example, users can apply and remove the INBOX and UNREAD labels from messages and threads, but cannot apply or remove the DRAFTS or SENT labels from messages or threads.", + "enum": [ + "system", + "user" + ], + "enumDescriptions": [ + "", + "" + ] + } + } + }, + "ListDraftsResponse": { + "id": "ListDraftsResponse", + "type": "object", + "properties": { + "drafts": { + "type": "array", + "description": "List of drafts.", + "items": { + "$ref": "Draft" + } + }, + "nextPageToken": { + "type": "string", + "description": "Token to retrieve the next page of results in the list." + }, + "resultSizeEstimate": { + "type": "integer", + "description": "Estimated total number of results.", + "format": "uint32" + } + } + }, + "ListHistoryResponse": { + "id": "ListHistoryResponse", + "type": "object", + "properties": { + "history": { + "type": "array", + "description": "List of history records. Any messages contained in the response will typically only have id and threadId fields populated.", + "items": { + "$ref": "History" + } + }, + "historyId": { + "type": "string", + "description": "The ID of the mailbox's current history record.", + "format": "uint64" + }, + "nextPageToken": { + "type": "string", + "description": "Page token to retrieve the next page of results in the list." + } + } + }, + "ListLabelsResponse": { + "id": "ListLabelsResponse", + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "List of labels.", + "items": { + "$ref": "Label" + } + } + } + }, + "ListMessagesResponse": { + "id": "ListMessagesResponse", + "type": "object", + "properties": { + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "Message" + } + }, + "nextPageToken": { + "type": "string", + "description": "Token to retrieve the next page of results in the list." + }, + "resultSizeEstimate": { + "type": "integer", + "description": "Estimated total number of results.", + "format": "uint32" + } + } + }, + "ListThreadsResponse": { + "id": "ListThreadsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Page token to retrieve the next page of results in the list." + }, + "resultSizeEstimate": { + "type": "integer", + "description": "Estimated total number of results.", + "format": "uint32" + }, + "threads": { + "type": "array", + "description": "List of threads.", + "items": { + "$ref": "Thread" + } + } + } + }, + "Message": { + "id": "Message", + "type": "object", + "description": "An email message.", + "properties": { + "historyId": { + "type": "string", + "description": "The ID of the last history record that modified this message.", + "format": "uint64" + }, + "id": { + "type": "string", + "description": "The immutable ID of the message." + }, + "labelIds": { + "type": "array", + "description": "List of IDs of labels applied to this message.", + "items": { + "type": "string" + } + }, + "payload": { + "$ref": "MessagePart", + "description": "The parsed email structure in the message parts." + }, + "raw": { + "type": "string", + "description": "The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.", + "format": "byte", + "annotations": { + "required": [ + "gmail.users.drafts.create", + "gmail.users.drafts.update", + "gmail.users.messages.insert", + "gmail.users.messages.send" + ] + } + }, + "sizeEstimate": { + "type": "integer", + "description": "Estimated size in bytes of the message.", + "format": "int32" + }, + "snippet": { + "type": "string", + "description": "A short part of the message text." + }, + "threadId": { + "type": "string", + "description": "The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: \n- The requested threadId must be specified on the Message or Draft.Message you supply with your request. \n- The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard. \n- The Subject headers must match." + } + } + }, + "MessagePart": { + "id": "MessagePart", + "type": "object", + "description": "A single MIME message part.", + "properties": { + "body": { + "$ref": "MessagePartBody", + "description": "The message part body for this part, which may be empty for container MIME message parts." + }, + "filename": { + "type": "string", + "description": "The filename of the attachment. Only present if this message part represents an attachment." + }, + "headers": { + "type": "array", + "description": "List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as To, From, and Subject.", + "items": { + "$ref": "MessagePartHeader" + } + }, + "mimeType": { + "type": "string", + "description": "The MIME type of the message part." + }, + "partId": { + "type": "string", + "description": "The immutable ID of the message part." + }, + "parts": { + "type": "array", + "description": "The child MIME message parts of this part. This only applies to container MIME message parts, for example multipart/*. For non- container MIME message part types, such as text/plain, this field is empty. For more information, see RFC 1521.", + "items": { + "$ref": "MessagePart" + } + } + } + }, + "MessagePartBody": { + "id": "MessagePartBody", + "type": "object", + "description": "The body of a single MIME message part.", + "properties": { + "attachmentId": { + "type": "string", + "description": "When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field." + }, + "data": { + "type": "string", + "description": "The body data of a MIME message part. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.", + "format": "byte" + }, + "size": { + "type": "integer", + "description": "Total number of bytes in the body of the message part.", + "format": "int32" + } + } + }, + "MessagePartHeader": { + "id": "MessagePartHeader", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the header before the : separator. For example, To." + }, + "value": { + "type": "string", + "description": "The value of the header after the : separator. For example, someuser@example.com." + } + } + }, + "ModifyMessageRequest": { + "id": "ModifyMessageRequest", + "type": "object", + "properties": { + "addLabelIds": { + "type": "array", + "description": "A list of IDs of labels to add to this message.", + "items": { + "type": "string" + } + }, + "removeLabelIds": { + "type": "array", + "description": "A list IDs of labels to remove from this message.", + "items": { + "type": "string" + } + } + } + }, + "ModifyThreadRequest": { + "id": "ModifyThreadRequest", + "type": "object", + "properties": { + "addLabelIds": { + "type": "array", + "description": "A list of IDs of labels to add to this thread.", + "items": { + "type": "string" + } + }, + "removeLabelIds": { + "type": "array", + "description": "A list of IDs of labels to remove from this thread.", + "items": { + "type": "string" + } + } + } + }, + "Profile": { + "id": "Profile", + "type": "object", + "description": "Profile for a Gmail user.", + "properties": { + "emailAddress": { + "type": "string", + "description": "The user's email address." + }, + "historyId": { + "type": "string", + "description": "The ID of the mailbox's current history record.", + "format": "uint64" + }, + "messagesTotal": { + "type": "integer", + "description": "The total number of messages in the mailbox.", + "format": "int32" + }, + "threadsTotal": { + "type": "integer", + "description": "The total number of threads in the mailbox.", + "format": "int32" + } + } + }, + "Thread": { + "id": "Thread", + "type": "object", + "description": "A collection of messages representing a conversation.", + "properties": { + "historyId": { + "type": "string", + "description": "The ID of the last history record that modified this thread.", + "format": "uint64" + }, + "id": { + "type": "string", + "description": "The unique ID of the thread." + }, + "messages": { + "type": "array", + "description": "The list of messages in the thread.", + "items": { + "$ref": "Message" + } + }, + "snippet": { + "type": "string", + "description": "A short part of the message text." + } + } + } + }, + "resources": { + "users": { + "methods": { + "getProfile": { + "id": "gmail.users.getProfile", + "path": "{userId}/profile", + "httpMethod": "GET", + "description": "Gets the current user's Gmail profile.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "Profile" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + } + }, + "resources": { + "drafts": { + "methods": { + "create": { + "id": "gmail.users.drafts.create", + "path": "{userId}/drafts", + "httpMethod": "POST", + "description": "Creates a new draft with the DRAFT label.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Draft" + }, + "response": { + "$ref": "Draft" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/drafts" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/drafts" + } + } + } + }, + "delete": { + "id": "gmail.users.drafts.delete", + "path": "{userId}/drafts/{id}", + "httpMethod": "DELETE", + "description": "Immediately and permanently deletes the specified draft. Does not simply trash it.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the draft to delete.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "get": { + "id": "gmail.users.drafts.get", + "path": "{userId}/drafts/{id}", + "httpMethod": "GET", + "description": "Gets the specified draft.", + "parameters": { + "format": { + "type": "string", + "description": "The format to return the draft in.", + "default": "full", + "enum": [ + "full", + "metadata", + "minimal", + "raw" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the draft to retrieve.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Draft" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "list": { + "id": "gmail.users.drafts.list", + "path": "{userId}/drafts", + "httpMethod": "GET", + "description": "Lists the drafts in the user's mailbox.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of drafts to return.", + "default": "100", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token to retrieve a specific page of results in the list.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListDraftsResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "send": { + "id": "gmail.users.drafts.send", + "path": "{userId}/drafts/send", + "httpMethod": "POST", + "description": "Sends the specified, existing draft to the recipients in the To, Cc, and Bcc headers.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Draft" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/drafts/send" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/drafts/send" + } + } + } + }, + "update": { + "id": "gmail.users.drafts.update", + "path": "{userId}/drafts/{id}", + "httpMethod": "PUT", + "description": "Replaces a draft's content.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the draft to update.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "request": { + "$ref": "Draft" + }, + "response": { + "$ref": "Draft" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/drafts/{id}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/drafts/{id}" + } + } + } + } + } + }, + "history": { + "methods": { + "list": { + "id": "gmail.users.history.list", + "path": "{userId}/history", + "httpMethod": "GET", + "description": "Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing historyId).", + "parameters": { + "labelId": { + "type": "string", + "description": "Only return messages with a label matching the ID.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of history records to return.", + "default": "100", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token to retrieve a specific page of results in the list.", + "location": "query" + }, + "startHistoryId": { + "type": "string", + "description": "Required. Returns history records after the specified startHistoryId. The supplied startHistoryId should be obtained from the historyId of a message, thread, or previous list response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date startHistoryId typically returns an HTTP 404 error code. A historyId is typically valid for at least a week, but in some circumstances may be valid for only a few hours. If you receive an HTTP 404 error response, your application should perform a full sync. If you receive no nextPageToken in the response, there are no updates to retrieve and you can store the returned historyId for a future request.", + "format": "uint64", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListHistoryResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + } + } + }, + "labels": { + "methods": { + "create": { + "id": "gmail.users.labels.create", + "path": "{userId}/labels", + "httpMethod": "POST", + "description": "Creates a new label.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Label" + }, + "response": { + "$ref": "Label" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "delete": { + "id": "gmail.users.labels.delete", + "path": "{userId}/labels/{id}", + "httpMethod": "DELETE", + "description": "Immediately and permanently deletes the specified label and removes it from any messages and threads that it is applied to.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the label to delete.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "get": { + "id": "gmail.users.labels.get", + "path": "{userId}/labels/{id}", + "httpMethod": "GET", + "description": "Gets the specified label.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the label to retrieve.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Label" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "list": { + "id": "gmail.users.labels.list", + "path": "{userId}/labels", + "httpMethod": "GET", + "description": "Lists all labels in the user's mailbox.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListLabelsResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "patch": { + "id": "gmail.users.labels.patch", + "path": "{userId}/labels/{id}", + "httpMethod": "PATCH", + "description": "Updates the specified label. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the label to update.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "request": { + "$ref": "Label" + }, + "response": { + "$ref": "Label" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "update": { + "id": "gmail.users.labels.update", + "path": "{userId}/labels/{id}", + "httpMethod": "PUT", + "description": "Updates the specified label.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the label to update.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "request": { + "$ref": "Label" + }, + "response": { + "$ref": "Label" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + } + } + }, + "messages": { + "methods": { + "delete": { + "id": "gmail.users.messages.delete", + "path": "{userId}/messages/{id}", + "httpMethod": "DELETE", + "description": "Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer messages.trash instead.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the message to delete.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "scopes": [ + "https://mail.google.com/" + ] + }, + "get": { + "id": "gmail.users.messages.get", + "path": "{userId}/messages/{id}", + "httpMethod": "GET", + "description": "Gets the specified message.", + "parameters": { + "format": { + "type": "string", + "description": "The format to return the message in.", + "default": "full", + "enum": [ + "full", + "metadata", + "minimal", + "raw" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the message to retrieve.", + "required": true, + "location": "path" + }, + "metadataHeaders": { + "type": "string", + "description": "When given and format is METADATA, only include headers specified.", + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "import": { + "id": "gmail.users.messages.import", + "path": "{userId}/messages/import", + "httpMethod": "POST", + "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. Does not send a message.", + "parameters": { + "deleted": { + "type": "boolean", + "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Apps Vault to a Vault administrator. Only used for Google Apps for Work accounts.", + "default": "false", + "location": "query" + }, + "internalDateSource": { + "type": "string", + "description": "Source for Gmail's internal date of the message.", + "default": "dateHeader", + "enum": [ + "dateHeader", + "receivedTime" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "neverMarkSpam": { + "type": "boolean", + "description": "Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.", + "default": "false", + "location": "query" + }, + "processForCalendar": { + "type": "boolean", + "description": "Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.", + "default": "false", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Message" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/messages/import" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/messages/import" + } + } + } + }, + "insert": { + "id": "gmail.users.messages.insert", + "path": "{userId}/messages", + "httpMethod": "POST", + "description": "Directly inserts a message into only this user's mailbox similar to IMAP APPEND, bypassing most scanning and classification. Does not send a message.", + "parameters": { + "internalDateSource": { + "type": "string", + "description": "Source for Gmail's internal date of the message.", + "default": "receivedTime", + "enum": [ + "dateHeader", + "receivedTime" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Message" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/messages" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/messages" + } + } + } + }, + "list": { + "id": "gmail.users.messages.list", + "path": "{userId}/messages", + "httpMethod": "GET", + "description": "Lists the messages in the user's mailbox.", + "parameters": { + "includeSpamTrash": { + "type": "boolean", + "description": "Include messages from SPAM and TRASH in the results.", + "default": "false", + "location": "query" + }, + "labelIds": { + "type": "string", + "description": "Only return messages with labels that match all of the specified label IDs.", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of messages to return.", + "default": "100", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token to retrieve a specific page of results in the list.", + "location": "query" + }, + "q": { + "type": "string", + "description": "Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, \"from:someuser@example.com rfc822msgid: is:unread\".", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListMessagesResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "modify": { + "id": "gmail.users.messages.modify", + "path": "{userId}/messages/{id}/modify", + "httpMethod": "POST", + "description": "Modifies the labels on the specified message.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the message to modify.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "request": { + "$ref": "ModifyMessageRequest" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "send": { + "id": "gmail.users.messages.send", + "path": "{userId}/messages/send", + "httpMethod": "POST", + "description": "Sends the specified message to the recipients in the To, Cc, and Bcc headers.", + "parameters": { + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Message" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.compose", + "https://www.googleapis.com/auth/gmail.modify" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "35MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/gmail/v1/users/{userId}/messages/send" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/gmail/v1/users/{userId}/messages/send" + } + } + } + }, + "trash": { + "id": "gmail.users.messages.trash", + "path": "{userId}/messages/{id}/trash", + "httpMethod": "POST", + "description": "Moves the specified message to the trash.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the message to Trash.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "untrash": { + "id": "gmail.users.messages.untrash", + "path": "{userId}/messages/{id}/untrash", + "httpMethod": "POST", + "description": "Removes the specified message from the trash.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the message to remove from Trash.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + } + }, + "resources": { + "attachments": { + "methods": { + "get": { + "id": "gmail.users.messages.attachments.get", + "path": "{userId}/messages/{messageId}/attachments/{id}", + "httpMethod": "GET", + "description": "Gets the specified message attachment.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the attachment.", + "required": true, + "location": "path" + }, + "messageId": { + "type": "string", + "description": "The ID of the message containing the attachment.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "messageId", + "id" + ], + "response": { + "$ref": "MessagePartBody" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + } + } + } + } + }, + "threads": { + "methods": { + "delete": { + "id": "gmail.users.threads.delete", + "path": "{userId}/threads/{id}", + "httpMethod": "DELETE", + "description": "Immediately and permanently deletes the specified thread. This operation cannot be undone. Prefer threads.trash instead.", + "parameters": { + "id": { + "type": "string", + "description": "ID of the Thread to delete.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "scopes": [ + "https://mail.google.com/" + ] + }, + "get": { + "id": "gmail.users.threads.get", + "path": "{userId}/threads/{id}", + "httpMethod": "GET", + "description": "Gets the specified thread.", + "parameters": { + "format": { + "type": "string", + "description": "The format to return the messages in.", + "default": "full", + "enum": [ + "full", + "metadata", + "minimal" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the thread to retrieve.", + "required": true, + "location": "path" + }, + "metadataHeaders": { + "type": "string", + "description": "When given and format is METADATA, only include headers specified.", + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Thread" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "list": { + "id": "gmail.users.threads.list", + "path": "{userId}/threads", + "httpMethod": "GET", + "description": "Lists the threads in the user's mailbox.", + "parameters": { + "includeSpamTrash": { + "type": "boolean", + "description": "Include threads from SPAM and TRASH in the results.", + "default": "false", + "location": "query" + }, + "labelIds": { + "type": "string", + "description": "Only return threads with labels that match all of the specified label IDs.", + "repeated": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of threads to return.", + "default": "100", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Page token to retrieve a specific page of results in the list.", + "location": "query" + }, + "q": { + "type": "string", + "description": "Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, \"from:someuser@example.com rfc822msgid: is:unread\".", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "ListThreadsResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly" + ] + }, + "modify": { + "id": "gmail.users.threads.modify", + "path": "{userId}/threads/{id}/modify", + "httpMethod": "POST", + "description": "Modifies the labels applied to the thread. This applies to all messages in the thread.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the thread to modify.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "request": { + "$ref": "ModifyThreadRequest" + }, + "response": { + "$ref": "Thread" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "trash": { + "id": "gmail.users.threads.trash", + "path": "{userId}/threads/{id}/trash", + "httpMethod": "POST", + "description": "Moves the specified thread to the trash.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the thread to Trash.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Thread" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + }, + "untrash": { + "id": "gmail.users.threads.untrash", + "path": "{userId}/threads/{id}/untrash", + "httpMethod": "POST", + "description": "Removes the specified thread from the trash.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the thread to remove from Trash.", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "The user's email address. The special value me can be used to indicate the authenticated user.", + "default": "me", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "id" + ], + "response": { + "$ref": "Thread" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify" + ] + } + } + } + } + } + } +} diff --git a/etc/api/groupsmigration/v1/groupsmigration-api.json b/etc/api/groupsmigration/v1/groupsmigration-api.json new file mode 100644 index 0000000000..81211bfaf3 --- /dev/null +++ b/etc/api/groupsmigration/v1/groupsmigration-api.json @@ -0,0 +1,131 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/uMvgRqCygYBIh2d3lXb4f8cUWOw\"", + "discoveryVersion": "v1", + "id": "groupsmigration:v1", + "name": "groupsmigration", + "canonicalName": "Groups Migration", + "version": "v1", + "revision": "20140416", + "title": "Groups Migration API", + "description": "Groups Migration Api.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/discussions-16.gif", + "x32": "http://www.google.com/images/icons/product/discussions-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/groups-migration/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/groups/v1/groups/", + "basePath": "/groups/v1/groups/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "groups/v1/groups/", + "batchPath": "batch", + "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": { + "Groups": { + "id": "Groups", + "type": "object", + "description": "JSON response template for groups migration API.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of insert resource this is.", + "default": "groupsmigration#groups" + }, + "responseCode": { + "type": "string", + "description": "The status of the insert request." + } + } + } + }, + "resources": { + "archive": { + "methods": { + "insert": { + "id": "groupsmigration.archive.insert", + "path": "{groupId}/archive", + "httpMethod": "POST", + "description": "Inserts a new mail into the archive of the Google group.", + "parameters": { + "groupId": { + "type": "string", + "description": "The group ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupId" + ], + "response": { + "$ref": "Groups" + }, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "message/rfc822" + ], + "maxSize": "16MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/groups/v1/groups/{groupId}/archive" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/groups/v1/groups/{groupId}/archive" + } + } + } + } + } + } + } +} diff --git a/etc/api/groupssettings/v1/groupssettings-api.json b/etc/api/groupssettings/v1/groupssettings-api.json new file mode 100644 index 0000000000..b8143c56ea --- /dev/null +++ b/etc/api/groupssettings/v1/groupssettings-api.json @@ -0,0 +1,284 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/-WzKihq8ROq_FQdrGtr_UG9N-4Y\"", + "discoveryVersion": "v1", + "id": "groupssettings:v1", + "name": "groupssettings", + "version": "v1", + "revision": "20140428", + "title": "Groups Settings API", + "description": "Lets you manage permission levels and related settings of a group.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/groups-settings/get_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/groups/v1/groups/", + "basePath": "/groups/v1/groups/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "groups/v1/groups/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "atom", + "enum": [ + "atom", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/atom+xml", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/apps.groups.settings": { + "description": "View and manage the settings of a Google Apps Group" + } + } + } + }, + "schemas": { + "Groups": { + "id": "Groups", + "type": "object", + "description": "JSON template for Group resource", + "properties": { + "allowExternalMembers": { + "type": "string", + "description": "Are external members allowed to join the group." + }, + "allowGoogleCommunication": { + "type": "string", + "description": "Is google allowed to contact admins." + }, + "allowWebPosting": { + "type": "string", + "description": "If posting from web is allowed." + }, + "archiveOnly": { + "type": "string", + "description": "If the group is archive only" + }, + "customReplyTo": { + "type": "string", + "description": "Default email to which reply to any message should go." + }, + "defaultMessageDenyNotificationText": { + "type": "string", + "description": "Default message deny notification message" + }, + "description": { + "type": "string", + "description": "Description of the group" + }, + "email": { + "type": "string", + "description": "Email id of the group" + }, + "includeInGlobalAddressList": { + "type": "string", + "description": "If this groups should be included in global address list or not." + }, + "isArchived": { + "type": "string", + "description": "If the contents of the group are archived." + }, + "kind": { + "type": "string", + "description": "The type of the resource.", + "default": "groupsSettings#groups" + }, + "maxMessageBytes": { + "type": "integer", + "description": "Maximum message size allowed.", + "format": "int32" + }, + "membersCanPostAsTheGroup": { + "type": "string", + "description": "Can members post using the group email address." + }, + "messageDisplayFont": { + "type": "string", + "description": "Default message display font. Possible values are: DEFAULT_FONT FIXED_WIDTH_FONT" + }, + "messageModerationLevel": { + "type": "string", + "description": "Moderation level for messages. Possible values are: MODERATE_ALL_MESSAGES MODERATE_NON_MEMBERS MODERATE_NEW_MEMBERS MODERATE_NONE" + }, + "name": { + "type": "string", + "description": "Name of the Group" + }, + "primaryLanguage": { + "type": "string", + "description": "Primary language for the group." + }, + "replyTo": { + "type": "string", + "description": "Whome should the default reply to a message go to. Possible values are: REPLY_TO_CUSTOM REPLY_TO_SENDER REPLY_TO_LIST REPLY_TO_OWNER REPLY_TO_IGNORE REPLY_TO_MANAGERS" + }, + "sendMessageDenyNotification": { + "type": "string", + "description": "Should the member be notified if his message is denied by owner." + }, + "showInGroupDirectory": { + "type": "string", + "description": "Is the group listed in groups directory" + }, + "spamModerationLevel": { + "type": "string", + "description": "Moderation level for messages detected as spam. Possible values are: ALLOW MODERATE SILENTLY_MODERATE REJECT" + }, + "whoCanContactOwner": { + "type": "string", + "description": "Permission to contact owner of the group via web UI. Possbile values are: ANYONE_CAN_CONTACT ALL_IN_DOMAIN_CAN_CONTACT ALL_MEMBERS_CAN_CONTACT ALL_MANAGERS_CAN_CONTACT" + }, + "whoCanInvite": { + "type": "string", + "description": "Permissions to invite members. Possbile values are: ALL_MEMBERS_CAN_INVITE ALL_MANAGERS_CAN_INVITE" + }, + "whoCanJoin": { + "type": "string", + "description": "Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN" + }, + "whoCanLeaveGroup": { + "type": "string", + "description": "Permission to leave the group. Possible values are: ALL_MANAGERS_CAN_LEAVE ALL_MEMBERS_CAN_LEAVE" + }, + "whoCanPostMessage": { + "type": "string", + "description": "Permissions to post messages to the group. Possible values are: NONE_CAN_POST ALL_MANAGERS_CAN_POST ALL_MEMBERS_CAN_POST ALL_IN_DOMAIN_CAN_POST ANYONE_CAN_POST" + }, + "whoCanViewGroup": { + "type": "string", + "description": "Permissions to view group. Possbile values are: ANYONE_CAN_VIEW ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW" + }, + "whoCanViewMembership": { + "type": "string", + "description": "Permissions to view membership. Possbile values are: ALL_IN_DOMAIN_CAN_VIEW ALL_MEMBERS_CAN_VIEW ALL_MANAGERS_CAN_VIEW" + } + } + } + }, + "resources": { + "groups": { + "methods": { + "get": { + "id": "groupsSettings.groups.get", + "path": "{groupUniqueId}", + "httpMethod": "GET", + "description": "Gets one resource by id.", + "parameters": { + "groupUniqueId": { + "type": "string", + "description": "The resource ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupUniqueId" + ], + "response": { + "$ref": "Groups" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.groups.settings" + ] + }, + "patch": { + "id": "groupsSettings.groups.patch", + "path": "{groupUniqueId}", + "httpMethod": "PATCH", + "description": "Updates an existing resource. This method supports patch semantics.", + "parameters": { + "groupUniqueId": { + "type": "string", + "description": "The resource ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupUniqueId" + ], + "request": { + "$ref": "Groups" + }, + "response": { + "$ref": "Groups" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.groups.settings" + ] + }, + "update": { + "id": "groupsSettings.groups.update", + "path": "{groupUniqueId}", + "httpMethod": "PUT", + "description": "Updates an existing resource.", + "parameters": { + "groupUniqueId": { + "type": "string", + "description": "The resource ID", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "groupUniqueId" + ], + "request": { + "$ref": "Groups" + }, + "response": { + "$ref": "Groups" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.groups.settings" + ] + } + } + } + } +} diff --git a/etc/api/identitytoolkit/v3/identitytoolkit-api.json b/etc/api/identitytoolkit/v3/identitytoolkit-api.json new file mode 100644 index 0000000000..f146525b7a --- /dev/null +++ b/etc/api/identitytoolkit/v3/identitytoolkit-api.json @@ -0,0 +1,927 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/jfVz2w61e7LPgd-72fW_8rrOqOc\"", + "discoveryVersion": "v1", + "id": "identitytoolkit:v3", + "name": "identitytoolkit", + "canonicalName": "Identity Toolkit", + "version": "v3", + "revision": "20141009", + "title": "Google Identity Toolkit API", + "description": "Help the third party sites to implement federated login.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/identity-toolkit/v3/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/identitytoolkit/v3/relyingparty/", + "basePath": "/identitytoolkit/v3/relyingparty/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "identitytoolkit/v3/relyingparty/", + "batchPath": "batch", + "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": { + "CreateAuthUriResponse": { + "id": "CreateAuthUriResponse", + "type": "object", + "description": "Response of creating the IDP authentication URL.", + "properties": { + "authUri": { + "type": "string", + "description": "The URI used by the IDP to authenticate the user." + }, + "captchaRequired": { + "type": "boolean", + "description": "True if captcha is required." + }, + "forExistingProvider": { + "type": "boolean", + "description": "True if the authUri is for user's existing provider." + }, + "kind": { + "type": "string", + "description": "The fixed string identitytoolkit#CreateAuthUriResponse\".", + "default": "identitytoolkit#CreateAuthUriResponse" + }, + "providerId": { + "type": "string", + "description": "The provider ID of the auth URI." + }, + "registered": { + "type": "boolean", + "description": "Whether the user is registered if the identifier is an email." + } + } + }, + "DeleteAccountResponse": { + "id": "DeleteAccountResponse", + "type": "object", + "description": "Respone of deleting account.", + "properties": { + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#DeleteAccountResponse\".", + "default": "identitytoolkit#DeleteAccountResponse" + } + } + }, + "DownloadAccountResponse": { + "id": "DownloadAccountResponse", + "type": "object", + "description": "Respone of downloading accounts in batch.", + "properties": { + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#DownloadAccountResponse\".", + "default": "identitytoolkit#DownloadAccountResponse" + }, + "nextPageToken": { + "type": "string", + "description": "The next page token. To be used in a subsequent request to return the next page of results." + }, + "users": { + "type": "array", + "description": "The user accounts data.", + "items": { + "$ref": "UserInfo" + } + } + } + }, + "GetAccountInfoResponse": { + "id": "GetAccountInfoResponse", + "type": "object", + "description": "Response of getting account information.", + "properties": { + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#GetAccountInfoResponse\".", + "default": "identitytoolkit#GetAccountInfoResponse" + }, + "users": { + "type": "array", + "description": "The info of the users.", + "items": { + "$ref": "UserInfo" + } + } + } + }, + "GetOobConfirmationCodeResponse": { + "id": "GetOobConfirmationCodeResponse", + "type": "object", + "description": "Response of getting a code for user confirmation (reset password, change email etc.).", + "properties": { + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#GetOobConfirmationCodeResponse\".", + "default": "identitytoolkit#GetOobConfirmationCodeResponse" + }, + "oobCode": { + "type": "string", + "description": "The code to be send to the user." + } + } + }, + "IdentitytoolkitRelyingpartyCreateAuthUriRequest": { + "id": "IdentitytoolkitRelyingpartyCreateAuthUriRequest", + "type": "object", + "description": "Request to get the IDP authentication URL.", + "properties": { + "appId": { + "type": "string", + "description": "The app ID of the mobile app, base64(CERT_SHA1):PACKAGE_NAME for Android, BUNDLE_ID for iOS." + }, + "clientId": { + "type": "string", + "description": "The relying party OAuth client ID." + }, + "context": { + "type": "string", + "description": "The opaque value used by the client to maintain context info between the authentication request and the IDP callback." + }, + "continueUri": { + "type": "string", + "description": "The URI to which the IDP redirects the user after the federated login flow." + }, + "identifier": { + "type": "string", + "description": "The email or federated ID of the user." + }, + "openidRealm": { + "type": "string", + "description": "Optional realm for OpenID protocol. The sub string \"scheme://domain:port\" of the param \"continueUri\" is used if this is not set." + }, + "otaApp": { + "type": "string", + "description": "The native app package for OTA installation." + }, + "providerId": { + "type": "string", + "description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier." + } + } + }, + "IdentitytoolkitRelyingpartyDeleteAccountRequest": { + "id": "IdentitytoolkitRelyingpartyDeleteAccountRequest", + "type": "object", + "description": "Request to delete account.", + "properties": { + "localId": { + "type": "string", + "description": "The local ID of the user." + } + } + }, + "IdentitytoolkitRelyingpartyDownloadAccountRequest": { + "id": "IdentitytoolkitRelyingpartyDownloadAccountRequest", + "type": "object", + "description": "Request to download user account in batch.", + "properties": { + "maxResults": { + "type": "integer", + "description": "The max number of results to return in the response.", + "format": "uint32" + }, + "nextPageToken": { + "type": "string", + "description": "The token for the next page. This should be taken from the previous response." + } + } + }, + "IdentitytoolkitRelyingpartyGetAccountInfoRequest": { + "id": "IdentitytoolkitRelyingpartyGetAccountInfoRequest", + "type": "object", + "description": "Request to get the account information.", + "properties": { + "email": { + "type": "array", + "description": "The list of emails of the users to inquiry.", + "items": { + "type": "string" + } + }, + "idToken": { + "type": "string", + "description": "The GITKit token of the authenticated user." + }, + "localId": { + "type": "array", + "description": "The list of local ID's of the users to inquiry.", + "items": { + "type": "string" + } + } + } + }, + "IdentitytoolkitRelyingpartyGetPublicKeysResponse": { + "id": "IdentitytoolkitRelyingpartyGetPublicKeysResponse", + "type": "object", + "description": "Respone of getting public keys.", + "additionalProperties": { + "type": "string" + } + }, + "IdentitytoolkitRelyingpartyResetPasswordRequest": { + "id": "IdentitytoolkitRelyingpartyResetPasswordRequest", + "type": "object", + "description": "Request to reset the password.", + "properties": { + "email": { + "type": "string", + "description": "The email address of the user." + }, + "newPassword": { + "type": "string", + "description": "The new password inputted by the user." + }, + "oldPassword": { + "type": "string", + "description": "The old password inputted by the user." + }, + "oobCode": { + "type": "string", + "description": "The confirmation code." + } + } + }, + "IdentitytoolkitRelyingpartySetAccountInfoRequest": { + "id": "IdentitytoolkitRelyingpartySetAccountInfoRequest", + "type": "object", + "description": "Request to set the account information.", + "properties": { + "captchaChallenge": { + "type": "string", + "description": "The captcha challenge." + }, + "captchaResponse": { + "type": "string", + "description": "Response to the captcha." + }, + "displayName": { + "type": "string", + "description": "The name of the user." + }, + "email": { + "type": "string", + "description": "The email of the user." + }, + "emailVerified": { + "type": "boolean", + "description": "Mark the email as verified or not." + }, + "idToken": { + "type": "string", + "description": "The GITKit token of the authenticated user." + }, + "localId": { + "type": "string", + "description": "The local ID of the user." + }, + "oobCode": { + "type": "string", + "description": "The out-of-band code of the change email request." + }, + "password": { + "type": "string", + "description": "The new password of the user." + }, + "provider": { + "type": "array", + "description": "The associated IDPs of the user.", + "items": { + "type": "string" + } + }, + "upgradeToFederatedLogin": { + "type": "boolean", + "description": "Mark the user to upgrade to federated login." + } + } + }, + "IdentitytoolkitRelyingpartyUploadAccountRequest": { + "id": "IdentitytoolkitRelyingpartyUploadAccountRequest", + "type": "object", + "description": "Request to upload user account in batch.", + "properties": { + "hashAlgorithm": { + "type": "string", + "description": "The password hash algorithm." + }, + "memoryCost": { + "type": "integer", + "description": "Memory cost for hash calculation. Used by scrypt similar algorithms.", + "format": "int32" + }, + "rounds": { + "type": "integer", + "description": "Rounds for hash calculation. Used by scrypt and similar algorithms.", + "format": "int32" + }, + "saltSeparator": { + "type": "string", + "description": "The salt separator.", + "format": "byte" + }, + "signerKey": { + "type": "string", + "description": "The key for to hash the password.", + "format": "byte" + }, + "users": { + "type": "array", + "description": "The account info to be stored.", + "items": { + "$ref": "UserInfo" + } + } + } + }, + "IdentitytoolkitRelyingpartyVerifyAssertionRequest": { + "id": "IdentitytoolkitRelyingpartyVerifyAssertionRequest", + "type": "object", + "description": "Request to verify the IDP assertion.", + "properties": { + "pendingIdToken": { + "type": "string", + "description": "The GITKit token for the non-trusted IDP pending to be confirmed by the user." + }, + "postBody": { + "type": "string", + "description": "The post body if the request is a HTTP POST." + }, + "requestUri": { + "type": "string", + "description": "The URI to which the IDP redirects the user back. It may contain federated login result params added by the IDP." + } + } + }, + "IdentitytoolkitRelyingpartyVerifyPasswordRequest": { + "id": "IdentitytoolkitRelyingpartyVerifyPasswordRequest", + "type": "object", + "description": "Request to verify the password.", + "properties": { + "captchaChallenge": { + "type": "string", + "description": "The captcha challenge." + }, + "captchaResponse": { + "type": "string", + "description": "Response to the captcha." + }, + "email": { + "type": "string", + "description": "The email of the user." + }, + "password": { + "type": "string", + "description": "The password inputed by the user." + }, + "pendingIdToken": { + "type": "string", + "description": "The GITKit token for the non-trusted IDP, which is to be confirmed by the user." + } + } + }, + "Relyingparty": { + "id": "Relyingparty", + "type": "object", + "description": "Request of getting a code for user confirmation (reset password, change email etc.)", + "properties": { + "captchaResp": { + "type": "string", + "description": "The recaptcha response from the user." + }, + "challenge": { + "type": "string", + "description": "The recaptcha challenge presented to the user." + }, + "email": { + "type": "string", + "description": "The email of the user." + }, + "idToken": { + "type": "string", + "description": "The user's Gitkit login token for email change." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#relyingparty\".", + "default": "identitytoolkit#relyingparty" + }, + "newEmail": { + "type": "string", + "description": "The new email if the code is for email change." + }, + "requestType": { + "type": "string", + "description": "The request type." + }, + "userIp": { + "type": "string", + "description": "The IP address of the user." + } + } + }, + "ResetPasswordResponse": { + "id": "ResetPasswordResponse", + "type": "object", + "description": "Response of resetting the password.", + "properties": { + "email": { + "type": "string", + "description": "The user's email." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#ResetPasswordResponse\".", + "default": "identitytoolkit#ResetPasswordResponse" + } + } + }, + "SetAccountInfoResponse": { + "id": "SetAccountInfoResponse", + "type": "object", + "description": "Respone of setting the account information.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the user." + }, + "email": { + "type": "string", + "description": "The email of the user." + }, + "idToken": { + "type": "string", + "description": "The Gitkit id token to login the newly sign up user." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#SetAccountInfoResponse\".", + "default": "identitytoolkit#SetAccountInfoResponse" + }, + "providerUserInfo": { + "type": "array", + "description": "The user's profiles at the associated IdPs.", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The user's display name at the IDP." + }, + "photoUrl": { + "type": "string", + "description": "The user's photo url at the IDP." + }, + "providerId": { + "type": "string", + "description": "The IdP ID. For whitelisted IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier." + } + } + } + } + } + }, + "UploadAccountResponse": { + "id": "UploadAccountResponse", + "type": "object", + "description": "Respone of uploading accounts in batch.", + "properties": { + "error": { + "type": "array", + "description": "The error encountered while processing the account info.", + "items": { + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "The index of the malformed account, starting from 0.", + "format": "int32" + }, + "message": { + "type": "string", + "description": "Detailed error message for the account info." + } + } + } + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#UploadAccountResponse\".", + "default": "identitytoolkit#UploadAccountResponse" + } + } + }, + "UserInfo": { + "id": "UserInfo", + "type": "object", + "description": "Template for an individual account info.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the user." + }, + "email": { + "type": "string", + "description": "The email of the user." + }, + "emailVerified": { + "type": "boolean", + "description": "Whether the email has been verified." + }, + "localId": { + "type": "string", + "description": "The local ID of the user." + }, + "passwordHash": { + "type": "string", + "description": "The user's hashed password.", + "format": "byte" + }, + "passwordUpdatedAt": { + "type": "number", + "description": "The timestamp when the password was last updated.", + "format": "double" + }, + "photoUrl": { + "type": "string", + "description": "The URL of the user profile photo." + }, + "providerUserInfo": { + "type": "array", + "description": "The IDP of the user.", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The user's display name at the IDP." + }, + "federatedId": { + "type": "string", + "description": "User's identifier at IDP." + }, + "photoUrl": { + "type": "string", + "description": "The user's photo url at the IDP." + }, + "providerId": { + "type": "string", + "description": "The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier." + } + } + } + }, + "salt": { + "type": "string", + "description": "The user's password salt.", + "format": "byte" + }, + "version": { + "type": "integer", + "description": "Version of the user's password.", + "format": "int32" + } + } + }, + "VerifyAssertionResponse": { + "id": "VerifyAssertionResponse", + "type": "object", + "description": "Response of verifying the IDP assertion.", + "properties": { + "action": { + "type": "string", + "description": "The action code." + }, + "appInstallationUrl": { + "type": "string", + "description": "URL for OTA app installation." + }, + "appScheme": { + "type": "string", + "description": "The custom scheme used by mobile app." + }, + "context": { + "type": "string", + "description": "The opaque value used by the client to maintain context info between the authentication request and the IDP callback." + }, + "dateOfBirth": { + "type": "string", + "description": "The birth date of the IdP account." + }, + "displayName": { + "type": "string", + "description": "The display name of the user." + }, + "email": { + "type": "string", + "description": "The email returned by the IdP. NOTE: The federated login user may not own the email." + }, + "emailRecycled": { + "type": "boolean", + "description": "It's true if the email is recycled." + }, + "emailVerified": { + "type": "boolean", + "description": "The value is true if the IDP is also the email provider. It means the user owns the email." + }, + "federatedId": { + "type": "string", + "description": "The unique ID identifies the IdP account." + }, + "firstName": { + "type": "string", + "description": "The first name of the user." + }, + "fullName": { + "type": "string", + "description": "The full name of the user." + }, + "idToken": { + "type": "string", + "description": "The ID token." + }, + "inputEmail": { + "type": "string", + "description": "It's the identifier param in the createAuthUri request if the identifier is an email. It can be used to check whether the user input email is different from the asserted email." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#VerifyAssertionResponse\".", + "default": "identitytoolkit#VerifyAssertionResponse" + }, + "language": { + "type": "string", + "description": "The language preference of the user." + }, + "lastName": { + "type": "string", + "description": "The last name of the user." + }, + "localId": { + "type": "string", + "description": "The RP local ID if it's already been mapped to the IdP account identified by the federated ID." + }, + "needConfirmation": { + "type": "boolean", + "description": "Whether the assertion is from a non-trusted IDP and need account linking confirmation." + }, + "nickName": { + "type": "string", + "description": "The nick name of the user." + }, + "oauthRequestToken": { + "type": "string", + "description": "The user approved request token for the OpenID OAuth extension." + }, + "oauthScope": { + "type": "string", + "description": "The scope for the OpenID OAuth extension." + }, + "originalEmail": { + "type": "string", + "description": "The original email stored in the mapping storage. It's returned when the federated ID is associated to a different email." + }, + "photoUrl": { + "type": "string", + "description": "The URI of the public accessible profiel picture." + }, + "providerId": { + "type": "string", + "description": "The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. If the \"providerId\" param is set to OpenID OP identifer other than the whilte listed IdPs the OP identifier is returned. If the \"identifier\" param is federated ID in the createAuthUri request. The domain part of the federated ID is returned." + }, + "timeZone": { + "type": "string", + "description": "The timezone of the user." + }, + "verifiedProvider": { + "type": "array", + "description": "When action is 'map', contains the idps which can be used for confirmation.", + "items": { + "type": "string" + } + } + } + }, + "VerifyPasswordResponse": { + "id": "VerifyPasswordResponse", + "type": "object", + "description": "Request of verifying the password.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the user." + }, + "email": { + "type": "string", + "description": "The email returned by the IdP. NOTE: The federated login user may not own the email." + }, + "idToken": { + "type": "string", + "description": "The GITKit token for authenticated user." + }, + "kind": { + "type": "string", + "description": "The fixed string \"identitytoolkit#VerifyPasswordResponse\".", + "default": "identitytoolkit#VerifyPasswordResponse" + }, + "localId": { + "type": "string", + "description": "The RP local ID if it's already been mapped to the IdP account identified by the federated ID." + }, + "photoUrl": { + "type": "string", + "description": "The URI of the user's photo at IdP" + }, + "registered": { + "type": "boolean", + "description": "Whether the email is registered." + } + } + } + }, + "resources": { + "relyingparty": { + "methods": { + "createAuthUri": { + "id": "identitytoolkit.relyingparty.createAuthUri", + "path": "createAuthUri", + "httpMethod": "POST", + "description": "Creates the URI used by the IdP to authenticate the user.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyCreateAuthUriRequest" + }, + "response": { + "$ref": "CreateAuthUriResponse" + } + }, + "deleteAccount": { + "id": "identitytoolkit.relyingparty.deleteAccount", + "path": "deleteAccount", + "httpMethod": "POST", + "description": "Delete user account.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyDeleteAccountRequest" + }, + "response": { + "$ref": "DeleteAccountResponse" + } + }, + "downloadAccount": { + "id": "identitytoolkit.relyingparty.downloadAccount", + "path": "downloadAccount", + "httpMethod": "POST", + "description": "Batch download user accounts.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyDownloadAccountRequest" + }, + "response": { + "$ref": "DownloadAccountResponse" + } + }, + "getAccountInfo": { + "id": "identitytoolkit.relyingparty.getAccountInfo", + "path": "getAccountInfo", + "httpMethod": "POST", + "description": "Returns the account info.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyGetAccountInfoRequest" + }, + "response": { + "$ref": "GetAccountInfoResponse" + } + }, + "getOobConfirmationCode": { + "id": "identitytoolkit.relyingparty.getOobConfirmationCode", + "path": "getOobConfirmationCode", + "httpMethod": "POST", + "description": "Get a code for user action confirmation.", + "request": { + "$ref": "Relyingparty" + }, + "response": { + "$ref": "GetOobConfirmationCodeResponse" + } + }, + "getPublicKeys": { + "id": "identitytoolkit.relyingparty.getPublicKeys", + "path": "publicKeys", + "httpMethod": "GET", + "description": "Get token signing public key.", + "response": { + "$ref": "IdentitytoolkitRelyingpartyGetPublicKeysResponse" + } + }, + "resetPassword": { + "id": "identitytoolkit.relyingparty.resetPassword", + "path": "resetPassword", + "httpMethod": "POST", + "description": "Reset password for a user.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyResetPasswordRequest" + }, + "response": { + "$ref": "ResetPasswordResponse" + } + }, + "setAccountInfo": { + "id": "identitytoolkit.relyingparty.setAccountInfo", + "path": "setAccountInfo", + "httpMethod": "POST", + "description": "Set account info for a user.", + "request": { + "$ref": "IdentitytoolkitRelyingpartySetAccountInfoRequest" + }, + "response": { + "$ref": "SetAccountInfoResponse" + } + }, + "uploadAccount": { + "id": "identitytoolkit.relyingparty.uploadAccount", + "path": "uploadAccount", + "httpMethod": "POST", + "description": "Batch upload existing user accounts.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyUploadAccountRequest" + }, + "response": { + "$ref": "UploadAccountResponse" + } + }, + "verifyAssertion": { + "id": "identitytoolkit.relyingparty.verifyAssertion", + "path": "verifyAssertion", + "httpMethod": "POST", + "description": "Verifies the assertion returned by the IdP.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyVerifyAssertionRequest" + }, + "response": { + "$ref": "VerifyAssertionResponse" + } + }, + "verifyPassword": { + "id": "identitytoolkit.relyingparty.verifyPassword", + "path": "verifyPassword", + "httpMethod": "POST", + "description": "Verifies the user entered password.", + "request": { + "$ref": "IdentitytoolkitRelyingpartyVerifyPasswordRequest" + }, + "response": { + "$ref": "VerifyPasswordResponse" + } + } + } + } + } +} diff --git a/etc/api/licensing/v1/licensing-api.json b/etc/api/licensing/v1/licensing-api.json new file mode 100644 index 0000000000..caaa60c045 --- /dev/null +++ b/etc/api/licensing/v1/licensing-api.json @@ -0,0 +1,427 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/5nv4m0pBrnwpGqw9jwk2yynQNrg\"", + "discoveryVersion": "v1", + "id": "licensing:v1", + "name": "licensing", + "version": "v1", + "revision": "20140122", + "title": "Enterprise License Manager API", + "description": "Licensing API to view and manage license for your domain.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/licensing/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/apps/licensing/v1/product/", + "basePath": "/apps/licensing/v1/product/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "apps/licensing/v1/product/", + "batchPath": "batch", + "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": { + "LicenseAssignment": { + "id": "LicenseAssignment", + "type": "object", + "description": "Template for LiscenseAssignment Resource", + "properties": { + "etags": { + "type": "string", + "description": "ETag of the resource." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a LicenseAssignment.", + "default": "licensing#licenseAssignment" + }, + "productId": { + "type": "string", + "description": "Name of the product.", + "annotations": { + "required": [ + "licensing.licenseAssignments.update" + ] + } + }, + "selfLink": { + "type": "string", + "description": "Link to this page." + }, + "skuId": { + "type": "string", + "description": "Name of the sku of the product.", + "annotations": { + "required": [ + "licensing.licenseAssignments.update" + ] + } + }, + "userId": { + "type": "string", + "description": "Email id of the user.", + "annotations": { + "required": [ + "licensing.licenseAssignments.update" + ] + } + } + } + }, + "LicenseAssignmentInsert": { + "id": "LicenseAssignmentInsert", + "type": "object", + "description": "Template for LicenseAssignment Insert request", + "properties": { + "userId": { + "type": "string", + "description": "Email id of the user", + "annotations": { + "required": [ + "licensing.licenseAssignments.insert" + ] + } + } + } + }, + "LicenseAssignmentList": { + "id": "LicenseAssignmentList", + "type": "object", + "description": "LicesnseAssignment List for a given product/sku for a customer.", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "The LicenseAssignments in this page of results.", + "items": { + "$ref": "LicenseAssignment" + } + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a collection of LicenseAssignments.", + "default": "licensing#licenseAssignmentList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + } + }, + "resources": { + "licenseAssignments": { + "methods": { + "delete": { + "id": "licensing.licenseAssignments.delete", + "path": "{productId}/sku/{skuId}/user/{userId}", + "httpMethod": "DELETE", + "description": "Revoke License.", + "parameters": { + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "email id or unique Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId", + "userId" + ] + }, + "get": { + "id": "licensing.licenseAssignments.get", + "path": "{productId}/sku/{skuId}/user/{userId}", + "httpMethod": "GET", + "description": "Get license assignment of a particular product and sku for a user", + "parameters": { + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "email id or unique Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId", + "userId" + ], + "response": { + "$ref": "LicenseAssignment" + } + }, + "insert": { + "id": "licensing.licenseAssignments.insert", + "path": "{productId}/sku/{skuId}/user", + "httpMethod": "POST", + "description": "Assign License.", + "parameters": { + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId" + ], + "request": { + "$ref": "LicenseAssignmentInsert" + }, + "response": { + "$ref": "LicenseAssignment" + } + }, + "listForProduct": { + "id": "licensing.licenseAssignments.listForProduct", + "path": "{productId}/users", + "httpMethod": "GET", + "description": "List license assignments for given product of the customer.", + "parameters": { + "customerId": { + "type": "string", + "description": "CustomerId represents the customer for whom licenseassignments are queried", + "required": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.", + "default": "100", + "format": "uint32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to fetch the next page.Optional. By default server will return first page", + "default": "", + "location": "query" + }, + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "customerId" + ], + "response": { + "$ref": "LicenseAssignmentList" + } + }, + "listForProductAndSku": { + "id": "licensing.licenseAssignments.listForProductAndSku", + "path": "{productId}/sku/{skuId}/users", + "httpMethod": "GET", + "description": "List license assignments for given product and sku of the customer.", + "parameters": { + "customerId": { + "type": "string", + "description": "CustomerId represents the customer for whom licenseassignments are queried", + "required": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of campaigns to return at one time. Must be positive. Optional. Default value is 100.", + "default": "100", + "format": "uint32", + "minimum": "1", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to fetch the next page.Optional. By default server will return first page", + "default": "", + "location": "query" + }, + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId", + "customerId" + ], + "response": { + "$ref": "LicenseAssignmentList" + } + }, + "patch": { + "id": "licensing.licenseAssignments.patch", + "path": "{productId}/sku/{skuId}/user/{userId}", + "httpMethod": "PATCH", + "description": "Assign License. This method supports patch semantics.", + "parameters": { + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku for which license would be revoked", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "email id or unique Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId", + "userId" + ], + "request": { + "$ref": "LicenseAssignment" + }, + "response": { + "$ref": "LicenseAssignment" + } + }, + "update": { + "id": "licensing.licenseAssignments.update", + "path": "{productId}/sku/{skuId}/user/{userId}", + "httpMethod": "PUT", + "description": "Assign License.", + "parameters": { + "productId": { + "type": "string", + "description": "Name for product", + "required": true, + "location": "path" + }, + "skuId": { + "type": "string", + "description": "Name for sku for which license would be revoked", + "required": true, + "location": "path" + }, + "userId": { + "type": "string", + "description": "email id or unique Id of the user", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "productId", + "skuId", + "userId" + ], + "request": { + "$ref": "LicenseAssignment" + }, + "response": { + "$ref": "LicenseAssignment" + } + } + } + } + } +} diff --git a/etc/api/manager/v1beta2/manager-api.json b/etc/api/manager/v1beta2/manager-api.json new file mode 100644 index 0000000000..e767b5ac12 --- /dev/null +++ b/etc/api/manager/v1beta2/manager-api.json @@ -0,0 +1,1164 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/iGUA1MFJvjag5CPQwb2aT371UTs\"", + "discoveryVersion": "v1", + "id": "manager:v1beta2", + "name": "manager", + "version": "v1beta2", + "revision": "20140915", + "title": "Deployment Manager API", + "description": "The Deployment Manager API allows users to declaratively configure, deploy and run complex solutions on the Google Cloud Platform.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/deployment-manager/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/manager/v1beta2/projects/", + "basePath": "/manager/v1beta2/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "manager/v1beta2/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/appengine.admin": { + "description": "View and manage your applications deployed on Google App Engine" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/ndev.cloudman": { + "description": "View and manage your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/ndev.cloudman.readonly": { + "description": "View your Google Cloud Platform management resources and deployment status information" + } + } + } + }, + "schemas": { + "AccessConfig": { + "id": "AccessConfig", + "type": "object", + "description": "A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.", + "properties": { + "name": { + "type": "string", + "description": "Name of this access configuration." + }, + "natIp": { + "type": "string", + "description": "An external IP address associated with this instance." + }, + "type": { + "type": "string", + "description": "Type of this access configuration file. (Currently only ONE_TO_ONE_NAT is legal.)" + } + } + }, + "Action": { + "id": "Action", + "type": "object", + "description": "An Action encapsulates a set of commands as a single runnable module with additional information needed during run-time.", + "properties": { + "commands": { + "type": "array", + "description": "A list of commands to run sequentially for this action.", + "items": { + "type": "string" + } + }, + "timeoutMs": { + "type": "integer", + "description": "The timeout in milliseconds for this action to run.", + "format": "int32" + } + } + }, + "AllowedRule": { + "id": "AllowedRule", + "type": "object", + "description": "An allowed port resource.", + "properties": { + "IPProtocol": { + "type": "string", + "description": "?tcp?, ?udp? or ?icmp?" + }, + "ports": { + "type": "array", + "description": "List of ports or port ranges (Example inputs include: [\"22\"], [?33?, \"12345-12349\"].", + "items": { + "type": "string" + } + } + } + }, + "AutoscalingModule": { + "id": "AutoscalingModule", + "type": "object", + "properties": { + "coolDownPeriodSec": { + "type": "integer", + "format": "int32" + }, + "description": { + "type": "string" + }, + "maxNumReplicas": { + "type": "integer", + "format": "int32" + }, + "minNumReplicas": { + "type": "integer", + "format": "int32" + }, + "signalType": { + "type": "string" + }, + "targetModule": { + "type": "string" + }, + "targetUtilization": { + "type": "number", + "description": "target_utilization should be in range [0,1].", + "format": "double" + } + } + }, + "AutoscalingModuleStatus": { + "id": "AutoscalingModuleStatus", + "type": "object", + "properties": { + "autoscalingConfigUrl": { + "type": "string", + "description": "[Output Only] The URL of the corresponding Autoscaling configuration." + } + } + }, + "DeployState": { + "id": "DeployState", + "type": "object", + "description": "[Output Only] The current state of a replica or module.", + "properties": { + "details": { + "type": "string", + "description": "[Output Only] Human readable details about the current state." + }, + "status": { + "type": "string", + "description": "[Output Only] The status of the deployment. Possible values include: \n- UNKNOWN\n- DEPLOYING\n- DEPLOYED\n- DEPLOYMENT_FAILED\n- DELETING\n- DELETED\n- DELETE_FAILED" + } + } + }, + "Deployment": { + "id": "Deployment", + "type": "object", + "description": "A deployment represents a physical instantiation of a Template.", + "properties": { + "creationDate": { + "type": "string", + "description": "[Output Only] The time when this deployment was created." + }, + "description": { + "type": "string", + "description": "A user-supplied description of this Deployment." + }, + "modules": { + "type": "object", + "description": "[Output Only] List of status for the modules in this deployment.", + "additionalProperties": { + "$ref": "ModuleStatus", + "description": "Name of the module." + } + }, + "name": { + "type": "string", + "description": "Name of this deployment. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}" + }, + "overrides": { + "type": "array", + "description": "The set of parameter overrides to apply to the corresponding Template before deploying.", + "items": { + "$ref": "ParamOverride" + } + }, + "state": { + "$ref": "DeployState", + "description": "[Output Only] Current status of this deployment." + }, + "templateName": { + "type": "string", + "description": "The name of the Template on which this deployment is based." + } + } + }, + "DeploymentsListResponse": { + "id": "DeploymentsListResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "resources": { + "type": "array", + "items": { + "$ref": "Deployment" + } + } + } + }, + "DiskAttachment": { + "id": "DiskAttachment", + "type": "object", + "description": "How to attach a disk to a Replica.", + "properties": { + "deviceName": { + "type": "string", + "description": "The device name of this disk." + }, + "index": { + "type": "integer", + "description": "A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.", + "format": "uint32" + } + } + }, + "EnvVariable": { + "id": "EnvVariable", + "type": "object", + "description": "An environment variable.", + "properties": { + "hidden": { + "type": "boolean", + "description": "Whether this variable is hidden or visible." + }, + "value": { + "type": "string", + "description": "Value of the environment variable." + } + } + }, + "ExistingDisk": { + "id": "ExistingDisk", + "type": "object", + "description": "A pre-existing persistent disk that will be attached to every Replica in the Pool.", + "properties": { + "attachment": { + "$ref": "DiskAttachment", + "description": "Optional. How the disk will be attached to the Replica." + }, + "source": { + "type": "string", + "description": "The fully-qualified URL of the Persistent Disk resource. It must be in the same zone as the Pool." + } + } + }, + "FirewallModule": { + "id": "FirewallModule", + "type": "object", + "description": "A Firewall resource", + "properties": { + "allowed": { + "type": "array", + "description": "The allowed ports or port ranges.", + "items": { + "$ref": "AllowedRule" + } + }, + "description": { + "type": "string", + "description": "The description of the firewall (optional)" + }, + "network": { + "type": "string", + "description": "The NetworkModule to which this firewall should apply. If not specified, or if specified as 'default', this firewall will be applied to the 'default' network." + }, + "sourceRanges": { + "type": "array", + "description": "Source IP ranges to apply this firewall to, see the GCE Spec for details on syntax", + "items": { + "type": "string" + } + }, + "sourceTags": { + "type": "array", + "description": "Source Tags to apply this firewall to, see the GCE Spec for details on syntax", + "items": { + "type": "string" + } + }, + "targetTags": { + "type": "array", + "description": "Target Tags to apply this firewall to, see the GCE Spec for details on syntax", + "items": { + "type": "string" + } + } + } + }, + "FirewallModuleStatus": { + "id": "FirewallModuleStatus", + "type": "object", + "properties": { + "firewallUrl": { + "type": "string", + "description": "[Output Only] The URL of the corresponding Firewall resource." + } + } + }, + "HealthCheckModule": { + "id": "HealthCheckModule", + "type": "object", + "properties": { + "checkIntervalSec": { + "type": "integer", + "format": "int32" + }, + "description": { + "type": "string" + }, + "healthyThreshold": { + "type": "integer", + "format": "int32" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "timeoutSec": { + "type": "integer", + "format": "int32" + }, + "unhealthyThreshold": { + "type": "integer", + "format": "int32" + } + } + }, + "HealthCheckModuleStatus": { + "id": "HealthCheckModuleStatus", + "type": "object", + "properties": { + "healthCheckUrl": { + "type": "string", + "description": "[Output Only] The HealthCheck URL." + } + } + }, + "LbModule": { + "id": "LbModule", + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "healthChecks": { + "type": "array", + "items": { + "type": "string" + } + }, + "ipAddress": { + "type": "string" + }, + "ipProtocol": { + "type": "string" + }, + "portRange": { + "type": "string" + }, + "sessionAffinity": { + "type": "string" + }, + "targetModules": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "LbModuleStatus": { + "id": "LbModuleStatus", + "type": "object", + "properties": { + "forwardingRuleUrl": { + "type": "string", + "description": "[Output Only] The URL of the corresponding ForwardingRule in GCE." + }, + "targetPoolUrl": { + "type": "string", + "description": "[Output Only] The URL of the corresponding TargetPool resource in GCE." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "description": "A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource.", + "properties": { + "fingerPrint": { + "type": "string", + "description": "The fingerprint of the metadata." + }, + "items": { + "type": "array", + "description": "A list of metadata items.", + "items": { + "$ref": "MetadataItem" + } + } + } + }, + "MetadataItem": { + "id": "MetadataItem", + "type": "object", + "description": "A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.", + "properties": { + "key": { + "type": "string", + "description": "A metadata key." + }, + "value": { + "type": "string", + "description": "A metadata value." + } + } + }, + "Module": { + "id": "Module", + "type": "object", + "description": "A module in a configuration. A module represents a single homogeneous, possibly replicated task.", + "properties": { + "autoscalingModule": { + "$ref": "AutoscalingModule" + }, + "firewallModule": { + "$ref": "FirewallModule" + }, + "healthCheckModule": { + "$ref": "HealthCheckModule" + }, + "lbModule": { + "$ref": "LbModule" + }, + "networkModule": { + "$ref": "NetworkModule" + }, + "replicaPoolModule": { + "$ref": "ReplicaPoolModule" + }, + "type": { + "type": "string", + "description": "The type of this module. Valid values (\"AUTOSCALING\", \"FIREWALL\", \"HEALTH_CHECK\", \"LOAD_BALANCING\", \"NETWORK\", \"REPLICA_POOL\")" + } + } + }, + "ModuleStatus": { + "id": "ModuleStatus", + "type": "object", + "description": "[Output Only] Aggregate status for a module.", + "properties": { + "autoscalingModuleStatus": { + "$ref": "AutoscalingModuleStatus", + "description": "[Output Only] The status of the AutoscalingModule, set for type AUTOSCALING." + }, + "firewallModuleStatus": { + "$ref": "FirewallModuleStatus", + "description": "[Output Only] The status of the FirewallModule, set for type FIREWALL." + }, + "healthCheckModuleStatus": { + "$ref": "HealthCheckModuleStatus", + "description": "[Output Only] The status of the HealthCheckModule, set for type HEALTH_CHECK." + }, + "lbModuleStatus": { + "$ref": "LbModuleStatus", + "description": "[Output Only] The status of the LbModule, set for type LOAD_BALANCING." + }, + "networkModuleStatus": { + "$ref": "NetworkModuleStatus", + "description": "[Output Only] The status of the NetworkModule, set for type NETWORK." + }, + "replicaPoolModuleStatus": { + "$ref": "ReplicaPoolModuleStatus", + "description": "[Output Only] The status of the ReplicaPoolModule, set for type VM." + }, + "state": { + "$ref": "DeployState", + "description": "[Output Only] The current state of the module." + }, + "type": { + "type": "string", + "description": "[Output Only] The type of the module." + } + } + }, + "NetworkInterface": { + "id": "NetworkInterface", + "type": "object", + "description": "A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.", + "properties": { + "accessConfigs": { + "type": "array", + "description": "An array of configurations for this interface. This specifies how this interface is configured to interact with other network services", + "items": { + "$ref": "AccessConfig" + } + }, + "name": { + "type": "string", + "description": "Name of the interface." + }, + "network": { + "type": "string", + "description": "The name of the NetworkModule to which this interface applies. If not specified, or specified as 'default', this will use the 'default' network." + }, + "networkIp": { + "type": "string", + "description": "An optional IPV4 internal network address to assign to the instance for this network interface." + } + } + }, + "NetworkModule": { + "id": "NetworkModule", + "type": "object", + "properties": { + "IPv4Range": { + "type": "string", + "description": "Required; The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16." + }, + "description": { + "type": "string", + "description": "The description of the network." + }, + "gatewayIPv4": { + "type": "string", + "description": "An optional address that is used for default routing to other networks. This must be within the range specified by IPv4Range, and is typicall the first usable address in that range. If not specified, the default value is the first usable address in IPv4Range." + } + } + }, + "NetworkModuleStatus": { + "id": "NetworkModuleStatus", + "type": "object", + "properties": { + "networkUrl": { + "type": "string", + "description": "[Output Only] The URL of the corresponding Network resource." + } + } + }, + "NewDisk": { + "id": "NewDisk", + "type": "object", + "description": "A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica.", + "properties": { + "attachment": { + "$ref": "DiskAttachment", + "description": "How the disk will be attached to the Replica." + }, + "autoDelete": { + "type": "boolean", + "description": "If true, then this disk will be deleted when the instance is deleted." + }, + "boot": { + "type": "boolean", + "description": "If true, indicates that this is the root persistent disk." + }, + "initializeParams": { + "$ref": "NewDiskInitializeParams", + "description": "Create the new disk using these parameters. The name of the disk will be \u003cinstance_name\u003e-\u003cfive_random_charactersgt;." + } + } + }, + "NewDiskInitializeParams": { + "id": "NewDiskInitializeParams", + "type": "object", + "description": "Initialization parameters for creating a new disk.", + "properties": { + "diskSizeGb": { + "type": "string", + "description": "The size of the created disk in gigabytes.", + "format": "int64" + }, + "diskType": { + "type": "string", + "description": "Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'" + }, + "sourceImage": { + "type": "string", + "description": "The fully-qualified URL of a source image to use to create this disk." + } + } + }, + "ParamOverride": { + "id": "ParamOverride", + "type": "object", + "description": "A specification for overriding parameters in a Template that corresponds to the Deployment.", + "properties": { + "path": { + "type": "string", + "description": "A JSON Path expression that specifies which parameter should be overridden." + }, + "value": { + "type": "string", + "description": "The new value to assign to the overridden parameter." + } + } + }, + "ReplicaPoolModule": { + "id": "ReplicaPoolModule", + "type": "object", + "properties": { + "envVariables": { + "type": "object", + "description": "A list of environment variables.", + "additionalProperties": { + "$ref": "EnvVariable", + "description": "Name of the environment variable. The name must conform to the following regular expression: [a-zA-Z_]+[a-zA-Z0-9_]+." + } + }, + "healthChecks": { + "type": "array", + "description": "The Health Checks to configure for the ReplicaPoolModule", + "items": { + "type": "string" + } + }, + "numReplicas": { + "type": "integer", + "description": "Number of replicas in this module.", + "format": "int32" + }, + "replicaPoolParams": { + "$ref": "ReplicaPoolParams", + "description": "Information for a ReplicaPoolModule." + }, + "resourceView": { + "type": "string", + "description": "[Output Only] The name of the Resource View associated with a ReplicaPoolModule. This field will be generated by the service." + } + } + }, + "ReplicaPoolModuleStatus": { + "id": "ReplicaPoolModuleStatus", + "type": "object", + "properties": { + "replicaPoolUrl": { + "type": "string", + "description": "[Output Only] The URL of the associated ReplicaPool resource." + }, + "resourceViewUrl": { + "type": "string", + "description": "[Output Only] The URL of the Resource Group associated with this ReplicaPool." + } + } + }, + "ReplicaPoolParams": { + "id": "ReplicaPoolParams", + "type": "object", + "description": "Configuration information for a ReplicaPools resource. Specifying an item within will determine the ReplicaPools API version used for a ReplicaPoolModule. Only one may be specified.", + "properties": { + "v1beta1": { + "$ref": "ReplicaPoolParamsV1Beta1", + "description": "ReplicaPoolParams specifications for use with ReplicaPools v1beta1." + } + } + }, + "ReplicaPoolParamsV1Beta1": { + "id": "ReplicaPoolParamsV1Beta1", + "type": "object", + "description": "Configuration information for a ReplicaPools v1beta1 API resource. Directly maps to ReplicaPool InitTemplate.", + "properties": { + "autoRestart": { + "type": "boolean", + "description": "Whether these replicas should be restarted if they experience a failure. The default value is true." + }, + "baseInstanceName": { + "type": "string", + "description": "The base name for instances within this ReplicaPool." + }, + "canIpForward": { + "type": "boolean", + "description": "Enables IP Forwarding" + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource." + }, + "disksToAttach": { + "type": "array", + "description": "A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.", + "items": { + "$ref": "ExistingDisk" + } + }, + "disksToCreate": { + "type": "array", + "description": "A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.", + "items": { + "$ref": "NewDisk" + } + }, + "initAction": { + "type": "string", + "description": "Name of the Action to be run during initialization of a ReplicaPoolModule." + }, + "machineType": { + "type": "string", + "description": "The machine type for this instance. Either a complete URL, or the resource name (e.g. n1-standard-1)." + }, + "metadata": { + "$ref": "Metadata", + "description": "The metadata key/value pairs assigned to this instance." + }, + "networkInterfaces": { + "type": "array", + "description": "A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine.", + "items": { + "$ref": "NetworkInterface" + } + }, + "onHostMaintenance": { + "type": "string" + }, + "serviceAccounts": { + "type": "array", + "description": "A list of Service Accounts to enable for this instance.", + "items": { + "$ref": "ServiceAccount" + } + }, + "tags": { + "$ref": "Tag", + "description": "A list of tags to apply to the Google Compute Engine instance to identify resources." + }, + "zone": { + "type": "string", + "description": "The zone for this ReplicaPool." + } + } + }, + "ServiceAccount": { + "id": "ServiceAccount", + "type": "object", + "description": "A Compute Engine service account, identical to the Compute Engine resource.", + "properties": { + "email": { + "type": "string", + "description": "Service account email address." + }, + "scopes": { + "type": "array", + "description": "List of OAuth2 scopes to obtain for the service account.", + "items": { + "type": "string" + } + } + } + }, + "Tag": { + "id": "Tag", + "type": "object", + "description": "A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource.", + "properties": { + "fingerPrint": { + "type": "string", + "description": "The fingerprint of the tag." + }, + "items": { + "type": "array", + "description": "Items contained in this tag.", + "items": { + "type": "string" + } + } + } + }, + "Template": { + "id": "Template", + "type": "object", + "description": "A Template represents a complete configuration for a Deployment.", + "properties": { + "actions": { + "type": "object", + "description": "Action definitions for use in Module intents in this Template.", + "additionalProperties": { + "$ref": "Action", + "description": "The name of this action, used when specifying Actions in Module definitions." + } + }, + "description": { + "type": "string", + "description": "A user-supplied description of this Template." + }, + "modules": { + "type": "object", + "description": "A list of modules for this Template.", + "additionalProperties": { + "$ref": "Module", + "description": "Name of the module. The name must conform to the following regular expression: [a-zA-Z0-9-_]{1,64}" + } + }, + "name": { + "type": "string", + "description": "Name of this Template. The name must conform to the expression: [a-zA-Z0-9-_]{1,64}" + } + } + }, + "TemplatesListResponse": { + "id": "TemplatesListResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "resources": { + "type": "array", + "items": { + "$ref": "Template" + } + } + } + } + }, + "resources": { + "deployments": { + "methods": { + "delete": { + "id": "manager.deployments.delete", + "path": "{projectId}/regions/{region}/deployments/{deploymentName}", + "httpMethod": "DELETE", + "description": "", + "parameters": { + "deploymentName": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "region", + "deploymentName" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "manager.deployments.get", + "path": "{projectId}/regions/{region}/deployments/{deploymentName}", + "httpMethod": "GET", + "description": "", + "parameters": { + "deploymentName": { + "type": "string", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "region", + "deploymentName" + ], + "response": { + "$ref": "Deployment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "insert": { + "id": "manager.deployments.insert", + "path": "{projectId}/regions/{region}/deployments", + "httpMethod": "POST", + "description": "", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "region" + ], + "request": { + "$ref": "Deployment" + }, + "response": { + "$ref": "Deployment" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "manager.deployments.list", + "path": "{projectId}/regions/{region}/deployments", + "httpMethod": "GET", + "description": "", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "region" + ], + "response": { + "$ref": "DeploymentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "templates": { + "methods": { + "delete": { + "id": "manager.templates.delete", + "path": "{projectId}/templates/{templateName}", + "httpMethod": "DELETE", + "description": "", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "templateName": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "templateName" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "manager.templates.get", + "path": "{projectId}/templates/{templateName}", + "httpMethod": "GET", + "description": "", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path" + }, + "templateName": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "templateName" + ], + "response": { + "$ref": "Template" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "insert": { + "id": "manager.templates.insert", + "path": "{projectId}/templates", + "httpMethod": "POST", + "description": "", + "parameters": { + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Template" + }, + "response": { + "$ref": "Template" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "manager.templates.list", + "path": "{projectId}/templates", + "httpMethod": "GET", + "description": "", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "50", + "format": "int32", + "minimum": "0", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectId": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "TemplatesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + } + } +} diff --git a/etc/api/mapsengine/exp2/mapsengine-api.json b/etc/api/mapsengine/exp2/mapsengine-api.json new file mode 100644 index 0000000000..d0f5b0bd47 --- /dev/null +++ b/etc/api/mapsengine/exp2/mapsengine-api.json @@ -0,0 +1,5375 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/g5gYKe1RsGYlNs6bEqweIHyXDHA\"", + "discoveryVersion": "v1", + "id": "mapsengine:exp2", + "name": "mapsengine", + "canonicalName": "Maps Engine", + "version": "exp2", + "revision": "20150120", + "title": "Google Maps Engine API", + "description": "The Google Maps Engine API allows developers to store and query geospatial vector and raster data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/maps_engine-16.png", + "x32": "https://www.google.com/images/icons/product/maps_engine-32.png" + }, + "documentationLink": "https://developers.google.com/maps-engine/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/mapsengine/exp2/", + "basePath": "/mapsengine/exp2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "mapsengine/exp2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/mapsengine": { + "description": "View and manage your Google My Maps data" + }, + "https://www.googleapis.com/auth/mapsengine.readonly": { + "description": "View your Google My Maps data" + } + } + } + }, + "schemas": { + "AcquisitionTime": { + "id": "AcquisitionTime", + "type": "object", + "description": "Acquisition time represents acquired time of a raster.", + "properties": { + "end": { + "type": "string", + "description": "The end time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "precision": { + "type": "string", + "description": "The precision of acquisition time.", + "enum": [ + "day", + "hour", + "minute", + "month", + "second", + "year" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "start": { + "type": "string", + "description": "The acquisition time, or start time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).", + "format": "date-time" + } + } + }, + "Asset": { + "id": "Asset", + "type": "object", + "description": "An asset is any Google Maps Engine resource that has a globally unique ID. Assets include maps, layers, vector tables, raster collections, and rasters. Projects and features are not considered assets.\n\nMore detailed information about an asset can be obtained by querying the asset's particular endpoint.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this asset. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this asset. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The asset's description." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "The asset's globally unique ID." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this asset. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The asset's name." + }, + "projectId": { + "type": "string", + "description": "The ID of the project to which the asset belongs." + }, + "resource": { + "type": "string", + "description": "The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource." + }, + "tags": { + "type": "array", + "description": "An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The type of asset. One of raster, rasterCollection, table, map, or layer.", + "enum": [ + "layer", + "map", + "raster", + "rasterCollection", + "table" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "AssetsListResponse": { + "id": "AssetsListResponse", + "type": "object", + "description": "The response returned by a call to resources.List.", + "properties": { + "assets": { + "type": "array", + "description": "Assets returned.", + "items": { + "$ref": "Asset" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Border": { + "id": "Border", + "type": "object", + "description": "Border in line style. Both color and width are required.", + "properties": { + "color": { + "type": "string", + "description": "Color of the border.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity of the border.", + "format": "double" + }, + "width": { + "type": "number", + "description": "Width of the border, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Color": { + "id": "Color", + "type": "object", + "description": "Basic color used in styling.", + "properties": { + "color": { + "type": "string", + "description": "The CSS style color, can be in format of \"red\" or \"#7733EE\".", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.", + "format": "double" + } + } + }, + "Datasource": { + "id": "Datasource", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of a datasource." + } + } + }, + "Datasources": { + "id": "Datasources", + "type": "array", + "items": { + "$ref": "Datasource" + } + }, + "DisplayRule": { + "id": "DisplayRule", + "type": "object", + "description": "A display rule of the vector style.", + "properties": { + "filters": { + "type": "array", + "description": "This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.", + "items": { + "$ref": "Filter" + } + }, + "lineOptions": { + "$ref": "LineStyle", + "description": "Style applied to lines. Required for LineString Geometry." + }, + "name": { + "type": "string", + "description": "Display rule name. Name is not unique and cannot be used for identification purpose." + }, + "pointOptions": { + "$ref": "PointStyle", + "description": "Style applied to points. Required for Point Geometry." + }, + "polygonOptions": { + "$ref": "PolygonStyle", + "description": "Style applied to polygons. Required for Polygon Geometry." + }, + "zoomLevels": { + "$ref": "ZoomLevels", + "description": "The zoom levels that this display rule apply.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Feature": { + "id": "Feature", + "type": "object", + "description": "A feature within a table.", + "properties": { + "geometry": { + "$ref": "GeoJsonGeometry", + "description": "The geometry member of this Feature." + }, + "properties": { + "$ref": "GeoJsonProperties", + "description": "Key/value pairs of this Feature." + }, + "type": { + "type": "string", + "description": "Identifies this object as a feature.", + "default": "Feature" + } + } + }, + "FeatureInfo": { + "id": "FeatureInfo", + "type": "object", + "description": "A feature info contains information about individual feature.", + "properties": { + "content": { + "type": "string", + "description": "HTML template of the info window. If not provided, a default template with all attributes will be generated." + } + } + }, + "FeaturesBatchDeleteRequest": { + "id": "FeaturesBatchDeleteRequest", + "type": "object", + "description": "The request sent to features.BatchDelete.", + "properties": { + "gx_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "primaryKeys": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "FeaturesBatchInsertRequest": { + "id": "FeaturesBatchInsertRequest", + "type": "object", + "description": "The request sent to features.Insert.", + "properties": { + "features": { + "type": "array", + "items": { + "$ref": "Feature" + } + }, + "normalizeGeometries": { + "type": "boolean", + "description": "If true, the server will normalize feature geometries. It is assumed that the South Pole is exterior to any polygons given. See here for a list of normalizations. If false, all feature geometries must be given already normalized. The points in all LinearRings must be listed in counter-clockwise order, and LinearRings may not intersect.", + "default": "true" + } + } + }, + "FeaturesBatchPatchRequest": { + "id": "FeaturesBatchPatchRequest", + "type": "object", + "description": "The request sent to features.BatchPatch.", + "properties": { + "features": { + "type": "array", + "items": { + "$ref": "Feature" + } + }, + "normalizeGeometries": { + "type": "boolean", + "description": "If true, the server will normalize feature geometries. It is assumed that the South Pole is exterior to any polygons given. See here for a list of normalizations. If false, all feature geometries must be given already normalized. The points in all LinearRings must be listed in counter-clockwise order, and LinearRings may not intersect.", + "default": "true" + } + } + }, + "FeaturesListResponse": { + "id": "FeaturesListResponse", + "type": "object", + "description": "The response returned by a call to features.List.", + "properties": { + "allowedQueriesPerSecond": { + "type": "number", + "description": "An indicator of the maximum rate at which queries may be made, if all queries were as expensive as this query.", + "format": "double" + }, + "features": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Feature" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "schema": { + "$ref": "Schema", + "description": "The feature schema." + }, + "type": { + "type": "string", + "default": "FeatureCollection" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "A single File, which is a component of an Asset.", + "properties": { + "filename": { + "type": "string", + "description": "The name of the file.", + "annotations": { + "required": [ + "mapsengine.rasters.upload", + "mapsengine.tables.upload" + ] + } + }, + "size": { + "type": "string", + "description": "The size of the file in bytes.", + "format": "int64" + }, + "uploadStatus": { + "type": "string", + "description": "The upload status of the file.", + "enum": [ + "canceled", + "complete", + "failed", + "inProgress" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "Filter": { + "id": "Filter", + "type": "object", + "description": "Conditions for filtering features.", + "properties": { + "column": { + "type": "string", + "description": "The column name to filter on.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "operator": { + "type": "string", + "description": "Operation used to evaluate the filter.", + "enum": [ + "!=", + "\u003c", + "\u003c=", + "==", + "\u003e", + "\u003e=", + "contains", + "endsWith", + "startsWith" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "value": { + "type": "any", + "description": "Value to be evaluated against attribute.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "GeoJsonGeometry": { + "id": "GeoJsonGeometry", + "type": "object", + "variant": { + "discriminant": "type", + "map": [ + { + "type_value": "GeometryCollection", + "$ref": "GeoJsonGeometryCollection" + }, + { + "type_value": "LineString", + "$ref": "GeoJsonLineString" + }, + { + "type_value": "MultiLineString", + "$ref": "GeoJsonMultiLineString" + }, + { + "type_value": "MultiPoint", + "$ref": "GeoJsonMultiPoint" + }, + { + "type_value": "MultiPolygon", + "$ref": "GeoJsonMultiPolygon" + }, + { + "type_value": "Point", + "$ref": "GeoJsonPoint" + }, + { + "type_value": "Polygon", + "$ref": "GeoJsonPolygon" + } + ] + } + }, + "GeoJsonGeometryCollection": { + "id": "GeoJsonGeometryCollection", + "type": "object", + "description": "A heterogenous collection of GeoJsonGeometry objects.", + "properties": { + "geometries": { + "type": "array", + "description": "An array of geometry objects. There must be at least 2 different types of geometries in the array.", + "items": { + "$ref": "GeoJsonGeometry" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonGeometryCollection.", + "enum": [ + "GeometryCollection" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonLineString": { + "id": "GeoJsonLineString", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of two or more positions, representing a line.", + "items": { + "$ref": "GeoJsonPosition" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonLineString.", + "enum": [ + "LineString" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiLineString": { + "id": "GeoJsonMultiLineString", + "type": "object", + "description": "Multi Line String", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonLineString coordinate arrays.", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiLineString.", + "enum": [ + "MultiLineString" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiPoint": { + "id": "GeoJsonMultiPoint", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonPoint coordinate arrays.", + "items": { + "$ref": "GeoJsonPosition" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiPoint.", + "enum": [ + "MultiPoint" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiPolygon": { + "id": "GeoJsonMultiPolygon", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonPolygon coordinate arrays.", + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiPolygon.", + "enum": [ + "MultiPolygon" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPoint": { + "id": "GeoJsonPoint", + "type": "object", + "properties": { + "coordinates": { + "$ref": "GeoJsonPosition", + "description": "A single GeoJsonPosition, specifying the location of the point." + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonPoint.", + "enum": [ + "Point" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPolygon": { + "id": "GeoJsonPolygon", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of LinearRings. A LinearRing is a GeoJsonLineString which is closed (that is, the first and last GeoJsonPositions are equal), and which contains at least four GeoJsonPositions. For polygons with multiple rings, the first LinearRing is the exterior ring, and any subsequent rings are interior rings (that is, holes).", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonPolygon.", + "enum": [ + "Polygon" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPosition": { + "id": "GeoJsonPosition", + "type": "array", + "description": "A position represents a geographical position as an array containing a longitude and a latitude, and optionally an altitude, in that order. All Geometry objects make use of positions to represent geometries as nested arrays. The structure of the array is governed by the type of the geometry.", + "items": { + "type": "number", + "format": "double" + } + }, + "GeoJsonProperties": { + "id": "GeoJsonProperties", + "type": "object", + "description": "The properties associated with a feature.", + "additionalProperties": { + "type": "any", + "description": "An arbitrary key-value pair. The key must be the name of a column in the table's schema, and the type of the value must correspond to the type specified in the schema." + } + }, + "Icon": { + "id": "Icon", + "type": "object", + "description": "An icon is a user-uploaded image that can be used to style point geometries.", + "properties": { + "description": { + "type": "string", + "description": "The description of this Icon, supplied by the author." + }, + "id": { + "type": "string", + "description": "An ID used to refer to this Icon." + }, + "name": { + "type": "string", + "description": "The name of this Icon, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.projects.icons.create" + ] + } + } + } + }, + "IconStyle": { + "id": "IconStyle", + "type": "object", + "description": "Style for icon, this is part of point style.", + "properties": { + "id": { + "type": "string", + "description": "Custom icon id." + }, + "name": { + "type": "string", + "description": "Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'." + }, + "scaledShape": { + "$ref": "ScaledShape", + "description": "A scalable shape." + }, + "scalingFunction": { + "$ref": "ScalingFunction", + "description": "The function used to scale shapes. Required when a scaledShape is specified." + } + } + }, + "IconsListResponse": { + "id": "IconsListResponse", + "type": "object", + "description": "The response returned by a call to icons.List.", + "properties": { + "icons": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Icon" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token." + } + } + }, + "LabelStyle": { + "id": "LabelStyle", + "type": "object", + "description": "Text label style.", + "properties": { + "color": { + "type": "string", + "description": "Color of the text. If not provided, default to black." + }, + "column": { + "type": "string", + "description": "The column value of the feature to be displayed.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "fontStyle": { + "type": "string", + "description": "Font style of the label, defaults to 'normal'.", + "enum": [ + "italic", + "normal" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "fontWeight": { + "type": "string", + "description": "Font weight of the label, defaults to 'normal'.", + "enum": [ + "bold", + "normal" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "opacity": { + "type": "number", + "description": "Opacity of the text.", + "format": "double" + }, + "outline": { + "$ref": "Color", + "description": "Outline color of the text." + }, + "size": { + "type": "number", + "description": "Font size of the label, in pixels. 8 \u003c= size \u003c= 15. If not provided, a default size will be provided.", + "format": "double" + } + } + }, + "LatLngBox": { + "id": "LatLngBox", + "type": "array", + "description": "A rectangular geographic bounds.", + "items": { + "type": "number", + "format": "double" + } + }, + "Layer": { + "id": "Layer", + "type": "object", + "description": "A Layer combines multiple datasources, with styling information, for presentation on a map.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Layer. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this layer. This is only returned on GET requests and not LIST requests." + }, + "datasourceType": { + "type": "string", + "description": "Deprecated: The type of the datasources used to build this Layer. Note: This has been replaced by layerType, but is still available for now to maintain backward compatibility.", + "enum": [ + "image", + "table" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "datasources": { + "$ref": "Datasources", + "description": "An array of datasources used to build this layer. If layerType is \"image\", or layerType is not specified and datasourceType is \"image\", then each element in this array is a reference to an Image or RasterCollection. If layerType is \"vector\", or layerType is not specified and datasourceType is \"table\" then each element in this array is a reference to a Vector Table. Note: Datasources are returned in response to a get request but not a list request. After requesting a list of layers, you'll need to send a get request to retrieve the datasources for each layer." + }, + "description": { + "type": "string", + "description": "The description of this Layer, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Layer." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests." + }, + "layerType": { + "type": "string", + "description": "The type of the datasources used to build this Layer. This should be used instead of datasourceType. At least one of layerType and datasourceType and must be specified, but layerType takes precedence.", + "enum": [ + "image", + "vector" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this Layer, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this layer.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Layer is in.", + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "publishingStatus": { + "type": "string", + "description": "The publishing status of this layer.", + "enum": [ + "notPublished", + "published" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "style": { + "$ref": "VectorStyle", + "description": "The styling information for a vector layer. Note: Style information is returned in response to a get request but not a list request. After requesting a list of layers, you'll need to send a get request to retrieve the VectorStyles for each layer." + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Layer." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "LayersListResponse": { + "id": "LayersListResponse", + "type": "object", + "description": "The response returned by a call to layers.List. Note: The list response does not include all the fields available in a layer. Refer to the layer resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each layer.", + "properties": { + "layers": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Layer" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "LineStyle": { + "id": "LineStyle", + "type": "object", + "description": "Style for lines.", + "properties": { + "border": { + "$ref": "Border", + "description": "Border of the line. 0 \u003c border.width \u003c= 5." + }, + "dash": { + "type": "array", + "description": "Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.", + "items": { + "type": "number", + "format": "double" + } + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the line." + }, + "stroke": { + "type": "object", + "description": "Stroke of the line.", + "properties": { + "color": { + "type": "string", + "description": "Color of the line.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity of the line.", + "format": "double" + }, + "width": { + "type": "number", + "description": "Width of the line, in pixels. 0 \u003c= width \u003c= 10. If width is set to 0, the line will be invisible.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + } + } + }, + "Map": { + "id": "Map", + "type": "object", + "description": "A Map is a collection of Layers, optionally contained within folders.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Map. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "contents": { + "$ref": "MapContents", + "description": "The contents of this Map." + }, + "creationTime": { + "type": "string", + "description": "The creation time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this map. This is only returned on GET requests and not LIST requests." + }, + "defaultViewport": { + "$ref": "LatLngBox", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees." + }, + "description": { + "type": "string", + "description": "The description of this Map, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Map." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this map. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The name of this Map, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.maps.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this map. Map processing is automatically started once a map becomes ready for processing.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Map is in.", + "annotations": { + "required": [ + "mapsengine.maps.create" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. This is an input field only. It is not returned in response to a list or get request." + }, + "publishingStatus": { + "type": "string", + "description": "The publishing status of this map.", + "enum": [ + "notPublished", + "published" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Map." + }, + "versions": { + "type": "array", + "description": "Deprecated: An array containing the available versions of this Map. Currently may only contain \"published\". The publishingStatus field should be used instead.", + "items": { + "type": "string", + "default": "published" + } + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "MapContents": { + "id": "MapContents", + "type": "array", + "items": { + "$ref": "MapItem" + } + }, + "MapFolder": { + "id": "MapFolder", + "type": "object", + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "MapItem" + } + }, + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "expandable": { + "type": "boolean", + "description": "The expandability setting of this MapFolder. If true, the folder can be expanded." + }, + "key": { + "type": "string", + "description": "A user defined alias for this MapFolder, specific to this Map." + }, + "name": { + "type": "string", + "description": "The name of this MapFolder.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapFolder.", + "enum": [ + "folder" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapFolder. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapItem": { + "id": "MapItem", + "type": "object", + "variant": { + "discriminant": "type", + "map": [ + { + "type_value": "folder", + "$ref": "MapFolder" + }, + { + "type_value": "kmlLink", + "$ref": "MapKmlLink" + }, + { + "type_value": "layer", + "$ref": "MapLayer" + } + ] + } + }, + "MapKmlLink": { + "id": "MapKmlLink", + "type": "object", + "properties": { + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "kmlUrl": { + "type": "string", + "description": "The URL to the KML file represented by this MapKmlLink.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this MapKmlLink.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapKmlLink.", + "enum": [ + "kmlLink" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapKmlLink. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapLayer": { + "id": "MapLayer", + "type": "object", + "properties": { + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "id": { + "type": "string", + "description": "The ID of this MapLayer. This ID can be used to request more details about the layer.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "key": { + "type": "string", + "description": "A user defined alias for this MapLayer, specific to this Map." + }, + "name": { + "type": "string", + "description": "The name of this MapLayer." + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapLayer.", + "enum": [ + "layer" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapLayer. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapsListResponse": { + "id": "MapsListResponse", + "type": "object", + "description": "The response returned by a call to maps.List.", + "properties": { + "maps": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Map" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Parent": { + "id": "Parent", + "type": "object", + "description": "A list of the parents of an asset.", + "properties": { + "id": { + "type": "string", + "description": "The ID of this parent." + } + } + }, + "ParentsListResponse": { + "id": "ParentsListResponse", + "type": "object", + "description": "The response returned by a call to parents.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "parents": { + "type": "array", + "description": "The parent assets.", + "items": { + "$ref": "Parent" + } + } + } + }, + "Permission": { + "id": "Permission", + "type": "object", + "description": "A permission defines the user or group that has access to an asset, and the type of access they have.", + "properties": { + "discoverable": { + "type": "boolean", + "description": "Indicates whether a public asset is listed and can be found via a web search (value true), or is visible only to people who have a link to the asset (value false)." + }, + "id": { + "type": "string", + "description": "The unique identifier of the permission. This could be the email address of the user or group this permission refers to, or the string \"anyone\" for public permissions.", + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + }, + "role": { + "type": "string", + "description": "The type of access granted to this user or group.", + "enum": [ + "owner", + "reader", + "viewer", + "writer" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + }, + "type": { + "type": "string", + "description": "The account type.", + "enum": [ + "anyone", + "group", + "user" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "PermissionsBatchDeleteRequest": { + "id": "PermissionsBatchDeleteRequest", + "type": "object", + "description": "The request sent to mapsengine.permissions.batchDelete.", + "properties": { + "ids": { + "type": "array", + "description": "An array of permission ids to be removed. This could be the email address of the user or group this permission refers to, or the string \"anyone\" for public permissions.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchDelete", + "mapsengine.maps.permissions.batchDelete", + "mapsengine.rasterCollections.permissions.batchDelete", + "mapsengine.tables.permissions.batchDelete" + ] + } + } + } + }, + "PermissionsBatchDeleteResponse": { + "id": "PermissionsBatchDeleteResponse", + "type": "object", + "description": "The response returned by a call to mapsengine.permissions.batchDelete." + }, + "PermissionsBatchUpdateRequest": { + "id": "PermissionsBatchUpdateRequest", + "type": "object", + "description": "The request sent to mapsengine.permissions.batchUpdate.", + "properties": { + "permissions": { + "type": "array", + "description": "The permissions to be inserted or updated.", + "items": { + "$ref": "Permission" + }, + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + } + } + }, + "PermissionsBatchUpdateResponse": { + "id": "PermissionsBatchUpdateResponse", + "type": "object", + "description": "The response returned by a call to mapsengine.permissions.batchUpdate." + }, + "PermissionsListResponse": { + "id": "PermissionsListResponse", + "type": "object", + "properties": { + "permissions": { + "type": "array", + "description": "The set of permissions associated with this asset.", + "items": { + "$ref": "Permission" + } + } + } + }, + "PointStyle": { + "id": "PointStyle", + "type": "object", + "description": "Style for points.", + "properties": { + "icon": { + "$ref": "IconStyle", + "description": "Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the point." + } + } + }, + "PolygonStyle": { + "id": "PolygonStyle", + "type": "object", + "description": "Style for polygons.", + "properties": { + "fill": { + "$ref": "Color", + "description": "Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border." + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the polygon." + }, + "stroke": { + "$ref": "Border", + "description": "Border of the polygon. 0 \u003c border.width \u003c= 10." + } + } + }, + "ProcessResponse": { + "id": "ProcessResponse", + "type": "object", + "description": "The response returned by a call to any asset's Process method." + }, + "Project": { + "id": "Project", + "type": "object", + "description": "A project groups a collection of resources.", + "properties": { + "id": { + "type": "string", + "description": "An ID used to refer to this project." + }, + "name": { + "type": "string", + "description": "A user provided name for this project." + } + } + }, + "ProjectsListResponse": { + "id": "ProjectsListResponse", + "type": "object", + "description": "The response returned by a call to projects.List.", + "properties": { + "projects": { + "type": "array", + "description": "Projects returned.", + "items": { + "$ref": "Project" + } + } + } + }, + "PublishResponse": { + "id": "PublishResponse", + "type": "object", + "description": "The response returned by a call to any asset's Publish method." + }, + "PublishedLayer": { + "id": "PublishedLayer", + "type": "object", + "description": "The published version of a layer.", + "properties": { + "description": { + "type": "string", + "description": "The description of this Layer, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Layer." + }, + "layerType": { + "type": "string", + "description": "The type of the datasources used to build this Layer. This should be used instead of datasourceType. At least one of layerType and datasourceType and must be specified, but layerType takes precedence.", + "enum": [ + "image", + "vector" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "name": { + "type": "string", + "description": "The name of this Layer, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Layer is in." + } + } + }, + "PublishedLayersListResponse": { + "id": "PublishedLayersListResponse", + "type": "object", + "description": "The response returned by a call to layers.List.published.", + "properties": { + "layers": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "PublishedLayer" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "PublishedMap": { + "id": "PublishedMap", + "type": "object", + "description": "The published version of a map asset.", + "properties": { + "contents": { + "$ref": "MapContents", + "description": "The contents of this Map." + }, + "defaultViewport": { + "$ref": "LatLngBox", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees." + }, + "description": { + "type": "string", + "description": "The description of this Map, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Map." + }, + "name": { + "type": "string", + "description": "The name of this Map, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Map is in." + } + } + }, + "PublishedMapsListResponse": { + "id": "PublishedMapsListResponse", + "type": "object", + "description": "The response returned by a call to maps.List.published.", + "properties": { + "maps": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "PublishedMap" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Raster": { + "id": "Raster", + "type": "object", + "description": "A geo-referenced raster.", + "properties": { + "acquisitionTime": { + "$ref": "AcquisitionTime", + "description": "The acquisition time of this Raster." + }, + "attribution": { + "type": "string", + "description": "The name of the attribution to be used for this Raster." + }, + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Raster. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitudes and longitudes in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this raster. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this Raster, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "files": { + "type": "array", + "description": "The files associated with this Raster.", + "items": { + "$ref": "File" + }, + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Raster." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this raster. This is only returned on GET requests and not LIST requests." + }, + "maskType": { + "type": "string", + "description": "The mask processing type of this Raster.", + "default": "autoMask" + }, + "name": { + "type": "string", + "description": "The name of this Raster, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this Raster.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Raster is in.", + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "rasterType": { + "type": "string", + "description": "The type of this Raster. Always \"image\" today.", + "enum": [ + "image" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Raster." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "RasterCollection": { + "id": "RasterCollection", + "type": "object", + "description": "A raster collection groups multiple Raster resources for inclusion in a Layer.", + "properties": { + "attribution": { + "type": "string", + "description": "The name of the attribution to be used for this RasterCollection. Note: Attribution is returned in response to a get request but not a list request. After requesting a list of raster collections, you'll need to send a get request to retrieve the attribution for each raster collection." + }, + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this RasterCollection. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this RasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this raster collection. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this RasterCollection, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this RasterCollection." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this RasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this raster collection. This is only returned on GET requests and not LIST requests." + }, + "mosaic": { + "type": "boolean", + "description": "True if this RasterCollection is a mosaic.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this RasterCollection, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this RasterCollection.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this RasterCollection is in.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "rasterType": { + "type": "string", + "description": "The type of rasters contained within this RasterCollection.", + "enum": [ + "image" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this RasterCollection." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "RasterCollectionsListResponse": { + "id": "RasterCollectionsListResponse", + "type": "object", + "description": "The response returned by a call to raster_collections.List. Note: The list response does not include all the fields available in a raster collection. Refer to the RasterCollection resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each raster collection.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + }, + "rasterCollections": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "RasterCollection" + } + } + } + }, + "RasterCollectionsRaster": { + "id": "RasterCollectionsRaster", + "type": "object", + "description": "A raster resource.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Raster. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitudes and longitudes in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "The description of this Raster, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Raster." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "name": { + "type": "string", + "description": "The name of this Raster, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Raster is in." + }, + "rasterType": { + "type": "string", + "description": "The type of this Raster. Always \"image\" today.", + "default": "image" + }, + "tags": { + "type": "array", + "description": "Tags of this Raster.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRasterBatchDeleteRequest": { + "id": "RasterCollectionsRasterBatchDeleteRequest", + "type": "object", + "description": "The request sent to rasterCollections.Rasters.BatchDelete.", + "properties": { + "ids": { + "type": "array", + "description": "An array of Raster asset IDs to be removed from this RasterCollection.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRastersBatchDeleteResponse": { + "id": "RasterCollectionsRastersBatchDeleteResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.batchDelete." + }, + "RasterCollectionsRastersBatchInsertRequest": { + "id": "RasterCollectionsRastersBatchInsertRequest", + "type": "object", + "description": "The request sent to rasterCollections.Rasters.BatchInsert.", + "properties": { + "ids": { + "type": "array", + "description": "An array of Raster asset IDs to be added to this RasterCollection.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRastersBatchInsertResponse": { + "id": "RasterCollectionsRastersBatchInsertResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.batchInsert." + }, + "RasterCollectionsRastersListResponse": { + "id": "RasterCollectionsRastersListResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "rasters": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "RasterCollectionsRaster" + } + } + } + }, + "RastersListResponse": { + "id": "RastersListResponse", + "type": "object", + "description": "The response returned by a call to rasters.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "rasters": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Raster" + } + } + } + }, + "ScaledShape": { + "id": "ScaledShape", + "type": "object", + "description": "Parameters for styling points as scaled shapes.", + "properties": { + "border": { + "$ref": "Border", + "description": "Border color/width of the shape. If not specified the shape won't have a border." + }, + "fill": { + "$ref": "Color", + "description": "The fill color of the shape. If not specified the shape will be transparent (although the borders may not be)." + }, + "shape": { + "type": "string", + "description": "Name of the shape.", + "enum": [ + "circle" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "ScalingFunction": { + "id": "ScalingFunction", + "type": "object", + "description": "Parameters for scaling scaled shapes.", + "properties": { + "column": { + "type": "string", + "description": "Name of the numeric column used to scale a shape.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "scalingType": { + "type": "string", + "description": "The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.", + "enum": [ + "linear", + "sqrt" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "sizeRange": { + "$ref": "SizeRange", + "description": "The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "valueRange": { + "$ref": "ValueRange", + "description": "The range of values to display across the size range.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Schema": { + "id": "Schema", + "type": "object", + "description": "A schema indicating the properties which may be associated with features within a Table, and the types of those properties.", + "properties": { + "columns": { + "type": "array", + "description": "An array of TableColumn objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.", + "items": { + "$ref": "TableColumn" + }, + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "primaryGeometry": { + "type": "string", + "description": "The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array." + }, + "primaryKey": { + "type": "string", + "description": "The name of the column that contains the unique identifier of a Feature." + } + } + }, + "SizeRange": { + "id": "SizeRange", + "type": "object", + "description": "Scaled shape size range in pixels. For circles, size corresponds to diameter.", + "properties": { + "max": { + "type": "number", + "description": "Maximum size, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "number", + "description": "Minimum size, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Table": { + "id": "Table", + "type": "object", + "description": "A collection of geographic features, and associated metadata.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Table. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this table. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this table, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "files": { + "type": "array", + "description": "The files associated with this table.", + "items": { + "$ref": "File" + }, + "annotations": { + "required": [ + "mapsengine.tables.upload" + ] + } + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this table." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this table. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The name of this table, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.tables.create", + "mapsengine.tables.upload" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this table.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project to which the table belongs.", + "annotations": { + "required": [ + "mapsengine.tables.create", + "mapsengine.tables.upload" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "schema": { + "$ref": "Schema", + "description": "The schema for this table. Note: The schema is returned in response to a get request but not a list request. After requesting a list of tables, you'll need to send a get request to retrieve the schema for each table.", + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "sourceEncoding": { + "type": "string", + "description": "Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.", + "default": "UTF-8" + }, + "tags": { + "$ref": "Tags", + "description": "An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "TableColumn": { + "id": "TableColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The column name.", + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "type": { + "type": "string", + "description": "The type of data stored in this column.", + "enum": [ + "datetime", + "double", + "integer", + "lineStrings", + "mixedGeometry", + "points", + "polygons", + "string" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + } + } + }, + "TablesListResponse": { + "id": "TablesListResponse", + "type": "object", + "description": "The response returned by a call to tables.List. Note: The list response does not include all the fields available in a table. Refer to the table resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each table.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + }, + "tables": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Table" + } + } + } + }, + "Tags": { + "id": "Tags", + "type": "array", + "items": { + "type": "string" + } + }, + "ValueRange": { + "id": "ValueRange", + "type": "object", + "description": "Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size.", + "properties": { + "max": { + "type": "number", + "description": "Maximum value.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "number", + "description": "Minimum value.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "VectorStyle": { + "id": "VectorStyle", + "type": "object", + "description": "A vector style contains styling information for vector layer.", + "properties": { + "displayRules": { + "type": "array", + "items": { + "$ref": "DisplayRule" + } + }, + "featureInfo": { + "$ref": "FeatureInfo", + "description": "Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated." + }, + "type": { + "type": "string", + "description": "The type of the vector style. Currently, only displayRule is supported.", + "enum": [ + "displayRule" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "ZoomLevels": { + "id": "ZoomLevels", + "type": "object", + "description": "Zoom level range. Zoom levels are restricted between 0 and 24, inclusive.", + "properties": { + "max": { + "type": "integer", + "description": "Maximum zoom level.", + "format": "int32", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "integer", + "description": "Minimum zoom level.", + "format": "int32", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + } + }, + "resources": { + "assets": { + "methods": { + "get": { + "id": "mapsengine.assets.get", + "path": "assets/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Asset" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.assets.list", + "path": "assets", + "httpMethod": "GET", + "description": "Return all assets readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + }, + "type": { + "type": "string", + "description": "A comma separated list of asset types. Returned assets will have one of the types from the provided list. Supported values are 'map', 'layer', 'rasterCollection' and 'table'.", + "location": "query" + } + }, + "response": { + "$ref": "AssetsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.assets.parents.list", + "path": "assets/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "list": { + "id": "mapsengine.assets.permissions.list", + "path": "assets/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "layers": { + "methods": { + "cancelProcessing": { + "id": "mapsengine.layers.cancelProcessing", + "path": "layers/{id}/cancelProcessing", + "httpMethod": "POST", + "description": "Cancel processing on a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "create": { + "id": "mapsengine.layers.create", + "path": "layers", + "httpMethod": "POST", + "description": "Create a layer asset.", + "parameters": { + "process": { + "type": "boolean", + "description": "Whether to queue the created layer for processing.", + "location": "query" + } + }, + "request": { + "$ref": "Layer" + }, + "response": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.layers.delete", + "path": "layers/{id}", + "httpMethod": "DELETE", + "description": "Delete a layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer. Only the layer creator or project owner are permitted to delete. If the layer is published, or included in a map, the request will fail. Unpublish the layer, and remove it from all maps prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.layers.get", + "path": "layers/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "Deprecated: The version parameter indicates which version of the layer should be returned. When version is set to published, the published version of the layer will be returned. Please use the layers.getPublished endpoint instead.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "getPublished": { + "id": "mapsengine.layers.getPublished", + "path": "layers/{id}/published", + "httpMethod": "GET", + "description": "Return the published metadata for a particular layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishedLayer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.layers.list", + "path": "layers", + "httpMethod": "GET", + "description": "Return all layers readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The layer has completed processing.", + "The layer has failed processing.", + "The layer is not ready for processing.", + "The layer is processing.", + "The layer is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "LayersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "listPublished": { + "id": "mapsengine.layers.listPublished", + "path": "layers/published", + "httpMethod": "GET", + "description": "Return all published layers readable by the current user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + } + }, + "response": { + "$ref": "PublishedLayersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.layers.patch", + "path": "layers/{id}", + "httpMethod": "PATCH", + "description": "Mutate a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.layers.process", + "path": "layers/{id}/process", + "httpMethod": "POST", + "description": "Process a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "publish": { + "id": "mapsengine.layers.publish", + "path": "layers/{id}/publish", + "httpMethod": "POST", + "description": "Publish a layer asset.", + "parameters": { + "force": { + "type": "boolean", + "description": "If set to true, the API will allow publication of the layer even if it's out of date. If not true, you'll need to reprocess any out-of-date layer before publishing.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "unpublish": { + "id": "mapsengine.layers.unpublish", + "path": "layers/{id}/unpublish", + "httpMethod": "POST", + "description": "Unpublish a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.layers.parents.list", + "path": "layers/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.layers.permissions.batchDelete", + "path": "layers/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.layers.permissions.batchUpdate", + "path": "layers/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.layers.permissions.list", + "path": "layers/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "maps": { + "methods": { + "create": { + "id": "mapsengine.maps.create", + "path": "maps", + "httpMethod": "POST", + "description": "Create a map asset.", + "request": { + "$ref": "Map" + }, + "response": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.maps.delete", + "path": "maps/{id}", + "httpMethod": "DELETE", + "description": "Delete a map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map. Only the map creator or project owner are permitted to delete. If the map is published the request will fail. Unpublish the map prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.maps.get", + "path": "maps/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "Deprecated: The version parameter indicates which version of the map should be returned. When version is set to published, the published version of the map will be returned. Please use the maps.getPublished endpoint instead.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "getPublished": { + "id": "mapsengine.maps.getPublished", + "path": "maps/{id}/published", + "httpMethod": "GET", + "description": "Return the published metadata for a particular map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishedMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.maps.list", + "path": "maps", + "httpMethod": "GET", + "description": "Return all maps readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing" + ], + "enumDescriptions": [ + "The map has completed processing.", + "The map has failed processing.", + "The map is not ready for processing.", + "The map is processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + }, + "version": { + "type": "string", + "description": "Deprecated: The version parameter indicates which version of the maps should be returned. When version is set to published this parameter will filter the result set to include only maps that are published. Please use the maps.listPublished endpoint instead.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "response": { + "$ref": "MapsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "listPublished": { + "id": "mapsengine.maps.listPublished", + "path": "maps/published", + "httpMethod": "GET", + "description": "Return all published maps readable by the current user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + } + }, + "response": { + "$ref": "PublishedMapsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.maps.patch", + "path": "maps/{id}", + "httpMethod": "PATCH", + "description": "Mutate a map asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "publish": { + "id": "mapsengine.maps.publish", + "path": "maps/{id}/publish", + "httpMethod": "POST", + "description": "Publish a map asset.", + "parameters": { + "force": { + "type": "boolean", + "description": "If set to true, the API will allow publication of the map even if it's out of date. If false, the map must have a processingStatus of complete before publishing.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "unpublish": { + "id": "mapsengine.maps.unpublish", + "path": "maps/{id}/unpublish", + "httpMethod": "POST", + "description": "Unpublish a map asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.maps.permissions.batchDelete", + "path": "maps/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.maps.permissions.batchUpdate", + "path": "maps/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.maps.permissions.list", + "path": "maps/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "projects": { + "methods": { + "list": { + "id": "mapsengine.projects.list", + "path": "projects", + "httpMethod": "GET", + "description": "Return all projects readable by the current user.", + "response": { + "$ref": "ProjectsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + }, + "resources": { + "icons": { + "methods": { + "create": { + "id": "mapsengine.projects.icons.create", + "path": "projects/{projectId}/icons", + "httpMethod": "POST", + "description": "Create an icon.", + "parameters": { + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Icon" + }, + "response": { + "$ref": "Icon" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "100KB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/exp2/projects/{projectId}/icons" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/exp2/projects/{projectId}/icons" + } + } + } + }, + "get": { + "id": "mapsengine.projects.icons.get", + "path": "projects/{projectId}/icons/{id}", + "httpMethod": "GET", + "description": "Return an icon or its associated metadata", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the icon.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "id" + ], + "response": { + "$ref": "Icon" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "mapsengine.projects.icons.list", + "path": "projects/{projectId}/icons", + "httpMethod": "GET", + "description": "Return all icons in the current project", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "IconsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "rasterCollections": { + "methods": { + "cancelProcessing": { + "id": "mapsengine.rasterCollections.cancelProcessing", + "path": "rasterCollections/{id}/cancelProcessing", + "httpMethod": "POST", + "description": "Cancel processing on a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "create": { + "id": "mapsengine.rasterCollections.create", + "path": "rasterCollections", + "httpMethod": "POST", + "description": "Create a raster collection asset.", + "request": { + "$ref": "RasterCollection" + }, + "response": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.rasterCollections.delete", + "path": "rasterCollections/{id}", + "httpMethod": "DELETE", + "description": "Delete a raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection. Only the raster collection creator or project owner are permitted to delete. If the rastor collection is included in a layer, the request will fail. Remove the raster collection from all layers prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.rasterCollections.get", + "path": "rasterCollections/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.list", + "path": "rasterCollections", + "httpMethod": "GET", + "description": "Return all raster collections readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The raster collection has completed processing.", + "The raster collection has failed processing.", + "The raster collection is not ready for processing.", + "The raster collection is processing.", + "The raster collection is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "RasterCollectionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.rasterCollections.patch", + "path": "rasterCollections/{id}", + "httpMethod": "PATCH", + "description": "Mutate a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.rasterCollections.process", + "path": "rasterCollections/{id}/process", + "httpMethod": "POST", + "description": "Process a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.rasterCollections.parents.list", + "path": "rasterCollections/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasterCollections.permissions.batchDelete", + "path": "rasterCollections/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.rasterCollections.permissions.batchUpdate", + "path": "rasterCollections/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.permissions.list", + "path": "rasterCollections/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "rasters": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasterCollections.rasters.batchDelete", + "path": "rasterCollections/{id}/rasters/batchDelete", + "httpMethod": "POST", + "description": "Remove rasters from an existing raster collection.\n\nUp to 50 rasters can be included in a single batchDelete request. Each batchDelete request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollectionsRasterBatchDeleteRequest" + }, + "response": { + "$ref": "RasterCollectionsRastersBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchInsert": { + "id": "mapsengine.rasterCollections.rasters.batchInsert", + "path": "rasterCollections/{id}/rasters/batchInsert", + "httpMethod": "POST", + "description": "Add rasters to an existing raster collection. Rasters must be successfully processed in order to be added to a raster collection.\n\nUp to 50 rasters can be included in a single batchInsert request. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollectionsRastersBatchInsertRequest" + }, + "response": { + "$ref": "RasterCollectionsRastersBatchInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.rasters.list", + "path": "rasterCollections/{id}/rasters", + "httpMethod": "GET", + "description": "Return all rasters within a raster collection.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "RasterCollectionsRastersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "rasters": { + "methods": { + "delete": { + "id": "mapsengine.rasters.delete", + "path": "rasters/{id}", + "httpMethod": "DELETE", + "description": "Delete a raster.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster. Only the raster creator or project owner are permitted to delete. If the raster is included in a layer or mosaic, the request will fail. Remove it from all parents prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.rasters.get", + "path": "rasters/{id}", + "httpMethod": "GET", + "description": "Return metadata for a single raster.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.rasters.list", + "path": "rasters", + "httpMethod": "GET", + "description": "Return all rasters readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The raster has completed processing.", + "The raster has failed processing.", + "The raster is not ready for processing.", + "The raster is processing.", + "The raster is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "required": true, + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "RastersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.rasters.patch", + "path": "rasters/{id}", + "httpMethod": "PATCH", + "description": "Mutate a raster asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.rasters.process", + "path": "rasters/{id}/process", + "httpMethod": "POST", + "description": "Process a raster asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "upload": { + "id": "mapsengine.rasters.upload", + "path": "rasters/upload", + "httpMethod": "POST", + "description": "Create a skeleton raster asset for upload.", + "request": { + "$ref": "Raster" + }, + "response": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "files": { + "methods": { + "insert": { + "id": "mapsengine.rasters.files.insert", + "path": "rasters/{id}/files", + "httpMethod": "POST", + "description": "Upload a file to a raster asset.", + "parameters": { + "filename": { + "type": "string", + "description": "The file name of this uploaded file.", + "required": true, + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the raster asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id", + "filename" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "10GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/exp2/rasters/{id}/files" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/exp2/rasters/{id}/files" + } + } + } + } + } + }, + "parents": { + "methods": { + "list": { + "id": "mapsengine.rasters.parents.list", + "path": "rasters/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified rasters.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the rasters whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasters.permissions.batchDelete", + "path": "rasters/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.rasters.permissions.batchUpdate", + "path": "rasters/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasters.permissions.list", + "path": "rasters/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "tables": { + "methods": { + "create": { + "id": "mapsengine.tables.create", + "path": "tables", + "httpMethod": "POST", + "description": "Create a table asset.", + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.tables.delete", + "path": "tables/{id}", + "httpMethod": "DELETE", + "description": "Delete a table.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table. Only the table creator or project owner are permitted to delete. If the table is included in a layer, the request will fail. Remove it from all layers prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.tables.get", + "path": "tables/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular table, including the schema.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.tables.list", + "path": "tables", + "httpMethod": "GET", + "description": "Return all tables readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The table has completed processing.", + "The table has failed processing.", + "The table is not ready for processing.", + "The table is processing.", + "The table is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "TablesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.tables.patch", + "path": "tables/{id}", + "httpMethod": "PATCH", + "description": "Mutate a table asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.tables.process", + "path": "tables/{id}/process", + "httpMethod": "POST", + "description": "Process a table asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "upload": { + "id": "mapsengine.tables.upload", + "path": "tables/upload", + "httpMethod": "POST", + "description": "Create a placeholder table asset to which table files can be uploaded.\nOnce the placeholder has been created, files are uploaded to the https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files endpoint.\nSee Table Upload in the Developer's Guide or Table.files: insert in the reference documentation for more information.", + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "features": { + "methods": { + "batchDelete": { + "id": "mapsengine.tables.features.batchDelete", + "path": "tables/{id}/features/batchDelete", + "httpMethod": "POST", + "description": "Delete all features matching the given IDs.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table that contains the features to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchDeleteRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchInsert": { + "id": "mapsengine.tables.features.batchInsert", + "path": "tables/{id}/features/batchInsert", + "httpMethod": "POST", + "description": "Append features to an existing table.\n\nA single batchInsert request can create:\n\n- Up to 50 features.\n- A combined total of 10 000 vertices.\nFeature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.\n\nFor more information about inserting features, read Creating features in the Google Maps Engine developer's guide.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table to append the features to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchInsertRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchPatch": { + "id": "mapsengine.tables.features.batchPatch", + "path": "tables/{id}/features/batchPatch", + "httpMethod": "POST", + "description": "Update the supplied features.\n\nA single batchPatch request can update:\n\n- Up to 50 features.\n- A combined total of 10 000 vertices.\nFeature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.\n\nFeature updates use HTTP PATCH semantics:\n\n- A supplied value replaces an existing value (if any) in that field.\n- Omitted fields remain unchanged.\n- Complex values in geometries and properties must be replaced as atomic units. For example, providing just the coordinates of a geometry is not allowed; the complete geometry, including type, must be supplied.\n- Setting a property's value to null deletes that property.\nFor more information about updating features, read Updating features in the Google Maps Engine developer's guide.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table containing the features to be patched.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchPatchRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.tables.features.get", + "path": "tables/{tableId}/features/{id}", + "httpMethod": "GET", + "description": "Return a single feature, given its ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the feature to get.", + "required": true, + "location": "path" + }, + "select": { + "type": "string", + "description": "A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.", + "location": "query" + }, + "tableId": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "The table version to access. See Accessing Public Data for information.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "tableId", + "id" + ], + "response": { + "$ref": "Feature" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.tables.features.list", + "path": "tables/{id}/features", + "httpMethod": "GET", + "description": "Return all features readable by the current user.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table to which these features belong.", + "required": true, + "location": "path" + }, + "include": { + "type": "string", + "description": "A comma separated list of optional data to include. Optional data available: schema.", + "location": "query" + }, + "intersects": { + "type": "string", + "description": "A geometry literal that specifies the spatial restriction of the query.", + "location": "query" + }, + "limit": { + "type": "integer", + "description": "The total number of features to return from the query, irrespective of the number of pages.", + "format": "uint32", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in the response, used for paging. The maximum supported value is 1000.", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "An SQL-like order by clause used to sort results. If this parameter is not included, the order of features is undefined.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "select": { + "type": "string", + "description": "A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.", + "location": "query" + }, + "version": { + "type": "string", + "description": "The table version to access. See Accessing Public Data for information.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + }, + "where": { + "type": "string", + "description": "An SQL-like predicate used to filter results.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "FeaturesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "files": { + "methods": { + "insert": { + "id": "mapsengine.tables.files.insert", + "path": "tables/{id}/files", + "httpMethod": "POST", + "description": "Upload a file to a placeholder table asset. See Table Upload in the Developer's Guide for more information.\nSupported file types are listed in the Supported data formats and limits article of the Google Maps Engine help center.", + "parameters": { + "filename": { + "type": "string", + "description": "The file name of this uploaded file.", + "required": true, + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the table asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id", + "filename" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "1GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/exp2/tables/{id}/files" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/exp2/tables/{id}/files" + } + } + } + } + } + }, + "parents": { + "methods": { + "list": { + "id": "mapsengine.tables.parents.list", + "path": "tables/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified table.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.tables.permissions.batchDelete", + "path": "tables/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.tables.permissions.batchUpdate", + "path": "tables/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.tables.permissions.list", + "path": "tables/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + } + } +} diff --git a/etc/api/mapsengine/v1/mapsengine-api.json b/etc/api/mapsengine/v1/mapsengine-api.json new file mode 100644 index 0000000000..864791d225 --- /dev/null +++ b/etc/api/mapsengine/v1/mapsengine-api.json @@ -0,0 +1,5352 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/xRQmfo4WYHt7ESOziu0ToVNCLZc\"", + "discoveryVersion": "v1", + "id": "mapsengine:v1", + "name": "mapsengine", + "canonicalName": "Maps Engine", + "version": "v1", + "revision": "20150120", + "title": "Google Maps Engine API", + "description": "The Google Maps Engine API allows developers to store and query geospatial vector and raster data.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/maps_engine-16.png", + "x32": "https://www.google.com/images/icons/product/maps_engine-32.png" + }, + "documentationLink": "https://developers.google.com/maps-engine/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/mapsengine/v1/", + "basePath": "/mapsengine/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "mapsengine/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/mapsengine": { + "description": "View and manage your Google My Maps data" + }, + "https://www.googleapis.com/auth/mapsengine.readonly": { + "description": "View your Google My Maps data" + } + } + } + }, + "schemas": { + "AcquisitionTime": { + "id": "AcquisitionTime", + "type": "object", + "description": "Acquisition time represents acquired time of a raster.", + "properties": { + "end": { + "type": "string", + "description": "The end time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "precision": { + "type": "string", + "description": "The precision of acquisition time.", + "enum": [ + "day", + "hour", + "minute", + "month", + "second", + "year" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ] + }, + "start": { + "type": "string", + "description": "The acquisition time, or start time if acquisition time is a range. The value is an RFC 3339 formatted date-time value (1970-01-01T00:00:00Z).", + "format": "date-time" + } + } + }, + "Asset": { + "id": "Asset", + "type": "object", + "description": "An asset is any Google Maps Engine resource that has a globally unique ID. Assets include maps, layers, vector tables, raster collections, and rasters. Projects and features are not considered assets.\n\nMore detailed information about an asset can be obtained by querying the asset's particular endpoint.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this asset. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this asset. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The asset's description." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "The asset's globally unique ID." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this asset. The value is an RFC 3339-formatted date-time value (for example, 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this asset. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The asset's name." + }, + "projectId": { + "type": "string", + "description": "The ID of the project to which the asset belongs." + }, + "resource": { + "type": "string", + "description": "The URL to query to retrieve the asset's complete object. The assets endpoint only returns high-level information about a resource." + }, + "tags": { + "type": "array", + "description": "An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center.", + "items": { + "type": "string" + } + }, + "type": { + "type": "string", + "description": "The type of asset. One of raster, rasterCollection, table, map, or layer.", + "enum": [ + "layer", + "map", + "raster", + "rasterCollection", + "table" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "AssetsListResponse": { + "id": "AssetsListResponse", + "type": "object", + "description": "The response returned by a call to resources.List.", + "properties": { + "assets": { + "type": "array", + "description": "Assets returned.", + "items": { + "$ref": "Asset" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Border": { + "id": "Border", + "type": "object", + "description": "Border in line style. Both color and width are required.", + "properties": { + "color": { + "type": "string", + "description": "Color of the border.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity of the border.", + "format": "double" + }, + "width": { + "type": "number", + "description": "Width of the border, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Color": { + "id": "Color", + "type": "object", + "description": "Basic color used in styling.", + "properties": { + "color": { + "type": "string", + "description": "The CSS style color, can be in format of \"red\" or \"#7733EE\".", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.", + "format": "double" + } + } + }, + "Datasource": { + "id": "Datasource", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of a datasource." + } + } + }, + "Datasources": { + "id": "Datasources", + "type": "array", + "items": { + "$ref": "Datasource" + } + }, + "DisplayRule": { + "id": "DisplayRule", + "type": "object", + "description": "A display rule of the vector style.", + "properties": { + "filters": { + "type": "array", + "description": "This display rule will only be applied to features that match all of the filters here. If filters is empty, then the rule applies to all features.", + "items": { + "$ref": "Filter" + } + }, + "lineOptions": { + "$ref": "LineStyle", + "description": "Style applied to lines. Required for LineString Geometry." + }, + "name": { + "type": "string", + "description": "Display rule name. Name is not unique and cannot be used for identification purpose." + }, + "pointOptions": { + "$ref": "PointStyle", + "description": "Style applied to points. Required for Point Geometry." + }, + "polygonOptions": { + "$ref": "PolygonStyle", + "description": "Style applied to polygons. Required for Polygon Geometry." + }, + "zoomLevels": { + "$ref": "ZoomLevels", + "description": "The zoom levels that this display rule apply.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Feature": { + "id": "Feature", + "type": "object", + "description": "A feature within a table.", + "properties": { + "geometry": { + "$ref": "GeoJsonGeometry", + "description": "The geometry member of this Feature." + }, + "properties": { + "$ref": "GeoJsonProperties", + "description": "Key/value pairs of this Feature." + }, + "type": { + "type": "string", + "description": "Identifies this object as a feature.", + "default": "Feature" + } + } + }, + "FeatureInfo": { + "id": "FeatureInfo", + "type": "object", + "description": "A feature info contains information about individual feature.", + "properties": { + "content": { + "type": "string", + "description": "HTML template of the info window. If not provided, a default template with all attributes will be generated." + } + } + }, + "FeaturesBatchDeleteRequest": { + "id": "FeaturesBatchDeleteRequest", + "type": "object", + "description": "The request sent to features.BatchDelete.", + "properties": { + "gx_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "primaryKeys": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "FeaturesBatchInsertRequest": { + "id": "FeaturesBatchInsertRequest", + "type": "object", + "description": "The request sent to features.Insert.", + "properties": { + "features": { + "type": "array", + "items": { + "$ref": "Feature" + } + }, + "normalizeGeometries": { + "type": "boolean", + "description": "If true, the server will normalize feature geometries. It is assumed that the South Pole is exterior to any polygons given. See here for a list of normalizations. If false, all feature geometries must be given already normalized. The points in all LinearRings must be listed in counter-clockwise order, and LinearRings may not intersect.", + "default": "true" + } + } + }, + "FeaturesBatchPatchRequest": { + "id": "FeaturesBatchPatchRequest", + "type": "object", + "description": "The request sent to features.BatchPatch.", + "properties": { + "features": { + "type": "array", + "items": { + "$ref": "Feature" + } + }, + "normalizeGeometries": { + "type": "boolean", + "description": "If true, the server will normalize feature geometries. It is assumed that the South Pole is exterior to any polygons given. See here for a list of normalizations. If false, all feature geometries must be given already normalized. The points in all LinearRings must be listed in counter-clockwise order, and LinearRings may not intersect.", + "default": "true" + } + } + }, + "FeaturesListResponse": { + "id": "FeaturesListResponse", + "type": "object", + "description": "The response returned by a call to features.List.", + "properties": { + "allowedQueriesPerSecond": { + "type": "number", + "description": "An indicator of the maximum rate at which queries may be made, if all queries were as expensive as this query.", + "format": "double" + }, + "features": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Feature" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "schema": { + "$ref": "Schema", + "description": "The feature schema." + }, + "type": { + "type": "string", + "default": "FeatureCollection" + } + } + }, + "File": { + "id": "File", + "type": "object", + "description": "A single File, which is a component of an Asset.", + "properties": { + "filename": { + "type": "string", + "description": "The name of the file.", + "annotations": { + "required": [ + "mapsengine.rasters.upload", + "mapsengine.tables.upload" + ] + } + }, + "size": { + "type": "string", + "description": "The size of the file in bytes.", + "format": "int64" + }, + "uploadStatus": { + "type": "string", + "description": "The upload status of the file.", + "enum": [ + "canceled", + "complete", + "failed", + "inProgress" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ] + } + } + }, + "Filter": { + "id": "Filter", + "type": "object", + "description": "Conditions for filtering features.", + "properties": { + "column": { + "type": "string", + "description": "The column name to filter on.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "operator": { + "type": "string", + "description": "Operation used to evaluate the filter.", + "enum": [ + "!=", + "\u003c", + "\u003c=", + "==", + "\u003e", + "\u003e=", + "contains", + "endsWith", + "startsWith" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "value": { + "type": "any", + "description": "Value to be evaluated against attribute.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "GeoJsonGeometry": { + "id": "GeoJsonGeometry", + "type": "object", + "variant": { + "discriminant": "type", + "map": [ + { + "type_value": "GeometryCollection", + "$ref": "GeoJsonGeometryCollection" + }, + { + "type_value": "LineString", + "$ref": "GeoJsonLineString" + }, + { + "type_value": "MultiLineString", + "$ref": "GeoJsonMultiLineString" + }, + { + "type_value": "MultiPoint", + "$ref": "GeoJsonMultiPoint" + }, + { + "type_value": "MultiPolygon", + "$ref": "GeoJsonMultiPolygon" + }, + { + "type_value": "Point", + "$ref": "GeoJsonPoint" + }, + { + "type_value": "Polygon", + "$ref": "GeoJsonPolygon" + } + ] + } + }, + "GeoJsonGeometryCollection": { + "id": "GeoJsonGeometryCollection", + "type": "object", + "description": "A heterogenous collection of GeoJsonGeometry objects.", + "properties": { + "geometries": { + "type": "array", + "description": "An array of geometry objects. There must be at least 2 different types of geometries in the array.", + "items": { + "$ref": "GeoJsonGeometry" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonGeometryCollection.", + "enum": [ + "GeometryCollection" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonLineString": { + "id": "GeoJsonLineString", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of two or more positions, representing a line.", + "items": { + "$ref": "GeoJsonPosition" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonLineString.", + "enum": [ + "LineString" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiLineString": { + "id": "GeoJsonMultiLineString", + "type": "object", + "description": "Multi Line String", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonLineString coordinate arrays.", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiLineString.", + "enum": [ + "MultiLineString" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiPoint": { + "id": "GeoJsonMultiPoint", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonPoint coordinate arrays.", + "items": { + "$ref": "GeoJsonPosition" + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiPoint.", + "enum": [ + "MultiPoint" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonMultiPolygon": { + "id": "GeoJsonMultiPolygon", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of at least two GeoJsonPolygon coordinate arrays.", + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonMultiPolygon.", + "enum": [ + "MultiPolygon" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPoint": { + "id": "GeoJsonPoint", + "type": "object", + "properties": { + "coordinates": { + "$ref": "GeoJsonPosition", + "description": "A single GeoJsonPosition, specifying the location of the point." + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonPoint.", + "enum": [ + "Point" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPolygon": { + "id": "GeoJsonPolygon", + "type": "object", + "properties": { + "coordinates": { + "type": "array", + "description": "An array of LinearRings. A LinearRing is a GeoJsonLineString which is closed (that is, the first and last GeoJsonPositions are equal), and which contains at least four GeoJsonPositions. For polygons with multiple rings, the first LinearRing is the exterior ring, and any subsequent rings are interior rings (that is, holes).", + "items": { + "type": "array", + "items": { + "$ref": "GeoJsonPosition" + } + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a GeoJsonPolygon.", + "enum": [ + "Polygon" + ], + "enumDescriptions": [ + "" + ] + } + } + }, + "GeoJsonPosition": { + "id": "GeoJsonPosition", + "type": "array", + "description": "A position represents a geographical position as an array containing a longitude and a latitude, and optionally an altitude, in that order. All Geometry objects make use of positions to represent geometries as nested arrays. The structure of the array is governed by the type of the geometry.", + "items": { + "type": "number", + "format": "double" + } + }, + "GeoJsonProperties": { + "id": "GeoJsonProperties", + "type": "object", + "description": "The properties associated with a feature.", + "additionalProperties": { + "type": "any", + "description": "An arbitrary key-value pair. The key must be the name of a column in the table's schema, and the type of the value must correspond to the type specified in the schema." + } + }, + "Icon": { + "id": "Icon", + "type": "object", + "description": "An icon is a user-uploaded image that can be used to style point geometries.", + "properties": { + "description": { + "type": "string", + "description": "The description of this Icon, supplied by the author." + }, + "id": { + "type": "string", + "description": "An ID used to refer to this Icon." + }, + "name": { + "type": "string", + "description": "The name of this Icon, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.projects.icons.create" + ] + } + } + } + }, + "IconStyle": { + "id": "IconStyle", + "type": "object", + "description": "Style for icon, this is part of point style.", + "properties": { + "id": { + "type": "string", + "description": "Custom icon id." + }, + "name": { + "type": "string", + "description": "Stock icon name. To use a stock icon, prefix it with 'gx_'. See Stock icon names for valid icon names. For example, to specify small_red, set name to 'gx_small_red'." + }, + "scaledShape": { + "$ref": "ScaledShape", + "description": "A scalable shape." + }, + "scalingFunction": { + "$ref": "ScalingFunction", + "description": "The function used to scale shapes. Required when a scaledShape is specified." + } + } + }, + "IconsListResponse": { + "id": "IconsListResponse", + "type": "object", + "description": "The response returned by a call to icons.List.", + "properties": { + "icons": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Icon" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token." + } + } + }, + "LabelStyle": { + "id": "LabelStyle", + "type": "object", + "description": "Text label style.", + "properties": { + "color": { + "type": "string", + "description": "Color of the text. If not provided, default to black." + }, + "column": { + "type": "string", + "description": "The column value of the feature to be displayed.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "fontStyle": { + "type": "string", + "description": "Font style of the label, defaults to 'normal'.", + "enum": [ + "italic", + "normal" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "fontWeight": { + "type": "string", + "description": "Font weight of the label, defaults to 'normal'.", + "enum": [ + "bold", + "normal" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "opacity": { + "type": "number", + "description": "Opacity of the text.", + "format": "double" + }, + "outline": { + "$ref": "Color", + "description": "Outline color of the text." + }, + "size": { + "type": "number", + "description": "Font size of the label, in pixels. 8 \u003c= size \u003c= 15. If not provided, a default size will be provided.", + "format": "double" + } + } + }, + "LatLngBox": { + "id": "LatLngBox", + "type": "array", + "description": "A rectangular geographic bounds.", + "items": { + "type": "number", + "format": "double" + } + }, + "Layer": { + "id": "Layer", + "type": "object", + "description": "A Layer combines multiple datasources, with styling information, for presentation on a map.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Layer. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this layer. This is only returned on GET requests and not LIST requests." + }, + "datasourceType": { + "type": "string", + "description": "Deprecated: The type of the datasources used to build this Layer. Note: This has been replaced by layerType, but is still available for now to maintain backward compatibility.", + "enum": [ + "image", + "table" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "datasources": { + "$ref": "Datasources", + "description": "An array of datasources used to build this layer. If layerType is \"image\", or layerType is not specified and datasourceType is \"image\", then each element in this array is a reference to an Image or RasterCollection. If layerType is \"vector\", or layerType is not specified and datasourceType is \"table\" then each element in this array is a reference to a Vector Table." + }, + "description": { + "type": "string", + "description": "The description of this Layer, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Layer." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this layer. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this layer. This is only returned on GET requests and not LIST requests." + }, + "layerType": { + "type": "string", + "description": "The type of the datasources used to build this Layer. This should be used instead of datasourceType. At least one of layerType and datasourceType and must be specified, but layerType takes precedence.", + "enum": [ + "image", + "vector" + ], + "enumDescriptions": [ + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this Layer, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this layer.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Layer is in.", + "annotations": { + "required": [ + "mapsengine.layers.create" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "publishingStatus": { + "type": "string", + "description": "The publishing status of this layer.", + "enum": [ + "notPublished", + "published" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "style": { + "$ref": "VectorStyle", + "description": "The styling information for a vector layer. Note: Style information is returned in response to a get request but not a list request. After requesting a list of layers, you'll need to send a get request to retrieve the VectorStyles for each layer." + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Layer." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "LayersListResponse": { + "id": "LayersListResponse", + "type": "object", + "description": "The response returned by a call to layers.List. Note: The list response does not include all the fields available in a layer. Refer to the layer resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each layer.", + "properties": { + "layers": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Layer" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "LineStyle": { + "id": "LineStyle", + "type": "object", + "description": "Style for lines.", + "properties": { + "border": { + "$ref": "Border", + "description": "Border of the line. 0 \u003c border.width \u003c= 5." + }, + "dash": { + "type": "array", + "description": "Dash defines the pattern of the line, the values are pixel lengths of alternating dash and gap. If dash is not provided, then it means a solid line. Dash can contain up to 10 values and must contain even number of values.", + "items": { + "type": "number", + "format": "double" + } + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the line." + }, + "stroke": { + "type": "object", + "description": "Stroke of the line.", + "properties": { + "color": { + "type": "string", + "description": "Color of the line.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "opacity": { + "type": "number", + "description": "Opacity of the line.", + "format": "double" + }, + "width": { + "type": "number", + "description": "Width of the line, in pixels. 0 \u003c= width \u003c= 10. If width is set to 0, the line will be invisible.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + } + } + }, + "Map": { + "id": "Map", + "type": "object", + "description": "A Map is a collection of Layers, optionally contained within folders.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Map. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "contents": { + "$ref": "MapContents", + "description": "The contents of this Map." + }, + "creationTime": { + "type": "string", + "description": "The creation time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this map. This is only returned on GET requests and not LIST requests." + }, + "defaultViewport": { + "$ref": "LatLngBox", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees." + }, + "description": { + "type": "string", + "description": "The description of this Map, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Map." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this map. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this map. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The name of this Map, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.maps.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this map. Map processing is automatically started once a map becomes ready for processing.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Map is in.", + "annotations": { + "required": [ + "mapsengine.maps.create" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. This is an input field only. It is not returned in response to a list or get request." + }, + "publishingStatus": { + "type": "string", + "description": "The publishing status of this map.", + "enum": [ + "notPublished", + "published" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Map." + }, + "versions": { + "type": "array", + "description": "Deprecated: An array containing the available versions of this Map. Currently may only contain \"published\". The publishingStatus field should be used instead.", + "items": { + "type": "string", + "default": "published" + } + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "MapContents": { + "id": "MapContents", + "type": "array", + "items": { + "$ref": "MapItem" + } + }, + "MapFolder": { + "id": "MapFolder", + "type": "object", + "properties": { + "contents": { + "type": "array", + "items": { + "$ref": "MapItem" + } + }, + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "expandable": { + "type": "boolean", + "description": "The expandability setting of this MapFolder. If true, the folder can be expanded." + }, + "key": { + "type": "string", + "description": "A user defined alias for this MapFolder, specific to this Map." + }, + "name": { + "type": "string", + "description": "The name of this MapFolder.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapFolder.", + "enum": [ + "folder" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapFolder. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapItem": { + "id": "MapItem", + "type": "object", + "variant": { + "discriminant": "type", + "map": [ + { + "type_value": "folder", + "$ref": "MapFolder" + }, + { + "type_value": "kmlLink", + "$ref": "MapKmlLink" + }, + { + "type_value": "layer", + "$ref": "MapLayer" + } + ] + } + }, + "MapKmlLink": { + "id": "MapKmlLink", + "type": "object", + "properties": { + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "kmlUrl": { + "type": "string", + "description": "The URL to the KML file represented by this MapKmlLink.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this MapKmlLink.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapKmlLink.", + "enum": [ + "kmlLink" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapKmlLink. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapLayer": { + "id": "MapLayer", + "type": "object", + "properties": { + "defaultViewport": { + "type": "array", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "id": { + "type": "string", + "description": "The ID of this MapLayer. This ID can be used to request more details about the layer.", + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "key": { + "type": "string", + "description": "A user defined alias for this MapLayer, specific to this Map." + }, + "name": { + "type": "string", + "description": "The name of this MapLayer." + }, + "type": { + "type": "string", + "description": "Identifies this object as a MapLayer.", + "enum": [ + "layer" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.maps.create", + "mapsengine.maps.patch" + ] + } + }, + "visibility": { + "type": "string", + "description": "The visibility setting of this MapLayer. One of \"defaultOn\" or \"defaultOff\"." + } + } + }, + "MapsListResponse": { + "id": "MapsListResponse", + "type": "object", + "description": "The response returned by a call to maps.List.", + "properties": { + "maps": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Map" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Parent": { + "id": "Parent", + "type": "object", + "description": "A list of the parents of an asset.", + "properties": { + "id": { + "type": "string", + "description": "The ID of this parent." + } + } + }, + "ParentsListResponse": { + "id": "ParentsListResponse", + "type": "object", + "description": "The response returned by a call to parents.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "parents": { + "type": "array", + "description": "The parent assets.", + "items": { + "$ref": "Parent" + } + } + } + }, + "Permission": { + "id": "Permission", + "type": "object", + "description": "A permission defines the user or group that has access to an asset, and the type of access they have.", + "properties": { + "discoverable": { + "type": "boolean", + "description": "Indicates whether a public asset is listed and can be found via a web search (value true), or is visible only to people who have a link to the asset (value false)." + }, + "id": { + "type": "string", + "description": "The unique identifier of the permission. This could be the email address of the user or group this permission refers to, or the string \"anyone\" for public permissions.", + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + }, + "role": { + "type": "string", + "description": "The type of access granted to this user or group.", + "enum": [ + "owner", + "reader", + "viewer", + "writer" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + }, + "type": { + "type": "string", + "description": "The account type.", + "enum": [ + "anyone", + "group", + "user" + ], + "enumDescriptions": [ + "", + "", + "" + ] + } + } + }, + "PermissionsBatchDeleteRequest": { + "id": "PermissionsBatchDeleteRequest", + "type": "object", + "description": "The request sent to mapsengine.permissions.batchDelete.", + "properties": { + "ids": { + "type": "array", + "description": "An array of permission ids to be removed. This could be the email address of the user or group this permission refers to, or the string \"anyone\" for public permissions.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchDelete", + "mapsengine.maps.permissions.batchDelete", + "mapsengine.rasterCollections.permissions.batchDelete", + "mapsengine.tables.permissions.batchDelete" + ] + } + } + } + }, + "PermissionsBatchDeleteResponse": { + "id": "PermissionsBatchDeleteResponse", + "type": "object", + "description": "The response returned by a call to mapsengine.permissions.batchDelete." + }, + "PermissionsBatchUpdateRequest": { + "id": "PermissionsBatchUpdateRequest", + "type": "object", + "description": "The request sent to mapsengine.permissions.batchUpdate.", + "properties": { + "permissions": { + "type": "array", + "description": "The permissions to be inserted or updated.", + "items": { + "$ref": "Permission" + }, + "annotations": { + "required": [ + "mapsengine.layers.permissions.batchUpdate", + "mapsengine.maps.permissions.batchUpdate", + "mapsengine.rasterCollections.permissions.batchUpdate", + "mapsengine.tables.permissions.batchUpdate" + ] + } + } + } + }, + "PermissionsBatchUpdateResponse": { + "id": "PermissionsBatchUpdateResponse", + "type": "object", + "description": "The response returned by a call to mapsengine.permissions.batchUpdate." + }, + "PermissionsListResponse": { + "id": "PermissionsListResponse", + "type": "object", + "properties": { + "permissions": { + "type": "array", + "description": "The set of permissions associated with this asset.", + "items": { + "$ref": "Permission" + } + } + } + }, + "PointStyle": { + "id": "PointStyle", + "type": "object", + "description": "Style for points.", + "properties": { + "icon": { + "$ref": "IconStyle", + "description": "Icon for the point; if it isn't null, exactly one of 'name', 'id' or 'scaledShape' must be set.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the point." + } + } + }, + "PolygonStyle": { + "id": "PolygonStyle", + "type": "object", + "description": "Style for polygons.", + "properties": { + "fill": { + "$ref": "Color", + "description": "Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border." + }, + "label": { + "$ref": "LabelStyle", + "description": "Label style for the polygon." + }, + "stroke": { + "$ref": "Border", + "description": "Border of the polygon. 0 \u003c border.width \u003c= 10." + } + } + }, + "ProcessResponse": { + "id": "ProcessResponse", + "type": "object", + "description": "The response returned by a call to any asset's Process method." + }, + "Project": { + "id": "Project", + "type": "object", + "description": "A Maps Engine project groups a collection of resources.", + "properties": { + "id": { + "type": "string", + "description": "An ID used to refer to this Maps Engine project." + }, + "name": { + "type": "string", + "description": "A user provided name for this Maps Engine project." + } + } + }, + "ProjectsListResponse": { + "id": "ProjectsListResponse", + "type": "object", + "description": "The response returned by a call to projects.List.", + "properties": { + "projects": { + "type": "array", + "description": "Projects returned.", + "items": { + "$ref": "Project" + } + } + } + }, + "PublishResponse": { + "id": "PublishResponse", + "type": "object", + "description": "The response returned by a call to any asset's Publish method." + }, + "PublishedLayer": { + "id": "PublishedLayer", + "type": "object", + "description": "The published version of a layer.", + "properties": { + "description": { + "type": "string", + "description": "The description of this Layer, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Layer." + }, + "layerType": { + "type": "string", + "description": "The type of the datasources used to build this Layer. This should be used instead of datasourceType. At least one of layerType and datasourceType and must be specified, but layerType takes precedence.", + "enum": [ + "image", + "vector" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "name": { + "type": "string", + "description": "The name of this Layer, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Layer is in." + } + } + }, + "PublishedLayersListResponse": { + "id": "PublishedLayersListResponse", + "type": "object", + "description": "The response returned by a call to layers.List.published.", + "properties": { + "layers": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "PublishedLayer" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "PublishedMap": { + "id": "PublishedMap", + "type": "object", + "description": "The published version of a map asset.", + "properties": { + "contents": { + "$ref": "MapContents", + "description": "The contents of this Map." + }, + "defaultViewport": { + "$ref": "LatLngBox", + "description": "An array of four numbers (west, south, east, north) which defines the rectangular bounding box of the default viewport. The numbers represent latitude and longitude in decimal degrees." + }, + "description": { + "type": "string", + "description": "The description of this Map, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Map." + }, + "name": { + "type": "string", + "description": "The name of this Map, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Map is in." + } + } + }, + "PublishedMapsListResponse": { + "id": "PublishedMapsListResponse", + "type": "object", + "description": "The response returned by a call to maps.List.published.", + "properties": { + "maps": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "PublishedMap" + } + }, + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + } + } + }, + "Raster": { + "id": "Raster", + "type": "object", + "description": "A geo-referenced raster.", + "properties": { + "acquisitionTime": { + "$ref": "AcquisitionTime", + "description": "The acquisition time of this Raster." + }, + "attribution": { + "type": "string", + "description": "The name of the attribution to be used for this Raster." + }, + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Raster. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitudes and longitudes in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this raster. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this Raster, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "files": { + "type": "array", + "description": "The files associated with this Raster.", + "items": { + "$ref": "File" + }, + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Raster." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this raster. This is only returned on GET requests and not LIST requests." + }, + "maskType": { + "type": "string", + "description": "The mask processing type of this Raster.", + "default": "autoMask" + }, + "name": { + "type": "string", + "description": "The name of this Raster, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this Raster.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Raster is in.", + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "rasterType": { + "type": "string", + "description": "The type of this Raster. Always \"image\" today.", + "enum": [ + "image" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.rasters.upload" + ] + } + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this Raster." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "RasterCollection": { + "id": "RasterCollection", + "type": "object", + "description": "A raster collection groups multiple Raster resources for inclusion in a Layer.", + "properties": { + "attribution": { + "type": "string", + "description": "The name of the attribution to be used for this RasterCollection. Note: Attribution is returned in response to a get request but not a list request. After requesting a list of raster collections, you'll need to send a get request to retrieve the attribution for each raster collection." + }, + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this RasterCollection. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this RasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this raster collection. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this RasterCollection, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this RasterCollection." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this RasterCollection. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this raster collection. This is only returned on GET requests and not LIST requests." + }, + "mosaic": { + "type": "boolean", + "description": "True if this RasterCollection is a mosaic.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "name": { + "type": "string", + "description": "The name of this RasterCollection, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this RasterCollection.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this RasterCollection is in.", + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "rasterType": { + "type": "string", + "description": "The type of rasters contained within this RasterCollection.", + "enum": [ + "image" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.rasterCollections.create" + ] + } + }, + "tags": { + "$ref": "Tags", + "description": "Tags of this RasterCollection." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "RasterCollectionsListResponse": { + "id": "RasterCollectionsListResponse", + "type": "object", + "description": "The response returned by a call to raster_collections.List. Note: The list response does not include all the fields available in a raster collection. Refer to the RasterCollection resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each raster collection.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + }, + "rasterCollections": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "RasterCollection" + } + } + } + }, + "RasterCollectionsRaster": { + "id": "RasterCollectionsRaster", + "type": "object", + "description": "A raster resource.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Raster. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitudes and longitudes in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "The description of this Raster, supplied by the author." + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this Raster." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this raster. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "name": { + "type": "string", + "description": "The name of this Raster, supplied by the author." + }, + "projectId": { + "type": "string", + "description": "The ID of the project that this Raster is in." + }, + "rasterType": { + "type": "string", + "description": "The type of this Raster. Always \"image\" today.", + "default": "image" + }, + "tags": { + "type": "array", + "description": "Tags of this Raster.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRasterBatchDeleteRequest": { + "id": "RasterCollectionsRasterBatchDeleteRequest", + "type": "object", + "description": "The request sent to rasterCollections.Rasters.BatchDelete.", + "properties": { + "ids": { + "type": "array", + "description": "An array of Raster asset IDs to be removed from this RasterCollection.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRastersBatchDeleteResponse": { + "id": "RasterCollectionsRastersBatchDeleteResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.batchDelete." + }, + "RasterCollectionsRastersBatchInsertRequest": { + "id": "RasterCollectionsRastersBatchInsertRequest", + "type": "object", + "description": "The request sent to rasterCollections.Rasters.BatchInsert.", + "properties": { + "ids": { + "type": "array", + "description": "An array of Raster asset IDs to be added to this RasterCollection.", + "items": { + "type": "string" + } + } + } + }, + "RasterCollectionsRastersBatchInsertResponse": { + "id": "RasterCollectionsRastersBatchInsertResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.batchInsert." + }, + "RasterCollectionsRastersListResponse": { + "id": "RasterCollectionsRastersListResponse", + "type": "object", + "description": "The response returned by a call to rasterCollections.rasters.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "rasters": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "RasterCollectionsRaster" + } + } + } + }, + "RastersListResponse": { + "id": "RastersListResponse", + "type": "object", + "description": "The response returned by a call to rasters.List.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token." + }, + "rasters": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Raster" + } + } + } + }, + "ScaledShape": { + "id": "ScaledShape", + "type": "object", + "description": "Parameters for styling points as scaled shapes.", + "properties": { + "border": { + "$ref": "Border", + "description": "Border color/width of the shape. If not specified the shape won't have a border." + }, + "fill": { + "$ref": "Color", + "description": "The fill color of the shape. If not specified the shape will be transparent (although the borders may not be)." + }, + "shape": { + "type": "string", + "description": "Name of the shape.", + "enum": [ + "circle" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "ScalingFunction": { + "id": "ScalingFunction", + "type": "object", + "description": "Parameters for scaling scaled shapes.", + "properties": { + "column": { + "type": "string", + "description": "Name of the numeric column used to scale a shape.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "scalingType": { + "type": "string", + "description": "The type of scaling function to use. Defaults to SQRT. Currently only linear and square root scaling are supported.", + "enum": [ + "linear", + "sqrt" + ], + "enumDescriptions": [ + "", + "" + ] + }, + "sizeRange": { + "$ref": "SizeRange", + "description": "The range of shape sizes, in pixels. For circles, the size corresponds to the diameter.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "valueRange": { + "$ref": "ValueRange", + "description": "The range of values to display across the size range.", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Schema": { + "id": "Schema", + "type": "object", + "description": "A schema indicating the properties which may be associated with features within a Table, and the types of those properties.", + "properties": { + "columns": { + "type": "array", + "description": "An array of TableColumn objects. The first object in the array must be named geometry and be of type points, lineStrings, polygons, or mixedGeometry.", + "items": { + "$ref": "TableColumn" + }, + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "primaryGeometry": { + "type": "string", + "description": "The name of the column that contains a feature's geometry. This field can be omitted during table create; Google Maps Engine supports only a single geometry column, which must be named geometry and be the first object in the columns array." + }, + "primaryKey": { + "type": "string", + "description": "The name of the column that contains the unique identifier of a Feature." + } + } + }, + "SizeRange": { + "id": "SizeRange", + "type": "object", + "description": "Scaled shape size range in pixels. For circles, size corresponds to diameter.", + "properties": { + "max": { + "type": "number", + "description": "Maximum size, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "number", + "description": "Minimum size, in pixels.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "Table": { + "id": "Table", + "type": "object", + "description": "A collection of geographic features, and associated metadata.", + "properties": { + "bbox": { + "type": "array", + "description": "A rectangular bounding box which contains all of the data in this Table. The box is expressed as \\\"west, south, east, north\\\". The numbers represent latitude and longitude in decimal degrees.", + "items": { + "type": "number", + "format": "double" + } + }, + "creationTime": { + "type": "string", + "description": "The creation time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "creatorEmail": { + "type": "string", + "description": "The email address of the creator of this table. This is only returned on GET requests and not LIST requests." + }, + "description": { + "type": "string", + "description": "The description of this table, supplied by the author." + }, + "draftAccessList": { + "type": "string", + "description": "Deprecated: The name of an access list of the Map Editor type. The user on whose behalf the request is being sent must be an editor on that access list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "etag": { + "type": "string", + "description": "The ETag, used to refer to the current version of the asset." + }, + "files": { + "type": "array", + "description": "The files associated with this table.", + "items": { + "$ref": "File" + }, + "annotations": { + "required": [ + "mapsengine.tables.upload" + ] + } + }, + "id": { + "type": "string", + "description": "A globally unique ID, used to refer to this table." + }, + "lastModifiedTime": { + "type": "string", + "description": "The last modified time of this table. The value is an RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z).", + "format": "date-time" + }, + "lastModifierEmail": { + "type": "string", + "description": "The email address of the last modifier of this table. This is only returned on GET requests and not LIST requests." + }, + "name": { + "type": "string", + "description": "The name of this table, supplied by the author.", + "annotations": { + "required": [ + "mapsengine.tables.create", + "mapsengine.tables.upload" + ] + } + }, + "processingStatus": { + "type": "string", + "description": "The processing status of this table.", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "projectId": { + "type": "string", + "description": "The ID of the project to which the table belongs.", + "annotations": { + "required": [ + "mapsengine.tables.create", + "mapsengine.tables.upload" + ] + } + }, + "publishedAccessList": { + "type": "string", + "description": "Deprecated: The access list to whom view permissions are granted. The value must be the name of a Maps Engine access list of the Map Viewer type, and the user must be a viewer on that list. Note: Google Maps Engine no longer uses access lists. Instead, each asset has its own list of permissions. For backward compatibility, the API still accepts access lists for projects that are already using access lists. If you created a GME account/project after July 14th, 2014, you will not be able to send API requests that include access lists. Note: This is an input field only. It is not returned in response to a list or get request." + }, + "schema": { + "$ref": "Schema", + "description": "The schema for this table. Note: The schema is returned in response to a get request but not a list request. After requesting a list of tables, you'll need to send a get request to retrieve the schema for each table.", + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "sourceEncoding": { + "type": "string", + "description": "Encoding of the uploaded files. Valid values include UTF-8, CP1251, ISO 8859-1, and Shift_JIS.", + "default": "UTF-8" + }, + "tags": { + "$ref": "Tags", + "description": "An array of text strings, with each string representing a tag. More information about tags can be found in the Tagging data article of the Maps Engine help center." + }, + "writersCanEditPermissions": { + "type": "boolean", + "description": "If true, WRITERs of the asset are able to edit the asset permissions." + } + } + }, + "TableColumn": { + "id": "TableColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The column name.", + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + }, + "type": { + "type": "string", + "description": "The type of data stored in this column.", + "enum": [ + "datetime", + "double", + "integer", + "lineStrings", + "mixedGeometry", + "points", + "polygons", + "string" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "mapsengine.tables.create" + ] + } + } + } + }, + "TablesListResponse": { + "id": "TablesListResponse", + "type": "object", + "description": "The response returned by a call to tables.List. Note: The list response does not include all the fields available in a table. Refer to the table resource description for details of the fields that are not included. You'll need to send a get request to retrieve the additional fields for each table.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "Next page token.", + "format": "byte" + }, + "tables": { + "type": "array", + "description": "Resources returned.", + "items": { + "$ref": "Table" + } + } + } + }, + "Tags": { + "id": "Tags", + "type": "array", + "items": { + "type": "string" + } + }, + "ValueRange": { + "id": "ValueRange", + "type": "object", + "description": "Range of values used for scaling shapes. The min/max values will be drawn as shapes with the min/max size.", + "properties": { + "max": { + "type": "number", + "description": "Maximum value.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "number", + "description": "Minimum value.", + "format": "double", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "VectorStyle": { + "id": "VectorStyle", + "type": "object", + "description": "A vector style contains styling information for vector layer.", + "properties": { + "displayRules": { + "type": "array", + "items": { + "$ref": "DisplayRule" + } + }, + "featureInfo": { + "$ref": "FeatureInfo", + "description": "Individual feature info, this is called Info Window in Maps Engine UI. If not provided, a default template with all attributes will be generated." + }, + "type": { + "type": "string", + "description": "The type of the vector style. Currently, only displayRule is supported.", + "enum": [ + "displayRule" + ], + "enumDescriptions": [ + "" + ], + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + }, + "ZoomLevels": { + "id": "ZoomLevels", + "type": "object", + "description": "Zoom level range. Zoom levels are restricted between 0 and 24, inclusive.", + "properties": { + "max": { + "type": "integer", + "description": "Maximum zoom level.", + "format": "int32", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + }, + "min": { + "type": "integer", + "description": "Minimum zoom level.", + "format": "int32", + "annotations": { + "required": [ + "mapsengine.layers.create", + "mapsengine.layers.patch" + ] + } + } + } + } + }, + "resources": { + "assets": { + "methods": { + "get": { + "id": "mapsengine.assets.get", + "path": "assets/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Asset" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.assets.list", + "path": "assets", + "httpMethod": "GET", + "description": "Return all assets readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + }, + "type": { + "type": "string", + "description": "A comma separated list of asset types. Returned assets will have one of the types from the provided list. Supported values are 'map', 'layer', 'rasterCollection' and 'table'.", + "location": "query" + } + }, + "response": { + "$ref": "AssetsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.assets.parents.list", + "path": "assets/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "list": { + "id": "mapsengine.assets.permissions.list", + "path": "assets/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "layers": { + "methods": { + "cancelProcessing": { + "id": "mapsengine.layers.cancelProcessing", + "path": "layers/{id}/cancelProcessing", + "httpMethod": "POST", + "description": "Cancel processing on a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "create": { + "id": "mapsengine.layers.create", + "path": "layers", + "httpMethod": "POST", + "description": "Create a layer asset.", + "parameters": { + "process": { + "type": "boolean", + "description": "Whether to queue the created layer for processing.", + "location": "query" + } + }, + "request": { + "$ref": "Layer" + }, + "response": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.layers.delete", + "path": "layers/{id}", + "httpMethod": "DELETE", + "description": "Delete a layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer. Only the layer creator or project owner are permitted to delete. If the layer is published, or included in a map, the request will fail. Unpublish the layer, and remove it from all maps prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.layers.get", + "path": "layers/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "Deprecated: The version parameter indicates which version of the layer should be returned. When version is set to published, the published version of the layer will be returned. Please use the layers.getPublished endpoint instead.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "getPublished": { + "id": "mapsengine.layers.getPublished", + "path": "layers/{id}/published", + "httpMethod": "GET", + "description": "Return the published metadata for a particular layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishedLayer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.layers.list", + "path": "layers", + "httpMethod": "GET", + "description": "Return all layers readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The layer has completed processing.", + "The layer has failed processing.", + "The layer is not ready for processing.", + "The layer is processing.", + "The layer is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "LayersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "listPublished": { + "id": "mapsengine.layers.listPublished", + "path": "layers/published", + "httpMethod": "GET", + "description": "Return all published layers readable by the current user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + } + }, + "response": { + "$ref": "PublishedLayersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.layers.patch", + "path": "layers/{id}", + "httpMethod": "PATCH", + "description": "Mutate a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Layer" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.layers.process", + "path": "layers/{id}/process", + "httpMethod": "POST", + "description": "Process a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "publish": { + "id": "mapsengine.layers.publish", + "path": "layers/{id}/publish", + "httpMethod": "POST", + "description": "Publish a layer asset.", + "parameters": { + "force": { + "type": "boolean", + "description": "If set to true, the API will allow publication of the layer even if it's out of date. If not true, you'll need to reprocess any out-of-date layer before publishing.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "unpublish": { + "id": "mapsengine.layers.unpublish", + "path": "layers/{id}/unpublish", + "httpMethod": "POST", + "description": "Unpublish a layer asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.layers.parents.list", + "path": "layers/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified layer.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the layer whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.layers.permissions.batchDelete", + "path": "layers/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.layers.permissions.batchUpdate", + "path": "layers/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.layers.permissions.list", + "path": "layers/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "maps": { + "methods": { + "create": { + "id": "mapsengine.maps.create", + "path": "maps", + "httpMethod": "POST", + "description": "Create a map asset.", + "request": { + "$ref": "Map" + }, + "response": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.maps.delete", + "path": "maps/{id}", + "httpMethod": "DELETE", + "description": "Delete a map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map. Only the map creator or project owner are permitted to delete. If the map is published the request will fail. Unpublish the map prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.maps.get", + "path": "maps/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "Deprecated: The version parameter indicates which version of the map should be returned. When version is set to published, the published version of the map will be returned. Please use the maps.getPublished endpoint instead.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "getPublished": { + "id": "mapsengine.maps.getPublished", + "path": "maps/{id}/published", + "httpMethod": "GET", + "description": "Return the published metadata for a particular map.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishedMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.maps.list", + "path": "maps", + "httpMethod": "GET", + "description": "Return all maps readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing" + ], + "enumDescriptions": [ + "The map has completed processing.", + "The map has failed processing.", + "The map is not ready for processing.", + "The map is processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "MapsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "listPublished": { + "id": "mapsengine.maps.listPublished", + "path": "maps/published", + "httpMethod": "GET", + "description": "Return all published maps readable by the current user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + } + }, + "response": { + "$ref": "PublishedMapsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.maps.patch", + "path": "maps/{id}", + "httpMethod": "PATCH", + "description": "Mutate a map asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Map" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "publish": { + "id": "mapsengine.maps.publish", + "path": "maps/{id}/publish", + "httpMethod": "POST", + "description": "Publish a map asset.", + "parameters": { + "force": { + "type": "boolean", + "description": "If set to true, the API will allow publication of the map even if it's out of date. If false, the map must have a processingStatus of complete before publishing.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "unpublish": { + "id": "mapsengine.maps.unpublish", + "path": "maps/{id}/unpublish", + "httpMethod": "POST", + "description": "Unpublish a map asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the map.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.maps.permissions.batchDelete", + "path": "maps/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.maps.permissions.batchUpdate", + "path": "maps/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.maps.permissions.list", + "path": "maps/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "projects": { + "methods": { + "list": { + "id": "mapsengine.projects.list", + "path": "projects", + "httpMethod": "GET", + "description": "Return all projects readable by the current user.", + "response": { + "$ref": "ProjectsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + }, + "resources": { + "icons": { + "methods": { + "create": { + "id": "mapsengine.projects.icons.create", + "path": "projects/{projectId}/icons", + "httpMethod": "POST", + "description": "Create an icon.", + "parameters": { + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "request": { + "$ref": "Icon" + }, + "response": { + "$ref": "Icon" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "100KB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/v1/projects/{projectId}/icons" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/v1/projects/{projectId}/icons" + } + } + } + }, + "get": { + "id": "mapsengine.projects.icons.get", + "path": "projects/{projectId}/icons/{id}", + "httpMethod": "GET", + "description": "Return an icon or its associated metadata", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the icon.", + "required": true, + "location": "path" + }, + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId", + "id" + ], + "response": { + "$ref": "Icon" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ], + "supportsMediaDownload": true + }, + "list": { + "id": "mapsengine.projects.icons.list", + "path": "projects/{projectId}/icons", + "httpMethod": "GET", + "description": "Return all icons in the current project", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of the project.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "IconsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "rasterCollections": { + "methods": { + "cancelProcessing": { + "id": "mapsengine.rasterCollections.cancelProcessing", + "path": "rasterCollections/{id}/cancelProcessing", + "httpMethod": "POST", + "description": "Cancel processing on a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "create": { + "id": "mapsengine.rasterCollections.create", + "path": "rasterCollections", + "httpMethod": "POST", + "description": "Create a raster collection asset.", + "request": { + "$ref": "RasterCollection" + }, + "response": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.rasterCollections.delete", + "path": "rasterCollections/{id}", + "httpMethod": "DELETE", + "description": "Delete a raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection. Only the raster collection creator or project owner are permitted to delete. If the rastor collection is included in a layer, the request will fail. Remove the raster collection from all layers prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.rasterCollections.get", + "path": "rasterCollections/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.list", + "path": "rasterCollections", + "httpMethod": "GET", + "description": "Return all raster collections readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The raster collection has completed processing.", + "The raster collection has failed processing.", + "The raster collection is not ready for processing.", + "The raster collection is processing.", + "The raster collection is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "RasterCollectionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.rasterCollections.patch", + "path": "rasterCollections/{id}", + "httpMethod": "PATCH", + "description": "Mutate a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollection" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.rasterCollections.process", + "path": "rasterCollections/{id}/process", + "httpMethod": "POST", + "description": "Process a raster collection asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "parents": { + "methods": { + "list": { + "id": "mapsengine.rasterCollections.parents.list", + "path": "rasterCollections/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified raster collection.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasterCollections.permissions.batchDelete", + "path": "rasterCollections/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.rasterCollections.permissions.batchUpdate", + "path": "rasterCollections/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.permissions.list", + "path": "rasterCollections/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "rasters": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasterCollections.rasters.batchDelete", + "path": "rasterCollections/{id}/rasters/batchDelete", + "httpMethod": "POST", + "description": "Remove rasters from an existing raster collection.\n\nUp to 50 rasters can be included in a single batchDelete request. Each batchDelete request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollectionsRasterBatchDeleteRequest" + }, + "response": { + "$ref": "RasterCollectionsRastersBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchInsert": { + "id": "mapsengine.rasterCollections.rasters.batchInsert", + "path": "rasterCollections/{id}/rasters/batchInsert", + "httpMethod": "POST", + "description": "Add rasters to an existing raster collection. Rasters must be successfully processed in order to be added to a raster collection.\n\nUp to 50 rasters can be included in a single batchInsert request. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "RasterCollectionsRastersBatchInsertRequest" + }, + "response": { + "$ref": "RasterCollectionsRastersBatchInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasterCollections.rasters.list", + "path": "rasterCollections/{id}/rasters", + "httpMethod": "GET", + "description": "Return all rasters within a raster collection.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the raster collection to which these rasters belong.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "RasterCollectionsRastersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "rasters": { + "methods": { + "delete": { + "id": "mapsengine.rasters.delete", + "path": "rasters/{id}", + "httpMethod": "DELETE", + "description": "Delete a raster.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster. Only the raster creator or project owner are permitted to delete. If the raster is included in a layer or mosaic, the request will fail. Remove it from all parents prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.rasters.get", + "path": "rasters/{id}", + "httpMethod": "GET", + "description": "Return metadata for a single raster.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.rasters.list", + "path": "rasters", + "httpMethod": "GET", + "description": "Return all rasters readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The raster has completed processing.", + "The raster has failed processing.", + "The raster is not ready for processing.", + "The raster is processing.", + "The raster is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "required": true, + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "RastersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.rasters.patch", + "path": "rasters/{id}", + "httpMethod": "PATCH", + "description": "Mutate a raster asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.rasters.process", + "path": "rasters/{id}/process", + "httpMethod": "POST", + "description": "Process a raster asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the raster.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "upload": { + "id": "mapsengine.rasters.upload", + "path": "rasters/upload", + "httpMethod": "POST", + "description": "Create a skeleton raster asset for upload.", + "request": { + "$ref": "Raster" + }, + "response": { + "$ref": "Raster" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "files": { + "methods": { + "insert": { + "id": "mapsengine.rasters.files.insert", + "path": "rasters/{id}/files", + "httpMethod": "POST", + "description": "Upload a file to a raster asset.", + "parameters": { + "filename": { + "type": "string", + "description": "The file name of this uploaded file.", + "required": true, + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the raster asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id", + "filename" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "10GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/v1/rasters/{id}/files" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/v1/rasters/{id}/files" + } + } + } + } + } + }, + "parents": { + "methods": { + "list": { + "id": "mapsengine.rasters.parents.list", + "path": "rasters/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified rasters.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the rasters whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.rasters.permissions.batchDelete", + "path": "rasters/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.rasters.permissions.batchUpdate", + "path": "rasters/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.rasters.permissions.list", + "path": "rasters/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + }, + "tables": { + "methods": { + "create": { + "id": "mapsengine.tables.create", + "path": "tables", + "httpMethod": "POST", + "description": "Create a table asset.", + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "delete": { + "id": "mapsengine.tables.delete", + "path": "tables/{id}", + "httpMethod": "DELETE", + "description": "Delete a table.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table. Only the table creator or project owner are permitted to delete. If the table is included in a layer, the request will fail. Remove it from all layers prior to deleting.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.tables.get", + "path": "tables/{id}", + "httpMethod": "GET", + "description": "Return metadata for a particular table, including the schema.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.tables.list", + "path": "tables", + "httpMethod": "GET", + "description": "Return all tables readable by the current user.", + "parameters": { + "bbox": { + "type": "string", + "description": "A bounding box, expressed as \"west,south,east,north\". If set, only assets which intersect this bounding box will be returned.", + "location": "query" + }, + "createdAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or after this time.", + "format": "date-time", + "location": "query" + }, + "createdBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been created at or before this time.", + "format": "date-time", + "location": "query" + }, + "creatorEmail": { + "type": "string", + "description": "An email address representing a user. Returned assets that have been created by the user associated with the provided email address.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 100.", + "format": "uint32", + "location": "query" + }, + "modifiedAfter": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or after this time.", + "format": "date-time", + "location": "query" + }, + "modifiedBefore": { + "type": "string", + "description": "An RFC 3339 formatted date-time value (e.g. 1970-01-01T00:00:00Z). Returned assets will have been modified at or before this time.", + "format": "date-time", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "processingStatus": { + "type": "string", + "enum": [ + "complete", + "failed", + "notReady", + "processing", + "ready" + ], + "enumDescriptions": [ + "The table has completed processing.", + "The table has failed processing.", + "The table is not ready for processing.", + "The table is processing.", + "The table is ready for processing." + ], + "location": "query" + }, + "projectId": { + "type": "string", + "description": "The ID of a Maps Engine project, used to filter the response. To list all available projects with their IDs, send a Projects: list request. You can also find your project ID as the value of the DashboardPlace:cid URL parameter when signed in to mapsengine.google.com.", + "location": "query" + }, + "role": { + "type": "string", + "description": "The role parameter indicates that the response should only contain assets where the current user has the specified level of access.", + "enum": [ + "owner", + "reader", + "writer" + ], + "enumDescriptions": [ + "The user can read, write and administer the asset.", + "The user can read the asset.", + "The user can read and write the asset." + ], + "location": "query" + }, + "search": { + "type": "string", + "description": "An unstructured search string used to filter the set of results based on asset metadata.", + "location": "query" + }, + "tags": { + "type": "string", + "description": "A comma separated list of tags. Returned assets will contain all the tags from the list.", + "location": "query" + } + }, + "response": { + "$ref": "TablesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "patch": { + "id": "mapsengine.tables.patch", + "path": "tables/{id}", + "httpMethod": "PATCH", + "description": "Mutate a table asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "process": { + "id": "mapsengine.tables.process", + "path": "tables/{id}/process", + "httpMethod": "POST", + "description": "Process a table asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ProcessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "upload": { + "id": "mapsengine.tables.upload", + "path": "tables/upload", + "httpMethod": "POST", + "description": "Create a placeholder table asset to which table files can be uploaded.\nOnce the placeholder has been created, files are uploaded to the https://www.googleapis.com/upload/mapsengine/v1/tables/table_id/files endpoint.\nSee Table Upload in the Developer's Guide or Table.files: insert in the reference documentation for more information.", + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Table" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + } + }, + "resources": { + "features": { + "methods": { + "batchDelete": { + "id": "mapsengine.tables.features.batchDelete", + "path": "tables/{id}/features/batchDelete", + "httpMethod": "POST", + "description": "Delete all features matching the given IDs.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table that contains the features to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchDeleteRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchInsert": { + "id": "mapsengine.tables.features.batchInsert", + "path": "tables/{id}/features/batchInsert", + "httpMethod": "POST", + "description": "Append features to an existing table.\n\nA single batchInsert request can create:\n\n- Up to 50 features.\n- A combined total of 10 000 vertices.\nFeature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.\n\nFor more information about inserting features, read Creating features in the Google Maps Engine developer's guide.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table to append the features to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchInsertRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchPatch": { + "id": "mapsengine.tables.features.batchPatch", + "path": "tables/{id}/features/batchPatch", + "httpMethod": "POST", + "description": "Update the supplied features.\n\nA single batchPatch request can update:\n\n- Up to 50 features.\n- A combined total of 10 000 vertices.\nFeature limits are documented in the Supported data formats and limits article of the Google Maps Engine help center. Note that free and paid accounts have different limits.\n\nFeature updates use HTTP PATCH semantics:\n\n- A supplied value replaces an existing value (if any) in that field.\n- Omitted fields remain unchanged.\n- Complex values in geometries and properties must be replaced as atomic units. For example, providing just the coordinates of a geometry is not allowed; the complete geometry, including type, must be supplied.\n- Setting a property's value to null deletes that property.\nFor more information about updating features, read Updating features in the Google Maps Engine developer's guide.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table containing the features to be patched.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "FeaturesBatchPatchRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "get": { + "id": "mapsengine.tables.features.get", + "path": "tables/{tableId}/features/{id}", + "httpMethod": "GET", + "description": "Return a single feature, given its ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the feature to get.", + "required": true, + "location": "path" + }, + "select": { + "type": "string", + "description": "A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.", + "location": "query" + }, + "tableId": { + "type": "string", + "description": "The ID of the table.", + "required": true, + "location": "path" + }, + "version": { + "type": "string", + "description": "The table version to access. See Accessing Public Data for information.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + } + }, + "parameterOrder": [ + "tableId", + "id" + ], + "response": { + "$ref": "Feature" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + }, + "list": { + "id": "mapsengine.tables.features.list", + "path": "tables/{id}/features", + "httpMethod": "GET", + "description": "Return all features readable by the current user.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table to which these features belong.", + "required": true, + "location": "path" + }, + "include": { + "type": "string", + "description": "A comma separated list of optional data to include. Optional data available: schema.", + "location": "query" + }, + "intersects": { + "type": "string", + "description": "A geometry literal that specifies the spatial restriction of the query.", + "location": "query" + }, + "limit": { + "type": "integer", + "description": "The total number of features to return from the query, irrespective of the number of pages.", + "format": "uint32", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in the response, used for paging. The maximum supported value is 1000.", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "An SQL-like order by clause used to sort results. If this parameter is not included, the order of features is undefined.", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + }, + "select": { + "type": "string", + "description": "A SQL-like projection clause used to specify returned properties. If this parameter is not included, all properties are returned.", + "location": "query" + }, + "version": { + "type": "string", + "description": "The table version to access. See Accessing Public Data for information.", + "enum": [ + "draft", + "published" + ], + "enumDescriptions": [ + "The draft version.", + "The published version." + ], + "location": "query" + }, + "where": { + "type": "string", + "description": "An SQL-like predicate used to filter results.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "FeaturesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "files": { + "methods": { + "insert": { + "id": "mapsengine.tables.files.insert", + "path": "tables/{id}/files", + "httpMethod": "POST", + "description": "Upload a file to a placeholder table asset. See Table Upload in the Developer's Guide for more information.\nSupported file types are listed in the Supported data formats and limits article of the Google Maps Engine help center.", + "parameters": { + "filename": { + "type": "string", + "description": "The file name of this uploaded file.", + "required": true, + "location": "query" + }, + "id": { + "type": "string", + "description": "The ID of the table asset.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id", + "filename" + ], + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "maxSize": "1GB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mapsengine/v1/tables/{id}/files" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mapsengine/v1/tables/{id}/files" + } + } + } + } + } + }, + "parents": { + "methods": { + "list": { + "id": "mapsengine.tables.parents.list", + "path": "tables/{id}/parents", + "httpMethod": "GET", + "description": "Return all parent ids of the specified table.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the table whose parents will be listed.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in a single response page. The maximum supported value is 50.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "ParentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + }, + "permissions": { + "methods": { + "batchDelete": { + "id": "mapsengine.tables.permissions.batchDelete", + "path": "tables/{id}/permissions/batchDelete", + "httpMethod": "POST", + "description": "Remove permission entries from an already existing asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset from which permissions will be removed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchDeleteRequest" + }, + "response": { + "$ref": "PermissionsBatchDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "batchUpdate": { + "id": "mapsengine.tables.permissions.batchUpdate", + "path": "tables/{id}/permissions/batchUpdate", + "httpMethod": "POST", + "description": "Add or update permission entries to an already existing asset.\n\nAn asset can hold up to 20 different permission entries. Each batchInsert request is atomic.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset to which permissions will be added.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "PermissionsBatchUpdateRequest" + }, + "response": { + "$ref": "PermissionsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine" + ] + }, + "list": { + "id": "mapsengine.tables.permissions.list", + "path": "tables/{id}/permissions", + "httpMethod": "GET", + "description": "Return all of the permissions for the specified asset.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the asset whose permissions will be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "PermissionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/mapsengine", + "https://www.googleapis.com/auth/mapsengine.readonly" + ] + } + } + } + } + } + } +} diff --git a/etc/api/mirror/v1/mirror-api.json b/etc/api/mirror/v1/mirror-api.json new file mode 100644 index 0000000000..221add301b --- /dev/null +++ b/etc/api/mirror/v1/mirror-api.json @@ -0,0 +1,1390 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/VW0KvFHTdSFgeNX5qCIVR7JEmkg\"", + "discoveryVersion": "v1", + "id": "mirror:v1", + "name": "mirror", + "version": "v1", + "revision": "20141209", + "title": "Google Mirror API", + "description": "API for interacting with Glass users via the timeline.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/glass", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/mirror/v1/", + "basePath": "/mirror/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "mirror/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/glass.location": { + "description": "View your location" + }, + "https://www.googleapis.com/auth/glass.timeline": { + "description": "View and manage your Glass timeline" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Represents an account passed into the Account Manager on Glass.", + "properties": { + "authTokens": { + "type": "array", + "items": { + "$ref": "AuthToken" + } + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "password": { + "type": "string" + }, + "userData": { + "type": "array", + "items": { + "$ref": "UserData" + } + } + } + }, + "Attachment": { + "id": "Attachment", + "type": "object", + "description": "Represents media content, such as a photo, that can be attached to a timeline item.", + "properties": { + "contentType": { + "type": "string", + "description": "The MIME type of the attachment." + }, + "contentUrl": { + "type": "string", + "description": "The URL for the content." + }, + "id": { + "type": "string", + "description": "The ID of the attachment." + }, + "isProcessingContent": { + "type": "boolean", + "description": "Indicates that the contentUrl is not available because the attachment content is still being processed. If the caller wishes to retrieve the content, it should try again later." + } + } + }, + "AttachmentsListResponse": { + "id": "AttachmentsListResponse", + "type": "object", + "description": "A list of Attachments. This is the response from the server to GET requests on the attachments collection.", + "properties": { + "items": { + "type": "array", + "description": "The list of attachments.", + "items": { + "$ref": "Attachment" + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#attachmentsList.", + "default": "mirror#attachmentsList" + } + } + }, + "AuthToken": { + "id": "AuthToken", + "type": "object", + "properties": { + "authToken": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "Command": { + "id": "Command", + "type": "object", + "description": "A single menu command that is part of a Contact.", + "properties": { + "type": { + "type": "string", + "description": "The type of operation this command corresponds to. Allowed values are: \n- TAKE_A_NOTE - Shares a timeline item with the transcription of user speech from the \"Take a note\" voice menu command. \n- POST_AN_UPDATE - Shares a timeline item with the transcription of user speech from the \"Post an update\" voice menu command.", + "annotations": { + "required": [ + "mirror.contacts.insert", + "mirror.contacts.update" + ] + } + } + } + }, + "Contact": { + "id": "Contact", + "type": "object", + "description": "A person or group that can be used as a creator or a contact.", + "properties": { + "acceptCommands": { + "type": "array", + "description": "A list of voice menu commands that a contact can handle. Glass shows up to three contacts for each voice menu command. If there are more than that, the three contacts with the highest priority are shown for that particular command.", + "items": { + "$ref": "Command" + } + }, + "acceptTypes": { + "type": "array", + "description": "A list of MIME types that a contact supports. The contact will be shown to the user if any of its acceptTypes matches any of the types of the attachments on the item. If no acceptTypes are given, the contact will be shown for all items.", + "items": { + "type": "string" + } + }, + "displayName": { + "type": "string", + "description": "The name to display for this contact.", + "annotations": { + "required": [ + "mirror.contacts.insert", + "mirror.contacts.update" + ] + } + }, + "id": { + "type": "string", + "description": "An ID for this contact. This is generated by the application and is treated as an opaque token.", + "annotations": { + "required": [ + "mirror.contacts.insert", + "mirror.contacts.update" + ] + } + }, + "imageUrls": { + "type": "array", + "description": "Set of image URLs to display for a contact. Most contacts will have a single image, but a \"group\" contact may include up to 8 image URLs and they will be resized and cropped into a mosaic on the client.", + "items": { + "type": "string" + }, + "annotations": { + "required": [ + "mirror.contacts.insert", + "mirror.contacts.update" + ] + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#contact.", + "default": "mirror#contact" + }, + "phoneNumber": { + "type": "string", + "description": "Primary phone number for the contact. This can be a fully-qualified number, with country calling code and area code, or a local number." + }, + "priority": { + "type": "integer", + "description": "Priority for the contact to determine ordering in a list of contacts. Contacts with higher priorities will be shown before ones with lower priorities.", + "format": "uint32" + }, + "sharingFeatures": { + "type": "array", + "description": "A list of sharing features that a contact can handle. Allowed values are: \n- ADD_CAPTION", + "items": { + "type": "string" + } + }, + "source": { + "type": "string", + "description": "The ID of the application that created this contact. This is populated by the API" + }, + "speakableName": { + "type": "string", + "description": "Name of this contact as it should be pronounced. If this contact's name must be spoken as part of a voice disambiguation menu, this name is used as the expected pronunciation. This is useful for contact names with unpronounceable characters or whose display spelling is otherwise not phonetic." + }, + "type": { + "type": "string", + "description": "The type for this contact. This is used for sorting in UIs. Allowed values are: \n- INDIVIDUAL - Represents a single person. This is the default. \n- GROUP - Represents more than a single person." + } + } + }, + "ContactsListResponse": { + "id": "ContactsListResponse", + "type": "object", + "description": "A list of Contacts representing contacts. This is the response from the server to GET requests on the contacts collection.", + "properties": { + "items": { + "type": "array", + "description": "Contact list.", + "items": { + "$ref": "Contact" + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#contacts.", + "default": "mirror#contacts" + } + } + }, + "Location": { + "id": "Location", + "type": "object", + "description": "A geographic location that can be associated with a timeline item.", + "properties": { + "accuracy": { + "type": "number", + "description": "The accuracy of the location fix in meters.", + "format": "double" + }, + "address": { + "type": "string", + "description": "The full address of the location." + }, + "displayName": { + "type": "string", + "description": "The name to be displayed. This may be a business name or a user-defined place, such as \"Home\"." + }, + "id": { + "type": "string", + "description": "The ID of the location." + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#location.", + "default": "mirror#location" + }, + "latitude": { + "type": "number", + "description": "The latitude, in degrees.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "The longitude, in degrees.", + "format": "double" + }, + "timestamp": { + "type": "string", + "description": "The time at which this location was captured, formatted according to RFC 3339.", + "format": "date-time" + } + } + }, + "LocationsListResponse": { + "id": "LocationsListResponse", + "type": "object", + "description": "A list of Locations. This is the response from the server to GET requests on the locations collection.", + "properties": { + "items": { + "type": "array", + "description": "The list of locations.", + "items": { + "$ref": "Location" + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#locationsList.", + "default": "mirror#locationsList" + } + } + }, + "MenuItem": { + "id": "MenuItem", + "type": "object", + "description": "A custom menu item that can be presented to the user by a timeline item.", + "properties": { + "action": { + "type": "string", + "description": "Controls the behavior when the user picks the menu option. Allowed values are: \n- CUSTOM - Custom action set by the service. When the user selects this menuItem, the API triggers a notification to your callbackUrl with the userActions.type set to CUSTOM and the userActions.payload set to the ID of this menu item. This is the default value. \n- Built-in actions: \n- REPLY - Initiate a reply to the timeline item using the voice recording UI. The creator attribute must be set in the timeline item for this menu to be available. \n- REPLY_ALL - Same behavior as REPLY. The original timeline item's recipients will be added to the reply item. \n- DELETE - Delete the timeline item. \n- SHARE - Share the timeline item with the available contacts. \n- READ_ALOUD - Read the timeline item's speakableText aloud; if this field is not set, read the text field; if none of those fields are set, this menu item is ignored. \n- GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from a menu item (currently, only transcribed text from voice input is supported). Subscribe to notifications when users invoke this menu item to receive the timeline item ID. Retrieve the media from the timeline item in the payload property. \n- VOICE_CALL - Initiate a phone call using the timeline item's creator.phoneNumber attribute as recipient. \n- NAVIGATE - Navigate to the timeline item's location. \n- TOGGLE_PINNED - Toggle the isPinned state of the timeline item. \n- OPEN_URI - Open the payload of the menu item in the browser. \n- PLAY_VIDEO - Open the payload of the menu item in the Glass video player. \n- SEND_MESSAGE - Initiate sending a message to the timeline item's creator: \n- If the creator.phoneNumber is set and Glass is connected to an Android phone, the message is an SMS. \n- Otherwise, if the creator.email is set, the message is an email." + }, + "contextual_command": { + "type": "string", + "description": "The ContextualMenus.Command associated with this MenuItem (e.g. READ_ALOUD). The voice label for this command will be displayed in the voice menu and the touch label will be displayed in the touch menu. Note that the default menu value's display name will be overriden if you specify this property. Values that do not correspond to a ContextualMenus.Command name will be ignored." + }, + "id": { + "type": "string", + "description": "The ID for this menu item. This is generated by the application and is treated as an opaque token." + }, + "payload": { + "type": "string", + "description": "A generic payload whose meaning changes depending on this MenuItem's action. \n- When the action is OPEN_URI, the payload is the URL of the website to view. \n- When the action is PLAY_VIDEO, the payload is the streaming URL of the video \n- When the action is GET_MEDIA_INPUT, the payload is the text transcription of a user's speech input" + }, + "removeWhenSelected": { + "type": "boolean", + "description": "If set to true on a CUSTOM menu item, that item will be removed from the menu after it is selected." + }, + "values": { + "type": "array", + "description": "For CUSTOM items, a list of values controlling the appearance of the menu item in each of its states. A value for the DEFAULT state must be provided. If the PENDING or CONFIRMED states are missing, they will not be shown.", + "items": { + "$ref": "MenuValue" + } + } + } + }, + "MenuValue": { + "id": "MenuValue", + "type": "object", + "description": "A single value that is part of a MenuItem.", + "properties": { + "displayName": { + "type": "string", + "description": "The name to display for the menu item. If you specify this property for a built-in menu item, the default contextual voice command for that menu item is not shown." + }, + "iconUrl": { + "type": "string", + "description": "URL of an icon to display with the menu item." + }, + "state": { + "type": "string", + "description": "The state that this value applies to. Allowed values are: \n- DEFAULT - Default value shown when displayed in the menuItems list. \n- PENDING - Value shown when the menuItem has been selected by the user but can still be cancelled. \n- CONFIRMED - Value shown when the menuItem has been selected by the user and can no longer be cancelled." + } + } + }, + "Notification": { + "id": "Notification", + "type": "object", + "description": "A notification delivered by the API.", + "properties": { + "collection": { + "type": "string", + "description": "The collection that generated the notification." + }, + "itemId": { + "type": "string", + "description": "The ID of the item that generated the notification." + }, + "operation": { + "type": "string", + "description": "The type of operation that generated the notification." + }, + "userActions": { + "type": "array", + "description": "A list of actions taken by the user that triggered the notification.", + "items": { + "$ref": "UserAction" + } + }, + "userToken": { + "type": "string", + "description": "The user token provided by the service when it subscribed for notifications." + }, + "verifyToken": { + "type": "string", + "description": "The secret verify token provided by the service when it subscribed for notifications." + } + } + }, + "NotificationConfig": { + "id": "NotificationConfig", + "type": "object", + "description": "Controls how notifications for a timeline item are presented to the user.", + "properties": { + "deliveryTime": { + "type": "string", + "description": "The time at which the notification should be delivered.", + "format": "date-time" + }, + "level": { + "type": "string", + "description": "Describes how important the notification is. Allowed values are: \n- DEFAULT - Notifications of default importance. A chime will be played to alert users." + } + } + }, + "Setting": { + "id": "Setting", + "type": "object", + "description": "A setting for Glass.", + "properties": { + "id": { + "type": "string", + "description": "The setting's ID. The following IDs are valid: \n- locale - The key to the user’s language/locale (BCP 47 identifier) that Glassware should use to render localized content. \n- timezone - The key to the user’s current time zone region as defined in the tz database. Example: America/Los_Angeles." + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#setting.", + "default": "mirror#setting" + }, + "value": { + "type": "string", + "description": "The setting value, as a string." + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "description": "A subscription to events on a collection.", + "properties": { + "callbackUrl": { + "type": "string", + "description": "The URL where notifications should be delivered (must start with https://).", + "annotations": { + "required": [ + "mirror.subscriptions.insert", + "mirror.subscriptions.update" + ] + } + }, + "collection": { + "type": "string", + "description": "The collection to subscribe to. Allowed values are: \n- timeline - Changes in the timeline including insertion, deletion, and updates. \n- locations - Location updates. \n- settings - Settings updates.", + "annotations": { + "required": [ + "mirror.subscriptions.insert", + "mirror.subscriptions.update" + ] + } + }, + "id": { + "type": "string", + "description": "The ID of the subscription." + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#subscription.", + "default": "mirror#subscription" + }, + "notification": { + "$ref": "Notification", + "description": "Container object for notifications. This is not populated in the Subscription resource." + }, + "operation": { + "type": "array", + "description": "A list of operations that should be subscribed to. An empty list indicates that all operations on the collection should be subscribed to. Allowed values are: \n- UPDATE - The item has been updated. \n- INSERT - A new item has been inserted. \n- DELETE - The item has been deleted. \n- MENU_ACTION - A custom menu item has been triggered by the user.", + "items": { + "type": "string" + } + }, + "updated": { + "type": "string", + "description": "The time at which this subscription was last modified, formatted according to RFC 3339.", + "format": "date-time" + }, + "userToken": { + "type": "string", + "description": "An opaque token sent to the subscriber in notifications so that it can determine the ID of the user." + }, + "verifyToken": { + "type": "string", + "description": "A secret token sent to the subscriber in notifications so that it can verify that the notification was generated by Google." + } + } + }, + "SubscriptionsListResponse": { + "id": "SubscriptionsListResponse", + "type": "object", + "description": "A list of Subscriptions. This is the response from the server to GET requests on the subscription collection.", + "properties": { + "items": { + "type": "array", + "description": "The list of subscriptions.", + "items": { + "$ref": "Subscription" + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#subscriptionsList.", + "default": "mirror#subscriptionsList" + } + } + }, + "TimelineItem": { + "id": "TimelineItem", + "type": "object", + "description": "Each item in the user's timeline is represented as a TimelineItem JSON structure, described below.", + "properties": { + "attachments": { + "type": "array", + "description": "A list of media attachments associated with this item. As a convenience, you can refer to attachments in your HTML payloads with the attachment or cid scheme. For example: \n- attachment: \u003cimg src=\"attachment:attachment_index\"\u003e where attachment_index is the 0-based index of this array. \n- cid: \u003cimg src=\"cid:attachment_id\"\u003e where attachment_id is the ID of the attachment.", + "items": { + "$ref": "Attachment" + } + }, + "bundleId": { + "type": "string", + "description": "The bundle ID for this item. Services can specify a bundleId to group many items together. They appear under a single top-level item on the device." + }, + "canonicalUrl": { + "type": "string", + "description": "A canonical URL pointing to the canonical/high quality version of the data represented by the timeline item." + }, + "created": { + "type": "string", + "description": "The time at which this item was created, formatted according to RFC 3339.", + "format": "date-time" + }, + "creator": { + "$ref": "Contact", + "description": "The user or group that created this item." + }, + "displayTime": { + "type": "string", + "description": "The time that should be displayed when this item is viewed in the timeline, formatted according to RFC 3339. This user's timeline is sorted chronologically on display time, so this will also determine where the item is displayed in the timeline. If not set by the service, the display time defaults to the updated time.", + "format": "date-time" + }, + "etag": { + "type": "string", + "description": "ETag for this item." + }, + "html": { + "type": "string", + "description": "HTML content for this item. If both text and html are provided for an item, the html will be rendered in the timeline.\nAllowed HTML elements - You can use these elements in your timeline cards.\n \n- Headers: h1, h2, h3, h4, h5, h6 \n- Images: img \n- Lists: li, ol, ul \n- HTML5 semantics: article, aside, details, figure, figcaption, footer, header, nav, section, summary, time \n- Structural: blockquote, br, div, hr, p, span \n- Style: b, big, center, em, i, u, s, small, strike, strong, style, sub, sup \n- Tables: table, tbody, td, tfoot, th, thead, tr \nBlocked HTML elements: These elements and their contents are removed from HTML payloads.\n \n- Document headers: head, title \n- Embeds: audio, embed, object, source, video \n- Frames: frame, frameset \n- Scripting: applet, script \nOther elements: Any elements that aren't listed are removed, but their contents are preserved." + }, + "id": { + "type": "string", + "description": "The ID of the timeline item. This is unique within a user's timeline." + }, + "inReplyTo": { + "type": "string", + "description": "If this item was generated as a reply to another item, this field will be set to the ID of the item being replied to. This can be used to attach a reply to the appropriate conversation or post." + }, + "isBundleCover": { + "type": "boolean", + "description": "Whether this item is a bundle cover.\n\nIf an item is marked as a bundle cover, it will be the entry point to the bundle of items that have the same bundleId as that item. It will be shown only on the main timeline — not within the opened bundle.\n\nOn the main timeline, items that are shown are: \n- Items that have isBundleCover set to true \n- Items that do not have a bundleId In a bundle sub-timeline, items that are shown are: \n- Items that have the bundleId in question AND isBundleCover set to false" + }, + "isDeleted": { + "type": "boolean", + "description": "When true, indicates this item is deleted, and only the ID property is set." + }, + "isPinned": { + "type": "boolean", + "description": "When true, indicates this item is pinned, which means it's grouped alongside \"active\" items like navigation and hangouts, on the opposite side of the home screen from historical (non-pinned) timeline items. You can allow the user to toggle the value of this property with the TOGGLE_PINNED built-in menu item." + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#timelineItem.", + "default": "mirror#timelineItem" + }, + "location": { + "$ref": "Location", + "description": "The geographic location associated with this item." + }, + "menuItems": { + "type": "array", + "description": "A list of menu items that will be presented to the user when this item is selected in the timeline.", + "items": { + "$ref": "MenuItem" + } + }, + "notification": { + "$ref": "NotificationConfig", + "description": "Controls how notifications for this item are presented on the device. If this is missing, no notification will be generated." + }, + "pinScore": { + "type": "integer", + "description": "For pinned items, this determines the order in which the item is displayed in the timeline, with a higher score appearing closer to the clock. Note: setting this field is currently not supported.", + "format": "int32" + }, + "recipients": { + "type": "array", + "description": "A list of users or groups that this item has been shared with.", + "items": { + "$ref": "Contact" + } + }, + "selfLink": { + "type": "string", + "description": "A URL that can be used to retrieve this item." + }, + "sourceItemId": { + "type": "string", + "description": "Opaque string you can use to map a timeline item to data in your own service." + }, + "speakableText": { + "type": "string", + "description": "The speakable version of the content of this item. Along with the READ_ALOUD menu item, use this field to provide text that would be clearer when read aloud, or to provide extended information to what is displayed visually on Glass.\n\nGlassware should also specify the speakableType field, which will be spoken before this text in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification." + }, + "speakableType": { + "type": "string", + "description": "A speakable description of the type of this item. This will be announced to the user prior to reading the content of the item in cases where the additional context is useful, for example when the user requests that the item be read aloud following a notification.\n\nThis should be a short, simple noun phrase such as \"Email\", \"Text message\", or \"Daily Planet News Update\".\n\nGlassware are encouraged to populate this field for every timeline item, even if the item does not contain speakableText or text so that the user can learn the type of the item without looking at the screen." + }, + "text": { + "type": "string", + "description": "Text content of this item." + }, + "title": { + "type": "string", + "description": "The title of this item." + }, + "updated": { + "type": "string", + "description": "The time at which this item was last modified, formatted according to RFC 3339.", + "format": "date-time" + } + } + }, + "TimelineListResponse": { + "id": "TimelineListResponse", + "type": "object", + "description": "A list of timeline items. This is the response from the server to GET requests on the timeline collection.", + "properties": { + "items": { + "type": "array", + "description": "Items in the timeline.", + "items": { + "$ref": "TimelineItem" + } + }, + "kind": { + "type": "string", + "description": "The type of resource. This is always mirror#timeline.", + "default": "mirror#timeline" + }, + "nextPageToken": { + "type": "string", + "description": "The next page token. Provide this as the pageToken parameter in the request to retrieve the next page of results." + } + } + }, + "UserAction": { + "id": "UserAction", + "type": "object", + "description": "Represents an action taken by the user that triggered a notification.", + "properties": { + "payload": { + "type": "string", + "description": "An optional payload for the action.\n\nFor actions of type CUSTOM, this is the ID of the custom menu item that was selected." + }, + "type": { + "type": "string", + "description": "The type of action. The value of this can be: \n- SHARE - the user shared an item. \n- REPLY - the user replied to an item. \n- REPLY_ALL - the user replied to all recipients of an item. \n- CUSTOM - the user selected a custom menu item on the timeline item. \n- DELETE - the user deleted the item. \n- PIN - the user pinned the item. \n- UNPIN - the user unpinned the item. \n- LAUNCH - the user initiated a voice command. In the future, additional types may be added. UserActions with unrecognized types should be ignored." + } + } + }, + "UserData": { + "id": "UserData", + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "insert": { + "id": "mirror.accounts.insert", + "path": "accounts/{userToken}/{accountType}/{accountName}", + "httpMethod": "POST", + "description": "Inserts a new account for a user", + "parameters": { + "accountName": { + "type": "string", + "description": "The name of the account to be passed to the Android Account Manager.", + "required": true, + "location": "path" + }, + "accountType": { + "type": "string", + "description": "Account type to be passed to Android Account Manager.", + "required": true, + "location": "path" + }, + "userToken": { + "type": "string", + "description": "The ID for the user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userToken", + "accountType", + "accountName" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + } + } + } + }, + "contacts": { + "methods": { + "delete": { + "id": "mirror.contacts.delete", + "path": "contacts/{id}", + "httpMethod": "DELETE", + "description": "Deletes a contact.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the contact.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "get": { + "id": "mirror.contacts.get", + "path": "contacts/{id}", + "httpMethod": "GET", + "description": "Gets a single contact by ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the contact.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Contact" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "insert": { + "id": "mirror.contacts.insert", + "path": "contacts", + "httpMethod": "POST", + "description": "Inserts a new contact.", + "request": { + "$ref": "Contact" + }, + "response": { + "$ref": "Contact" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "list": { + "id": "mirror.contacts.list", + "path": "contacts", + "httpMethod": "GET", + "description": "Retrieves a list of contacts for the authenticated user.", + "response": { + "$ref": "ContactsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "patch": { + "id": "mirror.contacts.patch", + "path": "contacts/{id}", + "httpMethod": "PATCH", + "description": "Updates a contact in place. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the contact.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Contact" + }, + "response": { + "$ref": "Contact" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "update": { + "id": "mirror.contacts.update", + "path": "contacts/{id}", + "httpMethod": "PUT", + "description": "Updates a contact in place.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the contact.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Contact" + }, + "response": { + "$ref": "Contact" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + } + } + }, + "locations": { + "methods": { + "get": { + "id": "mirror.locations.get", + "path": "locations/{id}", + "httpMethod": "GET", + "description": "Gets a single location by ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the location or latest for the last known location.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Location" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "list": { + "id": "mirror.locations.list", + "path": "locations", + "httpMethod": "GET", + "description": "Retrieves a list of locations for the user.", + "response": { + "$ref": "LocationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + } + } + }, + "settings": { + "methods": { + "get": { + "id": "mirror.settings.get", + "path": "settings/{id}", + "httpMethod": "GET", + "description": "Gets a single setting by ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the setting. The following IDs are valid: \n- locale - The key to the user’s language/locale (BCP 47 identifier) that Glassware should use to render localized content. \n- timezone - The key to the user’s current time zone region as defined in the tz database. Example: America/Los_Angeles.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Setting" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + } + } + }, + "subscriptions": { + "methods": { + "delete": { + "id": "mirror.subscriptions.delete", + "path": "subscriptions/{id}", + "httpMethod": "DELETE", + "description": "Deletes a subscription.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the subscription.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "insert": { + "id": "mirror.subscriptions.insert", + "path": "subscriptions", + "httpMethod": "POST", + "description": "Creates a new subscription.", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "list": { + "id": "mirror.subscriptions.list", + "path": "subscriptions", + "httpMethod": "GET", + "description": "Retrieves a list of subscriptions for the authenticated user and service.", + "response": { + "$ref": "SubscriptionsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "update": { + "id": "mirror.subscriptions.update", + "path": "subscriptions/{id}", + "httpMethod": "PUT", + "description": "Updates an existing subscription in place.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the subscription.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + } + } + }, + "timeline": { + "methods": { + "delete": { + "id": "mirror.timeline.delete", + "path": "timeline/{id}", + "httpMethod": "DELETE", + "description": "Deletes a timeline item.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the timeline item.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "get": { + "id": "mirror.timeline.get", + "path": "timeline/{id}", + "httpMethod": "GET", + "description": "Gets a single timeline item by ID.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the timeline item.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "TimelineItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "insert": { + "id": "mirror.timeline.insert", + "path": "timeline", + "httpMethod": "POST", + "description": "Inserts a new item into the timeline.", + "request": { + "$ref": "TimelineItem" + }, + "response": { + "$ref": "TimelineItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "audio/*", + "image/*", + "video/*" + ], + "maxSize": "10MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mirror/v1/timeline" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mirror/v1/timeline" + } + } + } + }, + "list": { + "id": "mirror.timeline.list", + "path": "timeline", + "httpMethod": "GET", + "description": "Retrieves a list of timeline items for the authenticated user.", + "parameters": { + "bundleId": { + "type": "string", + "description": "If provided, only items with the given bundleId will be returned.", + "location": "query" + }, + "includeDeleted": { + "type": "boolean", + "description": "If true, tombstone records for deleted items will be returned.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of items to include in the response, used for paging.", + "format": "uint32", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Controls the order in which timeline items are returned.", + "enum": [ + "displayTime", + "writeTime" + ], + "enumDescriptions": [ + "Results will be ordered by displayTime (default). This is the same ordering as is used in the timeline on the device.", + "Results will be ordered by the time at which they were last written to the data store." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token for the page of results to return.", + "location": "query" + }, + "pinnedOnly": { + "type": "boolean", + "description": "If true, only pinned items will be returned.", + "location": "query" + }, + "sourceItemId": { + "type": "string", + "description": "If provided, only items with the given sourceItemId will be returned.", + "location": "query" + } + }, + "response": { + "$ref": "TimelineListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "patch": { + "id": "mirror.timeline.patch", + "path": "timeline/{id}", + "httpMethod": "PATCH", + "description": "Updates a timeline item in place. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the timeline item.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "TimelineItem" + }, + "response": { + "$ref": "TimelineItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "update": { + "id": "mirror.timeline.update", + "path": "timeline/{id}", + "httpMethod": "PUT", + "description": "Updates a timeline item in place.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the timeline item.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "TimelineItem" + }, + "response": { + "$ref": "TimelineItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.location", + "https://www.googleapis.com/auth/glass.timeline" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "audio/*", + "image/*", + "video/*" + ], + "maxSize": "10MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mirror/v1/timeline/{id}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mirror/v1/timeline/{id}" + } + } + } + } + }, + "resources": { + "attachments": { + "methods": { + "delete": { + "id": "mirror.timeline.attachments.delete", + "path": "timeline/{itemId}/attachments/{attachmentId}", + "httpMethod": "DELETE", + "description": "Deletes an attachment from a timeline item.", + "parameters": { + "attachmentId": { + "type": "string", + "description": "The ID of the attachment.", + "required": true, + "location": "path" + }, + "itemId": { + "type": "string", + "description": "The ID of the timeline item the attachment belongs to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "itemId", + "attachmentId" + ], + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + }, + "get": { + "id": "mirror.timeline.attachments.get", + "path": "timeline/{itemId}/attachments/{attachmentId}", + "httpMethod": "GET", + "description": "Retrieves an attachment on a timeline item by item ID and attachment ID.", + "parameters": { + "attachmentId": { + "type": "string", + "description": "The ID of the attachment.", + "required": true, + "location": "path" + }, + "itemId": { + "type": "string", + "description": "The ID of the timeline item the attachment belongs to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "itemId", + "attachmentId" + ], + "response": { + "$ref": "Attachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ], + "supportsMediaDownload": true + }, + "insert": { + "id": "mirror.timeline.attachments.insert", + "path": "timeline/{itemId}/attachments", + "httpMethod": "POST", + "description": "Adds a new attachment to a timeline item.", + "parameters": { + "itemId": { + "type": "string", + "description": "The ID of the timeline item the attachment belongs to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "itemId" + ], + "response": { + "$ref": "Attachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "audio/*", + "image/*", + "video/*" + ], + "maxSize": "10MB", + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/mirror/v1/timeline/{itemId}/attachments" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/mirror/v1/timeline/{itemId}/attachments" + } + } + } + }, + "list": { + "id": "mirror.timeline.attachments.list", + "path": "timeline/{itemId}/attachments", + "httpMethod": "GET", + "description": "Returns a list of attachments for a timeline item.", + "parameters": { + "itemId": { + "type": "string", + "description": "The ID of the timeline item whose attachments should be listed.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "itemId" + ], + "response": { + "$ref": "AttachmentsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/glass.timeline" + ] + } + } + } + } + } + } +} diff --git a/etc/api/oauth2/v1/oauth2-api.json b/etc/api/oauth2/v1/oauth2-api.json new file mode 100644 index 0000000000..49e6a57999 --- /dev/null +++ b/etc/api/oauth2/v1/oauth2-api.json @@ -0,0 +1,353 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/9Yyv0tXok5k5vzXMjMvbTiT4GAM\"", + "discoveryVersion": "v1", + "id": "oauth2:v1", + "name": "oauth2", + "version": "v1", + "revision": "20150120", + "title": "Google OAuth2 API", + "description": "Lets you access OAuth2 protocol related APIs.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/accounts/docs/OAuth2", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/", + "basePath": "/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + }, + "https://www.googleapis.com/auth/plus.me": { + "description": "Know who you are on Google" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + }, + "https://www.googleapis.com/auth/userinfo.profile": { + "description": "View your basic profile info" + } + } + } + }, + "schemas": { + "Raw": { + "id": "Raw", + "type": "object", + "properties": { + "keyvalues": { + "type": "array", + "items": { + "type": "object", + "properties": { + "algorithm": { + "type": "string", + "default": "RSA" + }, + "exponent": { + "type": "string" + }, + "keyid": { + "type": "string" + }, + "modulus": { + "type": "string" + } + } + } + } + } + }, + "Tokeninfo": { + "id": "Tokeninfo", + "type": "object", + "properties": { + "access_type": { + "type": "string", + "description": "The access type granted with this token. It can be offline or online." + }, + "audience": { + "type": "string", + "description": "Who is the intended audience for this token. In general the same as issued_to." + }, + "email": { + "type": "string", + "description": "The email address of the user. Present only if the email scope is present in the request." + }, + "email_verified": { + "type": "boolean", + "description": "Boolean flag which is true if the email address is verified. Present only if the email scope is present in the request." + }, + "expires_in": { + "type": "integer", + "description": "The expiry time of the token, as number of seconds left until expiry.", + "format": "int32" + }, + "issued_at": { + "type": "integer", + "description": "The issue time of the token, as number of seconds.", + "format": "int32" + }, + "issued_to": { + "type": "string", + "description": "To whom was the token issued to. In general the same as audience." + }, + "issuer": { + "type": "string", + "description": "Who issued the token." + }, + "nonce": { + "type": "string", + "description": "Nonce of the id token." + }, + "scope": { + "type": "string", + "description": "The space separated list of scopes granted to this token." + }, + "user_id": { + "type": "string", + "description": "The Gaia obfuscated user id." + }, + "verified_email": { + "type": "boolean", + "description": "Boolean flag which is true if the email address is verified. Present only if the email scope is present in the request." + } + } + }, + "Userinfoplus": { + "id": "Userinfoplus", + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The user's email address." + }, + "family_name": { + "type": "string", + "description": "The user's last name." + }, + "gender": { + "type": "string", + "description": "The user's gender." + }, + "given_name": { + "type": "string", + "description": "The user's first name." + }, + "hd": { + "type": "string", + "description": "The hosted domain e.g. example.com if the user is Google apps user." + }, + "id": { + "type": "string", + "description": "The focus obfuscated gaia id of the user." + }, + "link": { + "type": "string", + "description": "URL of the profile page." + }, + "locale": { + "type": "string", + "description": "The user's preferred locale." + }, + "name": { + "type": "string", + "description": "The user's full name." + }, + "picture": { + "type": "string", + "description": "URL of the user's picture image." + }, + "verified_email": { + "type": "boolean", + "description": "Boolean flag which is true if the email address is verified. Always verified because we only return the user's primary email address.", + "default": "true" + } + } + }, + "X509": { + "id": "X509", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "methods": { + "getCertForOpenIdConnect": { + "id": "oauth2.getCertForOpenIdConnect", + "path": "oauth2/v1/certs", + "httpMethod": "GET", + "response": { + "$ref": "X509" + } + }, + "getCertForOpenIdConnectRaw": { + "id": "oauth2.getCertForOpenIdConnectRaw", + "path": "oauth2/v1/raw_public_keys", + "httpMethod": "GET", + "response": { + "$ref": "Raw" + } + }, + "getRobotMetadataRaw": { + "id": "oauth2.getRobotMetadataRaw", + "path": "service_accounts/v1/metadata/raw/{robotEmail}", + "httpMethod": "GET", + "parameters": { + "robotEmail": { + "type": "string", + "description": "The email of robot account.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "robotEmail" + ], + "response": { + "$ref": "Raw" + } + }, + "getRobotMetadataX509": { + "id": "oauth2.getRobotMetadataX509", + "path": "service_accounts/v1/metadata/x509/{robotEmail}", + "httpMethod": "GET", + "parameters": { + "robotEmail": { + "type": "string", + "description": "The email of robot account.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "robotEmail" + ], + "response": { + "$ref": "X509" + } + }, + "tokeninfo": { + "id": "oauth2.tokeninfo", + "path": "oauth2/v1/tokeninfo", + "httpMethod": "POST", + "description": "Get token info", + "parameters": { + "access_token": { + "type": "string", + "description": "The oauth2 access token", + "location": "query" + }, + "id_token": { + "type": "string", + "description": "The ID token", + "location": "query" + } + }, + "response": { + "$ref": "Tokeninfo" + } + } + }, + "resources": { + "userinfo": { + "methods": { + "get": { + "id": "oauth2.userinfo.get", + "path": "oauth2/v1/userinfo", + "httpMethod": "GET", + "description": "Get user info", + "response": { + "$ref": "Userinfoplus" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + } + }, + "resources": { + "v2": { + "resources": { + "me": { + "methods": { + "get": { + "id": "oauth2.userinfo.v2.me.get", + "path": "userinfo/v2/me", + "httpMethod": "GET", + "description": "Get user info", + "response": { + "$ref": "Userinfoplus" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + } + } + } + } + } + } + } + } +} diff --git a/etc/api/oauth2/v2/oauth2-api.json b/etc/api/oauth2/v2/oauth2-api.json new file mode 100644 index 0000000000..e6b6d5c83d --- /dev/null +++ b/etc/api/oauth2/v2/oauth2-api.json @@ -0,0 +1,286 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/x7FThRC1OZmHwbkYbDOWKsWuUA8\"", + "discoveryVersion": "v1", + "id": "oauth2:v2", + "name": "oauth2", + "version": "v2", + "revision": "20150120", + "title": "Google OAuth2 API", + "description": "Lets you access OAuth2 protocol related APIs.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/accounts/docs/OAuth2", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/", + "basePath": "/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + }, + "https://www.googleapis.com/auth/plus.me": { + "description": "Know who you are on Google" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + }, + "https://www.googleapis.com/auth/userinfo.profile": { + "description": "View your basic profile info" + } + } + } + }, + "schemas": { + "Jwk": { + "id": "Jwk", + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "alg": { + "type": "string", + "default": "RS256" + }, + "e": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "kty": { + "type": "string", + "default": "RSA" + }, + "n": { + "type": "string" + }, + "use": { + "type": "string", + "default": "sig" + } + } + } + } + } + }, + "Tokeninfo": { + "id": "Tokeninfo", + "type": "object", + "properties": { + "access_type": { + "type": "string", + "description": "The access type granted with this token. It can be offline or online." + }, + "audience": { + "type": "string", + "description": "Who is the intended audience for this token. In general the same as issued_to." + }, + "email": { + "type": "string", + "description": "The email address of the user. Present only if the email scope is present in the request." + }, + "expires_in": { + "type": "integer", + "description": "The expiry time of the token, as number of seconds left until expiry.", + "format": "int32" + }, + "issued_to": { + "type": "string", + "description": "To whom was the token issued to. In general the same as audience." + }, + "scope": { + "type": "string", + "description": "The space separated list of scopes granted to this token." + }, + "user_id": { + "type": "string", + "description": "The Gaia obfuscated user id." + }, + "verified_email": { + "type": "boolean", + "description": "Boolean flag which is true if the email address is verified. Present only if the email scope is present in the request." + } + } + }, + "Userinfoplus": { + "id": "Userinfoplus", + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The user's email address." + }, + "family_name": { + "type": "string", + "description": "The user's last name." + }, + "gender": { + "type": "string", + "description": "The user's gender." + }, + "given_name": { + "type": "string", + "description": "The user's first name." + }, + "hd": { + "type": "string", + "description": "The hosted domain e.g. example.com if the user is Google apps user." + }, + "id": { + "type": "string", + "description": "The focus obfuscated gaia id of the user." + }, + "link": { + "type": "string", + "description": "URL of the profile page." + }, + "locale": { + "type": "string", + "description": "The user's preferred locale." + }, + "name": { + "type": "string", + "description": "The user's full name." + }, + "picture": { + "type": "string", + "description": "URL of the user's picture image." + }, + "verified_email": { + "type": "boolean", + "description": "Boolean flag which is true if the email address is verified. Always verified because we only return the user's primary email address.", + "default": "true" + } + } + } + }, + "methods": { + "getCertForOpenIdConnect": { + "id": "oauth2.getCertForOpenIdConnect", + "path": "oauth2/v2/certs", + "httpMethod": "GET", + "response": { + "$ref": "Jwk" + } + }, + "tokeninfo": { + "id": "oauth2.tokeninfo", + "path": "oauth2/v2/tokeninfo", + "httpMethod": "POST", + "parameters": { + "access_token": { + "type": "string", + "location": "query" + }, + "id_token": { + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "Tokeninfo" + } + } + }, + "resources": { + "userinfo": { + "methods": { + "get": { + "id": "oauth2.userinfo.get", + "path": "oauth2/v2/userinfo", + "httpMethod": "GET", + "response": { + "$ref": "Userinfoplus" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + } + }, + "resources": { + "v2": { + "resources": { + "me": { + "methods": { + "get": { + "id": "oauth2.userinfo.v2.me.get", + "path": "userinfo/v2/me", + "httpMethod": "GET", + "response": { + "$ref": "Userinfoplus" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + } + } + } + } + } + } + } + } +} diff --git a/etc/api/pagespeedonline/v1/pagespeedonline-api.json b/etc/api/pagespeedonline/v1/pagespeedonline-api.json new file mode 100644 index 0000000000..475a261627 --- /dev/null +++ b/etc/api/pagespeedonline/v1/pagespeedonline-api.json @@ -0,0 +1,415 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/ZxBeTkfCnEKvhvWii3EWvp3ftvE\"", + "discoveryVersion": "v1", + "id": "pagespeedonline:v1", + "name": "pagespeedonline", + "version": "v1", + "revision": "20150108", + "title": "PageSpeed Insights API", + "description": "Lets you analyze the performance of a web page and get tailored suggestions to make that page faster.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/pagespeed-16.png", + "x32": "https://www.google.com/images/icons/product/pagespeed-32.png" + }, + "documentationLink": "https://developers.google.com/speed/docs/insights/v1/getting_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/pagespeedonline/v1/", + "basePath": "/pagespeedonline/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "pagespeedonline/v1/", + "batchPath": "batch", + "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": { + "Result": { + "id": "Result", + "type": "object", + "properties": { + "formattedResults": { + "type": "object", + "description": "Localized Page Speed results. Contains a ruleResults entry for each Page Speed rule instantiated and run by the server.", + "properties": { + "locale": { + "type": "string", + "description": "The locale of the formattedResults, e.g. \"en_US\"." + }, + "ruleResults": { + "type": "object", + "description": "Dictionary of formatted rule results, with one entry for each Page Speed rule instantiated and run by the server.", + "additionalProperties": { + "type": "object", + "description": "The enum-like identifier for this rule. For instance \"EnableKeepAlive\" or \"AvoidCssImport\". Not localized.", + "properties": { + "localizedRuleName": { + "type": "string", + "description": "Localized name of the rule, intended for presentation to a user." + }, + "ruleImpact": { + "type": "number", + "description": "The impact (unbounded floating point value) that implementing the suggestions for this rule would have on making the page faster. Impact is comparable between rules to determine which rule's suggestions would have a higher or lower impact on making a page faster. For instance, if enabling compression would save 1MB, while optimizing images would save 500kB, the enable compression rule would have 2x the impact of the image optimization rule, all other things being equal.", + "format": "double" + }, + "urlBlocks": { + "type": "array", + "description": "List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details.", + "items": { + "type": "object", + "properties": { + "header": { + "type": "object", + "description": "Heading to be displayed with the list of URLs.", + "properties": { + "args": { + "type": "array", + "description": "List of arguments for the format string.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION." + }, + "value": { + "type": "string", + "description": "Argument value, as a localized string." + } + } + } + }, + "format": { + "type": "string", + "description": "A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the following $1 resources would save a total of $2 bytes'." + } + } + }, + "urls": { + "type": "array", + "description": "List of entries that provide information about URLs in the url block. Optional.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "List of entries that provide additional details about a single URL. Optional.", + "items": { + "type": "object", + "properties": { + "args": { + "type": "array", + "description": "List of arguments for the format string.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION." + }, + "value": { + "type": "string", + "description": "Argument value, as a localized string." + } + } + } + }, + "format": { + "type": "string", + "description": "A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Unnecessary metadata for this resource adds an additional $1 bytes to its download size'." + } + } + } + }, + "result": { + "type": "object", + "description": "A format string that gives information about the URL, and a list of arguments for that format string.", + "properties": { + "args": { + "type": "array", + "description": "List of arguments for the format string.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION." + }, + "value": { + "type": "string", + "description": "Argument value, as a localized string." + } + } + } + }, + "format": { + "type": "string", + "description": "A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the resource at URL $1 can save $2 bytes'." + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "id": { + "type": "string", + "description": "Canonicalized and final URL for the document, after following page redirects (if any)." + }, + "invalidRules": { + "type": "array", + "description": "List of rules that were specified in the request, but which the server did not know how to instantiate.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Kind of result.", + "default": "pagespeedonline#result" + }, + "pageStats": { + "type": "object", + "description": "Summary statistics for the page, such as number of JavaScript bytes, number of HTML bytes, etc.", + "properties": { + "cssResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for CSS resources on the page.", + "format": "int64" + }, + "flashResponseBytes": { + "type": "string", + "description": "Number of response bytes for flash resources on the page.", + "format": "int64" + }, + "htmlResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for the main HTML document and all iframes on the page.", + "format": "int64" + }, + "imageResponseBytes": { + "type": "string", + "description": "Number of response bytes for image resources on the page.", + "format": "int64" + }, + "javascriptResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for JS resources on the page.", + "format": "int64" + }, + "numberCssResources": { + "type": "integer", + "description": "Number of CSS resources referenced by the page.", + "format": "int32" + }, + "numberHosts": { + "type": "integer", + "description": "Number of unique hosts referenced by the page.", + "format": "int32" + }, + "numberJsResources": { + "type": "integer", + "description": "Number of JavaScript resources referenced by the page.", + "format": "int32" + }, + "numberResources": { + "type": "integer", + "description": "Number of HTTP resources loaded by the page.", + "format": "int32" + }, + "numberStaticResources": { + "type": "integer", + "description": "Number of static (i.e. cacheable) resources on the page.", + "format": "int32" + }, + "otherResponseBytes": { + "type": "string", + "description": "Number of response bytes for other resources on the page.", + "format": "int64" + }, + "textResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for text resources not covered by other statistics (i.e non-HTML, non-script, non-CSS resources) on the page.", + "format": "int64" + }, + "totalRequestBytes": { + "type": "string", + "description": "Total size of all request bytes sent by the page.", + "format": "int64" + } + } + }, + "responseCode": { + "type": "integer", + "description": "Response code for the document. 200 indicates a normal page load. 4xx/5xx indicates an error.", + "format": "int32" + }, + "score": { + "type": "integer", + "description": "The Page Speed Score (0-100), which indicates how much faster a page could be. A high score indicates little room for improvement, while a lower score indicates more room for improvement.", + "format": "int32" + }, + "screenshot": { + "type": "object", + "description": "Base64 encoded screenshot of the page that was analyzed.", + "properties": { + "data": { + "type": "string", + "description": "Image data base64 encoded.", + "format": "byte" + }, + "height": { + "type": "integer", + "description": "Height of screenshot in pixels.", + "format": "int32" + }, + "mime_type": { + "type": "string", + "description": "Mime type of image data. E.g. \"image/jpeg\"." + }, + "width": { + "type": "integer", + "description": "Width of screenshot in pixels.", + "format": "int32" + } + } + }, + "title": { + "type": "string", + "description": "Title of the page, as displayed in the browser's title bar." + }, + "version": { + "type": "object", + "description": "The version of the Page Speed SDK used to generate these results.", + "properties": { + "major": { + "type": "integer", + "description": "The major version number of the Page Speed SDK used to generate these results.", + "format": "int32" + }, + "minor": { + "type": "integer", + "description": "The minor version number of the Page Speed SDK used to generate these results.", + "format": "int32" + } + } + } + } + } + }, + "resources": { + "pagespeedapi": { + "methods": { + "runpagespeed": { + "id": "pagespeedonline.pagespeedapi.runpagespeed", + "path": "runPagespeed", + "httpMethod": "GET", + "description": "Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, a list of suggestions to make that page faster, and other information.", + "parameters": { + "filter_third_party_resources": { + "type": "boolean", + "description": "Indicates if third party resources should be filtered out before PageSpeed analysis.", + "default": "false", + "location": "query" + }, + "locale": { + "type": "string", + "description": "The locale used to localize formatted results", + "pattern": "[a-zA-Z]+(_[a-zA-Z]+)?", + "location": "query" + }, + "rule": { + "type": "string", + "description": "A Page Speed rule to run; if none are given, all rules are run", + "pattern": "[a-zA-Z]+", + "repeated": true, + "location": "query" + }, + "screenshot": { + "type": "boolean", + "description": "Indicates if binary data containing a screenshot should be included", + "default": "false", + "location": "query" + }, + "strategy": { + "type": "string", + "description": "The analysis strategy to use", + "enum": [ + "desktop", + "mobile" + ], + "enumDescriptions": [ + "Fetch and analyze the URL for desktop browsers", + "Fetch and analyze the URL for mobile devices" + ], + "location": "query" + }, + "url": { + "type": "string", + "description": "The URL to fetch and analyze", + "required": true, + "pattern": "http(s)?://.*", + "location": "query" + } + }, + "parameterOrder": [ + "url" + ], + "response": { + "$ref": "Result" + } + } + } + } + } +} diff --git a/etc/api/pagespeedonline/v2/pagespeedonline-api.json b/etc/api/pagespeedonline/v2/pagespeedonline-api.json new file mode 100644 index 0000000000..e1e4b236a0 --- /dev/null +++ b/etc/api/pagespeedonline/v2/pagespeedonline-api.json @@ -0,0 +1,490 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/y8eCF6QessR8F9s9erx5q0lLF1U\"", + "discoveryVersion": "v1", + "id": "pagespeedonline:v2", + "name": "pagespeedonline", + "version": "v2", + "revision": "20150108", + "title": "PageSpeed Insights API", + "description": "Lets you analyze the performance of a web page and get tailored suggestions to make that page faster.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/pagespeed-16.png", + "x32": "https://www.google.com/images/icons/product/pagespeed-32.png" + }, + "documentationLink": "https://developers.google.com/speed/docs/insights/v1/getting_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/pagespeedonline/v2/", + "basePath": "/pagespeedonline/v2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "pagespeedonline/v2/", + "batchPath": "batch", + "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": { + "PagespeedApiFormatStringV2": { + "id": "PagespeedApiFormatStringV2", + "type": "object", + "properties": { + "args": { + "type": "array", + "description": "List of arguments for the format string.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The placeholder key for this arg, as a string." + }, + "rects": { + "type": "array", + "description": "The screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is absent for a SNAPSHOT_RECT argument, it means that that argument refers to the entire snapshot.", + "items": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "description": "The height of the rect.", + "format": "int32" + }, + "left": { + "type": "integer", + "description": "The left coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "top": { + "type": "integer", + "description": "The top coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "width": { + "type": "integer", + "description": "The width of the rect.", + "format": "int32" + } + } + } + }, + "secondary_rects": { + "type": "array", + "description": "Secondary screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments.", + "items": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "description": "The height of the rect.", + "format": "int32" + }, + "left": { + "type": "integer", + "description": "The left coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "top": { + "type": "integer", + "description": "The top coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "width": { + "type": "integer", + "description": "The width of the rect.", + "format": "int32" + } + } + } + }, + "type": { + "type": "string", + "description": "Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT." + }, + "value": { + "type": "string", + "description": "Argument value, as a localized string." + } + } + } + }, + "format": { + "type": "string", + "description": "A localized format string with {{FOO}} placeholders, where 'FOO' is the key of the argument whose value should be substituted. For HYPERLINK arguments, the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for the argument with key 'FOO'." + } + } + }, + "PagespeedApiImageV2": { + "id": "PagespeedApiImageV2", + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Image data base64 encoded.", + "format": "byte" + }, + "height": { + "type": "integer", + "description": "Height of screenshot in pixels.", + "format": "int32" + }, + "key": { + "type": "string", + "description": "Unique string key, if any, identifying this image." + }, + "mime_type": { + "type": "string", + "description": "Mime type of image data (e.g. \"image/jpeg\")." + }, + "page_rect": { + "type": "object", + "description": "The region of the page that is captured by this image, with dimensions measured in CSS pixels.", + "properties": { + "height": { + "type": "integer", + "description": "The height of the rect.", + "format": "int32" + }, + "left": { + "type": "integer", + "description": "The left coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "top": { + "type": "integer", + "description": "The top coordinate of the rect, in page coordinates.", + "format": "int32" + }, + "width": { + "type": "integer", + "description": "The width of the rect.", + "format": "int32" + } + } + }, + "width": { + "type": "integer", + "description": "Width of screenshot in pixels.", + "format": "int32" + } + } + }, + "Result": { + "id": "Result", + "type": "object", + "properties": { + "formattedResults": { + "type": "object", + "description": "Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed rule instantiated and run by the server.", + "properties": { + "locale": { + "type": "string", + "description": "The locale of the formattedResults, e.g. \"en_US\"." + }, + "ruleResults": { + "type": "object", + "description": "Dictionary of formatted rule results, with one entry for each PageSpeed rule instantiated and run by the server.", + "additionalProperties": { + "type": "object", + "description": "The enum-like identifier for this rule. For instance \"EnableKeepAlive\" or \"AvoidCssImport\". Not localized.", + "properties": { + "groups": { + "type": "array", + "description": "List of rule groups that this rule belongs to. Each entry in the list is one of \"SPEED\" or \"USABILITY\".", + "items": { + "type": "string" + } + }, + "localizedRuleName": { + "type": "string", + "description": "Localized name of the rule, intended for presentation to a user." + }, + "ruleImpact": { + "type": "number", + "description": "The impact (unbounded floating point value) that implementing the suggestions for this rule would have on making the page faster. Impact is comparable between rules to determine which rule's suggestions would have a higher or lower impact on making a page faster. For instance, if enabling compression would save 1MB, while optimizing images would save 500kB, the enable compression rule would have 2x the impact of the image optimization rule, all other things being equal.", + "format": "double" + }, + "summary": { + "$ref": "PagespeedApiFormatStringV2", + "description": "A brief summary description for the rule, indicating at a high level what should be done to follow the rule and what benefit can be gained by doing so." + }, + "urlBlocks": { + "type": "array", + "description": "List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details.", + "items": { + "type": "object", + "properties": { + "header": { + "$ref": "PagespeedApiFormatStringV2", + "description": "Heading to be displayed with the list of URLs." + }, + "urls": { + "type": "array", + "description": "List of entries that provide information about URLs in the url block. Optional.", + "items": { + "type": "object", + "properties": { + "details": { + "type": "array", + "description": "List of entries that provide additional details about a single URL. Optional.", + "items": { + "$ref": "PagespeedApiFormatStringV2" + } + }, + "result": { + "$ref": "PagespeedApiFormatStringV2", + "description": "A format string that gives information about the URL, and a list of arguments for that format string." + } + } + } + } + } + } + } + } + } + } + } + }, + "id": { + "type": "string", + "description": "Canonicalized and final URL for the document, after following page redirects (if any)." + }, + "invalidRules": { + "type": "array", + "description": "List of rules that were specified in the request, but which the server did not know how to instantiate.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Kind of result.", + "default": "pagespeedonline#result" + }, + "pageStats": { + "type": "object", + "description": "Summary statistics for the page, such as number of JavaScript bytes, number of HTML bytes, etc.", + "properties": { + "cssResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for CSS resources on the page.", + "format": "int64" + }, + "flashResponseBytes": { + "type": "string", + "description": "Number of response bytes for flash resources on the page.", + "format": "int64" + }, + "htmlResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for the main HTML document and all iframes on the page.", + "format": "int64" + }, + "imageResponseBytes": { + "type": "string", + "description": "Number of response bytes for image resources on the page.", + "format": "int64" + }, + "javascriptResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for JS resources on the page.", + "format": "int64" + }, + "numberCssResources": { + "type": "integer", + "description": "Number of CSS resources referenced by the page.", + "format": "int32" + }, + "numberHosts": { + "type": "integer", + "description": "Number of unique hosts referenced by the page.", + "format": "int32" + }, + "numberJsResources": { + "type": "integer", + "description": "Number of JavaScript resources referenced by the page.", + "format": "int32" + }, + "numberResources": { + "type": "integer", + "description": "Number of HTTP resources loaded by the page.", + "format": "int32" + }, + "numberStaticResources": { + "type": "integer", + "description": "Number of static (i.e. cacheable) resources on the page.", + "format": "int32" + }, + "otherResponseBytes": { + "type": "string", + "description": "Number of response bytes for other resources on the page.", + "format": "int64" + }, + "textResponseBytes": { + "type": "string", + "description": "Number of uncompressed response bytes for text resources not covered by other statistics (i.e non-HTML, non-script, non-CSS resources) on the page.", + "format": "int64" + }, + "totalRequestBytes": { + "type": "string", + "description": "Total size of all request bytes sent by the page.", + "format": "int64" + } + } + }, + "responseCode": { + "type": "integer", + "description": "Response code for the document. 200 indicates a normal page load. 4xx/5xx indicates an error.", + "format": "int32" + }, + "ruleGroups": { + "type": "object", + "description": "A map with one entry for each rule group in these results.", + "additionalProperties": { + "type": "object", + "description": "The name of this rule group: one of \"SPEED\" or \"USABILITY\".", + "properties": { + "score": { + "type": "integer", + "description": "The score (0-100) for this rule group, which indicates how much better a page could be in that category (e.g. how much faster, or how much more usable). A high score indicates little room for improvement, while a lower score indicates more room for improvement.", + "format": "int32" + } + } + } + }, + "screenshot": { + "$ref": "PagespeedApiImageV2", + "description": "Base64-encoded screenshot of the page that was analyzed." + }, + "title": { + "type": "string", + "description": "Title of the page, as displayed in the browser's title bar." + }, + "version": { + "type": "object", + "description": "The version of PageSpeed used to generate these results.", + "properties": { + "major": { + "type": "integer", + "description": "The major version number of PageSpeed used to generate these results.", + "format": "int32" + }, + "minor": { + "type": "integer", + "description": "The minor version number of PageSpeed used to generate these results.", + "format": "int32" + } + } + } + } + } + }, + "resources": { + "pagespeedapi": { + "methods": { + "runpagespeed": { + "id": "pagespeedonline.pagespeedapi.runpagespeed", + "path": "runPagespeed", + "httpMethod": "GET", + "description": "Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.", + "parameters": { + "filter_third_party_resources": { + "type": "boolean", + "description": "Indicates if third party resources should be filtered out before PageSpeed analysis.", + "default": "false", + "location": "query" + }, + "locale": { + "type": "string", + "description": "The locale used to localize formatted results", + "pattern": "[a-zA-Z]+(_[a-zA-Z]+)?", + "location": "query" + }, + "rule": { + "type": "string", + "description": "A PageSpeed rule to run; if none are given, all rules are run", + "pattern": "[a-zA-Z]+", + "repeated": true, + "location": "query" + }, + "screenshot": { + "type": "boolean", + "description": "Indicates if binary data containing a screenshot should be included", + "default": "false", + "location": "query" + }, + "strategy": { + "type": "string", + "description": "The analysis strategy to use", + "enum": [ + "desktop", + "mobile" + ], + "enumDescriptions": [ + "Fetch and analyze the URL for desktop browsers", + "Fetch and analyze the URL for mobile devices" + ], + "location": "query" + }, + "url": { + "type": "string", + "description": "The URL to fetch and analyze", + "required": true, + "pattern": "http(s)?://.*", + "location": "query" + } + }, + "parameterOrder": [ + "url" + ], + "response": { + "$ref": "Result" + } + } + } + } + } +} diff --git a/etc/api/plus/v1/plus-api.json b/etc/api/plus/v1/plus-api.json new file mode 100644 index 0000000000..6619668f53 --- /dev/null +++ b/etc/api/plus/v1/plus-api.json @@ -0,0 +1,1963 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/yIlgMiAhuGzU5ET3NtXZn6hNffI\"", + "discoveryVersion": "v1", + "id": "plus:v1", + "name": "plus", + "version": "v1", + "revision": "20150105", + "title": "Google+ API", + "description": "The Google+ API enables developers to build on top of the Google+ platform.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/gplus-16.png", + "x32": "http://www.google.com/images/icons/product/gplus-32.png" + }, + "documentationLink": "https://developers.google.com/+/api/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/plus/v1/", + "basePath": "/plus/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "plus/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + }, + "https://www.googleapis.com/auth/plus.me": { + "description": "Know who you are on Google" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + }, + "https://www.googleapis.com/auth/userinfo.profile": { + "description": "View your basic profile info" + } + } + } + }, + "schemas": { + "Acl": { + "id": "Acl", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the access granted, suitable for display." + }, + "items": { + "type": "array", + "description": "The list of access entries.", + "items": { + "$ref": "PlusAclentryResource" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of access controls. Value: \"plus#acl\".", + "default": "plus#acl" + } + } + }, + "Activity": { + "id": "Activity", + "type": "object", + "properties": { + "access": { + "$ref": "Acl", + "description": "Identifies who has access to see this activity." + }, + "actor": { + "type": "object", + "description": "The person who performed this activity.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the actor, suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the actor's Person resource." + }, + "image": { + "type": "object", + "description": "The image representation of the actor.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of name.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name (\"last name\") of the actor." + }, + "givenName": { + "type": "string", + "description": "The given name (\"first name\") of the actor." + } + } + }, + "url": { + "type": "string", + "description": "The link to the actor's Google profile." + } + } + }, + "address": { + "type": "string", + "description": "Street address where this activity occurred." + }, + "annotation": { + "type": "string", + "description": "Additional content added by the person who shared this activity, applicable only when resharing an activity." + }, + "crosspostSource": { + "type": "string", + "description": "If this activity is a crosspost from another system, this property specifies the ID of the original activity." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "geocode": { + "type": "string", + "description": "Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated." + }, + "id": { + "type": "string", + "description": "The ID of this activity." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as an activity. Value: \"plus#activity\".", + "default": "plus#activity" + }, + "location": { + "$ref": "Place", + "description": "The location where this activity occurred." + }, + "object": { + "type": "object", + "description": "The object of this activity.", + "properties": { + "actor": { + "type": "object", + "description": "If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.", + "properties": { + "displayName": { + "type": "string", + "description": "The original actor's name, which is suitable for display." + }, + "id": { + "type": "string", + "description": "ID of the original actor." + }, + "image": { + "type": "object", + "description": "The image representation of the original actor.", + "properties": { + "url": { + "type": "string", + "description": "A URL that points to a thumbnail photo of the original actor." + } + } + }, + "url": { + "type": "string", + "description": "A link to the original actor's Google profile." + } + } + }, + "attachments": { + "type": "array", + "description": "The media objects attached to this activity.", + "items": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types." + }, + "displayName": { + "type": "string", + "description": "The title of the attachment, such as a photo caption or an article title." + }, + "embed": { + "type": "object", + "description": "If the attachment is a video, the embeddable link.", + "properties": { + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "URL of the link." + } + } + }, + "fullImage": { + "type": "object", + "description": "The full image URL for photo attachments.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "URL of the image." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "id": { + "type": "string", + "description": "The ID of the attachment." + }, + "image": { + "type": "object", + "description": "The preview image for photos or videos.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "Image URL." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "objectType": { + "type": "string", + "description": "The type of media object. Possible values include, but are not limited to, the following values: \n- \"photo\" - A photo. \n- \"album\" - A photo album. \n- \"video\" - A video. \n- \"article\" - An article, specified by a link." + }, + "thumbnails": { + "type": "array", + "description": "If the attachment is an album, this property is a list of potential additional thumbnails from the album.", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Potential name of the thumbnail." + }, + "image": { + "type": "object", + "description": "Image resource.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "Image url." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "url": { + "type": "string", + "description": "URL of the webpage containing the image." + } + } + } + }, + "url": { + "type": "string", + "description": "The link to the attachment, which should be of type text/html." + } + } + } + }, + "content": { + "type": "string", + "description": "The HTML-formatted content, which is suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared." + }, + "objectType": { + "type": "string", + "description": "The type of the object. Possible values include, but are not limited to, the following values: \n- \"note\" - Textual content. \n- \"activity\" - A Google+ activity." + }, + "originalContent": { + "type": "string", + "description": "The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request." + }, + "plusoners": { + "type": "object", + "description": "People who +1'd this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of people who +1'd this activity." + }, + "totalItems": { + "type": "integer", + "description": "Total number of people who +1'd this activity.", + "format": "uint32" + } + } + }, + "replies": { + "type": "object", + "description": "Comments in reply to this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of comments in reply to this activity." + }, + "totalItems": { + "type": "integer", + "description": "Total number of comments on this activity.", + "format": "uint32" + } + } + }, + "resharers": { + "type": "object", + "description": "People who reshared this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of resharers." + }, + "totalItems": { + "type": "integer", + "description": "Total number of people who reshared this activity.", + "format": "uint32" + } + } + }, + "url": { + "type": "string", + "description": "The URL that points to the linked resource." + } + } + }, + "placeId": { + "type": "string", + "description": "ID of the place where this activity occurred." + }, + "placeName": { + "type": "string", + "description": "Name of the place where this activity occurred." + }, + "provider": { + "type": "object", + "description": "The service provider that initially published this activity.", + "properties": { + "title": { + "type": "string", + "description": "Name of the service provider." + } + } + }, + "published": { + "type": "string", + "description": "The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "radius": { + "type": "string", + "description": "Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode." + }, + "title": { + "type": "string", + "description": "Title of this activity." + }, + "updated": { + "type": "string", + "description": "The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The link to this activity." + }, + "verb": { + "type": "string", + "description": "This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values: \n- \"post\" - Publish content to the stream. \n- \"share\" - Reshare an activity." + } + } + }, + "ActivityFeed": { + "id": "ActivityFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this collection of activities. Deprecated." + }, + "items": { + "type": "array", + "description": "The activities in this page of results.", + "items": { + "$ref": "Activity" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of activities. Value: \"plus#activityFeed\".", + "default": "plus#activityFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of activities." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this activity resource." + }, + "title": { + "type": "string", + "description": "The title of this collection of activities, which is a truncated portion of the content." + }, + "updated": { + "type": "string", + "description": "The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + } + } + }, + "Comment": { + "id": "Comment", + "type": "object", + "properties": { + "actor": { + "type": "object", + "description": "The person who posted this comment.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of this actor, suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the actor." + }, + "image": { + "type": "object", + "description": "The image representation of this actor.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "url": { + "type": "string", + "description": "A link to the Person resource for this actor." + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this comment." + }, + "inReplyTo": { + "type": "array", + "description": "The activity this comment replied to.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the activity." + }, + "url": { + "type": "string", + "description": "The URL of the activity." + } + } + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a comment. Value: \"plus#comment\".", + "default": "plus#comment" + }, + "object": { + "type": "object", + "description": "The object of this comment.", + "properties": { + "content": { + "type": "string", + "description": "The HTML-formatted content, suitable for display." + }, + "objectType": { + "type": "string", + "description": "The object type of this comment. Possible values are: \n- \"comment\" - A comment in reply to an activity.", + "default": "comment" + }, + "originalContent": { + "type": "string", + "description": "The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request." + } + } + }, + "plusoners": { + "type": "object", + "description": "People who +1'd this comment.", + "properties": { + "totalItems": { + "type": "integer", + "description": "Total number of people who +1'd this comment.", + "format": "uint32" + } + } + }, + "published": { + "type": "string", + "description": "The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "Link to this comment resource." + }, + "updated": { + "type": "string", + "description": "The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "verb": { + "type": "string", + "description": "This comment's verb, indicating what action was performed. Possible values are: \n- \"post\" - Publish content to the stream.", + "default": "post" + } + } + }, + "CommentFeed": { + "id": "CommentFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this collection of comments." + }, + "items": { + "type": "array", + "description": "The comments in this page of results.", + "items": { + "$ref": "Comment" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of comments. Value: \"plus#commentFeed\".", + "default": "plus#commentFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of activities." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "title": { + "type": "string", + "description": "The title of this collection of comments." + }, + "updated": { + "type": "string", + "description": "The time at which this collection of comments was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + } + } + }, + "ItemScope": { + "id": "ItemScope", + "type": "object", + "properties": { + "about": { + "$ref": "ItemScope", + "description": "The subject matter of the content." + }, + "additionalName": { + "type": "array", + "description": "An additional name for a Person, can be used for a middle name.", + "items": { + "type": "string" + } + }, + "address": { + "$ref": "ItemScope", + "description": "Postal address." + }, + "addressCountry": { + "type": "string", + "description": "Address country." + }, + "addressLocality": { + "type": "string", + "description": "Address locality." + }, + "addressRegion": { + "type": "string", + "description": "Address region." + }, + "associated_media": { + "type": "array", + "description": "The encoding.", + "items": { + "$ref": "ItemScope" + } + }, + "attendeeCount": { + "type": "integer", + "description": "Number of attendees.", + "format": "int32" + }, + "attendees": { + "type": "array", + "description": "A person attending the event.", + "items": { + "$ref": "ItemScope" + } + }, + "audio": { + "$ref": "ItemScope", + "description": "From http://schema.org/MusicRecording, the audio file." + }, + "author": { + "type": "array", + "description": "The person or persons who created this result. In the example of restaurant reviews, this might be the reviewer's name.", + "items": { + "$ref": "ItemScope" + } + }, + "bestRating": { + "type": "string", + "description": "Best possible rating value that a result might obtain. This property defines the upper bound for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5 as the value for this property." + }, + "birthDate": { + "type": "string", + "description": "Date of birth." + }, + "byArtist": { + "$ref": "ItemScope", + "description": "From http://schema.org/MusicRecording, the artist that performed this recording." + }, + "caption": { + "type": "string", + "description": "The caption for this object." + }, + "contentSize": { + "type": "string", + "description": "File size in (mega/kilo) bytes." + }, + "contentUrl": { + "type": "string", + "description": "Actual bytes of the media object, for example the image file or video file." + }, + "contributor": { + "type": "array", + "description": "A list of contributors to this result.", + "items": { + "$ref": "ItemScope" + } + }, + "dateCreated": { + "type": "string", + "description": "The date the result was created such as the date that a review was first created." + }, + "dateModified": { + "type": "string", + "description": "The date the result was last modified such as the date that a review was last edited." + }, + "datePublished": { + "type": "string", + "description": "The initial date that the result was published. For example, a user writes a comment on a blog, which has a result.dateCreated of when they submit it. If the blog users comment moderation, the result.datePublished value would match the date when the owner approved the message." + }, + "description": { + "type": "string", + "description": "The string that describes the content of the result." + }, + "duration": { + "type": "string", + "description": "The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format." + }, + "embedUrl": { + "type": "string", + "description": "A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag." + }, + "endDate": { + "type": "string", + "description": "The end date and time of the event (in ISO 8601 date format)." + }, + "familyName": { + "type": "string", + "description": "Family name. This property can be used with givenName instead of the name property." + }, + "gender": { + "type": "string", + "description": "Gender of the person." + }, + "geo": { + "$ref": "ItemScope", + "description": "Geo coordinates." + }, + "givenName": { + "type": "string", + "description": "Given name. This property can be used with familyName instead of the name property." + }, + "height": { + "type": "string", + "description": "The height of the media object." + }, + "id": { + "type": "string", + "description": "An identifier for the object. Your app can choose how to identify objects. The object.id is required if you are writing an action that does not have a corresponding web page or object.url property." + }, + "image": { + "type": "string", + "description": "A URL to the image that represents this result. For example, if a user writes a review of a restaurant and attaches a photo of their meal, you might use that photo as the result.image." + }, + "inAlbum": { + "$ref": "ItemScope", + "description": "From http://schema.org/MusicRecording, which album a song is in." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as an itemScope.", + "default": "plus#itemScope" + }, + "latitude": { + "type": "number", + "description": "Latitude.", + "format": "double" + }, + "location": { + "$ref": "ItemScope", + "description": "The location of the event or organization." + }, + "longitude": { + "type": "number", + "description": "Longitude.", + "format": "double" + }, + "name": { + "type": "string", + "description": "The name of the result. In the example of a restaurant review, this might be the summary the user gave their review such as \"Great ambiance, but overpriced.\"" + }, + "partOfTVSeries": { + "$ref": "ItemScope", + "description": "Property of http://schema.org/TVEpisode indicating which series the episode belongs to." + }, + "performers": { + "type": "array", + "description": "The main performer or performers of the event-for example, a presenter, musician, or actor.", + "items": { + "$ref": "ItemScope" + } + }, + "playerType": { + "type": "string", + "description": "Player type that is required. For example: Flash or Silverlight." + }, + "postOfficeBoxNumber": { + "type": "string", + "description": "Post office box number." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "ratingValue": { + "type": "string", + "description": "Rating value." + }, + "reviewRating": { + "$ref": "ItemScope", + "description": "Review rating." + }, + "startDate": { + "type": "string", + "description": "The start date and time of the event (in ISO 8601 date format)." + }, + "streetAddress": { + "type": "string", + "description": "Street address." + }, + "text": { + "type": "string", + "description": "The text that is the result of the app activity. For example, if a user leaves a review of a restaurant, this might be the text of the review." + }, + "thumbnail": { + "$ref": "ItemScope", + "description": "Thumbnail image for an image or video." + }, + "thumbnailUrl": { + "type": "string", + "description": "A URL to a thumbnail image that represents this result." + }, + "tickerSymbol": { + "type": "string", + "description": "The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we recommend using the controlled vocabulary of Market Identifier Codes (MIC) specified in ISO15022." + }, + "type": { + "type": "string", + "description": "The schema.org URL that best describes the referenced object and matches the type of moment." + }, + "url": { + "type": "string", + "description": "The URL that points to the result object. For example, a permalink directly to a restaurant reviewer's comment." + }, + "width": { + "type": "string", + "description": "The width of the media object." + }, + "worstRating": { + "type": "string", + "description": "Worst possible rating value that a result might obtain. This property defines the lower bound for the ratingValue." + } + } + }, + "Moment": { + "id": "Moment", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The moment ID." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a moment.", + "default": "plus#moment" + }, + "object": { + "$ref": "ItemScope", + "description": "The object on which the action was performed. Specifying this is equivalent with specifying \"target\". Note that responses from the server will use the \"target\" field instead for backward-compatibility with older clients.", + "annotations": { + "required": [ + "plus.moments.insert" + ] + } + }, + "result": { + "$ref": "ItemScope", + "description": "The object generated by performing the action on the object. For example, a user writes a review of a restaurant, the object is the restaurant and the result is the review." + }, + "startDate": { + "type": "string", + "description": "Time stamp of when the action occurred in RFC3339 format.", + "format": "date-time" + }, + "target": { + "$ref": "ItemScope", + "description": "The object on which the action was performed.", + "annotations": { + "required": [ + "plus.moments.insert" + ] + } + }, + "type": { + "type": "string", + "description": "The schema.org type for the type of moment to write. For example, http://schema.org/AddAction. Note that responses from the server will use the Google schema type instead for backward-compatibility with older clients. For example, http://schemas.google.com/AddActivity.", + "annotations": { + "required": [ + "plus.moments.insert" + ] + } + } + } + }, + "MomentsFeed": { + "id": "MomentsFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The moments in this page of results.", + "items": { + "$ref": "Moment" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of moments. Value: \"plus#momentsFeed\".", + "default": "plus#momentsFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of moments." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this page of moments." + }, + "title": { + "type": "string", + "description": "The title of this collection of moments." + }, + "updated": { + "type": "string", + "description": "The RFC 339 timestamp for when this collection of moments was last updated.", + "format": "date-time" + } + } + }, + "PeopleFeed": { + "id": "PeopleFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.", + "items": { + "$ref": "Person" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of people. Value: \"plus#peopleFeed\".", + "default": "plus#peopleFeed" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this resource." + }, + "title": { + "type": "string", + "description": "The title of this collection of people." + }, + "totalItems": { + "type": "integer", + "description": "The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.", + "format": "int32" + } + } + }, + "Person": { + "id": "Person", + "type": "object", + "properties": { + "aboutMe": { + "type": "string", + "description": "A short biography for this person." + }, + "ageRange": { + "type": "object", + "description": "The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.", + "properties": { + "max": { + "type": "integer", + "description": "The age range's upper bound, if any. Possible values include, but are not limited to, the following: \n- \"17\" - for age 17 \n- \"20\" - for age 20", + "format": "int32" + }, + "min": { + "type": "integer", + "description": "The age range's lower bound, if any. Possible values include, but are not limited to, the following: \n- \"21\" - for age 21 \n- \"18\" - for age 18", + "format": "int32" + } + } + }, + "birthday": { + "type": "string", + "description": "The person's date of birth, represented as YYYY-MM-DD." + }, + "braggingRights": { + "type": "string", + "description": "The \"bragging rights\" line of this person." + }, + "circledByCount": { + "type": "integer", + "description": "For followers who are visible, the number of people who have added this person or page to a circle.", + "format": "int32" + }, + "cover": { + "type": "object", + "description": "The cover photo content.", + "properties": { + "coverInfo": { + "type": "object", + "description": "Extra information about the cover photo.", + "properties": { + "leftImageOffset": { + "type": "integer", + "description": "The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.", + "format": "int32" + }, + "topImageOffset": { + "type": "integer", + "description": "The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.", + "format": "int32" + } + } + }, + "coverPhoto": { + "type": "object", + "description": "The person's primary cover image.", + "properties": { + "height": { + "type": "integer", + "description": "The height of the image.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URL of the image." + }, + "width": { + "type": "integer", + "description": "The width of the image.", + "format": "int32" + } + } + }, + "layout": { + "type": "string", + "description": "The layout of the cover art. Possible values include, but are not limited to, the following values: \n- \"banner\" - One large image banner." + } + } + }, + "currentLocation": { + "type": "string", + "description": "(this field is not currently used)" + }, + "displayName": { + "type": "string", + "description": "The name of this person, which is suitable for display." + }, + "domain": { + "type": "string", + "description": "The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name." + }, + "emails": { + "type": "array", + "description": "A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of address. Possible values include, but are not limited to, the following values: \n- \"account\" - Google account email address. \n- \"home\" - Home email address. \n- \"work\" - Work email address. \n- \"other\" - Other." + }, + "value": { + "type": "string", + "description": "The email address." + } + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "gender": { + "type": "string", + "description": "The person's gender. Possible values include, but are not limited to, the following values: \n- \"male\" - Male gender. \n- \"female\" - Female gender. \n- \"other\" - Other." + }, + "id": { + "type": "string", + "description": "The ID of this person." + }, + "image": { + "type": "object", + "description": "The representation of the person's profile photo.", + "properties": { + "isDefault": { + "type": "boolean", + "description": "Whether the person's profile photo is the default one" + }, + "url": { + "type": "string", + "description": "The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "isPlusUser": { + "type": "boolean", + "description": "Whether this user has signed up for Google+." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a person. Value: \"plus#person\".", + "default": "plus#person" + }, + "language": { + "type": "string", + "description": "The user's preferred language for rendering." + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of a person's name.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name (last name) of this person." + }, + "formatted": { + "type": "string", + "description": "The full name of this person, including middle names, suffixes, etc." + }, + "givenName": { + "type": "string", + "description": "The given name (first name) of this person." + }, + "honorificPrefix": { + "type": "string", + "description": "The honorific prefixes (such as \"Dr.\" or \"Mrs.\") for this person." + }, + "honorificSuffix": { + "type": "string", + "description": "The honorific suffixes (such as \"Jr.\") for this person." + }, + "middleName": { + "type": "string", + "description": "The middle name of this person." + } + } + }, + "nickname": { + "type": "string", + "description": "The nickname of this person." + }, + "objectType": { + "type": "string", + "description": "Type of person within Google+. Possible values include, but are not limited to, the following values: \n- \"person\" - represents an actual person. \n- \"page\" - represents a page." + }, + "occupation": { + "type": "string", + "description": "The occupation of this person." + }, + "organizations": { + "type": "array", + "description": "A list of current or past organizations with which this person is associated.", + "items": { + "type": "object", + "properties": { + "department": { + "type": "string", + "description": "The department within the organization. Deprecated." + }, + "description": { + "type": "string", + "description": "A short description of the person's role in this organization. Deprecated." + }, + "endDate": { + "type": "string", + "description": "The date that the person left this organization." + }, + "location": { + "type": "string", + "description": "The location of this organization. Deprecated." + }, + "name": { + "type": "string", + "description": "The name of the organization." + }, + "primary": { + "type": "boolean", + "description": "If \"true\", indicates this organization is the person's primary one, which is typically interpreted as the current one." + }, + "startDate": { + "type": "string", + "description": "The date that the person joined this organization." + }, + "title": { + "type": "string", + "description": "The person's job title or role within the organization." + }, + "type": { + "type": "string", + "description": "The type of organization. Possible values include, but are not limited to, the following values: \n- \"work\" - Work. \n- \"school\" - School." + } + } + } + }, + "placesLived": { + "type": "array", + "description": "A list of places where this person has lived.", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "If \"true\", this place of residence is this person's primary residence." + }, + "value": { + "type": "string", + "description": "A place where this person has lived. For example: \"Seattle, WA\", \"Near Toronto\"." + } + } + } + }, + "plusOneCount": { + "type": "integer", + "description": "If a Google+ Page, the number of people who have +1'd this page.", + "format": "int32" + }, + "relationshipStatus": { + "type": "string", + "description": "The person's relationship status. Possible values include, but are not limited to, the following values: \n- \"single\" - Person is single. \n- \"in_a_relationship\" - Person is in a relationship. \n- \"engaged\" - Person is engaged. \n- \"married\" - Person is married. \n- \"its_complicated\" - The relationship is complicated. \n- \"open_relationship\" - Person is in an open relationship. \n- \"widowed\" - Person is widowed. \n- \"in_domestic_partnership\" - Person is in a domestic partnership. \n- \"in_civil_union\" - Person is in a civil union." + }, + "skills": { + "type": "string", + "description": "The person's skills." + }, + "tagline": { + "type": "string", + "description": "The brief description (tagline) of this person." + }, + "url": { + "type": "string", + "description": "The URL of this person's profile." + }, + "urls": { + "type": "array", + "description": "A list of URLs for this person.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label of the URL." + }, + "type": { + "type": "string", + "description": "The type of URL. Possible values include, but are not limited to, the following values: \n- \"otherProfile\" - URL for another profile. \n- \"contributor\" - URL to a site for which this person is a contributor. \n- \"website\" - URL for this Google+ Page's primary website. \n- \"other\" - Other URL." + }, + "value": { + "type": "string", + "description": "The URL value." + } + } + } + }, + "verified": { + "type": "boolean", + "description": "Whether the person or Google+ Page has been verified." + } + } + }, + "Place": { + "id": "Place", + "type": "object", + "properties": { + "address": { + "type": "object", + "description": "The physical address of the place.", + "properties": { + "formatted": { + "type": "string", + "description": "The formatted address for display." + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the place." + }, + "id": { + "type": "string", + "description": "The id of the place." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a place. Value: \"plus#place\".", + "default": "plus#place" + }, + "position": { + "type": "object", + "description": "The position of the place.", + "properties": { + "latitude": { + "type": "number", + "description": "The latitude of this position.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "The longitude of this position.", + "format": "double" + } + } + } + } + }, + "PlusAclentryResource": { + "id": "PlusAclentryResource", + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "A descriptive name for this entry. Suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the entry. For entries of type \"person\" or \"circle\", this is the ID of the resource. For other types, this property is not set." + }, + "type": { + "type": "string", + "description": "The type of entry describing to whom access is granted. Possible values are: \n- \"person\" - Access to an individual. \n- \"circle\" - Access to members of a circle. \n- \"myCircles\" - Access to members of all the person's circles. \n- \"extendedCircles\" - Access to members of all the person's circles, plus all of the people in their circles. \n- \"domain\" - Access to members of the person's Google Apps domain. \n- \"public\" - Access to anyone on the web." + } + } + } + }, + "resources": { + "activities": { + "methods": { + "get": { + "id": "plus.activities.get", + "path": "activities/{activityId}", + "httpMethod": "GET", + "description": "Get an activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "activityId" + ], + "response": { + "$ref": "Activity" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "list": { + "id": "plus.activities.list", + "path": "people/{userId}/activities/{collection}", + "httpMethod": "GET", + "description": "List all of the activities in the specified collection for a particular user.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of activities to list.", + "required": true, + "enum": [ + "public" + ], + "enumDescriptions": [ + "All public activities created by the specified user." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to get activities for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "response": { + "$ref": "ActivityFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "search": { + "id": "plus.activities.search", + "path": "activities", + "httpMethod": "GET", + "description": "Search public activities.", + "parameters": { + "language": { + "type": "string", + "description": "Specify the preferred language to search with. See search language codes for available values.", + "default": "en-US", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "10", + "format": "uint32", + "minimum": "1", + "maximum": "20", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "Specifies how to order search results.", + "default": "recent", + "enum": [ + "best", + "recent" + ], + "enumDescriptions": [ + "Sort activities by relevance to the user, most relevant first.", + "Sort activities by published date, most recent first." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response. This token can be of any length.", + "location": "query" + }, + "query": { + "type": "string", + "description": "Full-text search query string.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "query" + ], + "response": { + "$ref": "ActivityFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + } + } + }, + "comments": { + "methods": { + "get": { + "id": "plus.comments.get", + "path": "comments/{commentId}", + "httpMethod": "GET", + "description": "Get a comment.", + "parameters": { + "commentId": { + "type": "string", + "description": "The ID of the comment to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "list": { + "id": "plus.comments.list", + "path": "activities/{activityId}/comments", + "httpMethod": "GET", + "description": "List all of the comments for an activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get comments for.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "The order in which to sort the list of comments.", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ], + "enumDescriptions": [ + "Sort oldest comments first.", + "Sort newest comments first." + ], + "location": "query" + } + }, + "parameterOrder": [ + "activityId" + ], + "response": { + "$ref": "CommentFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + } + } + }, + "moments": { + "methods": { + "insert": { + "id": "plus.moments.insert", + "path": "people/{userId}/moments/{collection}", + "httpMethod": "POST", + "description": "Record a moment representing a user's action such as making a purchase or commenting on a blog.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection to which to write moments.", + "required": true, + "enum": [ + "vault" + ], + "enumDescriptions": [ + "The default collection for writing new moments." + ], + "location": "path" + }, + "debug": { + "type": "boolean", + "description": "Return the moment as written. Should be used only for debugging.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to record actions for. The only valid values are \"me\" and the ID of the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "request": { + "$ref": "Moment" + }, + "response": { + "$ref": "Moment" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "list": { + "id": "plus.moments.list", + "path": "people/{userId}/moments/{collection}", + "httpMethod": "GET", + "description": "List all of the moments for a particular user.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of moments to list.", + "required": true, + "enum": [ + "vault" + ], + "enumDescriptions": [ + "All moments created by the requesting application for the authenticated user." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of moments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "targetUrl": { + "type": "string", + "description": "Only moments containing this targetUrl will be returned.", + "location": "query" + }, + "type": { + "type": "string", + "description": "Only moments of this type will be returned.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to get moments for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "response": { + "$ref": "MomentsFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "remove": { + "id": "plus.moments.remove", + "path": "moments/{id}", + "httpMethod": "DELETE", + "description": "Delete a moment.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of the moment to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "people": { + "methods": { + "get": { + "id": "plus.people.get", + "path": "people/{userId}", + "httpMethod": "GET", + "description": "Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.", + "parameters": { + "userId": { + "type": "string", + "description": "The ID of the person to get the profile for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "Person" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + }, + "list": { + "id": "plus.people.list", + "path": "people/{userId}/people/{collection}", + "httpMethod": "GET", + "description": "List all of the people in the specified collection.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of people to list.", + "required": true, + "enum": [ + "connected", + "visible" + ], + "enumDescriptions": [ + "The list of visible people in the authenticated user's circles who also use the requesting app. This list is limited to users who made their app activities visible to the authenticated user.", + "The list of people who this user has added to one or more circles, limited to the circles visible to the requesting application." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "100", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "The order to return people in.", + "enum": [ + "alphabetical", + "best" + ], + "enumDescriptions": [ + "Order the people by their display name.", + "Order people based on the relevence to the viewer." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "Get the collection of people for the person identified. Use \"me\" to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "listByActivity": { + "id": "plus.people.listByActivity", + "path": "activities/{activityId}/people/{collection}", + "httpMethod": "GET", + "description": "List all of the people in the specified collection for a particular activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get the list of people for.", + "required": true, + "location": "path" + }, + "collection": { + "type": "string", + "description": "The collection of people to list.", + "required": true, + "enum": [ + "plusoners", + "resharers" + ], + "enumDescriptions": [ + "List all people who have +1'd this activity.", + "List all people who have reshared this activity." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "activityId", + "collection" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "search": { + "id": "plus.people.search", + "path": "people", + "httpMethod": "GET", + "description": "Search all public profiles.", + "parameters": { + "language": { + "type": "string", + "description": "Specify the preferred language to search with. See search language codes for available values.", + "default": "en-US", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "25", + "format": "uint32", + "minimum": "1", + "maximum": "50", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response. This token can be of any length.", + "location": "query" + }, + "query": { + "type": "string", + "description": "Specify a query string for full text search of public text in all profiles.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "query" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + } + } + } + } +} diff --git a/etc/api/plusdomains/v1/plusdomains-api.json b/etc/api/plusdomains/v1/plusdomains-api.json new file mode 100644 index 0000000000..a14c6b6435 --- /dev/null +++ b/etc/api/plusdomains/v1/plusdomains-api.json @@ -0,0 +1,2163 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/Dp57l-pfCxeHpBW5IqweXjCaYQ4\"", + "discoveryVersion": "v1", + "id": "plusDomains:v1", + "name": "plusDomains", + "version": "v1", + "revision": "20150105", + "title": "Google+ Domains API", + "description": "The Google+ API enables developers to build on top of the Google+ platform.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/gplus-16.png", + "x32": "http://www.google.com/images/icons/product/gplus-32.png" + }, + "documentationLink": "https://developers.google.com/+/domains/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/plusDomains/v1/", + "basePath": "/plusDomains/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "plusDomains/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/plus.circles.read": { + "description": "View your circles and the people and pages in them" + }, + "https://www.googleapis.com/auth/plus.circles.write": { + "description": "Manage your circles and add people and pages. People and pages you add to your circles will be notified. Others may see this information publicly. People you add to circles can use Hangouts with you." + }, + "https://www.googleapis.com/auth/plus.login": { + "description": "Know your basic profile info and list of people in your circles." + }, + "https://www.googleapis.com/auth/plus.me": { + "description": "Know who you are on Google" + }, + "https://www.googleapis.com/auth/plus.media.upload": { + "description": "Send your photos and videos to Google+" + }, + "https://www.googleapis.com/auth/plus.profiles.read": { + "description": "View your own Google+ profile and profiles visible to you" + }, + "https://www.googleapis.com/auth/plus.stream.read": { + "description": "View your Google+ posts, comments, and stream" + }, + "https://www.googleapis.com/auth/plus.stream.write": { + "description": "Manage your Google+ posts, comments, and stream" + }, + "https://www.googleapis.com/auth/userinfo.email": { + "description": "View your email address" + }, + "https://www.googleapis.com/auth/userinfo.profile": { + "description": "View your basic profile info" + } + } + } + }, + "schemas": { + "Acl": { + "id": "Acl", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the access granted, suitable for display." + }, + "domainRestricted": { + "type": "boolean", + "description": "Whether access is restricted to the domain." + }, + "items": { + "type": "array", + "description": "The list of access entries.", + "items": { + "$ref": "PlusDomainsAclentryResource" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of access controls. Value: \"plus#acl\".", + "default": "plus#acl" + } + } + }, + "Activity": { + "id": "Activity", + "type": "object", + "properties": { + "access": { + "$ref": "Acl", + "description": "Identifies who has access to see this activity." + }, + "actor": { + "type": "object", + "description": "The person who performed this activity.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of the actor, suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the actor's Person resource." + }, + "image": { + "type": "object", + "description": "The image representation of the actor.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of name.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name (\"last name\") of the actor." + }, + "givenName": { + "type": "string", + "description": "The given name (\"first name\") of the actor." + } + } + }, + "url": { + "type": "string", + "description": "The link to the actor's Google profile." + } + } + }, + "address": { + "type": "string", + "description": "Street address where this activity occurred." + }, + "annotation": { + "type": "string", + "description": "Additional content added by the person who shared this activity, applicable only when resharing an activity." + }, + "crosspostSource": { + "type": "string", + "description": "If this activity is a crosspost from another system, this property specifies the ID of the original activity." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "geocode": { + "type": "string", + "description": "Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated." + }, + "id": { + "type": "string", + "description": "The ID of this activity." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as an activity. Value: \"plus#activity\".", + "default": "plus#activity" + }, + "location": { + "$ref": "Place", + "description": "The location where this activity occurred." + }, + "object": { + "type": "object", + "description": "The object of this activity.", + "properties": { + "actor": { + "type": "object", + "description": "If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.", + "properties": { + "displayName": { + "type": "string", + "description": "The original actor's name, which is suitable for display." + }, + "id": { + "type": "string", + "description": "ID of the original actor." + }, + "image": { + "type": "object", + "description": "The image representation of the original actor.", + "properties": { + "url": { + "type": "string", + "description": "A URL that points to a thumbnail photo of the original actor." + } + } + }, + "url": { + "type": "string", + "description": "A link to the original actor's Google profile." + } + } + }, + "attachments": { + "type": "array", + "description": "The media objects attached to this activity.", + "items": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types." + }, + "displayName": { + "type": "string", + "description": "The title of the attachment, such as a photo caption or an article title." + }, + "embed": { + "type": "object", + "description": "If the attachment is a video, the embeddable link.", + "properties": { + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "URL of the link." + } + } + }, + "fullImage": { + "type": "object", + "description": "The full image URL for photo attachments.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "URL of the image." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "id": { + "type": "string", + "description": "The ID of the attachment." + }, + "image": { + "type": "object", + "description": "The preview image for photos or videos.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "Image URL." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "objectType": { + "type": "string", + "description": "The type of media object. Possible values include, but are not limited to, the following values: \n- \"photo\" - A photo. \n- \"album\" - A photo album. \n- \"video\" - A video. \n- \"article\" - An article, specified by a link." + }, + "previewThumbnails": { + "type": "array", + "description": "When previewing, these are the optional thumbnails for the post. When posting an article, choose one by setting the attachment.image.url property. If you don't choose one, one will be chosen for you.", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "URL of the thumbnail image." + } + } + } + }, + "thumbnails": { + "type": "array", + "description": "If the attachment is an album, this property is a list of potential additional thumbnails from the album.", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Potential name of the thumbnail." + }, + "image": { + "type": "object", + "description": "Image resource.", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the linked resource.", + "format": "uint32" + }, + "type": { + "type": "string", + "description": "Media type of the link." + }, + "url": { + "type": "string", + "description": "Image url." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the linked resource.", + "format": "uint32" + } + } + }, + "url": { + "type": "string", + "description": "URL of the webpage containing the image." + } + } + } + }, + "url": { + "type": "string", + "description": "The link to the attachment, which should be of type text/html." + } + } + } + }, + "content": { + "type": "string", + "description": "The HTML-formatted content, which is suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared." + }, + "objectType": { + "type": "string", + "description": "The type of the object. Possible values include, but are not limited to, the following values: \n- \"note\" - Textual content. \n- \"activity\" - A Google+ activity." + }, + "originalContent": { + "type": "string", + "description": "The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request." + }, + "plusoners": { + "type": "object", + "description": "People who +1'd this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of people who +1'd this activity." + }, + "totalItems": { + "type": "integer", + "description": "Total number of people who +1'd this activity.", + "format": "uint32" + } + } + }, + "replies": { + "type": "object", + "description": "Comments in reply to this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of comments in reply to this activity." + }, + "totalItems": { + "type": "integer", + "description": "Total number of comments on this activity.", + "format": "uint32" + } + } + }, + "resharers": { + "type": "object", + "description": "People who reshared this activity.", + "properties": { + "selfLink": { + "type": "string", + "description": "The URL for the collection of resharers." + }, + "totalItems": { + "type": "integer", + "description": "Total number of people who reshared this activity.", + "format": "uint32" + } + } + }, + "statusForViewer": { + "type": "object", + "description": "Status of the activity as seen by the viewer.", + "properties": { + "canComment": { + "type": "boolean", + "description": "Whether the viewer can comment on the activity." + }, + "canPlusone": { + "type": "boolean", + "description": "Whether the viewer can +1 the activity." + }, + "canUpdate": { + "type": "boolean", + "description": "Whether the viewer can edit or delete the activity." + }, + "isPlusOned": { + "type": "boolean", + "description": "Whether the viewer has +1'd the activity." + }, + "resharingDisabled": { + "type": "boolean", + "description": "Whether reshares are disabled for the activity." + } + } + }, + "url": { + "type": "string", + "description": "The URL that points to the linked resource." + } + } + }, + "placeId": { + "type": "string", + "description": "ID of the place where this activity occurred." + }, + "placeName": { + "type": "string", + "description": "Name of the place where this activity occurred." + }, + "provider": { + "type": "object", + "description": "The service provider that initially published this activity.", + "properties": { + "title": { + "type": "string", + "description": "Name of the service provider." + } + } + }, + "published": { + "type": "string", + "description": "The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "radius": { + "type": "string", + "description": "Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode." + }, + "title": { + "type": "string", + "description": "Title of this activity." + }, + "updated": { + "type": "string", + "description": "The time at which this activity was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The link to this activity." + }, + "verb": { + "type": "string", + "description": "This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values: \n- \"post\" - Publish content to the stream. \n- \"share\" - Reshare an activity." + } + } + }, + "ActivityFeed": { + "id": "ActivityFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this collection of activities. Deprecated." + }, + "items": { + "type": "array", + "description": "The activities in this page of results.", + "items": { + "$ref": "Activity" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of activities. Value: \"plus#activityFeed\".", + "default": "plus#activityFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of activities." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this activity resource." + }, + "title": { + "type": "string", + "description": "The title of this collection of activities, which is a truncated portion of the content." + }, + "updated": { + "type": "string", + "description": "The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + } + } + }, + "Audience": { + "id": "Audience", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "item": { + "$ref": "PlusDomainsAclentryResource", + "description": "The access control list entry." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as an audience. Value: \"plus#audience\".", + "default": "plus#audience" + }, + "memberCount": { + "type": "integer", + "description": "The number of people in this circle. This only applies if entity_type is CIRCLE.", + "format": "uint32" + }, + "visibility": { + "type": "string", + "description": "The circle members' visibility as chosen by the owner of the circle. This only applies for items with \"item.type\" equals \"circle\". Possible values are: \n- \"public\" - Members are visible to the public. \n- \"limited\" - Members are visible to a limited audience. \n- \"private\" - Members are visible to the owner only." + } + } + }, + "AudiencesFeed": { + "id": "AudiencesFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The audiences in this result.", + "items": { + "$ref": "Audience" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of audiences. Value: \"plus#audienceFeed\".", + "default": "plus#audiencesFeed" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "totalItems": { + "type": "integer", + "description": "The total number of ACL entries. The number of entries in this response may be smaller due to paging.", + "format": "int32" + } + } + }, + "Circle": { + "id": "Circle", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of this circle." + }, + "displayName": { + "type": "string", + "description": "The circle name." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of the circle." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a circle. Value: \"plus#circle\".", + "default": "plus#circle" + }, + "people": { + "type": "object", + "description": "The people in this circle.", + "properties": { + "totalItems": { + "type": "integer", + "description": "The total number of people in this circle.", + "format": "uint32" + } + } + }, + "selfLink": { + "type": "string", + "description": "Link to this circle resource" + } + } + }, + "CircleFeed": { + "id": "CircleFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The circles in this page of results.", + "items": { + "$ref": "Circle" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of circles. Value: \"plus#circleFeed\".", + "default": "plus#circleFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of circles." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this page of circles." + }, + "title": { + "type": "string", + "description": "The title of this list of resources." + }, + "totalItems": { + "type": "integer", + "description": "The total number of circles. The number of circles in this response may be smaller due to paging.", + "format": "int32" + } + } + }, + "Comment": { + "id": "Comment", + "type": "object", + "properties": { + "actor": { + "type": "object", + "description": "The person who posted this comment.", + "properties": { + "displayName": { + "type": "string", + "description": "The name of this actor, suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the actor." + }, + "image": { + "type": "object", + "description": "The image representation of this actor.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "url": { + "type": "string", + "description": "A link to the Person resource for this actor." + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this comment." + }, + "inReplyTo": { + "type": "array", + "description": "The activity this comment replied to.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the activity." + }, + "url": { + "type": "string", + "description": "The URL of the activity." + } + } + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a comment. Value: \"plus#comment\".", + "default": "plus#comment" + }, + "object": { + "type": "object", + "description": "The object of this comment.", + "properties": { + "content": { + "type": "string", + "description": "The HTML-formatted content, suitable for display." + }, + "objectType": { + "type": "string", + "description": "The object type of this comment. Possible values are: \n- \"comment\" - A comment in reply to an activity.", + "default": "comment" + }, + "originalContent": { + "type": "string", + "description": "The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request." + } + } + }, + "plusoners": { + "type": "object", + "description": "People who +1'd this comment.", + "properties": { + "totalItems": { + "type": "integer", + "description": "Total number of people who +1'd this comment.", + "format": "uint32" + } + } + }, + "published": { + "type": "string", + "description": "The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "selfLink": { + "type": "string", + "description": "Link to this comment resource." + }, + "updated": { + "type": "string", + "description": "The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "verb": { + "type": "string", + "description": "This comment's verb, indicating what action was performed. Possible values are: \n- \"post\" - Publish content to the stream.", + "default": "post" + } + } + }, + "CommentFeed": { + "id": "CommentFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "id": { + "type": "string", + "description": "The ID of this collection of comments." + }, + "items": { + "type": "array", + "description": "The comments in this page of results.", + "items": { + "$ref": "Comment" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of comments. Value: \"plus#commentFeed\".", + "default": "plus#commentFeed" + }, + "nextLink": { + "type": "string", + "description": "Link to the next page of activities." + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "title": { + "type": "string", + "description": "The title of this collection of comments." + }, + "updated": { + "type": "string", + "description": "The time at which this collection of comments was last updated. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + } + } + }, + "Media": { + "id": "Media", + "type": "object", + "properties": { + "author": { + "type": "object", + "description": "The person who uploaded this media.", + "properties": { + "displayName": { + "type": "string", + "description": "The author's name." + }, + "id": { + "type": "string", + "description": "ID of the author." + }, + "image": { + "type": "object", + "description": "The author's Google profile image.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the author's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "url": { + "type": "string", + "description": "A link to the author's Google profile." + } + } + }, + "displayName": { + "type": "string", + "description": "The display name for this media." + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "exif": { + "type": "object", + "description": "Exif information of the media item.", + "properties": { + "time": { + "type": "string", + "description": "The time the media was captured. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + } + } + }, + "height": { + "type": "integer", + "description": "The height in pixels of the original image.", + "format": "uint32" + }, + "id": { + "type": "string", + "description": "ID of this media, which is generated by the API." + }, + "kind": { + "type": "string", + "description": "The type of resource.", + "default": "plus#media" + }, + "mediaCreatedTime": { + "type": "string", + "description": "The time at which this media was originally created in UTC. Formatted as an RFC 3339 timestamp that matches this example: 2010-11-25T14:30:27.655Z", + "format": "date-time" + }, + "mediaUrl": { + "type": "string", + "description": "The URL of this photo or video's still image." + }, + "published": { + "type": "string", + "description": "The time at which this media was uploaded. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "sizeBytes": { + "type": "string", + "description": "The size in bytes of this video.", + "format": "int64" + }, + "streams": { + "type": "array", + "description": "The list of video streams for this video. There might be several different streams available for a single video, either Flash or MPEG, of various sizes", + "items": { + "$ref": "Videostream" + } + }, + "summary": { + "type": "string", + "description": "A description, or caption, for this media." + }, + "updated": { + "type": "string", + "description": "The time at which this media was last updated. This includes changes to media metadata. Formatted as an RFC 3339 timestamp.", + "format": "date-time" + }, + "url": { + "type": "string", + "description": "The URL for the page that hosts this media." + }, + "videoDuration": { + "type": "string", + "description": "The duration in milliseconds of this video.", + "format": "int64" + }, + "videoStatus": { + "type": "string", + "description": "The encoding status of this video. Possible values are: \n- \"UPLOADING\" - Not all the video bytes have been received. \n- \"PENDING\" - Video not yet processed. \n- \"FAILED\" - Video processing failed. \n- \"READY\" - A single video stream is playable. \n- \"FINAL\" - All video streams are playable." + }, + "width": { + "type": "integer", + "description": "The width in pixels of the original image.", + "format": "uint32" + } + } + }, + "PeopleFeed": { + "id": "PeopleFeed", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "items": { + "type": "array", + "description": "The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.", + "items": { + "$ref": "Person" + } + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a collection of people. Value: \"plus#peopleFeed\".", + "default": "plus#peopleFeed" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "selfLink": { + "type": "string", + "description": "Link to this resource." + }, + "title": { + "type": "string", + "description": "The title of this collection of people." + }, + "totalItems": { + "type": "integer", + "description": "The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.", + "format": "int32" + } + } + }, + "Person": { + "id": "Person", + "type": "object", + "properties": { + "aboutMe": { + "type": "string", + "description": "A short biography for this person." + }, + "birthday": { + "type": "string", + "description": "The person's date of birth, represented as YYYY-MM-DD." + }, + "braggingRights": { + "type": "string", + "description": "The \"bragging rights\" line of this person." + }, + "circledByCount": { + "type": "integer", + "description": "For followers who are visible, the number of people who have added this person or page to a circle.", + "format": "int32" + }, + "cover": { + "type": "object", + "description": "The cover photo content.", + "properties": { + "coverInfo": { + "type": "object", + "description": "Extra information about the cover photo.", + "properties": { + "leftImageOffset": { + "type": "integer", + "description": "The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.", + "format": "int32" + }, + "topImageOffset": { + "type": "integer", + "description": "The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.", + "format": "int32" + } + } + }, + "coverPhoto": { + "type": "object", + "description": "The person's primary cover image.", + "properties": { + "height": { + "type": "integer", + "description": "The height of the image.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URL of the image." + }, + "width": { + "type": "integer", + "description": "The width of the image.", + "format": "int32" + } + } + }, + "layout": { + "type": "string", + "description": "The layout of the cover art. Possible values include, but are not limited to, the following values: \n- \"banner\" - One large image banner." + } + } + }, + "currentLocation": { + "type": "string", + "description": "(this field is not currently used)" + }, + "displayName": { + "type": "string", + "description": "The name of this person, which is suitable for display." + }, + "domain": { + "type": "string", + "description": "The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name." + }, + "emails": { + "type": "array", + "description": "A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of address. Possible values include, but are not limited to, the following values: \n- \"account\" - Google account email address. \n- \"home\" - Home email address. \n- \"work\" - Work email address. \n- \"other\" - Other." + }, + "value": { + "type": "string", + "description": "The email address." + } + } + } + }, + "etag": { + "type": "string", + "description": "ETag of this response for caching purposes." + }, + "gender": { + "type": "string", + "description": "The person's gender. Possible values include, but are not limited to, the following values: \n- \"male\" - Male gender. \n- \"female\" - Female gender. \n- \"other\" - Other." + }, + "id": { + "type": "string", + "description": "The ID of this person." + }, + "image": { + "type": "object", + "description": "The representation of the person's profile photo.", + "properties": { + "isDefault": { + "type": "boolean", + "description": "Whether the person's profile photo is the default one" + }, + "url": { + "type": "string", + "description": "The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side." + } + } + }, + "isPlusUser": { + "type": "boolean", + "description": "Whether this user has signed up for Google+." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a person. Value: \"plus#person\".", + "default": "plus#person" + }, + "name": { + "type": "object", + "description": "An object representation of the individual components of a person's name.", + "properties": { + "familyName": { + "type": "string", + "description": "The family name (last name) of this person." + }, + "formatted": { + "type": "string", + "description": "The full name of this person, including middle names, suffixes, etc." + }, + "givenName": { + "type": "string", + "description": "The given name (first name) of this person." + }, + "honorificPrefix": { + "type": "string", + "description": "The honorific prefixes (such as \"Dr.\" or \"Mrs.\") for this person." + }, + "honorificSuffix": { + "type": "string", + "description": "The honorific suffixes (such as \"Jr.\") for this person." + }, + "middleName": { + "type": "string", + "description": "The middle name of this person." + } + } + }, + "nickname": { + "type": "string", + "description": "The nickname of this person." + }, + "objectType": { + "type": "string", + "description": "Type of person within Google+. Possible values include, but are not limited to, the following values: \n- \"person\" - represents an actual person. \n- \"page\" - represents a page." + }, + "occupation": { + "type": "string", + "description": "The occupation of this person." + }, + "organizations": { + "type": "array", + "description": "A list of current or past organizations with which this person is associated.", + "items": { + "type": "object", + "properties": { + "department": { + "type": "string", + "description": "The department within the organization. Deprecated." + }, + "description": { + "type": "string", + "description": "A short description of the person's role in this organization. Deprecated." + }, + "endDate": { + "type": "string", + "description": "The date that the person left this organization." + }, + "location": { + "type": "string", + "description": "The location of this organization. Deprecated." + }, + "name": { + "type": "string", + "description": "The name of the organization." + }, + "primary": { + "type": "boolean", + "description": "If \"true\", indicates this organization is the person's primary one, which is typically interpreted as the current one." + }, + "startDate": { + "type": "string", + "description": "The date that the person joined this organization." + }, + "title": { + "type": "string", + "description": "The person's job title or role within the organization." + }, + "type": { + "type": "string", + "description": "The type of organization. Possible values include, but are not limited to, the following values: \n- \"work\" - Work. \n- \"school\" - School." + } + } + } + }, + "placesLived": { + "type": "array", + "description": "A list of places where this person has lived.", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "If \"true\", this place of residence is this person's primary residence." + }, + "value": { + "type": "string", + "description": "A place where this person has lived. For example: \"Seattle, WA\", \"Near Toronto\"." + } + } + } + }, + "plusOneCount": { + "type": "integer", + "description": "If a Google+ Page, the number of people who have +1'd this page.", + "format": "int32" + }, + "relationshipStatus": { + "type": "string", + "description": "The person's relationship status. Possible values include, but are not limited to, the following values: \n- \"single\" - Person is single. \n- \"in_a_relationship\" - Person is in a relationship. \n- \"engaged\" - Person is engaged. \n- \"married\" - Person is married. \n- \"its_complicated\" - The relationship is complicated. \n- \"open_relationship\" - Person is in an open relationship. \n- \"widowed\" - Person is widowed. \n- \"in_domestic_partnership\" - Person is in a domestic partnership. \n- \"in_civil_union\" - Person is in a civil union." + }, + "skills": { + "type": "string", + "description": "The person's skills." + }, + "tagline": { + "type": "string", + "description": "The brief description (tagline) of this person." + }, + "url": { + "type": "string", + "description": "The URL of this person's profile." + }, + "urls": { + "type": "array", + "description": "A list of URLs for this person.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label of the URL." + }, + "type": { + "type": "string", + "description": "The type of URL. Possible values include, but are not limited to, the following values: \n- \"otherProfile\" - URL for another profile. \n- \"contributor\" - URL to a site for which this person is a contributor. \n- \"website\" - URL for this Google+ Page's primary website. \n- \"other\" - Other URL." + }, + "value": { + "type": "string", + "description": "The URL value." + } + } + } + }, + "verified": { + "type": "boolean", + "description": "Whether the person or Google+ Page has been verified." + } + } + }, + "Place": { + "id": "Place", + "type": "object", + "properties": { + "address": { + "type": "object", + "description": "The physical address of the place.", + "properties": { + "formatted": { + "type": "string", + "description": "The formatted address for display." + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the place." + }, + "id": { + "type": "string", + "description": "The id of the place." + }, + "kind": { + "type": "string", + "description": "Identifies this resource as a place. Value: \"plus#place\".", + "default": "plus#place" + }, + "position": { + "type": "object", + "description": "The position of the place.", + "properties": { + "latitude": { + "type": "number", + "description": "The latitude of this position.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "The longitude of this position.", + "format": "double" + } + } + } + } + }, + "PlusDomainsAclentryResource": { + "id": "PlusDomainsAclentryResource", + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "A descriptive name for this entry. Suitable for display." + }, + "id": { + "type": "string", + "description": "The ID of the entry. For entries of type \"person\" or \"circle\", this is the ID of the resource. For other types, this property is not set." + }, + "type": { + "type": "string", + "description": "The type of entry describing to whom access is granted. Possible values are: \n- \"person\" - Access to an individual. \n- \"circle\" - Access to members of a circle. \n- \"myCircles\" - Access to members of all the person's circles. \n- \"extendedCircles\" - Access to members of all the person's circles, plus all of the people in their circles. \n- \"domain\" - Access to members of the person's Google Apps domain. \n- \"public\" - Access to anyone on the web." + } + } + }, + "Videostream": { + "id": "Videostream", + "type": "object", + "properties": { + "height": { + "type": "integer", + "description": "The height, in pixels, of the video resource.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "MIME type of the video stream." + }, + "url": { + "type": "string", + "description": "URL of the video stream." + }, + "width": { + "type": "integer", + "description": "The width, in pixels, of the video resource.", + "format": "int32" + } + } + } + }, + "resources": { + "activities": { + "methods": { + "get": { + "id": "plusDomains.activities.get", + "path": "activities/{activityId}", + "httpMethod": "GET", + "description": "Get an activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "activityId" + ], + "response": { + "$ref": "Activity" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/plus.stream.read" + ] + }, + "insert": { + "id": "plusDomains.activities.insert", + "path": "people/{userId}/activities", + "httpMethod": "POST", + "description": "Create a new activity for the authenticated user.", + "parameters": { + "preview": { + "type": "boolean", + "description": "If \"true\", extract the potential media attachments for a URL. The response will include all possible attachments for a URL, including video, photos, and articles based on the content of the page.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to create the activity on behalf of. Its value should be \"me\", to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Activity" + }, + "response": { + "$ref": "Activity" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/plus.stream.write" + ] + }, + "list": { + "id": "plusDomains.activities.list", + "path": "people/{userId}/activities/{collection}", + "httpMethod": "GET", + "description": "List all of the activities in the specified collection for a particular user.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of activities to list.", + "required": true, + "enum": [ + "user" + ], + "enumDescriptions": [ + "All activities created by the specified user that the authenticated user is authorized to view." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to get activities for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "response": { + "$ref": "ActivityFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/plus.stream.read" + ] + } + } + }, + "audiences": { + "methods": { + "list": { + "id": "plusDomains.audiences.list", + "path": "people/{userId}/audiences", + "httpMethod": "GET", + "description": "List all of the audiences to which a user can share.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to get audiences for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "AudiencesFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.read", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + } + } + }, + "circles": { + "methods": { + "addPeople": { + "id": "plusDomains.circles.addPeople", + "path": "circles/{circleId}/people", + "httpMethod": "PUT", + "description": "Add a person to a circle. Google+ limits certain circle operations, including the number of circle adds. Learn More.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to add the person to.", + "required": true, + "location": "path" + }, + "email": { + "type": "string", + "description": "Email of the people to add to the circle. Optional, can be repeated.", + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "IDs of the people to add to the circle. Optional, can be repeated.", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "circleId" + ], + "response": { + "$ref": "Circle" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "get": { + "id": "plusDomains.circles.get", + "path": "circles/{circleId}", + "httpMethod": "GET", + "description": "Get a circle.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "circleId" + ], + "response": { + "$ref": "Circle" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.read", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "insert": { + "id": "plusDomains.circles.insert", + "path": "people/{userId}/circles", + "httpMethod": "POST", + "description": "Create a new circle for the authenticated user.", + "parameters": { + "userId": { + "type": "string", + "description": "The ID of the user to create the circle on behalf of. The value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "request": { + "$ref": "Circle" + }, + "response": { + "$ref": "Circle" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "list": { + "id": "plusDomains.circles.list", + "path": "people/{userId}/circles", + "httpMethod": "GET", + "description": "List all of the circles for a user.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "The ID of the user to get circles for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "CircleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.read", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "patch": { + "id": "plusDomains.circles.patch", + "path": "circles/{circleId}", + "httpMethod": "PATCH", + "description": "Update a circle's description. This method supports patch semantics.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "circleId" + ], + "request": { + "$ref": "Circle" + }, + "response": { + "$ref": "Circle" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "remove": { + "id": "plusDomains.circles.remove", + "path": "circles/{circleId}", + "httpMethod": "DELETE", + "description": "Delete a circle.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "circleId" + ], + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "removePeople": { + "id": "plusDomains.circles.removePeople", + "path": "circles/{circleId}/people", + "httpMethod": "DELETE", + "description": "Remove a person from a circle.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to remove the person from.", + "required": true, + "location": "path" + }, + "email": { + "type": "string", + "description": "Email of the people to add to the circle. Optional, can be repeated.", + "repeated": true, + "location": "query" + }, + "userId": { + "type": "string", + "description": "IDs of the people to remove from the circle. Optional, can be repeated.", + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "circleId" + ], + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login" + ] + }, + "update": { + "id": "plusDomains.circles.update", + "path": "circles/{circleId}", + "httpMethod": "PUT", + "description": "Update a circle's description.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to update.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "circleId" + ], + "request": { + "$ref": "Circle" + }, + "response": { + "$ref": "Circle" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.write", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + }, + "comments": { + "methods": { + "get": { + "id": "plusDomains.comments.get", + "path": "comments/{commentId}", + "httpMethod": "GET", + "description": "Get a comment.", + "parameters": { + "commentId": { + "type": "string", + "description": "The ID of the comment to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "commentId" + ], + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.stream.read" + ] + }, + "insert": { + "id": "plusDomains.comments.insert", + "path": "activities/{activityId}/comments", + "httpMethod": "POST", + "description": "Create a new comment in reply to an activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to reply to.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "activityId" + ], + "request": { + "$ref": "Comment" + }, + "response": { + "$ref": "Comment" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.stream.write" + ] + }, + "list": { + "id": "plusDomains.comments.list", + "path": "activities/{activityId}/comments", + "httpMethod": "GET", + "description": "List all of the comments for an activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get comments for.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "sortOrder": { + "type": "string", + "description": "The order in which to sort the list of comments.", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ], + "enumDescriptions": [ + "Sort oldest comments first.", + "Sort newest comments first." + ], + "location": "query" + } + }, + "parameterOrder": [ + "activityId" + ], + "response": { + "$ref": "CommentFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.stream.read" + ] + } + } + }, + "media": { + "methods": { + "insert": { + "id": "plusDomains.media.insert", + "path": "people/{userId}/media/{collection}", + "httpMethod": "POST", + "description": "Add a new media item to an album. The current upload size limitations are 36MB for a photo and 1GB for a video. Uploads do not count against quota if photos are less than 2048 pixels on their longest side or videos are less than 15 minutes in length.", + "parameters": { + "collection": { + "type": "string", + "required": true, + "enum": [ + "cloud" + ], + "enumDescriptions": [ + "Upload the media to share on Google+." + ], + "location": "path" + }, + "userId": { + "type": "string", + "description": "The ID of the user to create the activity on behalf of.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "request": { + "$ref": "Media" + }, + "response": { + "$ref": "Media" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/plus.media.upload" + ], + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "image/*", + "video/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/plusDomains/v1/people/{userId}/media/{collection}" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/plusDomains/v1/people/{userId}/media/{collection}" + } + } + } + } + } + }, + "people": { + "methods": { + "get": { + "id": "plusDomains.people.get", + "path": "people/{userId}", + "httpMethod": "GET", + "description": "Get a person's profile.", + "parameters": { + "userId": { + "type": "string", + "description": "The ID of the person to get the profile for. The special value \"me\" can be used to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId" + ], + "response": { + "$ref": "Person" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me", + "https://www.googleapis.com/auth/plus.profiles.read", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile" + ] + }, + "list": { + "id": "plusDomains.people.list", + "path": "people/{userId}/people/{collection}", + "httpMethod": "GET", + "description": "List all of the people in the specified collection.", + "parameters": { + "collection": { + "type": "string", + "description": "The collection of people to list.", + "required": true, + "enum": [ + "circled" + ], + "enumDescriptions": [ + "The list of people who this user has added to one or more circles." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "100", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "orderBy": { + "type": "string", + "description": "The order to return people in.", + "enum": [ + "alphabetical", + "best" + ], + "enumDescriptions": [ + "Order the people by their display name.", + "Order people based on the relevence to the viewer." + ], + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + }, + "userId": { + "type": "string", + "description": "Get the collection of people for the person identified. Use \"me\" to indicate the authenticated user.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "userId", + "collection" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.read", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.me" + ] + }, + "listByActivity": { + "id": "plusDomains.people.listByActivity", + "path": "activities/{activityId}/people/{collection}", + "httpMethod": "GET", + "description": "List all of the people in the specified collection for a particular activity.", + "parameters": { + "activityId": { + "type": "string", + "description": "The ID of the activity to get the list of people for.", + "required": true, + "location": "path" + }, + "collection": { + "type": "string", + "description": "The collection of people to list.", + "required": true, + "enum": [ + "plusoners", + "resharers", + "sharedto" + ], + "enumDescriptions": [ + "List all people who have +1'd this activity.", + "List all people who have reshared this activity.", + "List all people who this activity was shared to." + ], + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "activityId", + "collection" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/plus.stream.read" + ] + }, + "listByCircle": { + "id": "plusDomains.people.listByCircle", + "path": "circles/{circleId}/people", + "httpMethod": "GET", + "description": "List all of the people who are members of a circle.", + "parameters": { + "circleId": { + "type": "string", + "description": "The ID of the circle to get the members of.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.", + "default": "20", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of \"nextPageToken\" from the previous response.", + "location": "query" + } + }, + "parameterOrder": [ + "circleId" + ], + "response": { + "$ref": "PeopleFeed" + }, + "scopes": [ + "https://www.googleapis.com/auth/plus.circles.read", + "https://www.googleapis.com/auth/plus.login" + ] + } + } + } + } +} diff --git a/etc/api/prediction/v1.2/prediction-api.json b/etc/api/prediction/v1.2/prediction-api.json new file mode 100644 index 0000000000..83b7b2d606 --- /dev/null +++ b/etc/api/prediction/v1.2/prediction-api.json @@ -0,0 +1,354 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/vqbJcfoFrtPpK9W2dvUTdM5aWmI\"", + "discoveryVersion": "v1", + "id": "prediction:v1.2", + "name": "prediction", + "version": "v1.2", + "revision": "20140522", + "title": "Prediction API", + "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png", + "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png" + }, + "documentationLink": "https://developers.google.com/prediction/docs/developer-guide", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/prediction/v1.2/", + "basePath": "/prediction/v1.2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "prediction/v1.2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/prediction": { + "description": "Manage your data in the Google Prediction API" + } + } + } + }, + "schemas": { + "Input": { + "id": "Input", + "type": "object", + "properties": { + "input": { + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "items": { + "type": "any" + } + } + } + } + } + }, + "Output": { + "id": "Output", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "prediction#output" + }, + "outputLabel": { + "type": "string" + }, + "outputMulti": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "score": { + "type": "number", + "format": "double" + } + } + } + }, + "outputValue": { + "type": "number", + "format": "double" + }, + "selfLink": { + "type": "string" + } + } + }, + "Training": { + "id": "Training", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "prediction#training" + }, + "modelInfo": { + "type": "object", + "properties": { + "classificationAccuracy": { + "type": "number", + "format": "double" + }, + "meanSquaredError": { + "type": "number", + "format": "double" + }, + "modelType": { + "type": "string" + } + } + }, + "selfLink": { + "type": "string" + }, + "trainingStatus": { + "type": "string" + } + } + }, + "Update": { + "id": "Update", + "type": "object", + "properties": { + "classLabel": { + "type": "string", + "description": "The true class label of this instance" + }, + "csvInstance": { + "type": "array", + "description": "The input features for this instance", + "items": { + "type": "any" + } + } + } + } + }, + "methods": { + "predict": { + "id": "prediction.predict", + "path": "training/{data}/predict", + "httpMethod": "POST", + "description": "Submit data and request a prediction", + "parameters": { + "data": { + "type": "string", + "description": "mybucket%2Fmydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + }, + "resources": { + "hostedmodels": { + "methods": { + "predict": { + "id": "prediction.hostedmodels.predict", + "path": "hostedmodels/{hostedModelName}/predict", + "httpMethod": "POST", + "description": "Submit input and request an output against a hosted model", + "parameters": { + "hostedModelName": { + "type": "string", + "description": "The name of a hosted model", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "hostedModelName" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + }, + "training": { + "methods": { + "delete": { + "id": "prediction.training.delete", + "path": "training/{data}", + "httpMethod": "DELETE", + "description": "Delete a trained model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "get": { + "id": "prediction.training.get", + "path": "training/{data}", + "httpMethod": "GET", + "description": "Check training status of your model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "insert": { + "id": "prediction.training.insert", + "path": "training", + "httpMethod": "POST", + "description": "Begin training your model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "location": "query" + } + }, + "request": { + "$ref": "Training" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/prediction" + ] + }, + "update": { + "id": "prediction.training.update", + "path": "training/{data}", + "httpMethod": "PUT", + "description": "Add new data to a trained model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "request": { + "$ref": "Update" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + } + } +} diff --git a/etc/api/prediction/v1.3/prediction-api.json b/etc/api/prediction/v1.3/prediction-api.json new file mode 100644 index 0000000000..612b454397 --- /dev/null +++ b/etc/api/prediction/v1.3/prediction-api.json @@ -0,0 +1,412 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/AH0kDxitXVy6ezxE7JaWy7alDdY\"", + "discoveryVersion": "v1", + "id": "prediction:v1.3", + "name": "prediction", + "version": "v1.3", + "revision": "20140522", + "title": "Prediction API", + "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png", + "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png" + }, + "documentationLink": "https://developers.google.com/prediction/docs/developer-guide", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/prediction/v1.3/", + "basePath": "/prediction/v1.3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "prediction/v1.3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/prediction": { + "description": "Manage your data in the Google Prediction API" + } + } + } + }, + "schemas": { + "Input": { + "id": "Input", + "type": "object", + "properties": { + "input": { + "type": "object", + "description": "Input to the model for a prediction", + "properties": { + "csvInstance": { + "type": "array", + "description": "A list of input features, these can be strings or doubles.", + "items": { + "type": "any" + } + } + } + } + } + }, + "Output": { + "id": "Output", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#output" + }, + "outputLabel": { + "type": "string", + "description": "The most likely class [Categorical models only]." + }, + "outputMulti": { + "type": "array", + "description": "A list of classes with their estimated probabilities [Categorical models only].", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The class label." + }, + "score": { + "type": "number", + "description": "The probability of the class.", + "format": "double" + } + } + } + }, + "outputValue": { + "type": "number", + "description": "The estimated regression value [Regression models only].", + "format": "double" + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Training": { + "id": "Training", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#training" + }, + "modelInfo": { + "type": "object", + "description": "Model metadata.", + "properties": { + "classWeightedAccuracy": { + "type": "number", + "description": "Estimated accuracy of model taking utility weights into account [Categorical models only].", + "format": "double" + }, + "classificationAccuracy": { + "type": "number", + "description": "A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data [Categorical models only].", + "format": "double" + }, + "confusionMatrix": { + "type": "object", + "description": "An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes [Categorical models only].", + "additionalProperties": { + "type": "object", + "description": "The true class label.", + "additionalProperties": { + "type": "number", + "description": "The pair {predicted_label, count}.", + "format": "double" + } + } + }, + "confusionMatrixRowTotals": { + "type": "object", + "description": "A list of the confusion matrix row totals", + "additionalProperties": { + "type": "number", + "description": "The true class associated with how many instances it had", + "format": "double" + } + }, + "meanSquaredError": { + "type": "number", + "description": "An estimated mean squared error. The can be used to measure the quality of the predicted model [Regression models only].", + "format": "double" + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (CLASSIFICATION or REGRESSION)" + }, + "numberClasses": { + "type": "string", + "description": "Number of classes in the trained model [Categorical models only].", + "format": "int64" + }, + "numberInstances": { + "type": "string", + "description": "Number of valid data instances used in the trained model.", + "format": "int64" + } + } + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + }, + "trainingStatus": { + "type": "string", + "description": "The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND" + }, + "utility": { + "type": "array", + "description": "A class weighting function, which allows the importance weights for classes to be specified [Categorical models only].", + "items": { + "type": "object", + "description": "Class label (string).", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + } + } + }, + "Update": { + "id": "Update", + "type": "object", + "properties": { + "classLabel": { + "type": "string", + "description": "The true class label of this instance" + }, + "csvInstance": { + "type": "array", + "description": "The input features for this instance", + "items": { + "type": "any" + } + } + } + } + }, + "resources": { + "hostedmodels": { + "methods": { + "predict": { + "id": "prediction.hostedmodels.predict", + "path": "hostedmodels/{hostedModelName}/predict", + "httpMethod": "POST", + "description": "Submit input and request an output against a hosted model", + "parameters": { + "hostedModelName": { + "type": "string", + "description": "The name of a hosted model", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "hostedModelName" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + }, + "training": { + "methods": { + "delete": { + "id": "prediction.training.delete", + "path": "training/{data}", + "httpMethod": "DELETE", + "description": "Delete a trained model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "get": { + "id": "prediction.training.get", + "path": "training/{data}", + "httpMethod": "GET", + "description": "Check training status of your model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "insert": { + "id": "prediction.training.insert", + "path": "training", + "httpMethod": "POST", + "description": "Begin training your model", + "request": { + "$ref": "Training" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/prediction" + ] + }, + "predict": { + "id": "prediction.training.predict", + "path": "training/{data}/predict", + "httpMethod": "POST", + "description": "Submit data and request a prediction", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "update": { + "id": "prediction.training.update", + "path": "training/{data}", + "httpMethod": "PUT", + "description": "Add new data to a trained model", + "parameters": { + "data": { + "type": "string", + "description": "mybucket/mydata resource in Google Storage", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "data" + ], + "request": { + "$ref": "Update" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + } + } +} diff --git a/etc/api/prediction/v1.4/prediction-api.json b/etc/api/prediction/v1.4/prediction-api.json new file mode 100644 index 0000000000..93dc2e1547 --- /dev/null +++ b/etc/api/prediction/v1.4/prediction-api.json @@ -0,0 +1,437 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/vTEPhd5Iea8_7PtKnWKo1lkHwg8\"", + "discoveryVersion": "v1", + "id": "prediction:v1.4", + "name": "prediction", + "version": "v1.4", + "revision": "20140522", + "title": "Prediction API", + "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png", + "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png" + }, + "documentationLink": "https://developers.google.com/prediction/docs/developer-guide", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/prediction/v1.4/", + "basePath": "/prediction/v1.4/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "prediction/v1.4/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/prediction": { + "description": "Manage your data in the Google Prediction API" + } + } + } + }, + "schemas": { + "Input": { + "id": "Input", + "type": "object", + "properties": { + "input": { + "type": "object", + "description": "Input to the model for a prediction", + "properties": { + "csvInstance": { + "type": "array", + "description": "A list of input features, these can be strings or doubles.", + "items": { + "type": "any" + } + } + } + } + } + }, + "Output": { + "id": "Output", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#output" + }, + "outputLabel": { + "type": "string", + "description": "The most likely class label [Categorical models only]." + }, + "outputMulti": { + "type": "array", + "description": "A list of class labels with their estimated probabilities [Categorical models only].", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The class label." + }, + "score": { + "type": "number", + "description": "The probability of the class label.", + "format": "double" + } + } + } + }, + "outputValue": { + "type": "number", + "description": "The estimated regression value [Regression models only].", + "format": "double" + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Training": { + "id": "Training", + "type": "object", + "properties": { + "dataAnalysis": { + "type": "object", + "description": "Data Analysis.", + "properties": { + "warnings": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#training" + }, + "modelInfo": { + "type": "object", + "description": "Model metadata.", + "properties": { + "classWeightedAccuracy": { + "type": "number", + "description": "Estimated accuracy of model taking utility weights into account [Categorical models only].", + "format": "double" + }, + "classificationAccuracy": { + "type": "number", + "description": "A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data [Categorical models only].", + "format": "double" + }, + "confusionMatrix": { + "type": "object", + "description": "An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes [Categorical models only].", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + }, + "confusionMatrixRowTotals": { + "type": "object", + "description": "A list of the confusion matrix row totals", + "additionalProperties": { + "type": "number", + "format": "double" + } + }, + "meanSquaredError": { + "type": "number", + "description": "An estimated mean squared error. The can be used to measure the quality of the predicted model [Regression models only].", + "format": "double" + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (CLASSIFICATION or REGRESSION)" + }, + "numberInstances": { + "type": "string", + "description": "Number of valid data instances used in the trained model.", + "format": "int64" + }, + "numberLabels": { + "type": "string", + "description": "Number of class labels in the trained model [Categorical models only].", + "format": "int64" + } + } + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + }, + "storageDataLocation": { + "type": "string", + "description": "Google storage location of the training data file." + }, + "storagePMMLLocation": { + "type": "string", + "description": "Google storage location of the preprocessing pmml file." + }, + "storagePMMLModelLocation": { + "type": "string", + "description": "Google storage location of the pmml model file." + }, + "trainingStatus": { + "type": "string", + "description": "The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND" + }, + "utility": { + "type": "array", + "description": "A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].", + "items": { + "type": "object", + "description": "Class label (string).", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + } + } + }, + "Update": { + "id": "Update", + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "description": "The input features for this instance", + "items": { + "type": "any" + } + }, + "label": { + "type": "string", + "description": "The class label of this instance" + }, + "output": { + "type": "string", + "description": "The generic output value - could be regression value or class label" + } + } + } + }, + "resources": { + "hostedmodels": { + "methods": { + "predict": { + "id": "prediction.hostedmodels.predict", + "path": "hostedmodels/{hostedModelName}/predict", + "httpMethod": "POST", + "description": "Submit input and request an output against a hosted model.", + "parameters": { + "hostedModelName": { + "type": "string", + "description": "The name of a hosted model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "hostedModelName" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + }, + "trainedmodels": { + "methods": { + "delete": { + "id": "prediction.trainedmodels.delete", + "path": "trainedmodels/{id}", + "httpMethod": "DELETE", + "description": "Delete a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "get": { + "id": "prediction.trainedmodels.get", + "path": "trainedmodels/{id}", + "httpMethod": "GET", + "description": "Check training status of your model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "insert": { + "id": "prediction.trainedmodels.insert", + "path": "trainedmodels", + "httpMethod": "POST", + "description": "Begin training your model.", + "request": { + "$ref": "Training" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/prediction" + ] + }, + "predict": { + "id": "prediction.trainedmodels.predict", + "path": "trainedmodels/{id}/predict", + "httpMethod": "POST", + "description": "Submit model id and request a prediction", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "update": { + "id": "prediction.trainedmodels.update", + "path": "trainedmodels/{id}", + "httpMethod": "PUT", + "description": "Add new data to a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Update" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + } + } +} diff --git a/etc/api/prediction/v1.5/prediction-api.json b/etc/api/prediction/v1.5/prediction-api.json new file mode 100644 index 0000000000..9708d939c8 --- /dev/null +++ b/etc/api/prediction/v1.5/prediction-api.json @@ -0,0 +1,700 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/07rbeW7QivPtt7IIYTOaHuwiDFw\"", + "discoveryVersion": "v1", + "id": "prediction:v1.5", + "name": "prediction", + "version": "v1.5", + "revision": "20140522", + "title": "Prediction API", + "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png", + "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png" + }, + "documentationLink": "https://developers.google.com/prediction/docs/developer-guide", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/prediction/v1.5/", + "basePath": "/prediction/v1.5/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "prediction/v1.5/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/prediction": { + "description": "Manage your data in the Google Prediction API" + } + } + } + }, + "schemas": { + "Analyze": { + "id": "Analyze", + "type": "object", + "properties": { + "dataDescription": { + "type": "object", + "description": "Description of the data the model was trained on.", + "properties": { + "features": { + "type": "array", + "description": "Description of the input features in the data set.", + "items": { + "type": "object", + "properties": { + "categorical": { + "type": "object", + "description": "Description of the categorical values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of categorical values for this feature in the data.", + "format": "int64" + }, + "values": { + "type": "array", + "description": "List of all the categories for this feature in the data set.", + "items": { + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Number of times this feature had this value.", + "format": "int64" + }, + "value": { + "type": "string", + "description": "The category name." + } + } + } + } + } + }, + "index": { + "type": "string", + "description": "The feature index.", + "format": "int64" + }, + "numeric": { + "type": "object", + "description": "Description of the numeric values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of numeric values for this feature in the data set.", + "format": "int64" + }, + "mean": { + "type": "number", + "description": "Mean of the numeric values of this feature in the data set.", + "format": "double" + }, + "variance": { + "type": "number", + "description": "Variance of the numeric values of this feature in the data set.", + "format": "double" + } + } + }, + "text": { + "type": "object", + "description": "Description of multiple-word text values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of multiple-word text values for this feature.", + "format": "int64" + } + } + } + } + } + }, + "outputFeature": { + "type": "object", + "description": "Description of the output value or label.", + "properties": { + "numeric": { + "type": "object", + "description": "Description of the output values in the data set.", + "properties": { + "count": { + "type": "string", + "description": "Number of numeric output values in the data set.", + "format": "int64" + }, + "mean": { + "type": "number", + "description": "Mean of the output values in the data set.", + "format": "double" + }, + "variance": { + "type": "number", + "description": "Variance of the output values in the data set.", + "format": "double" + } + } + }, + "text": { + "type": "array", + "description": "Description of the output labels in the data set.", + "items": { + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Number of times the output label occurred in the data set.", + "format": "int64" + }, + "value": { + "type": "string", + "description": "The output label." + } + } + } + } + } + } + } + }, + "errors": { + "type": "array", + "description": "List of errors with the data.", + "items": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "Error level followed by a detailed error message." + } + } + }, + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#analyze" + }, + "modelDescription": { + "type": "object", + "description": "Description of the model.", + "properties": { + "confusionMatrix": { + "type": "object", + "description": "An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes [Categorical models only].", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + }, + "confusionMatrixRowTotals": { + "type": "object", + "description": "A list of the confusion matrix row totals", + "additionalProperties": { + "type": "number", + "format": "double" + } + }, + "modelinfo": { + "$ref": "Training", + "description": "Basic information about the model." + } + } + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Input": { + "id": "Input", + "type": "object", + "properties": { + "input": { + "type": "object", + "description": "Input to the model for a prediction", + "properties": { + "csvInstance": { + "type": "array", + "description": "A list of input features, these can be strings or doubles.", + "items": { + "type": "any" + } + } + } + } + } + }, + "List": { + "id": "List", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "List of models.", + "items": { + "$ref": "Training" + } + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#list" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Output": { + "id": "Output", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#output" + }, + "outputLabel": { + "type": "string", + "description": "The most likely class label [Categorical models only]." + }, + "outputMulti": { + "type": "array", + "description": "A list of class labels with their estimated probabilities [Categorical models only].", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The class label." + }, + "score": { + "type": "number", + "description": "The probability of the class label.", + "format": "double" + } + } + } + }, + "outputValue": { + "type": "number", + "description": "The estimated regression value [Regression models only].", + "format": "double" + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Training": { + "id": "Training", + "type": "object", + "properties": { + "created": { + "type": "string", + "description": "Insert time of the model (as a RFC 3339 timestamp).", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#training" + }, + "modelInfo": { + "type": "object", + "description": "Model metadata.", + "properties": { + "classWeightedAccuracy": { + "type": "number", + "description": "Estimated accuracy of model taking utility weights into account [Categorical models only].", + "format": "double" + }, + "classificationAccuracy": { + "type": "number", + "description": "A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data [Categorical models only].", + "format": "double" + }, + "meanSquaredError": { + "type": "number", + "description": "An estimated mean squared error. The can be used to measure the quality of the predicted model [Regression models only].", + "format": "double" + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (CLASSIFICATION or REGRESSION)" + }, + "numberInstances": { + "type": "string", + "description": "Number of valid data instances used in the trained model.", + "format": "int64" + }, + "numberLabels": { + "type": "string", + "description": "Number of class labels in the trained model [Categorical models only].", + "format": "int64" + } + } + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (classification or regression)" + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + }, + "storageDataLocation": { + "type": "string", + "description": "Google storage location of the training data file." + }, + "storagePMMLLocation": { + "type": "string", + "description": "Google storage location of the preprocessing pmml file." + }, + "storagePMMLModelLocation": { + "type": "string", + "description": "Google storage location of the pmml model file." + }, + "trainingComplete": { + "type": "string", + "description": "Training completion time (as a RFC 3339 timestamp).", + "format": "date-time" + }, + "trainingInstances": { + "type": "array", + "description": "Instances to train model on.", + "items": { + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "description": "The input features for this instance", + "items": { + "type": "any" + } + }, + "output": { + "type": "string", + "description": "The generic output value - could be regression or class label" + } + } + } + }, + "trainingStatus": { + "type": "string", + "description": "The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND" + }, + "utility": { + "type": "array", + "description": "A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].", + "items": { + "type": "object", + "description": "Class label (string).", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + } + } + }, + "Update": { + "id": "Update", + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "description": "The input features for this instance", + "items": { + "type": "any" + } + }, + "label": { + "type": "string", + "description": "The class label of this instance" + }, + "output": { + "type": "string", + "description": "The generic output value - could be regression value or class label" + } + } + } + }, + "resources": { + "hostedmodels": { + "methods": { + "predict": { + "id": "prediction.hostedmodels.predict", + "path": "hostedmodels/{hostedModelName}/predict", + "httpMethod": "POST", + "description": "Submit input and request an output against a hosted model.", + "parameters": { + "hostedModelName": { + "type": "string", + "description": "The name of a hosted model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "hostedModelName" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + }, + "trainedmodels": { + "methods": { + "analyze": { + "id": "prediction.trainedmodels.analyze", + "path": "trainedmodels/{id}/analyze", + "httpMethod": "GET", + "description": "Get analysis of the model and the data the model was trained on.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Analyze" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "delete": { + "id": "prediction.trainedmodels.delete", + "path": "trainedmodels/{id}", + "httpMethod": "DELETE", + "description": "Delete a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "get": { + "id": "prediction.trainedmodels.get", + "path": "trainedmodels/{id}", + "httpMethod": "GET", + "description": "Check training status of your model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "insert": { + "id": "prediction.trainedmodels.insert", + "path": "trainedmodels", + "httpMethod": "POST", + "description": "Begin training your model.", + "request": { + "$ref": "Training" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/prediction" + ] + }, + "list": { + "id": "prediction.trainedmodels.list", + "path": "trainedmodels/list", + "httpMethod": "GET", + "description": "List available models.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Pagination token", + "location": "query" + } + }, + "response": { + "$ref": "List" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "predict": { + "id": "prediction.trainedmodels.predict", + "path": "trainedmodels/{id}/predict", + "httpMethod": "POST", + "description": "Submit model id and request a prediction.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "update": { + "id": "prediction.trainedmodels.update", + "path": "trainedmodels/{id}", + "httpMethod": "PUT", + "description": "Add new data to a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "Update" + }, + "response": { + "$ref": "Training" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + } + } +} diff --git a/etc/api/prediction/v1.6/prediction-api.json b/etc/api/prediction/v1.6/prediction-api.json new file mode 100644 index 0000000000..ff3dd8be3d --- /dev/null +++ b/etc/api/prediction/v1.6/prediction-api.json @@ -0,0 +1,780 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/XH5kx6DVwHOxcDh-sCub5wYn1Ss\"", + "discoveryVersion": "v1", + "id": "prediction:v1.6", + "name": "prediction", + "version": "v1.6", + "revision": "20140522", + "title": "Prediction API", + "description": "Lets you access a cloud hosted machine learning service that makes it easy to build smart apps", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/predictionapi-16.png", + "x32": "http://www.google.com/images/icons/feature/predictionapi-32.png" + }, + "documentationLink": "https://developers.google.com/prediction/docs/developer-guide", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/prediction/v1.6/projects/", + "basePath": "/prediction/v1.6/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "prediction/v1.6/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/prediction": { + "description": "Manage your data in the Google Prediction API" + } + } + } + }, + "schemas": { + "Analyze": { + "id": "Analyze", + "type": "object", + "properties": { + "dataDescription": { + "type": "object", + "description": "Description of the data the model was trained on.", + "properties": { + "features": { + "type": "array", + "description": "Description of the input features in the data set.", + "items": { + "type": "object", + "properties": { + "categorical": { + "type": "object", + "description": "Description of the categorical values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of categorical values for this feature in the data.", + "format": "int64" + }, + "values": { + "type": "array", + "description": "List of all the categories for this feature in the data set.", + "items": { + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Number of times this feature had this value.", + "format": "int64" + }, + "value": { + "type": "string", + "description": "The category name." + } + } + } + } + } + }, + "index": { + "type": "string", + "description": "The feature index.", + "format": "int64" + }, + "numeric": { + "type": "object", + "description": "Description of the numeric values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of numeric values for this feature in the data set.", + "format": "int64" + }, + "mean": { + "type": "string", + "description": "Mean of the numeric values of this feature in the data set." + }, + "variance": { + "type": "string", + "description": "Variance of the numeric values of this feature in the data set." + } + } + }, + "text": { + "type": "object", + "description": "Description of multiple-word text values of this feature.", + "properties": { + "count": { + "type": "string", + "description": "Number of multiple-word text values for this feature.", + "format": "int64" + } + } + } + } + } + }, + "outputFeature": { + "type": "object", + "description": "Description of the output value or label.", + "properties": { + "numeric": { + "type": "object", + "description": "Description of the output values in the data set.", + "properties": { + "count": { + "type": "string", + "description": "Number of numeric output values in the data set.", + "format": "int64" + }, + "mean": { + "type": "string", + "description": "Mean of the output values in the data set." + }, + "variance": { + "type": "string", + "description": "Variance of the output values in the data set." + } + } + }, + "text": { + "type": "array", + "description": "Description of the output labels in the data set.", + "items": { + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Number of times the output label occurred in the data set.", + "format": "int64" + }, + "value": { + "type": "string", + "description": "The output label." + } + } + } + } + } + } + } + }, + "errors": { + "type": "array", + "description": "List of errors with the data.", + "items": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "Error level followed by a detailed error message." + } + } + }, + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#analyze" + }, + "modelDescription": { + "type": "object", + "description": "Description of the model.", + "properties": { + "confusionMatrix": { + "type": "object", + "description": "An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes (Categorical models only).", + "additionalProperties": { + "type": "object", + "description": "Confusion matrix information for the true class label.", + "additionalProperties": { + "type": "string", + "description": "Average number of times an instance with correct class label modelDescription.confusionMatrix.(key) was wrongfully classified as this label." + } + } + }, + "confusionMatrixRowTotals": { + "type": "object", + "description": "A list of the confusion matrix row totals.", + "additionalProperties": { + "type": "string" + } + }, + "modelinfo": { + "$ref": "Insert2", + "description": "Basic information about the model." + } + } + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Input": { + "id": "Input", + "type": "object", + "properties": { + "input": { + "type": "object", + "description": "Input to the model for a prediction.", + "properties": { + "csvInstance": { + "type": "array", + "description": "A list of input features, these can be strings or doubles.", + "items": { + "type": "any" + } + } + } + } + } + }, + "Insert": { + "id": "Insert", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (classification or regression)." + }, + "sourceModel": { + "type": "string", + "description": "The Id of the model to be copied over." + }, + "storageDataLocation": { + "type": "string", + "description": "Google storage location of the training data file." + }, + "storagePMMLLocation": { + "type": "string", + "description": "Google storage location of the preprocessing pmml file." + }, + "storagePMMLModelLocation": { + "type": "string", + "description": "Google storage location of the pmml model file." + }, + "trainingInstances": { + "type": "array", + "description": "Instances to train model on.", + "items": { + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "description": "The input features for this instance.", + "items": { + "type": "any" + } + }, + "output": { + "type": "string", + "description": "The generic output value - could be regression or class label." + } + } + } + }, + "utility": { + "type": "array", + "description": "A class weighting function, which allows the importance weights for class labels to be specified (Categorical models only).", + "items": { + "type": "object", + "description": "Class label (string).", + "additionalProperties": { + "type": "number", + "format": "double" + } + } + } + } + }, + "Insert2": { + "id": "Insert2", + "type": "object", + "properties": { + "created": { + "type": "string", + "description": "Insert time of the model (as a RFC 3339 timestamp).", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#training" + }, + "modelInfo": { + "type": "object", + "description": "Model metadata.", + "properties": { + "classWeightedAccuracy": { + "type": "string", + "description": "Estimated accuracy of model taking utility weights into account (Categorical models only)." + }, + "classificationAccuracy": { + "type": "string", + "description": "A number between 0.0 and 1.0, where 1.0 is 100% accurate. This is an estimate, based on the amount and quality of the training data, of the estimated prediction accuracy. You can use this is a guide to decide whether the results are accurate enough for your needs. This estimate will be more reliable if your real input data is similar to your training data (Categorical models only)." + }, + "meanSquaredError": { + "type": "string", + "description": "An estimated mean squared error. The can be used to measure the quality of the predicted model (Regression models only)." + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (CLASSIFICATION or REGRESSION)." + }, + "numberInstances": { + "type": "string", + "description": "Number of valid data instances used in the trained model.", + "format": "int64" + }, + "numberLabels": { + "type": "string", + "description": "Number of class labels in the trained model (Categorical models only).", + "format": "int64" + } + } + }, + "modelType": { + "type": "string", + "description": "Type of predictive model (CLASSIFICATION or REGRESSION)." + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + }, + "storageDataLocation": { + "type": "string", + "description": "Google storage location of the training data file." + }, + "storagePMMLLocation": { + "type": "string", + "description": "Google storage location of the preprocessing pmml file." + }, + "storagePMMLModelLocation": { + "type": "string", + "description": "Google storage location of the pmml model file." + }, + "trainingComplete": { + "type": "string", + "description": "Training completion time (as a RFC 3339 timestamp).", + "format": "date-time" + }, + "trainingStatus": { + "type": "string", + "description": "The current status of the training job. This can be one of following: RUNNING; DONE; ERROR; ERROR: TRAINING JOB NOT FOUND" + } + } + }, + "List": { + "id": "List", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "List of models.", + "items": { + "$ref": "Insert2" + } + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#list" + }, + "nextPageToken": { + "type": "string", + "description": "Pagination token to fetch the next page, if one exists." + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Output": { + "id": "Output", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique name for the predictive model." + }, + "kind": { + "type": "string", + "description": "What kind of resource this is.", + "default": "prediction#output" + }, + "outputLabel": { + "type": "string", + "description": "The most likely class label (Categorical models only)." + }, + "outputMulti": { + "type": "array", + "description": "A list of class labels with their estimated probabilities (Categorical models only).", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The class label." + }, + "score": { + "type": "string", + "description": "The probability of the class label." + } + } + } + }, + "outputValue": { + "type": "number", + "description": "The estimated regression value (Regression models only).", + "format": "double" + }, + "selfLink": { + "type": "string", + "description": "A URL to re-request this resource." + } + } + }, + "Update": { + "id": "Update", + "type": "object", + "properties": { + "csvInstance": { + "type": "array", + "description": "The input features for this instance.", + "items": { + "type": "any" + } + }, + "output": { + "type": "string", + "description": "The generic output value - could be regression or class label." + } + } + } + }, + "resources": { + "hostedmodels": { + "methods": { + "predict": { + "id": "prediction.hostedmodels.predict", + "path": "{project}/hostedmodels/{hostedModelName}/predict", + "httpMethod": "POST", + "description": "Submit input and request an output against a hosted model.", + "parameters": { + "hostedModelName": { + "type": "string", + "description": "The name of a hosted model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "hostedModelName" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + }, + "trainedmodels": { + "methods": { + "analyze": { + "id": "prediction.trainedmodels.analyze", + "path": "{project}/trainedmodels/{id}/analyze", + "httpMethod": "GET", + "description": "Get analysis of the model and the data the model was trained on.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "id" + ], + "response": { + "$ref": "Analyze" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "delete": { + "id": "prediction.trainedmodels.delete", + "path": "{project}/trainedmodels/{id}", + "httpMethod": "DELETE", + "description": "Delete a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "get": { + "id": "prediction.trainedmodels.get", + "path": "{project}/trainedmodels/{id}", + "httpMethod": "GET", + "description": "Check training status of your model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "id" + ], + "response": { + "$ref": "Insert2" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "insert": { + "id": "prediction.trainedmodels.insert", + "path": "{project}/trainedmodels", + "httpMethod": "POST", + "description": "Train a Prediction API model.", + "parameters": { + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Insert" + }, + "response": { + "$ref": "Insert2" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write", + "https://www.googleapis.com/auth/prediction" + ] + }, + "list": { + "id": "prediction.trainedmodels.list", + "path": "{project}/trainedmodels/list", + "httpMethod": "GET", + "description": "List available models.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Pagination token.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "List" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "predict": { + "id": "prediction.trainedmodels.predict", + "path": "{project}/trainedmodels/{id}/predict", + "httpMethod": "POST", + "description": "Submit model id and request a prediction.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "id" + ], + "request": { + "$ref": "Input" + }, + "response": { + "$ref": "Output" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + }, + "update": { + "id": "prediction.trainedmodels.update", + "path": "{project}/trainedmodels/{id}", + "httpMethod": "PUT", + "description": "Add new data to a trained model.", + "parameters": { + "id": { + "type": "string", + "description": "The unique name for the predictive model.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "The project associated with the model.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "id" + ], + "request": { + "$ref": "Update" + }, + "response": { + "$ref": "Insert2" + }, + "scopes": [ + "https://www.googleapis.com/auth/prediction" + ] + } + } + } + } +} diff --git a/etc/api/pubsub/v1beta1/pubsub-api.json b/etc/api/pubsub/v1beta1/pubsub-api.json new file mode 100644 index 0000000000..37e000ca9f --- /dev/null +++ b/etc/api/pubsub/v1beta1/pubsub-api.json @@ -0,0 +1,692 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/LbBwzYbVBam1gVQEBSCOUlfciRc\"", + "discoveryVersion": "v1", + "id": "pubsub:v1beta1", + "name": "pubsub", + "version": "v1beta1", + "revision": "20141112", + "title": "Google Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/search-16.gif", + "x32": "https://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/pubsub/v1beta1", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/pubsub/v1beta1/", + "basePath": "/pubsub/v1beta1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "pubsub/v1beta1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/pubsub": { + "description": "View and manage Pub/Sub topics and subscriptions" + } + } + } + }, + "schemas": { + "AcknowledgeRequest": { + "id": "AcknowledgeRequest", + "type": "object", + "description": "Request for the Acknowledge method.", + "properties": { + "ackId": { + "type": "array", + "description": "The acknowledgment ID for the message being acknowledged. This was returned by the Pub/Sub system in the Pull response.", + "items": { + "type": "string" + } + }, + "subscription": { + "type": "string", + "description": "The subscription whose message is being acknowledged." + } + } + }, + "Label": { + "id": "Label", + "type": "object", + "description": "A key-value pair applied to a given object.", + "properties": { + "key": { + "type": "string", + "description": "The key of a label is a syntactically valid URL (as per RFC 1738) with the \"scheme\" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The \"host\" portion is called the \"namespace\" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated.\n\nKeys are defined by the following grammar:\n\nkey = hostname \"/\" kpath kpath = ksegment *[ \"/\" ksegment ] ksegment = alphadigit | *[ alphadigit | \"-\" | \"_\" | \".\" ]\n\nwhere \"hostname\" and \"alphadigit\" are defined as in RFC 1738.\n\nExample key: spanner.google.com/universe" + }, + "numValue": { + "type": "string", + "description": "An integer value.", + "format": "int64" + }, + "strValue": { + "type": "string", + "description": "A string value." + } + } + }, + "ListSubscriptionsResponse": { + "id": "ListSubscriptionsResponse", + "type": "object", + "description": "Response for the ListSubscriptions method.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "If not empty, indicates that there are more subscriptions that match the request and this value should be passed to the next ListSubscriptionsRequest to continue." + }, + "subscription": { + "type": "array", + "description": "The subscriptions that match the request.", + "items": { + "$ref": "Subscription" + } + } + } + }, + "ListTopicsResponse": { + "id": "ListTopicsResponse", + "type": "object", + "description": "Response for the ListTopics method.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "If not empty, indicates that there are more topics that match the request, and this value should be passed to the next ListTopicsRequest to continue." + }, + "topic": { + "type": "array", + "description": "The resulting topics.", + "items": { + "$ref": "Topic" + } + } + } + }, + "ModifyAckDeadlineRequest": { + "id": "ModifyAckDeadlineRequest", + "type": "object", + "description": "Request for the ModifyAckDeadline method.", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "description": "The new Ack deadline. Must be \u003e= 0.", + "format": "int32" + }, + "ackId": { + "type": "string", + "description": "The acknowledgment ID." + }, + "subscription": { + "type": "string", + "description": "The name of the subscription from which messages are being pulled." + } + } + }, + "ModifyPushConfigRequest": { + "id": "ModifyPushConfigRequest", + "type": "object", + "description": "Request for the ModifyPushConfig method.", + "properties": { + "pushConfig": { + "$ref": "PushConfig", + "description": "An empty push_config indicates that the Pub/Sub system should pause pushing messages from the given subscription." + }, + "subscription": { + "type": "string", + "description": "The name of the subscription." + } + } + }, + "PublishBatchRequest": { + "id": "PublishBatchRequest", + "type": "object", + "description": "Request for the PublishBatch method.", + "properties": { + "messages": { + "type": "array", + "description": "The messages to publish.", + "items": { + "$ref": "PubsubMessage" + } + }, + "topic": { + "type": "string", + "description": "The messages in the request will be published on this topic." + } + } + }, + "PublishBatchResponse": { + "id": "PublishBatchResponse", + "type": "object", + "description": "Response for the PublishBatch method.", + "properties": { + "messageIds": { + "type": "array", + "description": "The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.", + "items": { + "type": "string" + } + } + } + }, + "PublishRequest": { + "id": "PublishRequest", + "type": "object", + "description": "Request for the Publish method.", + "properties": { + "message": { + "$ref": "PubsubMessage", + "description": "The message to publish." + }, + "topic": { + "type": "string", + "description": "The message in the request will be published on this topic." + } + } + }, + "PubsubEvent": { + "id": "PubsubEvent", + "type": "object", + "description": "An event indicating a received message or truncation event.", + "properties": { + "deleted": { + "type": "boolean", + "description": "Indicates that this subscription has been deleted. (Note that pull subscribers will always receive NOT_FOUND in response in their pull request on the subscription, rather than seeing this boolean.)" + }, + "message": { + "$ref": "PubsubMessage", + "description": "A received message." + }, + "subscription": { + "type": "string", + "description": "The subscription that received the event." + }, + "truncated": { + "type": "boolean", + "description": "Indicates that this subscription has been truncated." + } + } + }, + "PubsubMessage": { + "id": "PubsubMessage", + "type": "object", + "description": "A message data and its labels.", + "properties": { + "data": { + "type": "string", + "description": "The message payload.", + "format": "byte" + }, + "label": { + "type": "array", + "description": "Optional list of labels for this message. Keys in this collection must be unique.", + "items": { + "$ref": "Label" + } + }, + "messageId": { + "type": "string", + "description": "ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call." + } + } + }, + "PullBatchRequest": { + "id": "PullBatchRequest", + "type": "object", + "description": "Request for the PullBatch method.", + "properties": { + "maxEvents": { + "type": "integer", + "description": "The maximum number of PubsubEvents returned for this request. The Pub/Sub system may return fewer than the number of events specified.", + "format": "int32" + }, + "returnImmediately": { + "type": "boolean", + "description": "If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning no messages. The client may cancel the request if it does not wish to wait any longer for the response." + }, + "subscription": { + "type": "string", + "description": "The subscription from which messages should be pulled." + } + } + }, + "PullBatchResponse": { + "id": "PullBatchResponse", + "type": "object", + "description": "Response for the PullBatch method.", + "properties": { + "pullResponses": { + "type": "array", + "description": "Received Pub/Sub messages or status events. The Pub/Sub system will return zero messages if there are no more messages available in the backlog. The Pub/Sub system may return fewer than the max_events requested even if there are more messages available in the backlog.", + "items": { + "$ref": "PullResponse" + } + } + } + }, + "PullRequest": { + "id": "PullRequest", + "type": "object", + "description": "Request for the Pull method.", + "properties": { + "returnImmediately": { + "type": "boolean", + "description": "If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning FAILED_PRECONDITION. The client may cancel the request if it does not wish to wait any longer for the response." + }, + "subscription": { + "type": "string", + "description": "The subscription from which a message should be pulled." + } + } + }, + "PullResponse": { + "id": "PullResponse", + "type": "object", + "description": "Either a PubsubMessage or a truncation event. One of these two must be populated.", + "properties": { + "ackId": { + "type": "string", + "description": "This ID must be used to acknowledge the received event or message." + }, + "pubsubEvent": { + "$ref": "PubsubEvent", + "description": "A pubsub message or truncation event." + } + } + }, + "PushConfig": { + "id": "PushConfig", + "type": "object", + "description": "Configuration for a push delivery endpoint.", + "properties": { + "pushEndpoint": { + "type": "string", + "description": "A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use \"https://example.com/push\"." + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "description": "A subscription resource.", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "description": "For either push or pull delivery, the value is the maximum time after a subscriber receives a message before the subscriber should acknowledge or Nack the message. If the Ack deadline for a message passes without an Ack or a Nack, the Pub/Sub system will eventually redeliver the message. If a subscriber acknowledges after the deadline, the Pub/Sub system may accept the Ack, but it is possible that the message has been already delivered again. Multiple Acks to the message are allowed and will succeed.\n\nFor push delivery, this value is used to set the request timeout for the call to the push endpoint.\n\nFor pull delivery, this value is used as the initial value for the Ack deadline. It may be overridden for a specific pull request (message) with ModifyAckDeadline. While a message is outstanding (i.e. it has been delivered to a pull subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub system will not deliver that message to another pull subscriber (on a best-effort basis).", + "format": "int32" + }, + "name": { + "type": "string", + "description": "Name of the subscription." + }, + "pushConfig": { + "$ref": "PushConfig", + "description": "If push delivery is used with this subscription, this field is used to configure it." + }, + "topic": { + "type": "string", + "description": "The name of the topic from which this subscription is receiving messages." + } + } + }, + "Topic": { + "id": "Topic", + "type": "object", + "description": "A topic resource.", + "properties": { + "name": { + "type": "string", + "description": "Name of the topic." + } + } + } + }, + "resources": { + "subscriptions": { + "methods": { + "acknowledge": { + "id": "pubsub.subscriptions.acknowledge", + "path": "subscriptions/acknowledge", + "httpMethod": "POST", + "description": "Acknowledges a particular received message: the Pub/Sub system can remove the given message from the subscription. Acknowledging a message whose Ack deadline has expired may succeed, but the message could have been already redelivered. Acknowledging a message more than once will not result in an error. This is only used for messages received via pull.", + "request": { + "$ref": "AcknowledgeRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "create": { + "id": "pubsub.subscriptions.create", + "path": "subscriptions", + "httpMethod": "POST", + "description": "Creates a subscription on a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND.\n\nIf the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.subscriptions.delete", + "path": "subscriptions/{+subscription}", + "httpMethod": "DELETE", + "description": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND.", + "parameters": { + "subscription": { + "type": "string", + "description": "The subscription to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.subscriptions.get", + "path": "subscriptions/{+subscription}", + "httpMethod": "GET", + "description": "Gets the configuration details of a subscription.", + "parameters": { + "subscription": { + "type": "string", + "description": "The name of the subscription to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.subscriptions.list", + "path": "subscriptions", + "httpMethod": "GET", + "description": "Lists matching subscriptions.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of subscriptions to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value obtained in the last ListSubscriptionsResponse for continuation.", + "location": "query" + }, + "query": { + "type": "string", + "description": "A valid label query expression.", + "location": "query" + } + }, + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyAckDeadline": { + "id": "pubsub.subscriptions.modifyAckDeadline", + "path": "subscriptions/modifyAckDeadline", + "httpMethod": "POST", + "description": "Modifies the Ack deadline for a message received from a pull request.", + "request": { + "$ref": "ModifyAckDeadlineRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyPushConfig": { + "id": "pubsub.subscriptions.modifyPushConfig", + "path": "subscriptions/modifyPushConfig", + "httpMethod": "POST", + "description": "Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.", + "request": { + "$ref": "ModifyPushConfigRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "pull": { + "id": "pubsub.subscriptions.pull", + "path": "subscriptions/pull", + "httpMethod": "POST", + "description": "Pulls a single message from the server. If return_immediately is true, and no messages are available in the subscription, this method returns FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no messages are available in a reasonable amount of time (to reduce system load).", + "request": { + "$ref": "PullRequest" + }, + "response": { + "$ref": "PullResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "pullBatch": { + "id": "pubsub.subscriptions.pullBatch", + "path": "subscriptions/pullBatch", + "httpMethod": "POST", + "description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.", + "request": { + "$ref": "PullBatchRequest" + }, + "response": { + "$ref": "PullBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + }, + "topics": { + "methods": { + "create": { + "id": "pubsub.topics.create", + "path": "topics", + "httpMethod": "POST", + "description": "Creates the given topic with the given name.", + "request": { + "$ref": "Topic" + }, + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.topics.delete", + "path": "topics/{+topic}", + "httpMethod": "DELETE", + "description": "Deletes the topic with the given name. All subscriptions to this topic are also deleted. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name.", + "parameters": { + "topic": { + "type": "string", + "description": "Name of the topic to delete.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.topics.get", + "path": "topics/{+topic}", + "httpMethod": "GET", + "description": "Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.", + "parameters": { + "topic": { + "type": "string", + "description": "The name of the topic to get.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.topics.list", + "path": "topics", + "httpMethod": "GET", + "description": "Lists matching topics.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of topics to return.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "The value obtained in the last ListTopicsResponse for continuation.", + "location": "query" + }, + "query": { + "type": "string", + "description": "A valid label query expression.", + "location": "query" + } + }, + "response": { + "$ref": "ListTopicsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "publish": { + "id": "pubsub.topics.publish", + "path": "topics/publish", + "httpMethod": "POST", + "description": "Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.", + "request": { + "$ref": "PublishRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "publishBatch": { + "id": "pubsub.topics.publishBatch", + "path": "topics/publishBatch", + "httpMethod": "POST", + "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.", + "request": { + "$ref": "PublishBatchRequest" + }, + "response": { + "$ref": "PublishBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + } + } +} diff --git a/etc/api/pubsub/v1beta1a/pubsub-api.json b/etc/api/pubsub/v1beta1a/pubsub-api.json new file mode 100644 index 0000000000..1d620857dc --- /dev/null +++ b/etc/api/pubsub/v1beta1a/pubsub-api.json @@ -0,0 +1,643 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/DzLQ-VL8eehvuaCXtFxXGiH0oVI\"", + "discoveryVersion": "v1", + "id": "pubsub:v1beta1a", + "name": "pubsub", + "version": "v1beta1a", + "revision": "20150213", + "title": "Google Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "", + "protocol": "rest", + "baseUrl": "https://pubsub.googleapis.com/v1beta1a/", + "basePath": "/v1beta1a/", + "rootUrl": "https://pubsub.googleapis.com/", + "servicePath": "v1beta1a/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/pubsub": { + "description": "View and manage Pub/Sub topics and subscriptions" + } + } + } + }, + "schemas": { + "AcknowledgeRequest": { + "id": "AcknowledgeRequest", + "type": "object", + "properties": { + "ackId": { + "type": "array", + "items": { + "type": "string" + } + }, + "subscription": { + "type": "string" + } + } + }, + "Empty": { + "id": "Empty", + "type": "object" + }, + "Label": { + "id": "Label", + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "numValue": { + "type": "string", + "format": "int64" + }, + "strValue": { + "type": "string" + } + } + }, + "ListSubscriptionsResponse": { + "id": "ListSubscriptionsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "subscription": { + "type": "array", + "items": { + "$ref": "Subscription" + } + } + } + }, + "ListTopicsResponse": { + "id": "ListTopicsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "topic": { + "type": "array", + "items": { + "$ref": "Topic" + } + } + } + }, + "ModifyAckDeadlineRequest": { + "id": "ModifyAckDeadlineRequest", + "type": "object", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "format": "int32" + }, + "ackId": { + "type": "string" + }, + "subscription": { + "type": "string" + } + } + }, + "ModifyPushConfigRequest": { + "id": "ModifyPushConfigRequest", + "type": "object", + "properties": { + "pushConfig": { + "$ref": "PushConfig" + }, + "subscription": { + "type": "string" + } + } + }, + "PublishBatchRequest": { + "id": "PublishBatchRequest", + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "PubsubMessage" + } + }, + "topic": { + "type": "string" + } + } + }, + "PublishBatchResponse": { + "id": "PublishBatchResponse", + "type": "object", + "properties": { + "messageIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PublishRequest": { + "id": "PublishRequest", + "type": "object", + "properties": { + "message": { + "$ref": "PubsubMessage" + }, + "topic": { + "type": "string" + } + } + }, + "PubsubEvent": { + "id": "PubsubEvent", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" + }, + "message": { + "$ref": "PubsubMessage" + }, + "subscription": { + "type": "string" + }, + "truncated": { + "type": "boolean" + } + } + }, + "PubsubMessage": { + "id": "PubsubMessage", + "type": "object", + "properties": { + "data": { + "type": "string", + "format": "byte" + }, + "label": { + "type": "array", + "items": { + "$ref": "Label" + } + }, + "messageId": { + "type": "string" + } + } + }, + "PullBatchRequest": { + "id": "PullBatchRequest", + "type": "object", + "properties": { + "maxEvents": { + "type": "integer", + "format": "int32" + }, + "returnImmediately": { + "type": "boolean" + }, + "subscription": { + "type": "string" + } + } + }, + "PullBatchResponse": { + "id": "PullBatchResponse", + "type": "object", + "properties": { + "pullResponses": { + "type": "array", + "items": { + "$ref": "PullResponse" + } + } + } + }, + "PullRequest": { + "id": "PullRequest", + "type": "object", + "properties": { + "returnImmediately": { + "type": "boolean" + }, + "subscription": { + "type": "string" + } + } + }, + "PullResponse": { + "id": "PullResponse", + "type": "object", + "properties": { + "ackId": { + "type": "string" + }, + "pubsubEvent": { + "$ref": "PubsubEvent" + } + } + }, + "PushConfig": { + "id": "PushConfig", + "type": "object", + "properties": { + "pushEndpoint": { + "type": "string" + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "pushConfig": { + "$ref": "PushConfig" + }, + "topic": { + "type": "string" + } + } + }, + "Topic": { + "id": "Topic", + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + } + }, + "resources": { + "subscriptions": { + "methods": { + "acknowledge": { + "id": "pubsub.subscriptions.acknowledge", + "path": "subscriptions/acknowledge", + "httpMethod": "POST", + "description": "Acknowledges a particular received message: the Pub/Sub system can remove the given message from the subscription. Acknowledging a message whose Ack deadline has expired may succeed, but the message could have been already redelivered. Acknowledging a message more than once will not result in an error. This is only used for messages received via pull.", + "request": { + "$ref": "AcknowledgeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "create": { + "id": "pubsub.subscriptions.create", + "path": "subscriptions", + "httpMethod": "POST", + "description": "Creates a subscription on a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.subscriptions.delete", + "path": "subscriptions/{+subscription}", + "httpMethod": "DELETE", + "description": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.subscriptions.get", + "path": "subscriptions/{+subscription}", + "httpMethod": "GET", + "description": "Gets the configuration details of a subscription.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.subscriptions.list", + "path": "subscriptions", + "httpMethod": "GET", + "description": "Lists matching subscriptions.", + "parameters": { + "maxResults": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "query": { + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyAckDeadline": { + "id": "pubsub.subscriptions.modifyAckDeadline", + "path": "subscriptions/modifyAckDeadline", + "httpMethod": "POST", + "description": "Modifies the Ack deadline for a message received from a pull request.", + "request": { + "$ref": "ModifyAckDeadlineRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyPushConfig": { + "id": "pubsub.subscriptions.modifyPushConfig", + "path": "subscriptions/modifyPushConfig", + "httpMethod": "POST", + "description": "Modifies the 74code76PushConfig74/code76 for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the 74code76PushConfig74/code76 field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.", + "request": { + "$ref": "ModifyPushConfigRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "pull": { + "id": "pubsub.subscriptions.pull", + "path": "subscriptions/pull", + "httpMethod": "POST", + "description": "Pulls a single message from the server. If return_immediately is true, and no messages are available in the subscription, this method returns FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no messages are available in a reasonable amount of time (to reduce system load).", + "request": { + "$ref": "PullRequest" + }, + "response": { + "$ref": "PullResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "pullBatch": { + "id": "pubsub.subscriptions.pullBatch", + "path": "subscriptions/pullBatch", + "httpMethod": "POST", + "description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.", + "request": { + "$ref": "PullBatchRequest" + }, + "response": { + "$ref": "PullBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + }, + "topics": { + "methods": { + "create": { + "id": "pubsub.topics.create", + "path": "topics", + "httpMethod": "POST", + "description": "Creates the given topic with the given name.", + "request": { + "$ref": "Topic" + }, + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.topics.delete", + "path": "topics/{+topic}", + "httpMethod": "DELETE", + "description": "Deletes the topic with the given name. All subscriptions to this topic are also deleted. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name.", + "parameters": { + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.topics.get", + "path": "topics/{+topic}", + "httpMethod": "GET", + "description": "Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.", + "parameters": { + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.topics.list", + "path": "topics", + "httpMethod": "GET", + "description": "Lists matching topics.", + "parameters": { + "maxResults": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "query": { + "type": "string", + "location": "query" + } + }, + "response": { + "$ref": "ListTopicsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "publish": { + "id": "pubsub.topics.publish", + "path": "topics/publish", + "httpMethod": "POST", + "description": "Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.", + "request": { + "$ref": "PublishRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "publishBatch": { + "id": "pubsub.topics.publishBatch", + "path": "topics/publishBatch", + "httpMethod": "POST", + "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.", + "request": { + "$ref": "PublishBatchRequest" + }, + "response": { + "$ref": "PublishBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + } + } +} diff --git a/etc/api/pubsub/v1beta2/pubsub-api.json b/etc/api/pubsub/v1beta2/pubsub-api.json new file mode 100644 index 0000000000..eec7ad48b1 --- /dev/null +++ b/etc/api/pubsub/v1beta2/pubsub-api.json @@ -0,0 +1,679 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/lQI8FHp12NFK29a25qmlTN4Bqeo\"", + "discoveryVersion": "v1", + "id": "pubsub:v1beta2", + "name": "pubsub", + "version": "v1beta2", + "revision": "20150213", + "title": "Google Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "", + "protocol": "rest", + "baseUrl": "https://pubsub.googleapis.com/v1beta2/", + "basePath": "/v1beta2/", + "rootUrl": "https://pubsub.googleapis.com/", + "servicePath": "v1beta2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/pubsub": { + "description": "View and manage Pub/Sub topics and subscriptions" + } + } + } + }, + "schemas": { + "AcknowledgeRequest": { + "id": "AcknowledgeRequest", + "type": "object", + "properties": { + "ackIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Empty": { + "id": "Empty", + "type": "object" + }, + "ListSubscriptionsResponse": { + "id": "ListSubscriptionsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "subscriptions": { + "type": "array", + "items": { + "$ref": "Subscription" + } + } + } + }, + "ListTopicSubscriptionsResponse": { + "id": "ListTopicSubscriptionsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "subscriptions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ListTopicsResponse": { + "id": "ListTopicsResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "topics": { + "type": "array", + "items": { + "$ref": "Topic" + } + } + } + }, + "ModifyAckDeadlineRequest": { + "id": "ModifyAckDeadlineRequest", + "type": "object", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "format": "int32" + }, + "ackId": { + "type": "string" + } + } + }, + "ModifyPushConfigRequest": { + "id": "ModifyPushConfigRequest", + "type": "object", + "properties": { + "pushConfig": { + "$ref": "PushConfig" + } + } + }, + "PublishRequest": { + "id": "PublishRequest", + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "PubsubMessage" + } + } + } + }, + "PublishResponse": { + "id": "PublishResponse", + "type": "object", + "properties": { + "messageIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PubsubMessage": { + "id": "PubsubMessage", + "type": "object", + "properties": { + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "data": { + "type": "string", + "format": "byte" + }, + "messageId": { + "type": "string" + } + } + }, + "PullRequest": { + "id": "PullRequest", + "type": "object", + "properties": { + "maxMessages": { + "type": "integer", + "format": "int32" + }, + "returnImmediately": { + "type": "boolean" + } + } + }, + "PullResponse": { + "id": "PullResponse", + "type": "object", + "properties": { + "receivedMessages": { + "type": "array", + "items": { + "$ref": "ReceivedMessage" + } + } + } + }, + "PushConfig": { + "id": "PushConfig", + "type": "object", + "properties": { + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "pushEndpoint": { + "type": "string" + } + } + }, + "ReceivedMessage": { + "id": "ReceivedMessage", + "type": "object", + "properties": { + "ackId": { + "type": "string" + }, + "message": { + "$ref": "PubsubMessage" + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "properties": { + "ackDeadlineSeconds": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "pushConfig": { + "$ref": "PushConfig" + }, + "topic": { + "type": "string" + } + } + }, + "Topic": { + "id": "Topic", + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + } + }, + "resources": { + "projects": { + "resources": { + "subscriptions": { + "methods": { + "acknowledge": { + "id": "pubsub.projects.subscriptions.acknowledge", + "path": "{+subscription}:acknowledge", + "httpMethod": "POST", + "description": "Acknowledges the messages associated with the ack tokens in the AcknowledgeRequest. The Pub/Sub system can remove the relevant messages from the subscription. Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "request": { + "$ref": "AcknowledgeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "create": { + "id": "pubsub.projects.subscriptions.create", + "path": "{+name}", + "httpMethod": "PUT", + "description": "Creates a subscription to a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.", + "parameters": { + "name": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "name" + ], + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.projects.subscriptions.delete", + "path": "{+subscription}", + "httpMethod": "DELETE", + "description": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription, or its topic unless the same topic is specified.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.projects.subscriptions.get", + "path": "{+subscription}", + "httpMethod": "GET", + "description": "Gets the configuration details of a subscription.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.projects.subscriptions.list", + "path": "{+project}/subscriptions", + "httpMethod": "GET", + "description": "Lists matching subscriptions.", + "parameters": { + "pageSize": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyAckDeadline": { + "id": "pubsub.projects.subscriptions.modifyAckDeadline", + "path": "{+subscription}:modifyAckDeadline", + "httpMethod": "POST", + "description": "Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "request": { + "$ref": "ModifyAckDeadlineRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "modifyPushConfig": { + "id": "pubsub.projects.subscriptions.modifyPushConfig", + "path": "{+subscription}:modifyPushConfig", + "httpMethod": "POST", + "description": "Modifies the PushConfig for a specified subscription. This may be used to change a push subscription to a pull one (signified by an empty PushConfig) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to the PushConfig.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "request": { + "$ref": "ModifyPushConfigRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "pull": { + "id": "pubsub.projects.subscriptions.pull", + "path": "{+subscription}:pull", + "httpMethod": "POST", + "description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The server may return UNAVAILABLE if there are too many concurrent pull requests pending for the given subscription.", + "parameters": { + "subscription": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "subscription" + ], + "request": { + "$ref": "PullRequest" + }, + "response": { + "$ref": "PullResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + }, + "topics": { + "methods": { + "create": { + "id": "pubsub.projects.topics.create", + "path": "{+name}", + "httpMethod": "PUT", + "description": "Creates the given topic with the given name.", + "parameters": { + "name": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "name" + ], + "request": { + "$ref": "Topic" + }, + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "delete": { + "id": "pubsub.projects.topics.delete", + "path": "{+topic}", + "httpMethod": "DELETE", + "description": "Deletes the topic with the given name. All subscriptions to this topic are detached from the topic. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions.", + "parameters": { + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "get": { + "id": "pubsub.projects.topics.get", + "path": "{+topic}", + "httpMethod": "GET", + "description": "Gets the configuration of a topic.", + "parameters": { + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "Topic" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "list": { + "id": "pubsub.projects.topics.list", + "path": "{+project}/topics", + "httpMethod": "GET", + "description": "Lists matching topics.", + "parameters": { + "pageSize": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "project": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "ListTopicsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "publish": { + "id": "pubsub.projects.topics.publish", + "path": "{+topic}:publish", + "httpMethod": "POST", + "description": "Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.", + "parameters": { + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "request": { + "$ref": "PublishRequest" + }, + "response": { + "$ref": "PublishResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + }, + "resources": { + "subscriptions": { + "methods": { + "list": { + "id": "pubsub.projects.topics.subscriptions.list", + "path": "{+topic}/subscriptions", + "httpMethod": "GET", + "description": "Lists the name of the subscriptions for this topic.", + "parameters": { + "pageSize": { + "type": "integer", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "location": "query" + }, + "topic": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "topic" + ], + "response": { + "$ref": "ListTopicSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + } + } + } + } + } + } + } + } +} diff --git a/etc/api/qpxexpress/v1/qpxexpress-api.json b/etc/api/qpxexpress/v1/qpxexpress-api.json new file mode 100644 index 0000000000..c863e0f5e2 --- /dev/null +++ b/etc/api/qpxexpress/v1/qpxexpress-api.json @@ -0,0 +1,895 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/oRXkfQJbU2CyvfsUv40EHopWGd0\"", + "discoveryVersion": "v1", + "id": "qpxExpress:v1", + "name": "qpxExpress", + "canonicalName": "QPX Express", + "version": "v1", + "revision": "20140321", + "title": "QPX Express API", + "description": "Lets you find the least expensive flights between an origin and a destination.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "http://developers.google.com/qpx-express", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/qpxExpress/v1/trips/", + "basePath": "/qpxExpress/v1/trips/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "qpxExpress/v1/trips/", + "batchPath": "batch", + "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": { + "AircraftData": { + "id": "AircraftData", + "type": "object", + "description": "The make, model, and type of an aircraft.", + "properties": { + "code": { + "type": "string", + "description": "The aircraft code. For example, for a Boeing 777 the code would be 777." + }, + "kind": { + "type": "string", + "description": "Identifies this as an aircraftData object. Value: the fixed string qpxexpress#aircraftData", + "default": "qpxexpress#aircraftData" + }, + "name": { + "type": "string", + "description": "The name of an aircraft, for example Boeing 777." + } + } + }, + "AirportData": { + "id": "AirportData", + "type": "object", + "description": "An airport.", + "properties": { + "city": { + "type": "string", + "description": "The city code an airport is located in. For example, for JFK airport, this is NYC." + }, + "code": { + "type": "string", + "description": "An airport's code. For example, for Boston Logan airport, this is BOS." + }, + "kind": { + "type": "string", + "description": "Identifies this as an airport object. Value: the fixed string qpxexpress#airportData.", + "default": "qpxexpress#airportData" + }, + "name": { + "type": "string", + "description": "The name of an airport. For example, for airport BOS the name is \"Boston Logan International\"." + } + } + }, + "BagDescriptor": { + "id": "BagDescriptor", + "type": "object", + "description": "Information about an item of baggage.", + "properties": { + "commercialName": { + "type": "string", + "description": "Provides the commercial name for an optional service." + }, + "count": { + "type": "integer", + "description": "How many of this type of bag will be checked on this flight.", + "format": "int32" + }, + "description": { + "type": "array", + "description": "A description of the baggage.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "Identifies this as a baggage object. Value: the fixed string qpxexpress#bagDescriptor.", + "default": "qpxexpress#bagDescriptor" + }, + "subcode": { + "type": "string", + "description": "The standard IATA subcode used to identify this optional service." + } + } + }, + "CarrierData": { + "id": "CarrierData", + "type": "object", + "description": "Information about a carrier (ie. an airline, bus line, railroad, etc) that might be useful to display to an end-user.", + "properties": { + "code": { + "type": "string", + "description": "The IATA designator of a carrier (airline, etc). For example, for American Airlines, the code is AA." + }, + "kind": { + "type": "string", + "description": "Identifies this as a kind of carrier (ie. an airline, bus line, railroad, etc). Value: the fixed string qpxexpress#carrierData.", + "default": "qpxexpress#carrierData" + }, + "name": { + "type": "string", + "description": "The long, full name of a carrier. For example: American Airlines." + } + } + }, + "CityData": { + "id": "CityData", + "type": "object", + "description": "Information about a city that might be useful to an end-user; typically the city of an airport.", + "properties": { + "code": { + "type": "string", + "description": "The IATA character ID of a city. For example, for Boston this is BOS." + }, + "country": { + "type": "string", + "description": "The two-character country code of the country the city is located in. For example, US for the United States of America." + }, + "kind": { + "type": "string", + "description": "Identifies this as a city, typically with one or more airports. Value: the fixed string qpxexpress#cityData.", + "default": "qpxexpress#cityData" + }, + "name": { + "type": "string", + "description": "The full name of a city. An example would be: New York." + } + } + }, + "Data": { + "id": "Data", + "type": "object", + "description": "Detailed information about components found in the solutions of this response, including a trip's airport, city, taxes, airline, and aircraft.", + "properties": { + "aircraft": { + "type": "array", + "description": "The aircraft that is flying between an origin and destination.", + "items": { + "$ref": "AircraftData" + } + }, + "airport": { + "type": "array", + "description": "The airport of an origin or destination.", + "items": { + "$ref": "AirportData" + } + }, + "carrier": { + "type": "array", + "description": "The airline carrier of the aircraft flying between an origin and destination. Allowed values are IATA carrier codes.", + "items": { + "$ref": "CarrierData" + } + }, + "city": { + "type": "array", + "description": "The city that is either the origin or destination of part of a trip.", + "items": { + "$ref": "CityData" + } + }, + "kind": { + "type": "string", + "description": "Identifies this as QPX Express response resource, including a trip's airport, city, taxes, airline, and aircraft. Value: the fixed string qpxexpress#data.", + "default": "qpxexpress#data" + }, + "tax": { + "type": "array", + "description": "The taxes due for flying between an origin and a destination.", + "items": { + "$ref": "TaxData" + } + } + } + }, + "FareInfo": { + "id": "FareInfo", + "type": "object", + "description": "Complete information about a fare used in the solution to a low-fare search query. In the airline industry a fare is a price an airline charges for one-way travel between two points. A fare typically contains a carrier code, two city codes, a price, and a fare basis. (A fare basis is a one-to-eight character alphanumeric code used to identify a fare.)", + "properties": { + "basisCode": { + "type": "string" + }, + "carrier": { + "type": "string", + "description": "The carrier of the aircraft or other vehicle commuting between two points." + }, + "destination": { + "type": "string", + "description": "The city code of the city the trip ends at." + }, + "id": { + "type": "string", + "description": "A unique identifier of the fare." + }, + "kind": { + "type": "string", + "description": "Identifies this as a fare object. Value: the fixed string qpxexpress#fareInfo.", + "default": "qpxexpress#fareInfo" + }, + "origin": { + "type": "string", + "description": "The city code of the city the trip begins at." + }, + "private": { + "type": "boolean", + "description": "Whether this is a private fare, for example one offered only to select customers rather than the general public." + } + } + }, + "FlightInfo": { + "id": "FlightInfo", + "type": "object", + "description": "A flight is a sequence of legs with the same airline carrier and flight number. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.) The naive view is that a flight is scheduled travel of an aircraft between two points, with possibly intermediate stops, but carriers will frequently list flights that require a change of aircraft between legs.", + "properties": { + "carrier": { + "type": "string" + }, + "number": { + "type": "string", + "description": "The flight number." + } + } + }, + "FreeBaggageAllowance": { + "id": "FreeBaggageAllowance", + "type": "object", + "description": "Information about free baggage allowed on one segment of a trip.", + "properties": { + "bagDescriptor": { + "type": "array", + "description": "A representation of a type of bag, such as an ATPCo subcode, Commercial Name, or other description.", + "items": { + "$ref": "BagDescriptor" + } + }, + "kilos": { + "type": "integer", + "description": "The maximum number of kilos all the free baggage together may weigh.", + "format": "int32" + }, + "kilosPerPiece": { + "type": "integer", + "description": "The maximum number of kilos any one piece of baggage may weigh.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Identifies this as free baggage object, allowed on one segment of a trip. Value: the fixed string qpxexpress#freeBaggageAllowance.", + "default": "qpxexpress#freeBaggageAllowance" + }, + "pieces": { + "type": "integer", + "description": "The number of free pieces of baggage allowed.", + "format": "int32" + }, + "pounds": { + "type": "integer", + "description": "The number of pounds of free baggage allowed.", + "format": "int32" + } + } + }, + "LegInfo": { + "id": "LegInfo", + "type": "object", + "description": "Information about a leg. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.)", + "properties": { + "aircraft": { + "type": "string", + "description": "The aircraft (or bus, ferry, railcar, etc) travelling between the two points of this leg." + }, + "arrivalTime": { + "type": "string", + "description": "The scheduled time of arrival at the destination of the leg, local to the point of arrival." + }, + "changePlane": { + "type": "boolean", + "description": "Whether you have to change planes following this leg. Only applies to the next leg." + }, + "connectionDuration": { + "type": "integer", + "description": "Duration of a connection following this leg, in minutes.", + "format": "int32" + }, + "departureTime": { + "type": "string", + "description": "The scheduled departure time of the leg, local to the point of departure." + }, + "destination": { + "type": "string", + "description": "The leg destination as a city and airport." + }, + "destinationTerminal": { + "type": "string", + "description": "The terminal the flight is scheduled to arrive at." + }, + "duration": { + "type": "integer", + "description": "The scheduled travelling time from the origin to the destination.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "An identifier that uniquely identifies this leg in the solution." + }, + "kind": { + "type": "string", + "description": "Identifies this as a leg object. A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number. Value: the fixed string qpxexpress#legInfo.", + "default": "qpxexpress#legInfo" + }, + "meal": { + "type": "string", + "description": "A simple, general description of the meal(s) served on the flight, for example: \"Hot meal\"." + }, + "mileage": { + "type": "integer", + "description": "The number of miles in this leg.", + "format": "int32" + }, + "onTimePerformance": { + "type": "integer", + "description": "In percent, the published on time performance on this leg.", + "format": "int32" + }, + "operatingDisclosure": { + "type": "string", + "description": "Department of Transportation disclosure information on the actual operator of a flight in a code share. (A code share refers to a marketing agreement between two carriers, where one carrier will list in its schedules (and take bookings for) flights that are actually operated by another carrier.)" + }, + "origin": { + "type": "string", + "description": "The leg origin as a city and airport." + }, + "originTerminal": { + "type": "string", + "description": "The terminal the flight is scheduled to depart from." + }, + "secure": { + "type": "boolean", + "description": "Whether passenger information must be furnished to the United States Transportation Security Administration (TSA) prior to departure." + } + } + }, + "PassengerCounts": { + "id": "PassengerCounts", + "type": "object", + "description": "The number and type of passengers. Unfortunately the definition of an infant, child, adult, and senior citizen varies across carriers and reservation systems.", + "properties": { + "adultCount": { + "type": "integer", + "description": "The number of passengers that are adults.", + "format": "int32" + }, + "childCount": { + "type": "integer", + "description": "The number of passengers that are children.", + "format": "int32" + }, + "infantInLapCount": { + "type": "integer", + "description": "The number of passengers that are infants travelling in the lap of an adult.", + "format": "int32" + }, + "infantInSeatCount": { + "type": "integer", + "description": "The number of passengers that are infants each assigned a seat.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Identifies this as a passenger count object, representing the number of passengers. Value: the fixed string qpxexpress#passengerCounts.", + "default": "qpxexpress#passengerCounts" + }, + "seniorCount": { + "type": "integer", + "description": "The number of passengers that are senior citizens.", + "format": "int32" + } + } + }, + "PricingInfo": { + "id": "PricingInfo", + "type": "object", + "description": "The price of one or more travel segments. The currency used to purchase tickets is usually determined by the sale/ticketing city or the sale/ticketing country, unless none are specified, in which case it defaults to that of the journey origin country.", + "properties": { + "baseFareTotal": { + "type": "string", + "description": "The total fare in the base fare currency (the currency of the country of origin). This element is only present when the sales currency and the currency of the country of commencement are different." + }, + "fare": { + "type": "array", + "description": "The fare used to price one or more segments.", + "items": { + "$ref": "FareInfo" + } + }, + "fareCalculation": { + "type": "string", + "description": "The horizontal fare calculation. This is a field on a ticket that displays all of the relevant items that go into the calculation of the fare." + }, + "kind": { + "type": "string", + "description": "Identifies this as a pricing object, representing the price of one or more travel segments. Value: the fixed string qpxexpress#pricingInfo.", + "default": "qpxexpress#pricingInfo" + }, + "latestTicketingTime": { + "type": "string", + "description": "The latest ticketing time for this pricing assuming the reservation occurs at ticketing time and there is no change in fares/rules. The time is local to the point of sale (POS)." + }, + "passengers": { + "$ref": "PassengerCounts", + "description": "The number of passengers to which this price applies." + }, + "ptc": { + "type": "string", + "description": "The passenger type code for this pricing. An alphanumeric code used by a carrier to restrict fares to certain categories of passenger. For instance, a fare might be valid only for senior citizens." + }, + "refundable": { + "type": "boolean", + "description": "Whether the fares on this pricing are refundable." + }, + "saleFareTotal": { + "type": "string", + "description": "The total fare in the sale or equivalent currency." + }, + "saleTaxTotal": { + "type": "string", + "description": "The taxes in the sale or equivalent currency." + }, + "saleTotal": { + "type": "string", + "description": "Total per-passenger price (fare and tax) in the sale or equivalent currency." + }, + "segmentPricing": { + "type": "array", + "description": "The per-segment price and baggage information.", + "items": { + "$ref": "SegmentPricing" + } + }, + "tax": { + "type": "array", + "description": "The taxes used to calculate the tax total per ticket.", + "items": { + "$ref": "TaxInfo" + } + } + } + }, + "SegmentInfo": { + "id": "SegmentInfo", + "type": "object", + "description": "Details of a segment of a flight; a segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, would have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2), and DFW to OGG (legs 1 and 2).", + "properties": { + "bookingCode": { + "type": "string", + "description": "The booking code or class for this segment." + }, + "bookingCodeCount": { + "type": "integer", + "description": "The number of seats available in this booking code on this segment.", + "format": "int32" + }, + "cabin": { + "type": "string", + "description": "The cabin booked for this segment." + }, + "connectionDuration": { + "type": "integer", + "description": "In minutes, the duration of the connection following this segment.", + "format": "int32" + }, + "duration": { + "type": "integer", + "description": "The duration of the flight segment in minutes.", + "format": "int32" + }, + "flight": { + "$ref": "FlightInfo", + "description": "The flight this is a segment of." + }, + "id": { + "type": "string", + "description": "An id uniquely identifying the segment in the solution." + }, + "kind": { + "type": "string", + "description": "Identifies this as a segment object. A segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, could have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2). Value: the fixed string qpxexpress#segmentInfo.", + "default": "qpxexpress#segmentInfo" + }, + "leg": { + "type": "array", + "description": "The legs composing this segment.", + "items": { + "$ref": "LegInfo" + } + }, + "marriedSegmentGroup": { + "type": "string", + "description": "The solution-based index of a segment in a married segment group. Married segments can only be booked together. For example, an airline might report a certain booking code as sold out from Boston to Pittsburgh, but as available as part of two married segments Boston to Chicago connecting through Pittsburgh. For example content of this field, consider the round-trip flight ZZ1 PHX-PHL ZZ2 PHL-CLT ZZ3 CLT-PHX. This has three segments, with the two outbound ones (ZZ1 ZZ2) married. In this case, the two outbound segments belong to married segment group 0, and the return segment belongs to married segment group 1." + }, + "subjectToGovernmentApproval": { + "type": "boolean", + "description": "Whether the operation of this segment remains subject to government approval." + } + } + }, + "SegmentPricing": { + "id": "SegmentPricing", + "type": "object", + "description": "The price of this segment.", + "properties": { + "fareId": { + "type": "string", + "description": "A segment identifier unique within a single solution. It is used to refer to different parts of the same solution." + }, + "freeBaggageOption": { + "type": "array", + "description": "Details of the free baggage allowance on this segment.", + "items": { + "$ref": "FreeBaggageAllowance" + } + }, + "kind": { + "type": "string", + "description": "Identifies this as a segment pricing object, representing the price of this segment. Value: the fixed string qpxexpress#segmentPricing.", + "default": "qpxexpress#segmentPricing" + }, + "segmentId": { + "type": "string", + "description": "Unique identifier in the response of this segment." + } + } + }, + "SliceInfo": { + "id": "SliceInfo", + "type": "object", + "description": "Information about a slice. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. For example, if a traveler specifies the following trip in a user interface:\n| Origin | Destination | Departure Date | | BOS | LAX | March 10, 2007 | | LAX | SYD | March 17, 2007 | | SYD | BOS | March 22, 2007 |\nthen this is a three slice trip.", + "properties": { + "duration": { + "type": "integer", + "description": "The duration of the slice in minutes.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "Identifies this as a slice object. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. Value: the fixed string qpxexpress#sliceInfo.", + "default": "qpxexpress#sliceInfo" + }, + "segment": { + "type": "array", + "description": "The segment(s) constituting the slice.", + "items": { + "$ref": "SegmentInfo" + } + } + } + }, + "SliceInput": { + "id": "SliceInput", + "type": "object", + "description": "Criteria a desired slice must satisfy.", + "properties": { + "alliance": { + "type": "string", + "description": "Slices with only the carriers in this alliance should be returned; do not use this field with permittedCarrier. Allowed values are ONEWORLD, SKYTEAM, and STAR." + }, + "date": { + "type": "string", + "description": "Departure date in YYYY-MM-DD format." + }, + "destination": { + "type": "string", + "description": "Airport or city IATA designator of the destination." + }, + "kind": { + "type": "string", + "description": "Identifies this as a slice input object, representing the criteria a desired slice must satisfy. Value: the fixed string qpxexpress#sliceInput.", + "default": "qpxexpress#sliceInput" + }, + "maxConnectionDuration": { + "type": "integer", + "description": "The longest connection between two legs, in minutes, you are willing to accept.", + "format": "int32" + }, + "maxStops": { + "type": "integer", + "description": "The maximum number of stops you are willing to accept in this slice.", + "format": "int32" + }, + "origin": { + "type": "string", + "description": "Airport or city IATA designator of the origin." + }, + "permittedCarrier": { + "type": "array", + "description": "A list of 2-letter IATA airline designators. Slices with only these carriers should be returned.", + "items": { + "type": "string" + } + }, + "permittedDepartureTime": { + "$ref": "TimeOfDayRange", + "description": "Slices must depart in this time of day range, local to the point of departure." + }, + "preferredCabin": { + "type": "string", + "description": "Prefer solutions that book in this cabin for this slice. Allowed values are COACH, PREMIUM_COACH, BUSINESS, and FIRST." + }, + "prohibitedCarrier": { + "type": "array", + "description": "A list of 2-letter IATA airline designators. Exclude slices that use these carriers.", + "items": { + "type": "string" + } + } + } + }, + "TaxData": { + "id": "TaxData", + "type": "object", + "description": "Tax data.", + "properties": { + "id": { + "type": "string", + "description": "An identifier uniquely identifying a tax in a response." + }, + "kind": { + "type": "string", + "description": "Identifies this as a tax data object, representing some tax. Value: the fixed string qpxexpress#taxData.", + "default": "qpxexpress#taxData" + }, + "name": { + "type": "string", + "description": "The name of a tax." + } + } + }, + "TaxInfo": { + "id": "TaxInfo", + "type": "object", + "description": "Tax information.", + "properties": { + "chargeType": { + "type": "string", + "description": "Whether this is a government charge or a carrier surcharge." + }, + "code": { + "type": "string", + "description": "The code to enter in the ticket's tax box." + }, + "country": { + "type": "string", + "description": "For government charges, the country levying the charge." + }, + "id": { + "type": "string", + "description": "Identifier uniquely identifying this tax in a response. Not present for unnamed carrier surcharges." + }, + "kind": { + "type": "string", + "description": "Identifies this as a tax information object. Value: the fixed string qpxexpress#taxInfo.", + "default": "qpxexpress#taxInfo" + }, + "salePrice": { + "type": "string", + "description": "The price of the tax in the sales or equivalent currency." + } + } + }, + "TimeOfDayRange": { + "id": "TimeOfDayRange", + "type": "object", + "description": "Two times in a single day defining a time range.", + "properties": { + "earliestTime": { + "type": "string", + "description": "The earliest time of day in HH:MM format." + }, + "kind": { + "type": "string", + "description": "Identifies this as a time of day range object, representing two times in a single day defining a time range. Value: the fixed string qpxexpress#timeOfDayRange.", + "default": "qpxexpress#timeOfDayRange" + }, + "latestTime": { + "type": "string", + "description": "The latest time of day in HH:MM format." + } + } + }, + "TripOption": { + "id": "TripOption", + "type": "object", + "description": "Trip information.", + "properties": { + "id": { + "type": "string", + "description": "Identifier uniquely identifying this trip in a response." + }, + "kind": { + "type": "string", + "description": "Identifies this as a trip information object. Value: the fixed string qpxexpress#tripOption.", + "default": "qpxexpress#tripOption" + }, + "pricing": { + "type": "array", + "description": "Per passenger pricing information.", + "items": { + "$ref": "PricingInfo" + } + }, + "saleTotal": { + "type": "string", + "description": "The total price for all passengers on the trip, in the form of a currency followed by an amount, e.g. USD253.35." + }, + "slice": { + "type": "array", + "description": "The slices that make up this trip's itinerary.", + "items": { + "$ref": "SliceInfo" + } + } + } + }, + "TripOptionsRequest": { + "id": "TripOptionsRequest", + "type": "object", + "description": "A QPX Express search request, which will yield one or more solutions.", + "properties": { + "maxPrice": { + "type": "string", + "description": "Do not return solutions that cost more than this price. The alphabetical part of the price is in ISO 4217. The format, in regex, is [A-Z]{3}\\d+(\\.\\d+)? Example: $102.07" + }, + "passengers": { + "$ref": "PassengerCounts", + "description": "Counts for each passenger type in the request." + }, + "refundable": { + "type": "boolean", + "description": "Return only solutions with refundable fares." + }, + "saleCountry": { + "type": "string", + "description": "IATA country code representing the point of sale. This determines the \"equivalent amount paid\" currency for the ticket." + }, + "slice": { + "type": "array", + "description": "The slices that make up the itinerary of this trip. A slice represents a traveler's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using one slice, round-trips using two. An example of a one slice trip with three segments might be BOS-SYD, SYD-LAX, LAX-BOS if the traveler only stopped in SYD and LAX just long enough to change planes.", + "items": { + "$ref": "SliceInput" + } + }, + "solutions": { + "type": "integer", + "description": "The number of solutions to return, maximum 500.", + "format": "int32" + } + } + }, + "TripOptionsResponse": { + "id": "TripOptionsResponse", + "type": "object", + "description": "A QPX Express search response.", + "properties": { + "data": { + "$ref": "Data", + "description": "Informational data global to list of solutions." + }, + "kind": { + "type": "string", + "description": "Identifies this as a QPX Express trip response object, which consists of zero or more solutions. Value: the fixed string qpxexpress#tripOptions.", + "default": "qpxexpress#tripOptions" + }, + "requestId": { + "type": "string", + "description": "An identifier uniquely identifying this response." + }, + "tripOption": { + "type": "array", + "description": "A list of priced itinerary solutions to the QPX Express query.", + "items": { + "$ref": "TripOption" + } + } + } + }, + "TripsSearchRequest": { + "id": "TripsSearchRequest", + "type": "object", + "description": "A QPX Express search request.", + "properties": { + "request": { + "$ref": "TripOptionsRequest", + "description": "A QPX Express search request. Required values are at least one adult or senior passenger, an origin, a destination, and a date." + } + } + }, + "TripsSearchResponse": { + "id": "TripsSearchResponse", + "type": "object", + "description": "A QPX Express search response.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies this as a QPX Express API search response resource. Value: the fixed string qpxExpress#tripsSearch.", + "default": "qpxExpress#tripsSearch" + }, + "trips": { + "$ref": "TripOptionsResponse", + "description": "All possible solutions to the QPX Express search request." + } + } + } + }, + "resources": { + "trips": { + "methods": { + "search": { + "id": "qpxExpress.trips.search", + "path": "search", + "httpMethod": "POST", + "description": "Returns a list of flights.", + "request": { + "$ref": "TripsSearchRequest" + }, + "response": { + "$ref": "TripsSearchResponse" + } + } + } + } + } +} diff --git a/etc/api/replicapool/v1beta1/replicapool-api.json b/etc/api/replicapool/v1beta1/replicapool-api.json new file mode 100644 index 0000000000..f001ebcfb2 --- /dev/null +++ b/etc/api/replicapool/v1beta1/replicapool-api.json @@ -0,0 +1,1109 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/OCNWVpxMyrgI9AhJbRIevULm13s\"", + "discoveryVersion": "v1", + "id": "replicapool:v1beta1", + "name": "replicapool", + "version": "v1beta1", + "revision": "20141002", + "title": "Replica Pool API", + "description": "The Replica Pool API allows users to declaratively provision and manage groups of Google Compute Engine instances based on a common template.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/compute/docs/replica-pool/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/replicapool/v1beta1/projects/", + "basePath": "/replicapool/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "replicapool/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/ndev.cloudman": { + "description": "View and manage your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/ndev.cloudman.readonly": { + "description": "View your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/replicapool": { + "description": "View and manage replica pools" + }, + "https://www.googleapis.com/auth/replicapool.readonly": { + "description": "View replica pools" + } + } + } + }, + "schemas": { + "AccessConfig": { + "id": "AccessConfig", + "type": "object", + "description": "A Compute Engine network accessConfig. Identical to the accessConfig on corresponding Compute Engine resource.", + "properties": { + "name": { + "type": "string", + "description": "Name of this access configuration." + }, + "natIp": { + "type": "string", + "description": "An external IP address associated with this instance." + }, + "type": { + "type": "string", + "description": "Type of this access configuration file. Currently only ONE_TO_ONE_NAT is supported." + } + } + }, + "Action": { + "id": "Action", + "type": "object", + "description": "An action that gets executed during initialization of the replicas.", + "properties": { + "commands": { + "type": "array", + "description": "A list of commands to run, one per line. If any command fails, the whole action is considered a failure and no further actions are run. This also marks the virtual machine or replica as a failure.", + "items": { + "type": "string" + } + }, + "envVariables": { + "type": "array", + "description": "A list of environment variables to use for the commands in this action.", + "items": { + "$ref": "EnvVariable" + } + }, + "timeoutMilliSeconds": { + "type": "integer", + "description": "If an action's commands on a particular replica do not finish in the specified timeoutMilliSeconds, the replica is considered to be in a FAILING state. No efforts are made to stop any processes that were spawned or created as the result of running the action's commands. The default is the max allowed value, 1 hour (i.e. 3600000 milliseconds).", + "format": "int32" + } + } + }, + "DiskAttachment": { + "id": "DiskAttachment", + "type": "object", + "description": "Specifies how to attach a disk to a Replica.", + "properties": { + "deviceName": { + "type": "string", + "description": "The device name of this disk." + }, + "index": { + "type": "integer", + "description": "A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, this is assigned by the server.", + "format": "uint32" + } + } + }, + "EnvVariable": { + "id": "EnvVariable", + "type": "object", + "description": "An environment variable to set for an action.", + "properties": { + "hidden": { + "type": "boolean", + "description": "Deprecated, do not use." + }, + "name": { + "type": "string", + "description": "The name of the environment variable." + }, + "value": { + "type": "string", + "description": "The value of the variable." + } + } + }, + "ExistingDisk": { + "id": "ExistingDisk", + "type": "object", + "description": "A pre-existing persistent disk that will be attached to every Replica in the Pool in READ_ONLY mode.", + "properties": { + "attachment": { + "$ref": "DiskAttachment", + "description": "How the disk will be attached to the Replica." + }, + "source": { + "type": "string", + "description": "The name of the Persistent Disk resource. The Persistent Disk resource must be in the same zone as the Pool." + } + } + }, + "HealthCheck": { + "id": "HealthCheck", + "type": "object", + "properties": { + "checkIntervalSec": { + "type": "integer", + "description": "How often (in seconds) to make HTTP requests for this healthcheck. The default value is 5 seconds.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "The description for this health check." + }, + "healthyThreshold": { + "type": "integer", + "description": "The number of consecutive health check requests that need to succeed before the replica is considered healthy again. The default value is 2.", + "format": "int32" + }, + "host": { + "type": "string", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the localhost IP 127.0.0.1 will be used." + }, + "name": { + "type": "string", + "description": "The name of this health check." + }, + "path": { + "type": "string", + "description": "The localhost request path to send this health check, in the format /path/to/use. For example, /healthcheck." + }, + "port": { + "type": "integer", + "description": "The TCP port for the health check requests.", + "format": "int32" + }, + "timeoutSec": { + "type": "integer", + "description": "How long (in seconds) to wait before a timeout failure for this healthcheck. The default value is 5 seconds.", + "format": "int32" + }, + "unhealthyThreshold": { + "type": "integer", + "description": "The number of consecutive health check requests that need to fail in order to consider the replica unhealthy. The default value is 2.", + "format": "int32" + } + } + }, + "Label": { + "id": "Label", + "type": "object", + "description": "A label to apply to this replica pool.", + "properties": { + "key": { + "type": "string", + "description": "The key for this label." + }, + "value": { + "type": "string", + "description": "The value of this label." + } + } + }, + "Metadata": { + "id": "Metadata", + "type": "object", + "description": "A Compute Engine metadata entry. Identical to the metadata on the corresponding Compute Engine resource.", + "properties": { + "fingerPrint": { + "type": "string", + "description": "The fingerprint of the metadata. Required for updating the metadata entries for this instance." + }, + "items": { + "type": "array", + "description": "A list of metadata items.", + "items": { + "$ref": "MetadataItem" + } + } + } + }, + "MetadataItem": { + "id": "MetadataItem", + "type": "object", + "description": "A Compute Engine metadata item, defined as a key:value pair. Identical to the metadata on the corresponding Compute Engine resource.", + "properties": { + "key": { + "type": "string", + "description": "A metadata key." + }, + "value": { + "type": "string", + "description": "A metadata value." + } + } + }, + "NetworkInterface": { + "id": "NetworkInterface", + "type": "object", + "description": "A Compute Engine NetworkInterface resource. Identical to the NetworkInterface on the corresponding Compute Engine resource.", + "properties": { + "accessConfigs": { + "type": "array", + "description": "An array of configurations for this interface. This specifies how this interface is configured to interact with other network services.", + "items": { + "$ref": "AccessConfig" + } + }, + "network": { + "type": "string", + "description": "Name the Network resource to which this interface applies." + }, + "networkIp": { + "type": "string", + "description": "An optional IPV4 internal network address to assign to the instance for this network interface." + } + } + }, + "NewDisk": { + "id": "NewDisk", + "type": "object", + "description": "A Persistent Disk resource that will be created and attached to each Replica in the Pool. Each Replica will have a unique persistent disk that is created and attached to that Replica in READ_WRITE mode.", + "properties": { + "attachment": { + "$ref": "DiskAttachment", + "description": "How the disk will be attached to the Replica." + }, + "autoDelete": { + "type": "boolean", + "description": "If true, then this disk will be deleted when the instance is deleted. The default value is true." + }, + "boot": { + "type": "boolean", + "description": "If true, indicates that this is the root persistent disk." + }, + "initializeParams": { + "$ref": "NewDiskInitializeParams", + "description": "Create the new disk using these parameters. The name of the disk will be \u003cinstance_name\u003e-\u003cfour_random_charactersgt;." + } + } + }, + "NewDiskInitializeParams": { + "id": "NewDiskInitializeParams", + "type": "object", + "description": "Initialization parameters for creating a new disk.", + "properties": { + "diskSizeGb": { + "type": "string", + "description": "The size of the created disk in gigabytes.", + "format": "int64" + }, + "diskType": { + "type": "string", + "description": "Name of the disk type resource describing which disk type to use to create the disk. For example 'pd-ssd' or 'pd-standard'. Default is 'pd-standard'" + }, + "sourceImage": { + "type": "string", + "description": "The name or fully-qualified URL of a source image to use to create this disk. If you provide a name of the source image, Replica Pool will look for an image with that name in your project. If you are specifying an image provided by Compute Engine, you will need to provide the full URL with the correct project, such as:\nhttp://www.googleapis.com/compute/v1/projects/debian-cloud/ global/images/debian-wheezy-7-vYYYYMMDD" + } + } + }, + "Pool": { + "id": "Pool", + "type": "object", + "properties": { + "autoRestart": { + "type": "boolean", + "description": "Whether replicas in this pool should be restarted if they experience a failure. The default value is true." + }, + "baseInstanceName": { + "type": "string", + "description": "The base instance name to use for the replicas in this pool. This must match the regex [a-z]([-a-z0-9]*[a-z0-9])?. If specified, the instances in this replica pool will be named in the format \u003cbase-instance-name\u003e-\u003cID\u003e. The \u003cID\u003e postfix will be a four character alphanumeric identifier generated by the service.\n\nIf this is not specified by the user, a random base instance name is generated by the service." + }, + "currentNumReplicas": { + "type": "integer", + "description": "[Output Only] The current number of replicas in the pool.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "An optional description of the replica pool." + }, + "healthChecks": { + "type": "array", + "description": "Deprecated. Please use template[].healthChecks instead.", + "items": { + "$ref": "HealthCheck" + } + }, + "initialNumReplicas": { + "type": "integer", + "description": "The initial number of replicas this pool should have. You must provide a value greater than or equal to 0.", + "format": "int32" + }, + "labels": { + "type": "array", + "description": "A list of labels to attach to this replica pool and all created virtual machines in this replica pool.", + "items": { + "$ref": "Label" + } + }, + "name": { + "type": "string", + "description": "The name of the replica pool. Must follow the regex [a-z]([-a-z0-9]*[a-z0-9])? and be 1-28 characters long." + }, + "numReplicas": { + "type": "integer", + "description": "Deprecated! Use initial_num_replicas instead.", + "format": "int32" + }, + "resourceViews": { + "type": "array", + "description": "The list of resource views that should be updated with all the replicas that are managed by this pool.", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] A self-link to the replica pool." + }, + "targetPool": { + "type": "string", + "description": "Deprecated, please use target_pools instead." + }, + "targetPools": { + "type": "array", + "description": "A list of target pools to update with the replicas that are managed by this pool. If specified, the replicas in this replica pool will be added to the specified target pools for load balancing purposes. The replica pool must live in the same region as the specified target pools. These values must be the target pool resource names, and not fully qualified URLs.", + "items": { + "type": "string" + } + }, + "template": { + "$ref": "Template", + "description": "The template to use when creating replicas in this pool. This template is used during initial instance creation of the pool, when growing the pool in size, or when a replica restarts." + }, + "type": { + "type": "string", + "description": "Deprecated! Do not set." + } + } + }, + "PoolsDeleteRequest": { + "id": "PoolsDeleteRequest", + "type": "object", + "properties": { + "abandonInstances": { + "type": "array", + "description": "If there are instances you would like to keep, you can specify them here. These instances won't be deleted, but the associated replica objects will be removed.", + "items": { + "type": "string" + } + } + } + }, + "PoolsListResponse": { + "id": "PoolsListResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "resources": { + "type": "array", + "items": { + "$ref": "Pool" + } + } + } + }, + "Replica": { + "id": "Replica", + "type": "object", + "description": "An individual Replica within a Pool. Replicas are automatically created by the replica pool, using the template provided by the user. You cannot directly create replicas.", + "properties": { + "name": { + "type": "string", + "description": "[Output Only] The name of the Replica object." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The self-link of the Replica." + }, + "status": { + "$ref": "ReplicaStatus", + "description": "[Output Only] Last known status of the Replica." + } + } + }, + "ReplicaStatus": { + "id": "ReplicaStatus", + "type": "object", + "description": "The current status of a Replica.", + "properties": { + "details": { + "type": "string", + "description": "[Output Only] Human-readable details about the current state of the replica" + }, + "state": { + "type": "string", + "description": "[Output Only] The state of the Replica." + }, + "templateVersion": { + "type": "string", + "description": "[Output Only] The template used to build the replica." + }, + "vmLink": { + "type": "string", + "description": "[Output Only] Link to the virtual machine that this Replica represents." + }, + "vmStartTime": { + "type": "string", + "description": "[Output Only] The time that this Replica got to the RUNNING state, in RFC 3339 format. If the start time is unknown, UNKNOWN is returned." + } + } + }, + "ReplicasDeleteRequest": { + "id": "ReplicasDeleteRequest", + "type": "object", + "properties": { + "abandonInstance": { + "type": "boolean", + "description": "Whether the instance resource represented by this replica should be deleted or abandoned. If abandoned, the replica will be deleted but the virtual machine instance will remain. By default, this is set to false and the instance will be deleted along with the replica." + } + } + }, + "ReplicasListResponse": { + "id": "ReplicasListResponse", + "type": "object", + "properties": { + "nextPageToken": { + "type": "string" + }, + "resources": { + "type": "array", + "items": { + "$ref": "Replica" + } + } + } + }, + "ServiceAccount": { + "id": "ServiceAccount", + "type": "object", + "description": "A Compute Engine service account, identical to the Compute Engine resource.", + "properties": { + "email": { + "type": "string", + "description": "The service account email address, for example: 123845678986@project.gserviceaccount.com" + }, + "scopes": { + "type": "array", + "description": "The list of OAuth2 scopes to obtain for the service account, for example: https://www.googleapis.com/auth/devstorage.full_control", + "items": { + "type": "string" + } + } + } + }, + "Tag": { + "id": "Tag", + "type": "object", + "description": "A Compute Engine Instance tag, identical to the tags on the corresponding Compute Engine Instance resource.", + "properties": { + "fingerPrint": { + "type": "string", + "description": "The fingerprint of the tag. Required for updating the list of tags." + }, + "items": { + "type": "array", + "description": "Items contained in this tag.", + "items": { + "type": "string" + } + } + } + }, + "Template": { + "id": "Template", + "type": "object", + "description": "The template used for creating replicas in the pool.", + "properties": { + "action": { + "$ref": "Action", + "description": "An action to run during initialization of your replicas. An action is run as shell commands which are executed one after the other in the same bash shell, so any state established by one command is inherited by later commands." + }, + "healthChecks": { + "type": "array", + "description": "A list of HTTP Health Checks to configure for this replica pool and all virtual machines in this replica pool.", + "items": { + "$ref": "HealthCheck" + } + }, + "version": { + "type": "string", + "description": "A free-form string describing the version of this template. You can provide any versioning string you would like. For example, version1 or template-v1." + }, + "vmParams": { + "$ref": "VmParams", + "description": "The virtual machine parameters to use for creating replicas. You can define settings such as the machine type and the image of replicas in this pool. This is required if replica type is SMART_VM." + } + } + }, + "VmParams": { + "id": "VmParams", + "type": "object", + "description": "Parameters for creating a Compute Engine Instance resource. Most fields are identical to the corresponding Compute Engine resource.", + "properties": { + "baseInstanceName": { + "type": "string", + "description": "Deprecated. Please use baseInstanceName instead." + }, + "canIpForward": { + "type": "boolean", + "description": "Enables IP Forwarding, which allows this instance to receive packets destined for a different IP address, and send packets with a different source IP. See IP Forwarding for more information." + }, + "description": { + "type": "string", + "description": "An optional textual description of the instance." + }, + "disksToAttach": { + "type": "array", + "description": "A list of existing Persistent Disk resources to attach to each replica in the pool. Each disk will be attached in read-only mode to every replica.", + "items": { + "$ref": "ExistingDisk" + } + }, + "disksToCreate": { + "type": "array", + "description": "A list of Disk resources to create and attach to each Replica in the Pool. Currently, you can only define one disk and it must be a root persistent disk. Note that Replica Pool will create a root persistent disk for each replica.", + "items": { + "$ref": "NewDisk" + } + }, + "machineType": { + "type": "string", + "description": "The machine type for this instance. The resource name (e.g. n1-standard-1)." + }, + "metadata": { + "$ref": "Metadata", + "description": "The metadata key/value pairs assigned to this instance." + }, + "networkInterfaces": { + "type": "array", + "description": "A list of network interfaces for the instance. Currently only one interface is supported by Google Compute Engine, ONE_TO_ONE_NAT.", + "items": { + "$ref": "NetworkInterface" + } + }, + "onHostMaintenance": { + "type": "string" + }, + "serviceAccounts": { + "type": "array", + "description": "A list of Service Accounts to enable for this instance.", + "items": { + "$ref": "ServiceAccount" + } + }, + "tags": { + "$ref": "Tag", + "description": "A list of tags to apply to the Google Compute Engine instance to identify resources." + } + } + } + }, + "resources": { + "pools": { + "methods": { + "delete": { + "id": "replicapool.pools.delete", + "path": "{projectName}/zones/{zone}/pools/{poolName}", + "httpMethod": "POST", + "description": "Deletes a replica pool.", + "parameters": { + "poolName": { + "type": "string", + "description": "The name of the replica pool for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this replica pool.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName" + ], + "request": { + "$ref": "PoolsDeleteRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "get": { + "id": "replicapool.pools.get", + "path": "{projectName}/zones/{zone}/pools/{poolName}", + "httpMethod": "GET", + "description": "Gets information about a single replica pool.", + "parameters": { + "poolName": { + "type": "string", + "description": "The name of the replica pool for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this replica pool.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName" + ], + "response": { + "$ref": "Pool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "insert": { + "id": "replicapool.pools.insert", + "path": "{projectName}/zones/{zone}/pools", + "httpMethod": "POST", + "description": "Inserts a new replica pool.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project ID for this replica pool.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone" + ], + "request": { + "$ref": "Pool" + }, + "response": { + "$ref": "Pool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "list": { + "id": "replicapool.pools.list", + "path": "{projectName}/zones/{zone}/pools", + "httpMethod": "GET", + "description": "List all replica pools.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "500", + "format": "int32", + "minimum": "0", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Set this to the nextPageToken value returned by a previous list request to obtain the next page of results from the previous list request.", + "location": "query" + }, + "projectName": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone" + ], + "response": { + "$ref": "PoolsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "resize": { + "id": "replicapool.pools.resize", + "path": "{projectName}/zones/{zone}/pools/{poolName}/resize", + "httpMethod": "POST", + "description": "Resize a pool. This is an asynchronous operation, and multiple overlapping resize requests can be made. Replica Pools will use the information from the last resize request.", + "parameters": { + "numReplicas": { + "type": "integer", + "description": "The desired number of replicas to resize to. If this number is larger than the existing number of replicas, new replicas will be added. If the number is smaller, then existing replicas will be deleted.", + "format": "int32", + "location": "query" + }, + "poolName": { + "type": "string", + "description": "The name of the replica pool for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this replica pool.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName" + ], + "response": { + "$ref": "Pool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "updatetemplate": { + "id": "replicapool.pools.updatetemplate", + "path": "{projectName}/zones/{zone}/pools/{poolName}/updateTemplate", + "httpMethod": "POST", + "description": "Update the template used by the pool.", + "parameters": { + "poolName": { + "type": "string", + "description": "The name of the replica pool for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this replica pool.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone for this replica pool.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName" + ], + "request": { + "$ref": "Template" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + } + } + }, + "replicas": { + "methods": { + "delete": { + "id": "replicapool.replicas.delete", + "path": "{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}", + "httpMethod": "POST", + "description": "Deletes a replica from the pool.", + "parameters": { + "poolName": { + "type": "string", + "description": "The replica pool name for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "location": "path" + }, + "replicaName": { + "type": "string", + "description": "The name of the replica for this request.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone where the replica lives.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName", + "replicaName" + ], + "request": { + "$ref": "ReplicasDeleteRequest" + }, + "response": { + "$ref": "Replica" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "get": { + "id": "replicapool.replicas.get", + "path": "{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}", + "httpMethod": "GET", + "description": "Gets information about a specific replica.", + "parameters": { + "poolName": { + "type": "string", + "description": "The replica pool name for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "location": "path" + }, + "replicaName": { + "type": "string", + "description": "The name of the replica for this request.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone where the replica lives.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName", + "replicaName" + ], + "response": { + "$ref": "Replica" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "list": { + "id": "replicapool.replicas.list", + "path": "{projectName}/zones/{zone}/pools/{poolName}/replicas", + "httpMethod": "GET", + "description": "Lists all replicas in a pool.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)", + "default": "500", + "format": "int32", + "minimum": "0", + "maximum": "1000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Set this to the nextPageToken value returned by a previous list request to obtain the next page of results from the previous list request.", + "location": "query" + }, + "poolName": { + "type": "string", + "description": "The replica pool name for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone where the replica pool lives.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName" + ], + "response": { + "$ref": "ReplicasListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "restart": { + "id": "replicapool.replicas.restart", + "path": "{projectName}/zones/{zone}/pools/{poolName}/replicas/{replicaName}/restart", + "httpMethod": "POST", + "description": "Restarts a replica in a pool.", + "parameters": { + "poolName": { + "type": "string", + "description": "The replica pool name for this request.", + "required": true, + "location": "path" + }, + "projectName": { + "type": "string", + "description": "The project ID for this request.", + "required": true, + "location": "path" + }, + "replicaName": { + "type": "string", + "description": "The name of the replica for this request.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone where the replica lives.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "poolName", + "replicaName" + ], + "response": { + "$ref": "Replica" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/replicapool" + ] + } + } + } + } +} diff --git a/etc/api/replicapool/v1beta2/replicapool-api.json b/etc/api/replicapool/v1beta2/replicapool-api.json new file mode 100644 index 0000000000..b44e0149cf --- /dev/null +++ b/etc/api/replicapool/v1beta2/replicapool-api.json @@ -0,0 +1,1028 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"l66ggWbucbkBw9Lpos72oziyefE/o8KVD2TZK8SqQA452IHtm6GW-J8\"", + "discoveryVersion": "v1", + "id": "replicapool:v1beta2", + "name": "replicapool", + "version": "v1beta2", + "revision": "20141002", + "title": "Google Compute Engine Instance Group Manager API", + "description": "The Google Compute Engine Instance Group Manager API provides groups of homogenous Compute Engine Instances.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/compute/docs/instance-groups/manager/v1beta2", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/replicapool/v1beta2/projects/", + "basePath": "/replicapool/v1beta2/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "replicapool/v1beta2/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + } + } + } + }, + "schemas": { + "InstanceGroupManager": { + "id": "InstanceGroupManager", + "type": "object", + "description": "An Instance Group Manager resource.", + "properties": { + "baseInstanceName": { + "type": "string", + "description": "The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output only] The time the instance group manager was created, in RFC3339 text format." + }, + "currentSize": { + "type": "integer", + "description": "[Output only] The number of instances that currently exist and are a part of this group. This includes instances that are starting but are not yet RUNNING, and instances that are in the process of being deleted or abandoned.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "An optional textual description of the instance group manager." + }, + "fingerprint": { + "type": "string", + "description": "[Output only] Fingerprint of the instance group manager. This field is used for optimistic locking. An up-to-date fingerprint must be provided in order to modify the Instance Group Manager resource.", + "format": "byte" + }, + "group": { + "type": "string", + "description": "[Output only] The full URL of the instance group created by the manager. This group contains all of the instances being managed, and cannot contain non-managed instances." + }, + "id": { + "type": "string", + "description": "[Output only] A server-assigned unique identifier for the resource.", + "format": "uint64" + }, + "instanceTemplate": { + "type": "string", + "description": "The full URL to an instance template from which all new instances will be created." + }, + "kind": { + "type": "string", + "description": "[Output only] The resource type. Always replicapool#instanceGroupManager.", + "default": "replicapool#instanceGroupManager" + }, + "name": { + "type": "string", + "description": "The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens." + }, + "selfLink": { + "type": "string", + "description": "[Output only] The fully qualified URL for this resource." + }, + "targetPools": { + "type": "array", + "description": "The full URL of all target pools to which new instances in the group are added. Updating the target pool values does not affect existing instances.", + "items": { + "type": "string" + } + }, + "targetSize": { + "type": "integer", + "description": "[Output only] The number of instances that the manager is attempting to maintain. Deleting or abandoning instances affects this number, as does resizing the group.", + "format": "int32" + } + } + }, + "InstanceGroupManagerList": { + "id": "InstanceGroupManagerList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "A list of instance resources.", + "items": { + "$ref": "InstanceGroupManager" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "replicapool#instanceGroupManagerList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "InstanceGroupManagersAbandonInstancesRequest": { + "id": "InstanceGroupManagersAbandonInstancesRequest", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "The names of one or more instances to abandon. For example:\n{ 'instances': [ 'instance-c3po', 'instance-r2d2' ] }", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersDeleteInstancesRequest": { + "id": "InstanceGroupManagersDeleteInstancesRequest", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "Names of instances to delete.\n\nExample: 'instance-foo', 'instance-bar'", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersRecreateInstancesRequest": { + "id": "InstanceGroupManagersRecreateInstancesRequest", + "type": "object", + "properties": { + "instances": { + "type": "array", + "description": "The names of one or more instances to recreate. For example:\n{ 'instances': [ 'instance-c3po', 'instance-r2d2' ] }", + "items": { + "type": "string" + } + } + } + }, + "InstanceGroupManagersSetInstanceTemplateRequest": { + "id": "InstanceGroupManagersSetInstanceTemplateRequest", + "type": "object", + "properties": { + "instanceTemplate": { + "type": "string", + "description": "The full URL to an Instance Template from which all new instances will be created." + } + } + }, + "InstanceGroupManagersSetTargetPoolsRequest": { + "id": "InstanceGroupManagersSetTargetPoolsRequest", + "type": "object", + "properties": { + "fingerprint": { + "type": "string", + "description": "The current fingerprint of the Instance Group Manager resource. If this does not match the server-side fingerprint of the resource, then the request will be rejected.", + "format": "byte" + }, + "targetPools": { + "type": "array", + "description": "A list of fully-qualified URLs to existing Target Pool resources. New instances in the Instance Group Manager will be added to the specified target pools; existing instances are not affected.", + "items": { + "type": "string" + } + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An operation resource, used to manage asynchronous API requests.", + "properties": { + "clientOperationId": { + "type": "string", + "description": "[Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] The time that this operation was requested, in RFC3339 text format." + }, + "endTime": { + "type": "string", + "description": "[Output Only] The time that this operation was completed, in RFC3339 text format." + }, + "error": { + "type": "object", + "description": "[Output Only] If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string", + "description": "[Output only] If operation fails, the HTTP error message returned." + }, + "httpErrorStatusCode": { + "type": "integer", + "description": "[Output only] If operation fails, the HTTP error status code returned.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource, generated by the server.", + "format": "uint64" + }, + "insertTime": { + "type": "string", + "description": "[Output Only] The time that this operation was requested, in RFC3339 text format." + }, + "kind": { + "type": "string", + "description": "[Output only] Type of the resource.", + "default": "replicapool#operation" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource." + }, + "operationType": { + "type": "string", + "description": "[Output only] Type of the operation. Operations include insert, update, and delete." + }, + "progress": { + "type": "integer", + "description": "[Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.", + "format": "int32" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the operation resides. Only available when performing regional operations." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined fully-qualified URL for this resource." + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server, in RFC3339 text format." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the operation.", + "enum": [ + "DONE", + "PENDING", + "RUNNING" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "targetId": { + "type": "string", + "description": "[Output Only] Unique target ID which identifies a particular incarnation of the target.", + "format": "uint64" + }, + "targetLink": { + "type": "string", + "description": "[Output only] URL of the resource the operation is mutating." + }, + "user": { + "type": "string", + "description": "[Output Only] User who requested the operation, for example: user@example.com." + }, + "warnings": { + "type": "array", + "description": "[Output Only] If there are issues with this operation, a warning is returned.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output only] The warning type identifier for this warning.", + "enum": [ + "DEPRECATED_RESOURCE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "INJECTED_KERNELS_DEPRECATED", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NO_RESULTS_ON_PAGE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_NOT_DELETED", + "UNREACHABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "data": { + "type": "array", + "description": "[Output only] Metadata for this warning in key:value format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] Metadata key for this warning." + }, + "value": { + "type": "string", + "description": "[Output Only] Metadata value for this warning." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output only] Optional human-readable details for this warning." + } + } + } + }, + "zone": { + "type": "string", + "description": "[Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations." + } + } + }, + "OperationList": { + "id": "OperationList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "The operation resources.", + "items": { + "$ref": "Operation" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "replicapool#operationList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + } + }, + "resources": { + "instanceGroupManagers": { + "methods": { + "abandonInstances": { + "id": "replicapool.instanceGroupManagers.abandonInstances", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "httpMethod": "POST", + "description": "Removes the specified instances from the managed instance group, and from any target pools of which they were members, without deleting the instances.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersAbandonInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "id": "replicapool.instanceGroupManagers.delete", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "DELETE", + "description": "Deletes the instance group manager and all instances contained within. If you'd like to delete the manager without deleting the instances, you must first abandon the instances to remove them from the group.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "Name of the Instance Group Manager resource to delete.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "deleteInstances": { + "id": "replicapool.instanceGroupManagers.deleteInstances", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "httpMethod": "POST", + "description": "Deletes the specified instances. The instances are removed from the instance group and any target pools of which they are a member, then deleted. The targetSize of the instance group manager is reduced by the number of instances deleted.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersDeleteInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "id": "replicapool.instanceGroupManagers.get", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "GET", + "description": "Returns the specified Instance Group Manager resource.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "Name of the instance resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "response": { + "$ref": "InstanceGroupManager" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "id": "replicapool.instanceGroupManagers.insert", + "path": "{project}/zones/{zone}/instanceGroupManagers", + "httpMethod": "POST", + "description": "Creates an instance group manager, as well as the instance group and the specified number of instances.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "size": { + "type": "integer", + "description": "Number of instances that should exist.", + "required": true, + "format": "int32", + "minimum": "0", + "location": "query" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "size" + ], + "request": { + "$ref": "InstanceGroupManager" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "replicapool.instanceGroupManagers.list", + "path": "{project}/zones/{zone}/instanceGroupManagers", + "httpMethod": "GET", + "description": "Retrieves the list of Instance Group Manager resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "InstanceGroupManagerList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "recreateInstances": { + "id": "replicapool.instanceGroupManagers.recreateInstances", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "httpMethod": "POST", + "description": "Recreates the specified instances. The instances are deleted, then recreated using the instance group manager's current instance template.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersRecreateInstancesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "resize": { + "id": "replicapool.instanceGroupManagers.resize", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "description": "Resizes the managed instance group up or down. If resized up, new instances are created using the current instance template. If resized down, instances are removed in the order outlined in Resizing a managed instance group.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "size": { + "type": "integer", + "description": "Number of instances that should exist in this Instance Group Manager.", + "required": true, + "format": "int32", + "minimum": "0", + "location": "query" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "size" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setInstanceTemplate": { + "id": "replicapool.instanceGroupManagers.setInstanceTemplate", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "httpMethod": "POST", + "description": "Sets the instance template to use when creating new instances in this group. Existing instances are not affected.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setTargetPools": { + "id": "replicapool.instanceGroupManagers.setTargetPools", + "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "httpMethod": "POST", + "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.", + "parameters": { + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the instance group manager resides.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "request": { + "$ref": "InstanceGroupManagersSetTargetPoolsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zoneOperations": { + "methods": { + "get": { + "id": "replicapool.zoneOperations.get", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "id": "replicapool.zoneOperations.list", + "path": "{project}/zones/{zone}/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + } + } +} diff --git a/etc/api/replicapoolupdater/v1beta1/replicapoolupdater-api.json b/etc/api/replicapoolupdater/v1beta1/replicapoolupdater-api.json new file mode 100644 index 0000000000..51ec80cdc4 --- /dev/null +++ b/etc/api/replicapoolupdater/v1beta1/replicapoolupdater-api.json @@ -0,0 +1,861 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/eJNOa2VAnZWx5ALy5y9ejkM9EKI\"", + "discoveryVersion": "v1", + "id": "replicapoolupdater:v1beta1", + "name": "replicapoolupdater", + "version": "v1beta1", + "revision": "20150216", + "title": "Google Compute Engine Instance Group Updater API", + "description": "The Google Compute Engine Instance Group Updater API provides services for updating groups of Compute Engine Instances.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://cloud.google.com/compute/docs/instance-groups/manager/#applying_rolling_updates_using_the_updater_service", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/replicapoolupdater/v1beta1/projects/", + "basePath": "/replicapoolupdater/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "replicapoolupdater/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/replicapool": { + "description": "View and manage replica pools" + }, + "https://www.googleapis.com/auth/replicapool.readonly": { + "description": "View replica pools" + } + } + } + }, + "schemas": { + "InstanceUpdate": { + "id": "InstanceUpdate", + "type": "object", + "description": "Update of a single instance.", + "properties": { + "error": { + "type": "object", + "description": "Errors that occurred during the instance update.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "instance": { + "type": "string", + "description": "URL of the instance being updated." + }, + "status": { + "type": "string", + "description": "Status of the instance update. Possible values are: \n- \"PENDING\": The instance update is pending execution. \n- \"ROLLING_FORWARD\": The instance update is going forward. \n- \"ROLLING_BACK\": The instance update is being rolled back. \n- \"PAUSED\": The instance update is temporarily paused (inactive). \n- \"ROLLED_OUT\": The instance update is finished, the instance is running the new template. \n- \"ROLLED_BACK\": The instance update is finished, the instance has been reverted to the previous template. \n- \"CANCELLED\": The instance update is paused and no longer can be resumed, undefined in which template the instance is running." + } + } + }, + "InstanceUpdateList": { + "id": "InstanceUpdateList", + "type": "object", + "description": "Response returned by ListInstanceUpdates method.", + "properties": { + "items": { + "type": "array", + "description": "Collection of requested instance updates.", + "items": { + "$ref": "InstanceUpdate" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource.", + "default": "replicapoolupdater#instanceUpdateList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The fully qualified URL for the resource." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An operation resource, used to manage asynchronous API requests.", + "properties": { + "clientOperationId": { + "type": "string" + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format (output only)." + }, + "endTime": { + "type": "string" + }, + "error": { + "type": "object", + "description": "[Output Only] If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string" + }, + "httpErrorStatusCode": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64" + }, + "insertTime": { + "type": "string", + "description": "[Output Only] The time that this operation was requested. This is in RFC 3339 format." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource. Always kind#operation for Operation resources.", + "default": "replicapoolupdater#operation" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource (output only)." + }, + "operationType": { + "type": "string" + }, + "progress": { + "type": "integer", + "format": "int32" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the operation resides (output only)." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server defined URL for the resource." + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server. This is in RFC 3339 format." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the operation. Can be one of the following: \"PENDING\", \"RUNNING\", or \"DONE\"." + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "targetId": { + "type": "string", + "description": "[Output Only] Unique target id which identifies a particular incarnation of the target.", + "format": "uint64" + }, + "targetLink": { + "type": "string", + "description": "[Output Only] URL of the resource the operation is mutating (output only)." + }, + "user": { + "type": "string" + }, + "warnings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output only] The warning type identifier for this warning." + }, + "data": { + "type": "array", + "description": "[Output only] Metadata for this warning in key:value format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] Metadata key for this warning." + }, + "value": { + "type": "string", + "description": "[Output Only] Metadata value for this warning." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output only] Optional human-readable details for this warning." + } + } + } + }, + "zone": { + "type": "string", + "description": "[Output Only] URL of the zone where the operation resides (output only)." + } + } + }, + "RollingUpdate": { + "id": "RollingUpdate", + "type": "object", + "description": "The following represents a resource describing a single update (rollout) of a group of instances to the given template.", + "properties": { + "actionType": { + "type": "string", + "description": "Specifies the action to take for each instance within the instance group. This can be RECREATE which will recreate each instance and is only available for managed instance groups. It can also be REBOOT which performs a soft reboot for each instance and is only available for regular (non-managed) instance groups." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] Creation timestamp in RFC3339 text format." + }, + "description": { + "type": "string", + "description": "An optional textual description of the resource; provided by the client when the resource is created." + }, + "error": { + "type": "object", + "description": "[Output Only] Errors that occurred during rolling update.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource; defined by the server." + }, + "instanceGroup": { + "type": "string", + "description": "Fully-qualified URL of an instance group being updated. Exactly one of instanceGroupManager and instanceGroup must be set." + }, + "instanceGroupManager": { + "type": "string", + "description": "Fully-qualified URL of an instance group manager being updated. Exactly one of instanceGroupManager and instanceGroup must be set." + }, + "instanceTemplate": { + "type": "string", + "description": "Fully-qualified URL of an instance template to apply." + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource.", + "default": "replicapoolupdater#rollingUpdate" + }, + "policy": { + "type": "object", + "description": "Parameters of the update process.", + "properties": { + "autoPauseAfterInstances": { + "type": "integer", + "description": "Number of instances updated before the update gets automatically paused.", + "format": "int32" + }, + "canary": { + "type": "object", + "description": "Parameters of a canary phase. If absent, canary will NOT be performed.", + "properties": { + "numInstances": { + "type": "integer", + "description": "Number of instances updated as a part of canary phase. If absent, the default number of instances will be used.", + "format": "int32" + } + } + }, + "instanceStartupTimeoutSec": { + "type": "integer", + "description": "Maximum amount of time we will wait after finishing all steps until we receive HEALTHY state for instance. If this deadline is exceeded instance update is considered as failed.", + "format": "int32" + }, + "maxNumConcurrentInstances": { + "type": "integer", + "description": "Maximum number of instances that can be updated simultaneously (concurrently). An update of an instance starts when the instance is about to be restarted and finishes after the instance has been restarted and the sleep period (defined by sleepAfterInstanceRestartSec) has passed.", + "format": "int32" + }, + "maxNumFailedInstances": { + "type": "integer", + "description": "Maximum number of instance updates that can fail without failing the group update. Instance update is considered failed if any of it's update actions (e.g. Stop call on Instance resource in Rolling Reboot) failed with permanent failure, or if after finishing all update actions this instance is in UNHEALTHY state.", + "format": "int32" + }, + "minInstanceUpdateTimeSec": { + "type": "integer", + "description": "Specifies minimum amount of time we will spend on updating single instance, measuring at the start of the first update action (e.g. Recreate call on Instance Group Manager or Stop call on Instance resource). If actual instance update takes less time we will simply sleep before proceeding with next instance.", + "format": "int32" + }, + "sleepAfterInstanceRestartSec": { + "type": "integer", + "description": "Time period after the instance has been restarted but before marking the update of this instance as done. This field is deprecated and ignored by Rolling Updater.", + "format": "int32" + } + } + }, + "progress": { + "type": "integer", + "description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the update will be complete. This number should be monotonically increasing as the update progresses.", + "format": "int32" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The fully qualified URL for the resource." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the update. Possible values are: \n- \"ROLLING_FORWARD\": The update is going forward. \n- \"ROLLING_BACK\": The update is being rolled back. \n- \"PAUSED\": The update is temporarily paused (inactive). \n- \"ROLLED_OUT\": The update is finished, all instances have been updated successfully. \n- \"ROLLED_BACK\": The update is finished, all instances have been reverted to the previous template. \n- \"CANCELLED\": The update is paused and no longer can be resumed, undefined how many instances are running in which template." + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the update." + }, + "user": { + "type": "string", + "description": "[Output Only] User who requested the update, for example: user@example.com." + } + } + }, + "RollingUpdateList": { + "id": "RollingUpdateList", + "type": "object", + "description": "Response returned by List method.", + "properties": { + "items": { + "type": "array", + "description": "Collection of requested updates.", + "items": { + "$ref": "RollingUpdate" + } + }, + "kind": { + "type": "string", + "description": "[Output Only] Type of the resource.", + "default": "replicapoolupdater#rollingUpdateList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] The fully qualified URL for the resource." + } + } + } + }, + "resources": { + "rollingUpdates": { + "methods": { + "cancel": { + "id": "replicapoolupdater.rollingUpdates.cancel", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}/cancel", + "httpMethod": "POST", + "description": "Cancels an update. The update must be PAUSED before it can be cancelled. This has no effect if the update is already CANCELLED.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "get": { + "id": "replicapoolupdater.rollingUpdates.get", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}", + "httpMethod": "GET", + "description": "Returns information about an update.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "RollingUpdate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "insert": { + "id": "replicapoolupdater.rollingUpdates.insert", + "path": "{project}/zones/{zone}/rollingUpdates", + "httpMethod": "POST", + "description": "Inserts and starts a new update.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "RollingUpdate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "list": { + "id": "replicapoolupdater.rollingUpdates.list", + "path": "{project}/zones/{zone}/rollingUpdates", + "httpMethod": "GET", + "description": "Lists recent updates for a given managed instance group, in reverse chronological order and paginated format.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "instanceGroupManager": { + "type": "string", + "description": "The name of the instance group manager used for filtering.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "RollingUpdateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "listInstanceUpdates": { + "id": "replicapoolupdater.rollingUpdates.listInstanceUpdates", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}/instanceUpdates", + "httpMethod": "GET", + "description": "Lists the current status for each instance within a given update.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "InstanceUpdateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool", + "https://www.googleapis.com/auth/replicapool.readonly" + ] + }, + "pause": { + "id": "replicapoolupdater.rollingUpdates.pause", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}/pause", + "httpMethod": "POST", + "description": "Pauses the update in state from ROLLING_FORWARD or ROLLING_BACK. Has no effect if invoked when the state of the update is PAUSED.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "resume": { + "id": "replicapoolupdater.rollingUpdates.resume", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}/resume", + "httpMethod": "POST", + "description": "Continues an update in PAUSED state. Has no effect if invoked when the state of the update is ROLLED_OUT.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + }, + "rollback": { + "id": "replicapoolupdater.rollingUpdates.rollback", + "path": "{project}/zones/{zone}/rollingUpdates/{rollingUpdate}/rollback", + "httpMethod": "POST", + "description": "Rolls back the update in state from ROLLING_FORWARD or PAUSED. Has no effect if invoked when the state of the update is ROLLED_BACK.", + "parameters": { + "project": { + "type": "string", + "description": "The Google Developers Console project name.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "rollingUpdate": { + "type": "string", + "description": "The name of the update.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The name of the zone in which the update's target resides.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "rollingUpdate" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + } + } + }, + "zoneOperations": { + "methods": { + "get": { + "id": "replicapoolupdater.zoneOperations.get", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/replicapool" + ] + } + } + } + } +} diff --git a/etc/api/reseller/v1/reseller-api.json b/etc/api/reseller/v1/reseller-api.json new file mode 100644 index 0000000000..1c1e283cb2 --- /dev/null +++ b/etc/api/reseller/v1/reseller-api.json @@ -0,0 +1,821 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/30NaCo58E-23RA5z0DPpA4cSWB8\"", + "discoveryVersion": "v1", + "id": "reseller:v1", + "name": "reseller", + "version": "v1", + "revision": "20141112", + "title": "Enterprise Apps Reseller API", + "description": "Lets you create and manage your customers and their subscriptions.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/reseller/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/apps/reseller/v1/", + "basePath": "/apps/reseller/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "apps/reseller/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/apps.order": { + "description": "Manage users on your domain" + }, + "https://www.googleapis.com/auth/apps.order.readonly": { + "description": "Manage users on your domain" + } + } + } + }, + "schemas": { + "Address": { + "id": "Address", + "type": "object", + "description": "JSON template for address of a customer.", + "properties": { + "addressLine1": { + "type": "string", + "description": "Address line 1 of the address." + }, + "addressLine2": { + "type": "string", + "description": "Address line 2 of the address." + }, + "addressLine3": { + "type": "string", + "description": "Address line 3 of the address." + }, + "contactName": { + "type": "string", + "description": "Name of the contact person." + }, + "countryCode": { + "type": "string", + "description": "ISO 3166 country code." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a customer address.", + "default": "customers#address" + }, + "locality": { + "type": "string", + "description": "Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + }, + "organizationName": { + "type": "string", + "description": "Name of the organization." + }, + "postalCode": { + "type": "string", + "description": "The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + }, + "region": { + "type": "string", + "description": "Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + } + } + }, + "ChangePlanRequest": { + "id": "ChangePlanRequest", + "type": "object", + "description": "JSON template for the ChangePlan rpc request.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription change plan request.", + "default": "subscriptions#changePlanRequest" + }, + "planName": { + "type": "string", + "description": "Name of the plan to change to." + }, + "purchaseOrderId": { + "type": "string", + "description": "Purchase order id for your order tracking purposes." + }, + "seats": { + "$ref": "Seats", + "description": "Number/Limit of seats in the new plan." + } + } + }, + "Customer": { + "id": "Customer", + "type": "object", + "description": "JSON template for a customer.", + "properties": { + "alternateEmail": { + "type": "string", + "description": "The alternate email of the customer." + }, + "customerDomain": { + "type": "string", + "description": "The domain name of the customer." + }, + "customerId": { + "type": "string", + "description": "The id of the customer." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a customer.", + "default": "reseller#customer" + }, + "phoneNumber": { + "type": "string", + "description": "The phone number of the customer." + }, + "postalAddress": { + "$ref": "Address", + "description": "The postal address of the customer." + }, + "resourceUiUrl": { + "type": "string", + "description": "Ui url for customer resource." + } + } + }, + "RenewalSettings": { + "id": "RenewalSettings", + "type": "object", + "description": "JSON template for a subscription renewal settings.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription renewal setting.", + "default": "subscriptions#renewalSettings" + }, + "renewalType": { + "type": "string", + "description": "Subscription renewal type." + } + } + }, + "Seats": { + "id": "Seats", + "type": "object", + "description": "JSON template for subscription seats.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription change plan request.", + "default": "subscriptions#seats" + }, + "licensedNumberOfSeats": { + "type": "integer", + "description": "Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.", + "format": "int32" + }, + "maximumNumberOfSeats": { + "type": "integer", + "description": "Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.", + "format": "int32" + }, + "numberOfSeats": { + "type": "integer", + "description": "Number of seats to purchase. This is applicable only for a commitment plan.", + "format": "int32" + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "description": "JSON template for a subscription.", + "properties": { + "billingMethod": { + "type": "string", + "description": "Billing method of this subscription." + }, + "creationTime": { + "type": "string", + "description": "Creation time of this subscription in milliseconds since Unix epoch.", + "format": "int64" + }, + "customerId": { + "type": "string", + "description": "The id of the customer to whom the subscription belongs." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a Subscription.", + "default": "reseller#subscription" + }, + "plan": { + "type": "object", + "description": "Plan details of the subscription", + "properties": { + "commitmentInterval": { + "type": "object", + "description": "Interval of the commitment if it is a commitment plan.", + "properties": { + "endTime": { + "type": "string", + "description": "End time of the commitment interval in milliseconds since Unix epoch.", + "format": "int64" + }, + "startTime": { + "type": "string", + "description": "Start time of the commitment interval in milliseconds since Unix epoch.", + "format": "int64" + } + } + }, + "isCommitmentPlan": { + "type": "boolean", + "description": "Whether the plan is a commitment plan or not." + }, + "planName": { + "type": "string", + "description": "The plan name of this subscription's plan." + } + } + }, + "purchaseOrderId": { + "type": "string", + "description": "Purchase order id for your order tracking purposes." + }, + "renewalSettings": { + "$ref": "RenewalSettings", + "description": "Renewal settings of the subscription." + }, + "resourceUiUrl": { + "type": "string", + "description": "Ui url for subscription resource." + }, + "seats": { + "$ref": "Seats", + "description": "Number/Limit of seats in the new plan." + }, + "skuId": { + "type": "string", + "description": "Name of the sku for which this subscription is purchased." + }, + "status": { + "type": "string", + "description": "Status of the subscription." + }, + "subscriptionId": { + "type": "string", + "description": "The id of the subscription." + }, + "transferInfo": { + "type": "object", + "description": "Transfer related information for the subscription.", + "properties": { + "minimumTransferableSeats": { + "type": "integer", + "format": "int32" + }, + "transferabilityExpirationTime": { + "type": "string", + "description": "Time when transfer token or intent to transfer will expire.", + "format": "int64" + } + } + }, + "trialSettings": { + "type": "object", + "description": "Trial Settings of the subscription.", + "properties": { + "isInTrial": { + "type": "boolean", + "description": "Whether the subscription is in trial." + }, + "trialEndTime": { + "type": "string", + "description": "End time of the trial in milliseconds since Unix epoch.", + "format": "int64" + } + } + } + } + }, + "Subscriptions": { + "id": "Subscriptions", + "type": "object", + "description": "JSON template for a subscription list.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a collection of subscriptions.", + "default": "reseller#subscriptions" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "subscriptions": { + "type": "array", + "description": "The subscriptions in this page of results.", + "items": { + "$ref": "Subscription" + } + } + } + } + }, + "resources": { + "customers": { + "methods": { + "get": { + "id": "reseller.customers.get", + "path": "customers/{customerId}", + "httpMethod": "GET", + "description": "Gets a customer resource if one exists and is owned by the reseller.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "insert": { + "id": "reseller.customers.insert", + "path": "customers", + "httpMethod": "POST", + "description": "Creates a customer resource if one does not already exist.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed for inserting a customer for which domain already exists. Can be generated at https://www.google.com/a/cpanel//TransferToken. Optional.", + "location": "query" + } + }, + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "patch": { + "id": "reseller.customers.patch", + "path": "customers/{customerId}", + "httpMethod": "PATCH", + "description": "Update a customer resource if one it exists and is owned by the reseller. This method supports patch semantics.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "update": { + "id": "reseller.customers.update", + "path": "customers/{customerId}", + "httpMethod": "PUT", + "description": "Update a customer resource if one it exists and is owned by the reseller.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + }, + "subscriptions": { + "methods": { + "activate": { + "id": "reseller.subscriptions.activate", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/activate", + "httpMethod": "POST", + "description": "Activates a subscription previously suspended by the reseller", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changePlan": { + "id": "reseller.subscriptions.changePlan", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changePlan", + "httpMethod": "POST", + "description": "Changes the plan of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "ChangePlanRequest" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changeRenewalSettings": { + "id": "reseller.subscriptions.changeRenewalSettings", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", + "httpMethod": "POST", + "description": "Changes the renewal settings of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "RenewalSettings" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changeSeats": { + "id": "reseller.subscriptions.changeSeats", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", + "httpMethod": "POST", + "description": "Changes the seats configuration of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "Seats" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "delete": { + "id": "reseller.subscriptions.delete", + "path": "customers/{customerId}/subscriptions/{subscriptionId}", + "httpMethod": "DELETE", + "description": "Cancels/Downgrades a subscription.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "deletionType": { + "type": "string", + "description": "Whether the subscription is to be fully cancelled or downgraded", + "required": true, + "enum": [ + "cancel", + "downgrade", + "suspend", + "transfer_to_direct" + ], + "enumDescriptions": [ + "Cancels the subscription immediately", + "Downgrades a Google Apps for Business subscription to Google Apps", + "Suspends the subscriptions for 4 days before cancelling it", + "Transfers a subscription directly to Google" + ], + "location": "query" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId", + "deletionType" + ], + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "get": { + "id": "reseller.subscriptions.get", + "path": "customers/{customerId}/subscriptions/{subscriptionId}", + "httpMethod": "GET", + "description": "Gets a subscription of the customer.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "insert": { + "id": "reseller.subscriptions.insert", + "path": "customers/{customerId}/subscriptions", + "httpMethod": "POST", + "description": "Creates/Transfers a subscription for the customer.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.", + "location": "query" + }, + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "list": { + "id": "reseller.subscriptions.list", + "path": "subscriptions", + "httpMethod": "GET", + "description": "Lists subscriptions of a reseller, optionally filtered by a customer name prefix.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed if the customer is not a resold customer of this reseller. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional.", + "location": "query" + }, + "customerId": { + "type": "string", + "description": "Id of the Customer", + "location": "query" + }, + "customerNamePrefix": { + "type": "string", + "description": "Prefix of the customer's domain name by which the subscriptions should be filtered. Optional", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + } + }, + "response": { + "$ref": "Subscriptions" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "startPaidService": { + "id": "reseller.subscriptions.startPaidService", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", + "httpMethod": "POST", + "description": "Starts paid service of a trial subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "suspend": { + "id": "reseller.subscriptions.suspend", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/suspend", + "httpMethod": "POST", + "description": "Suspends an active subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + } + } +} diff --git a/etc/api/reseller/v1sandbox/reseller-api.json b/etc/api/reseller/v1sandbox/reseller-api.json new file mode 100644 index 0000000000..93225726e1 --- /dev/null +++ b/etc/api/reseller/v1sandbox/reseller-api.json @@ -0,0 +1,821 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/0hE-e3UCtEqliJBtSMk5ljVOJxc\"", + "discoveryVersion": "v1", + "id": "reseller:v1sandbox", + "name": "reseller", + "version": "v1sandbox", + "revision": "20141112", + "title": "Enterprise Apps Reseller API", + "description": "Lets you create and manage your customers and their subscriptions.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/google-apps/reseller/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/apps/reseller/v1sandbox/", + "basePath": "/apps/reseller/v1sandbox/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "apps/reseller/v1sandbox/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/apps.order": { + "description": "Manage users on your domain" + }, + "https://www.googleapis.com/auth/apps.order.readonly": { + "description": "Manage users on your domain" + } + } + } + }, + "schemas": { + "Address": { + "id": "Address", + "type": "object", + "description": "JSON template for address of a customer.", + "properties": { + "addressLine1": { + "type": "string", + "description": "Address line 1 of the address." + }, + "addressLine2": { + "type": "string", + "description": "Address line 2 of the address." + }, + "addressLine3": { + "type": "string", + "description": "Address line 3 of the address." + }, + "contactName": { + "type": "string", + "description": "Name of the contact person." + }, + "countryCode": { + "type": "string", + "description": "ISO 3166 country code." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a customer address.", + "default": "customers#address" + }, + "locality": { + "type": "string", + "description": "Name of the locality. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + }, + "organizationName": { + "type": "string", + "description": "Name of the organization." + }, + "postalCode": { + "type": "string", + "description": "The postal code. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + }, + "region": { + "type": "string", + "description": "Name of the region. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element." + } + } + }, + "ChangePlanRequest": { + "id": "ChangePlanRequest", + "type": "object", + "description": "JSON template for the ChangePlan rpc request.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription change plan request.", + "default": "subscriptions#changePlanRequest" + }, + "planName": { + "type": "string", + "description": "Name of the plan to change to." + }, + "purchaseOrderId": { + "type": "string", + "description": "Purchase order id for your order tracking purposes." + }, + "seats": { + "$ref": "Seats", + "description": "Number/Limit of seats in the new plan." + } + } + }, + "Customer": { + "id": "Customer", + "type": "object", + "description": "JSON template for a customer.", + "properties": { + "alternateEmail": { + "type": "string", + "description": "The alternate email of the customer." + }, + "customerDomain": { + "type": "string", + "description": "The domain name of the customer." + }, + "customerId": { + "type": "string", + "description": "The id of the customer." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a customer.", + "default": "reseller#customer" + }, + "phoneNumber": { + "type": "string", + "description": "The phone number of the customer." + }, + "postalAddress": { + "$ref": "Address", + "description": "The postal address of the customer." + }, + "resourceUiUrl": { + "type": "string", + "description": "Ui url for customer resource." + } + } + }, + "RenewalSettings": { + "id": "RenewalSettings", + "type": "object", + "description": "JSON template for a subscription renewal settings.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription renewal setting.", + "default": "subscriptions#renewalSettings" + }, + "renewalType": { + "type": "string", + "description": "Subscription renewal type." + } + } + }, + "Seats": { + "id": "Seats", + "type": "object", + "description": "JSON template for subscription seats.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a subscription change plan request.", + "default": "subscriptions#seats" + }, + "licensedNumberOfSeats": { + "type": "integer", + "description": "Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.", + "format": "int32" + }, + "maximumNumberOfSeats": { + "type": "integer", + "description": "Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.", + "format": "int32" + }, + "numberOfSeats": { + "type": "integer", + "description": "Number of seats to purchase. This is applicable only for a commitment plan.", + "format": "int32" + } + } + }, + "Subscription": { + "id": "Subscription", + "type": "object", + "description": "JSON template for a subscription.", + "properties": { + "billingMethod": { + "type": "string", + "description": "Billing method of this subscription." + }, + "creationTime": { + "type": "string", + "description": "Creation time of this subscription in milliseconds since Unix epoch.", + "format": "int64" + }, + "customerId": { + "type": "string", + "description": "The id of the customer to whom the subscription belongs." + }, + "kind": { + "type": "string", + "description": "Identifies the resource as a Subscription.", + "default": "reseller#subscription" + }, + "plan": { + "type": "object", + "description": "Plan details of the subscription", + "properties": { + "commitmentInterval": { + "type": "object", + "description": "Interval of the commitment if it is a commitment plan.", + "properties": { + "endTime": { + "type": "string", + "description": "End time of the commitment interval in milliseconds since Unix epoch.", + "format": "int64" + }, + "startTime": { + "type": "string", + "description": "Start time of the commitment interval in milliseconds since Unix epoch.", + "format": "int64" + } + } + }, + "isCommitmentPlan": { + "type": "boolean", + "description": "Whether the plan is a commitment plan or not." + }, + "planName": { + "type": "string", + "description": "The plan name of this subscription's plan." + } + } + }, + "purchaseOrderId": { + "type": "string", + "description": "Purchase order id for your order tracking purposes." + }, + "renewalSettings": { + "$ref": "RenewalSettings", + "description": "Renewal settings of the subscription." + }, + "resourceUiUrl": { + "type": "string", + "description": "Ui url for subscription resource." + }, + "seats": { + "$ref": "Seats", + "description": "Number/Limit of seats in the new plan." + }, + "skuId": { + "type": "string", + "description": "Name of the sku for which this subscription is purchased." + }, + "status": { + "type": "string", + "description": "Status of the subscription." + }, + "subscriptionId": { + "type": "string", + "description": "The id of the subscription." + }, + "transferInfo": { + "type": "object", + "description": "Transfer related information for the subscription.", + "properties": { + "minimumTransferableSeats": { + "type": "integer", + "format": "int32" + }, + "transferabilityExpirationTime": { + "type": "string", + "description": "Time when transfer token or intent to transfer will expire.", + "format": "int64" + } + } + }, + "trialSettings": { + "type": "object", + "description": "Trial Settings of the subscription.", + "properties": { + "isInTrial": { + "type": "boolean", + "description": "Whether the subscription is in trial." + }, + "trialEndTime": { + "type": "string", + "description": "End time of the trial in milliseconds since Unix epoch.", + "format": "int64" + } + } + } + } + }, + "Subscriptions": { + "id": "Subscriptions", + "type": "object", + "description": "JSON template for a subscription list.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies the resource as a collection of subscriptions.", + "default": "reseller#subscriptions" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "subscriptions": { + "type": "array", + "description": "The subscriptions in this page of results.", + "items": { + "$ref": "Subscription" + } + } + } + } + }, + "resources": { + "customers": { + "methods": { + "get": { + "id": "reseller.customers.get", + "path": "customers/{customerId}", + "httpMethod": "GET", + "description": "Gets a customer resource if one exists and is owned by the reseller.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "insert": { + "id": "reseller.customers.insert", + "path": "customers", + "httpMethod": "POST", + "description": "Creates a customer resource if one does not already exist.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed for inserting a customer for which domain already exists. Can be generated at https://www.google.com/a/cpanel//TransferToken. Optional.", + "location": "query" + } + }, + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "patch": { + "id": "reseller.customers.patch", + "path": "customers/{customerId}", + "httpMethod": "PATCH", + "description": "Update a customer resource if one it exists and is owned by the reseller. This method supports patch semantics.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "update": { + "id": "reseller.customers.update", + "path": "customers/{customerId}", + "httpMethod": "PUT", + "description": "Update a customer resource if one it exists and is owned by the reseller.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Customer" + }, + "response": { + "$ref": "Customer" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + }, + "subscriptions": { + "methods": { + "activate": { + "id": "reseller.subscriptions.activate", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/activate", + "httpMethod": "POST", + "description": "Activates a subscription previously suspended by the reseller", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changePlan": { + "id": "reseller.subscriptions.changePlan", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changePlan", + "httpMethod": "POST", + "description": "Changes the plan of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "ChangePlanRequest" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changeRenewalSettings": { + "id": "reseller.subscriptions.changeRenewalSettings", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", + "httpMethod": "POST", + "description": "Changes the renewal settings of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "RenewalSettings" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "changeSeats": { + "id": "reseller.subscriptions.changeSeats", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", + "httpMethod": "POST", + "description": "Changes the seats configuration of a subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "request": { + "$ref": "Seats" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "delete": { + "id": "reseller.subscriptions.delete", + "path": "customers/{customerId}/subscriptions/{subscriptionId}", + "httpMethod": "DELETE", + "description": "Cancels/Downgrades a subscription.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "deletionType": { + "type": "string", + "description": "Whether the subscription is to be fully cancelled or downgraded", + "required": true, + "enum": [ + "cancel", + "downgrade", + "suspend", + "transfer_to_direct" + ], + "enumDescriptions": [ + "Cancels the subscription immediately", + "Downgrades a Google Apps for Business subscription to Google Apps", + "Suspends the subscriptions for 4 days before cancelling it", + "Transfers a subscription directly to Google" + ], + "location": "query" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId", + "deletionType" + ], + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "get": { + "id": "reseller.subscriptions.get", + "path": "customers/{customerId}/subscriptions/{subscriptionId}", + "httpMethod": "GET", + "description": "Gets a subscription of the customer.", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "insert": { + "id": "reseller.subscriptions.insert", + "path": "customers/{customerId}/subscriptions", + "httpMethod": "POST", + "description": "Creates/Transfers a subscription for the customer.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed for transferring a subscription. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken. Optional.", + "location": "query" + }, + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId" + ], + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "list": { + "id": "reseller.subscriptions.list", + "path": "subscriptions", + "httpMethod": "GET", + "description": "Lists subscriptions of a reseller, optionally filtered by a customer name prefix.", + "parameters": { + "customerAuthToken": { + "type": "string", + "description": "An auth token needed if the customer is not a resold customer of this reseller. Can be generated at https://www.google.com/a/cpanel/customer-domain/TransferToken.Optional.", + "location": "query" + }, + "customerId": { + "type": "string", + "description": "Id of the Customer", + "location": "query" + }, + "customerNamePrefix": { + "type": "string", + "description": "Prefix of the customer's domain name by which the subscriptions should be filtered. Optional", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of results to return", + "format": "uint32", + "minimum": "1", + "maximum": "100", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token to specify next page in the list", + "location": "query" + } + }, + "response": { + "$ref": "Subscriptions" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order", + "https://www.googleapis.com/auth/apps.order.readonly" + ] + }, + "startPaidService": { + "id": "reseller.subscriptions.startPaidService", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", + "httpMethod": "POST", + "description": "Starts paid service of a trial subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "suspend": { + "id": "reseller.subscriptions.suspend", + "path": "customers/{customerId}/subscriptions/{subscriptionId}/suspend", + "httpMethod": "POST", + "description": "Suspends an active subscription", + "parameters": { + "customerId": { + "type": "string", + "description": "Id of the Customer", + "required": true, + "location": "path" + }, + "subscriptionId": { + "type": "string", + "description": "Id of the subscription, which is unique for a customer", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "customerId", + "subscriptionId" + ], + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + } + } +} diff --git a/etc/api/resourceviews/v1beta1/resourceviews-api.json b/etc/api/resourceviews/v1beta1/resourceviews-api.json new file mode 100644 index 0000000000..fbc523b73b --- /dev/null +++ b/etc/api/resourceviews/v1beta1/resourceviews-api.json @@ -0,0 +1,911 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/2oa8SMSfpFS6UKNS3wRm4F3v1wQ\"", + "discoveryVersion": "v1", + "id": "resourceviews:v1beta1", + "name": "resourceviews", + "version": "v1beta1", + "revision": "20140904", + "title": "Resource Views API", + "description": "The Resource View API allows users to create and manage logical sets of Google Compute Engine instances.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/compute/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/resourceviews/v1beta1/projects/", + "basePath": "/resourceviews/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "resourceviews/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/ndev.cloudman": { + "description": "View and manage your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/ndev.cloudman.readonly": { + "description": "View your Google Cloud Platform management resources and deployment status information" + } + } + } + }, + "schemas": { + "Label": { + "id": "Label", + "type": "object", + "description": "The Label to be applied to the resource views.", + "properties": { + "key": { + "type": "string", + "description": "Key of the label." + }, + "value": { + "type": "string", + "description": "Value of the label." + } + } + }, + "RegionViewsAddResourcesRequest": { + "id": "RegionViewsAddResourcesRequest", + "type": "object", + "description": "The request to add resources to the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be added.", + "items": { + "type": "string" + } + } + } + }, + "RegionViewsInsertResponse": { + "id": "RegionViewsInsertResponse", + "type": "object", + "description": "The response to a resource view insert request.", + "properties": { + "resource": { + "$ref": "ResourceView", + "description": "The resource view object inserted." + } + } + }, + "RegionViewsListResourcesResponse": { + "id": "RegionViewsListResourcesResponse", + "type": "object", + "description": "The response to the list resource request.", + "properties": { + "members": { + "type": "array", + "description": "The resources in the view.", + "items": { + "type": "string" + } + }, + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + } + } + }, + "RegionViewsListResponse": { + "id": "RegionViewsListResponse", + "type": "object", + "description": "The response to the list resource view request.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + }, + "resourceViews": { + "type": "array", + "description": "The list of resource views that meet the criteria.", + "items": { + "$ref": "ResourceView" + } + } + } + }, + "RegionViewsRemoveResourcesRequest": { + "id": "RegionViewsRemoveResourcesRequest", + "type": "object", + "description": "The request to remove resources from the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be removed.", + "items": { + "type": "string" + } + } + } + }, + "ResourceView": { + "id": "ResourceView", + "type": "object", + "description": "The resource view object.", + "properties": { + "creationTime": { + "type": "string", + "description": "The creation time of the resource view." + }, + "description": { + "type": "string", + "description": "The detailed description of the resource view." + }, + "id": { + "type": "string", + "description": "[Output Only] The ID of the resource view." + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "resourceviews#resourceView" + }, + "labels": { + "type": "array", + "description": "The labels for events.", + "items": { + "$ref": "Label" + } + }, + "lastModified": { + "type": "string", + "description": "The last modified time of the view. Not supported yet." + }, + "members": { + "type": "array", + "description": "A list of all resources in the resource view.", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "The name of the resource view." + }, + "numMembers": { + "type": "integer", + "description": "The total number of resources in the resource view.", + "format": "uint32" + }, + "selfLink": { + "type": "string", + "description": "[Output Only] A self-link to the resource view." + } + } + }, + "ZoneViewsAddResourcesRequest": { + "id": "ZoneViewsAddResourcesRequest", + "type": "object", + "description": "The request to add resources to the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be added.", + "items": { + "type": "string" + } + } + } + }, + "ZoneViewsInsertResponse": { + "id": "ZoneViewsInsertResponse", + "type": "object", + "description": "The response to an insert request.", + "properties": { + "resource": { + "$ref": "ResourceView", + "description": "The resource view object that has been inserted." + } + } + }, + "ZoneViewsListResourcesResponse": { + "id": "ZoneViewsListResourcesResponse", + "type": "object", + "description": "The response to a list resource request.", + "properties": { + "members": { + "type": "array", + "description": "The full URL of resources in the view.", + "items": { + "type": "string" + } + }, + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + } + } + }, + "ZoneViewsListResponse": { + "id": "ZoneViewsListResponse", + "type": "object", + "description": "The response to a list request.", + "properties": { + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + }, + "resourceViews": { + "type": "array", + "description": "The result that contains all resource views that meet the criteria.", + "items": { + "$ref": "ResourceView" + } + } + } + }, + "ZoneViewsRemoveResourcesRequest": { + "id": "ZoneViewsRemoveResourcesRequest", + "type": "object", + "description": "The request to remove resources from the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be removed.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "regionViews": { + "methods": { + "addresources": { + "id": "resourceviews.regionViews.addresources", + "path": "{projectName}/regions/{region}/resourceViews/{resourceViewName}/addResources", + "httpMethod": "POST", + "description": "Add resources to the view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region", + "resourceViewName" + ], + "request": { + "$ref": "RegionViewsAddResourcesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "delete": { + "id": "resourceviews.regionViews.delete", + "path": "{projectName}/regions/{region}/resourceViews/{resourceViewName}", + "httpMethod": "DELETE", + "description": "Delete a resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region", + "resourceViewName" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "resourceviews.regionViews.get", + "path": "{projectName}/regions/{region}/resourceViews/{resourceViewName}", + "httpMethod": "GET", + "description": "Get the information of a resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region", + "resourceViewName" + ], + "response": { + "$ref": "ResourceView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "insert": { + "id": "resourceviews.regionViews.insert", + "path": "{projectName}/regions/{region}/resourceViews", + "httpMethod": "POST", + "description": "Create a resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region" + ], + "request": { + "$ref": "ResourceView" + }, + "response": { + "$ref": "RegionViewsInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "resourceviews.regionViews.list", + "path": "{projectName}/regions/{region}/resourceViews", + "httpMethod": "GET", + "description": "List resource views.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region" + ], + "response": { + "$ref": "RegionViewsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "listresources": { + "id": "resourceviews.regionViews.listresources", + "path": "{projectName}/regions/{region}/resourceViews/{resourceViewName}/resources", + "httpMethod": "POST", + "description": "List the resources in the view.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region", + "resourceViewName" + ], + "response": { + "$ref": "RegionViewsListResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "removeresources": { + "id": "resourceviews.regionViews.removeresources", + "path": "{projectName}/regions/{region}/resourceViews/{resourceViewName}/removeResources", + "httpMethod": "POST", + "description": "Remove resources from the view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "region": { + "type": "string", + "description": "The region name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "region", + "resourceViewName" + ], + "request": { + "$ref": "RegionViewsRemoveResourcesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + } + } + }, + "zoneViews": { + "methods": { + "addresources": { + "id": "resourceviews.zoneViews.addresources", + "path": "{projectName}/zones/{zone}/resourceViews/{resourceViewName}/addResources", + "httpMethod": "POST", + "description": "Add resources to the view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "resourceViewName" + ], + "request": { + "$ref": "ZoneViewsAddResourcesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "delete": { + "id": "resourceviews.zoneViews.delete", + "path": "{projectName}/zones/{zone}/resourceViews/{resourceViewName}", + "httpMethod": "DELETE", + "description": "Delete a resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "resourceViewName" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "resourceviews.zoneViews.get", + "path": "{projectName}/zones/{zone}/resourceViews/{resourceViewName}", + "httpMethod": "GET", + "description": "Get the information of a zonal resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "resourceViewName" + ], + "response": { + "$ref": "ResourceView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "insert": { + "id": "resourceviews.zoneViews.insert", + "path": "{projectName}/zones/{zone}/resourceViews", + "httpMethod": "POST", + "description": "Create a resource view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone" + ], + "request": { + "$ref": "ResourceView" + }, + "response": { + "$ref": "ZoneViewsInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "resourceviews.zoneViews.list", + "path": "{projectName}/zones/{zone}/resourceViews", + "httpMethod": "GET", + "description": "List resource views.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone" + ], + "response": { + "$ref": "ZoneViewsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "listresources": { + "id": "resourceviews.zoneViews.listresources", + "path": "{projectName}/zones/{zone}/resourceViews/{resourceViewName}/resources", + "httpMethod": "POST", + "description": "List the resources of the resource view.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "resourceViewName" + ], + "response": { + "$ref": "ZoneViewsListResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "removeresources": { + "id": "resourceviews.zoneViews.removeresources", + "path": "{projectName}/zones/{zone}/resourceViews/{resourceViewName}/removeResources", + "httpMethod": "POST", + "description": "Remove resources from the view.", + "parameters": { + "projectName": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceViewName": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "projectName", + "zone", + "resourceViewName" + ], + "request": { + "$ref": "ZoneViewsRemoveResourcesRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + } + } + } + } +} diff --git a/etc/api/resourceviews/v1beta2/resourceviews-api.json b/etc/api/resourceviews/v1beta2/resourceviews-api.json new file mode 100644 index 0000000000..1ab4624fe1 --- /dev/null +++ b/etc/api/resourceviews/v1beta2/resourceviews-api.json @@ -0,0 +1,1044 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/h07P0KWaqrcoR1sKo_9XnasKmIs\"", + "discoveryVersion": "v1", + "id": "resourceviews:v1beta2", + "name": "resourceviews", + "version": "v1beta2", + "revision": "20140904", + "title": "Resource Views API", + "description": "The Resource View API allows users to create and manage logical sets of Google Compute Engine instances.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/compute/", + "labels": [ + "limited_availability" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/resourceviews/v1beta2/projects/", + "basePath": "/resourceviews/v1beta2/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "resourceviews/v1beta2/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/compute": { + "description": "View and manage your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/compute.readonly": { + "description": "View your Google Compute Engine resources" + }, + "https://www.googleapis.com/auth/ndev.cloudman": { + "description": "View and manage your Google Cloud Platform management resources and deployment status information" + }, + "https://www.googleapis.com/auth/ndev.cloudman.readonly": { + "description": "View your Google Cloud Platform management resources and deployment status information" + } + } + } + }, + "schemas": { + "Label": { + "id": "Label", + "type": "object", + "description": "The Label to be applied to the resource views.", + "properties": { + "key": { + "type": "string", + "description": "Key of the label." + }, + "value": { + "type": "string", + "description": "Value of the label." + } + } + }, + "ListResourceResponseItem": { + "id": "ListResourceResponseItem", + "type": "object", + "description": "The list response item that contains the resource and end points information.", + "properties": { + "endpoints": { + "type": "object", + "description": "The list of service end points on the resource.", + "additionalProperties": { + "type": "array", + "description": "The name of the service end point.", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "resource": { + "type": "string", + "description": "The full URL of the resource." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An operation resource, used to manage asynchronous API requests.", + "properties": { + "clientOperationId": { + "type": "string", + "description": "[Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project." + }, + "creationTimestamp": { + "type": "string", + "description": "[Output Only] The time that this operation was requested, in RFC3339 text format." + }, + "endTime": { + "type": "string", + "description": "[Output Only] The time that this operation was completed, in RFC3339 text format." + }, + "error": { + "type": "object", + "description": "[Output Only] If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output Only] The error type identifier for this error." + }, + "location": { + "type": "string", + "description": "[Output Only] Indicates the field in the request which caused the error. This property is optional." + }, + "message": { + "type": "string", + "description": "[Output Only] An optional, human-readable error message." + } + } + } + } + } + }, + "httpErrorMessage": { + "type": "string", + "description": "[Output only] If operation fails, the HTTP error message returned." + }, + "httpErrorStatusCode": { + "type": "integer", + "description": "[Output only] If operation fails, the HTTP error status code returned.", + "format": "int32" + }, + "id": { + "type": "string", + "description": "[Output Only] Unique identifier for the resource, generated by the server.", + "format": "uint64" + }, + "insertTime": { + "type": "string", + "description": "[Output Only] The time that this operation was requested, in RFC3339 text format." + }, + "kind": { + "type": "string", + "description": "[Output only] Type of the resource.", + "default": "resourceviews#operation" + }, + "name": { + "type": "string", + "description": "[Output Only] Name of the resource." + }, + "operationType": { + "type": "string", + "description": "[Output only] Type of the operation. Operations include insert, update, and delete." + }, + "progress": { + "type": "integer", + "description": "[Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.", + "format": "int32" + }, + "region": { + "type": "string", + "description": "[Output Only] URL of the region where the operation resides. Only available when performing regional operations." + }, + "selfLink": { + "type": "string", + "description": "[Output Only] Server-defined fully-qualified URL for this resource." + }, + "startTime": { + "type": "string", + "description": "[Output Only] The time that this operation was started by the server, in RFC3339 text format." + }, + "status": { + "type": "string", + "description": "[Output Only] Status of the operation." + }, + "statusMessage": { + "type": "string", + "description": "[Output Only] An optional textual description of the current status of the operation." + }, + "targetId": { + "type": "string", + "description": "[Output Only] Unique target ID which identifies a particular incarnation of the target.", + "format": "uint64" + }, + "targetLink": { + "type": "string", + "description": "[Output only] URL of the resource the operation is mutating." + }, + "user": { + "type": "string", + "description": "[Output Only] User who requested the operation, for example: user@example.com." + }, + "warnings": { + "type": "array", + "description": "[Output Only] If there are issues with this operation, a warning is returned.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "[Output only] The warning type identifier for this warning." + }, + "data": { + "type": "array", + "description": "[Output only] Metadata for this warning in key:value format.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "[Output Only] Metadata key for this warning." + }, + "value": { + "type": "string", + "description": "[Output Only] Metadata value for this warning." + } + } + } + }, + "message": { + "type": "string", + "description": "[Output only] Optional human-readable details for this warning." + } + } + } + }, + "zone": { + "type": "string", + "description": "[Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations." + } + } + }, + "OperationList": { + "id": "OperationList", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the resource; defined by the server (output only)." + }, + "items": { + "type": "array", + "description": "The operation resources.", + "items": { + "$ref": "Operation" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "resourceviews#operationList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used to continue a truncated list request (output only)." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ResourceView": { + "id": "ResourceView", + "type": "object", + "description": "The resource view object.", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "The creation time of the resource view." + }, + "description": { + "type": "string", + "description": "The detailed description of the resource view." + }, + "endpoints": { + "type": "array", + "description": "Services endpoint information.", + "items": { + "$ref": "ServiceEndpoint" + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the service endpoint information." + }, + "id": { + "type": "string", + "description": "[Output Only] The ID of the resource view." + }, + "kind": { + "type": "string", + "description": "Type of the resource.", + "default": "resourceviews#resourceView" + }, + "labels": { + "type": "array", + "description": "The labels for events.", + "items": { + "$ref": "Label" + } + }, + "name": { + "type": "string", + "description": "The name of the resource view." + }, + "network": { + "type": "string", + "description": "The URL of a Compute Engine network to which the resources in the view belong." + }, + "resources": { + "type": "array", + "description": "A list of all resources in the resource view.", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "[Output Only] A self-link to the resource view." + }, + "size": { + "type": "integer", + "description": "The total number of resources in the resource view.", + "format": "uint32" + } + } + }, + "ServiceEndpoint": { + "id": "ServiceEndpoint", + "type": "object", + "description": "The service endpoint that may be started in a VM.", + "properties": { + "name": { + "type": "string", + "description": "The name of the service endpoint." + }, + "port": { + "type": "integer", + "description": "The port of the service endpoint.", + "format": "int32" + } + } + }, + "ZoneViewsAddResourcesRequest": { + "id": "ZoneViewsAddResourcesRequest", + "type": "object", + "description": "The request to add resources to the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be added.", + "items": { + "type": "string" + } + } + } + }, + "ZoneViewsGetServiceResponse": { + "id": "ZoneViewsGetServiceResponse", + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "description": "The service information.", + "items": { + "$ref": "ServiceEndpoint" + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the service information." + } + } + }, + "ZoneViewsList": { + "id": "ZoneViewsList", + "type": "object", + "description": "The response to a list request.", + "properties": { + "items": { + "type": "array", + "description": "The result that contains all resource views that meet the criteria.", + "items": { + "$ref": "ResourceView" + } + }, + "kind": { + "type": "string", + "description": "Type of resource.", + "default": "resourceviews#zoneViewsList" + }, + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + }, + "selfLink": { + "type": "string", + "description": "Server defined URL for this resource (output only)." + } + } + }, + "ZoneViewsListResourcesResponse": { + "id": "ZoneViewsListResourcesResponse", + "type": "object", + "description": "The response to a list resource request.", + "properties": { + "items": { + "type": "array", + "description": "The formatted JSON that is requested by the user.", + "items": { + "$ref": "ListResourceResponseItem" + } + }, + "network": { + "type": "string", + "description": "The URL of a Compute Engine network to which the resources in the view belong." + }, + "nextPageToken": { + "type": "string", + "description": "A token used for pagination." + } + } + }, + "ZoneViewsRemoveResourcesRequest": { + "id": "ZoneViewsRemoveResourcesRequest", + "type": "object", + "description": "The request to remove resources from the resource view.", + "properties": { + "resources": { + "type": "array", + "description": "The list of resources to be removed.", + "items": { + "type": "string" + } + } + } + }, + "ZoneViewsSetServiceRequest": { + "id": "ZoneViewsSetServiceRequest", + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "description": "The service information to be updated.", + "items": { + "$ref": "ServiceEndpoint" + } + }, + "fingerprint": { + "type": "string", + "description": "Fingerprint of the service information; a hash of the contents. This field is used for optimistic locking when updating the service entries." + }, + "resourceName": { + "type": "string", + "description": "The name of the resource if user wants to update the service information of the resource." + } + } + } + }, + "resources": { + "zoneOperations": { + "methods": { + "get": { + "id": "resourceviews.zoneOperations.get", + "path": "{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves the specified zone-specific operation resource.", + "parameters": { + "operation": { + "type": "string", + "description": "Name of the operation resource to return.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "list": { + "id": "resourceviews.zoneOperations.list", + "path": "{project}/zones/{zone}/operations", + "httpMethod": "GET", + "description": "Retrieves the list of operation resources contained within the specified zone.", + "parameters": { + "filter": { + "type": "string", + "description": "Optional. Filter expression for filtering listed resources.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.", + "default": "500", + "format": "uint32", + "minimum": "0", + "maximum": "500", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Name of the project scoping this request.", + "required": true, + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "location": "path" + }, + "zone": { + "type": "string", + "description": "Name of the zone scoping this request.", + "required": true, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + } + } + }, + "zoneViews": { + "methods": { + "addResources": { + "id": "resourceviews.zoneViews.addResources", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}/addResources", + "httpMethod": "POST", + "description": "Add resources to the view.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "request": { + "$ref": "ZoneViewsAddResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "delete": { + "id": "resourceviews.zoneViews.delete", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}", + "httpMethod": "DELETE", + "description": "Delete a resource view.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "get": { + "id": "resourceviews.zoneViews.get", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}", + "httpMethod": "GET", + "description": "Get the information of a zonal resource view.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "response": { + "$ref": "ResourceView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "getService": { + "id": "resourceviews.zoneViews.getService", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}/getService", + "httpMethod": "POST", + "description": "Get the service information of a resource view or a resource.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceName": { + "type": "string", + "description": "The name of the resource if user wants to get the service information of the resource.", + "location": "query" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "response": { + "$ref": "ZoneViewsGetServiceResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "insert": { + "id": "resourceviews.zoneViews.insert", + "path": "{project}/zones/{zone}/resourceViews", + "httpMethod": "POST", + "description": "Create a resource view.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "request": { + "$ref": "ResourceView" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "list": { + "id": "resourceviews.zoneViews.list", + "path": "{project}/zones/{zone}/resourceViews", + "httpMethod": "GET", + "description": "List resource views.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone" + ], + "response": { + "$ref": "ZoneViewsList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "listResources": { + "id": "resourceviews.zoneViews.listResources", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}/resources", + "httpMethod": "GET", + "description": "List the resources of the resource view.", + "parameters": { + "format": { + "type": "string", + "description": "The requested format of the return value. It can be URL or URL_PORT. A JSON object will be included in the response based on the format. The default format is NONE, which results in no JSON in the response.", + "enum": [ + "NONE", + "URL", + "URL_PORT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "listState": { + "type": "string", + "description": "The state of the instance to list. By default, it lists all instances.", + "default": "ALL", + "enum": [ + "ALL", + "RUNNING" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum count of results to be returned. Acceptable values are 0 to 5000, inclusive. (Default: 5000)", + "default": "5000", + "format": "int32", + "minimum": "0", + "maximum": "5000", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "serviceName": { + "type": "string", + "description": "The service name to return in the response. It is optional and if it is not set, all the service end points will be returned.", + "location": "query" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "response": { + "$ref": "ZoneViewsListResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", + "https://www.googleapis.com/auth/ndev.cloudman", + "https://www.googleapis.com/auth/ndev.cloudman.readonly" + ] + }, + "removeResources": { + "id": "resourceviews.zoneViews.removeResources", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}/removeResources", + "httpMethod": "POST", + "description": "Remove resources from the view.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "request": { + "$ref": "ZoneViewsRemoveResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + }, + "setService": { + "id": "resourceviews.zoneViews.setService", + "path": "{project}/zones/{zone}/resourceViews/{resourceView}/setService", + "httpMethod": "POST", + "description": "Update the service information of a resource view or a resource.", + "parameters": { + "project": { + "type": "string", + "description": "The project name of the resource view.", + "required": true, + "location": "path" + }, + "resourceView": { + "type": "string", + "description": "The name of the resource view.", + "required": true, + "location": "path" + }, + "zone": { + "type": "string", + "description": "The zone name of the resource view.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "zone", + "resourceView" + ], + "request": { + "$ref": "ZoneViewsSetServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/ndev.cloudman" + ] + } + } + } + } +} diff --git a/etc/api/shared.yaml b/etc/api/shared.yaml index 2b61aa0516..7c488a232d 100644 --- a/etc/api/shared.yaml +++ b/etc/api/shared.yaml @@ -14,6 +14,8 @@ api: version: v3 - name: drive version: v2 + - name: gmail + version: v1 base_path: "etc/api" terms: # how to actually do something with the API diff --git a/etc/api/siteverification/v1/siteverification-api.json b/etc/api/siteverification/v1/siteverification-api.json new file mode 100644 index 0000000000..af2132e675 --- /dev/null +++ b/etc/api/siteverification/v1/siteverification-api.json @@ -0,0 +1,321 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/RwYHc_wr_RI-M8LU9rCXtGC2FOg\"", + "discoveryVersion": "v1", + "id": "siteVerification:v1", + "name": "siteVerification", + "version": "v1", + "revision": "20131007", + "title": "Google Site Verification API", + "description": "Lets you programatically verify ownership of websites or domains with Google.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/site-verification/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/siteVerification/v1/", + "basePath": "/siteVerification/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "siteVerification/v1/", + "batchPath": "batch", + "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": "false", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/siteverification": { + "description": "Manage the list of sites and domains you control" + }, + "https://www.googleapis.com/auth/siteverification.verify_only": { + "description": "Manage your new site verifications with Google" + } + } + } + }, + "schemas": { + "SiteVerificationWebResourceGettokenRequest": { + "id": "SiteVerificationWebResourceGettokenRequest", + "type": "object", + "properties": { + "site": { + "type": "object", + "description": "The site for which a verification token will be generated.", + "properties": { + "identifier": { + "type": "string", + "description": "The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name." + }, + "type": { + "type": "string", + "description": "The type of resource to be verified. Can be SITE or INET_DOMAIN (domain name)." + } + } + }, + "verificationMethod": { + "type": "string", + "description": "The verification method that will be used to verify this site. For sites, 'FILE' or 'META' methods may be used. For domains, only 'DNS' may be used." + } + } + }, + "SiteVerificationWebResourceGettokenResponse": { + "id": "SiteVerificationWebResourceGettokenResponse", + "type": "object", + "properties": { + "method": { + "type": "string", + "description": "The verification method to use in conjunction with this token. For FILE, the token should be placed in the top-level directory of the site, stored inside a file of the same name. For META, the token should be placed in the HEAD tag of the default page that is loaded for the site. For DNS, the token should be placed in a TXT record of the domain." + }, + "token": { + "type": "string", + "description": "The verification token. The token must be placed appropriately in order for verification to succeed." + } + } + }, + "SiteVerificationWebResourceListResponse": { + "id": "SiteVerificationWebResourceListResponse", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of sites that are owned by the authenticated user.", + "items": { + "$ref": "SiteVerificationWebResourceResource" + } + } + } + }, + "SiteVerificationWebResourceResource": { + "id": "SiteVerificationWebResourceResource", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The string used to identify this site. This value should be used in the \"id\" portion of the REST URL for the Get, Update, and Delete operations." + }, + "owners": { + "type": "array", + "description": "The email addresses of all verified owners.", + "items": { + "type": "string" + } + }, + "site": { + "type": "object", + "description": "The address and type of a site that is verified or will be verified.", + "properties": { + "identifier": { + "type": "string", + "description": "The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the site identifier is a domain name." + }, + "type": { + "type": "string", + "description": "The site type. Can be SITE or INET_DOMAIN (domain name)." + } + } + } + } + } + }, + "resources": { + "webResource": { + "methods": { + "delete": { + "id": "siteVerification.webResource.delete", + "path": "webResource/{id}", + "httpMethod": "DELETE", + "description": "Relinquish ownership of a website or domain.", + "parameters": { + "id": { + "type": "string", + "description": "The id of a verified site or domain.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/siteverification" + ] + }, + "get": { + "id": "siteVerification.webResource.get", + "path": "webResource/{id}", + "httpMethod": "GET", + "description": "Get the most current data for a website or domain.", + "parameters": { + "id": { + "type": "string", + "description": "The id of a verified site or domain.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "response": { + "$ref": "SiteVerificationWebResourceResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification" + ] + }, + "getToken": { + "id": "siteVerification.webResource.getToken", + "path": "token", + "httpMethod": "POST", + "description": "Get a verification token for placing on a website or domain.", + "request": { + "$ref": "SiteVerificationWebResourceGettokenRequest" + }, + "response": { + "$ref": "SiteVerificationWebResourceGettokenResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification", + "https://www.googleapis.com/auth/siteverification.verify_only" + ] + }, + "insert": { + "id": "siteVerification.webResource.insert", + "path": "webResource", + "httpMethod": "POST", + "description": "Attempt verification of a website or domain.", + "parameters": { + "verificationMethod": { + "type": "string", + "description": "The method to use for verifying a site or domain.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "verificationMethod" + ], + "request": { + "$ref": "SiteVerificationWebResourceResource" + }, + "response": { + "$ref": "SiteVerificationWebResourceResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification", + "https://www.googleapis.com/auth/siteverification.verify_only" + ] + }, + "list": { + "id": "siteVerification.webResource.list", + "path": "webResource", + "httpMethod": "GET", + "description": "Get the list of your verified websites and domains.", + "response": { + "$ref": "SiteVerificationWebResourceListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification" + ] + }, + "patch": { + "id": "siteVerification.webResource.patch", + "path": "webResource/{id}", + "httpMethod": "PATCH", + "description": "Modify the list of owners for your website or domain. This method supports patch semantics.", + "parameters": { + "id": { + "type": "string", + "description": "The id of a verified site or domain.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "SiteVerificationWebResourceResource" + }, + "response": { + "$ref": "SiteVerificationWebResourceResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification" + ] + }, + "update": { + "id": "siteVerification.webResource.update", + "path": "webResource/{id}", + "httpMethod": "PUT", + "description": "Modify the list of owners for your website or domain.", + "parameters": { + "id": { + "type": "string", + "description": "The id of a verified site or domain.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "id" + ], + "request": { + "$ref": "SiteVerificationWebResourceResource" + }, + "response": { + "$ref": "SiteVerificationWebResourceResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/siteverification" + ] + } + } + } + } +} diff --git a/etc/api/spectrum/v1explorer/spectrum-api.json b/etc/api/spectrum/v1explorer/spectrum-api.json new file mode 100644 index 0000000000..6878b4fc7a --- /dev/null +++ b/etc/api/spectrum/v1explorer/spectrum-api.json @@ -0,0 +1,992 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/MBdb_2wPLVZ-z9ZaAuo8xEjfMbY\"", + "discoveryVersion": "v1", + "id": "spectrum:v1explorer", + "name": "spectrum", + "version": "v1explorer", + "revision": "20150112", + "title": "Google Spectrum Database API", + "description": "API for spectrum-management functions.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "http://developers.google.com/spectrum", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/spectrum/v1explorer/paws/", + "basePath": "/spectrum/v1explorer/paws/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "spectrum/v1explorer/paws/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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": { + "AntennaCharacteristics": { + "id": "AntennaCharacteristics", + "type": "object", + "description": "Antenna characteristics provide additional information, such as the antenna height, antenna type, etc. Whether antenna characteristics must be provided in a request depends on the device type and regulatory domain.", + "properties": { + "height": { + "type": "number", + "description": "The antenna height in meters. Whether the antenna height is required depends on the device type and the regulatory domain. Note that the height may be negative.", + "format": "double" + }, + "heightType": { + "type": "string", + "description": "If the height is required, then the height type (AGL for above ground level or AMSL for above mean sea level) is also required. The default is AGL." + }, + "heightUncertainty": { + "type": "number", + "description": "The height uncertainty in meters. Whether this is required depends on the regulatory domain.", + "format": "double" + } + } + }, + "DatabaseSpec": { + "id": "DatabaseSpec", + "type": "object", + "description": "This message contains the name and URI of a database.", + "properties": { + "name": { + "type": "string", + "description": "The display name for a database." + }, + "uri": { + "type": "string", + "description": "The corresponding URI of the database." + } + } + }, + "DbUpdateSpec": { + "id": "DbUpdateSpec", + "type": "object", + "description": "This message is provided by the database to notify devices of an upcoming change to the database URI.", + "properties": { + "databases": { + "type": "array", + "description": "A required list of one or more databases. A device should update its preconfigured list of databases to replace (only) the database that provided the response with the specified entries.", + "items": { + "$ref": "DatabaseSpec" + } + } + } + }, + "DeviceCapabilities": { + "id": "DeviceCapabilities", + "type": "object", + "description": "Device capabilities provide additional information that may be used by a device to provide additional information to the database that may help it to determine available spectrum. If the database does not support device capabilities it will ignore the parameter altogether.", + "properties": { + "frequencyRanges": { + "type": "array", + "description": "An optional list of frequency ranges supported by the device. Each element must contain start and stop frequencies in which the device can operate. Channel identifiers are optional. When specified, the database should not return available spectrum that falls outside these ranges or channel IDs.", + "items": { + "$ref": "FrequencyRange" + } + } + } + }, + "DeviceDescriptor": { + "id": "DeviceDescriptor", + "type": "object", + "description": "The device descriptor contains parameters that identify the specific device, such as its manufacturer serial number, regulatory-specific identifier (e.g., FCC ID), and any other device characteristics required by regulatory domains.", + "properties": { + "etsiEnDeviceCategory": { + "type": "string", + "description": "Specifies the ETSI white space device category. Valid values are the strings master and slave. This field is case-insensitive. Consult the ETSI documentation for details about the device types." + }, + "etsiEnDeviceEmissionsClass": { + "type": "string", + "description": "Specifies the ETSI white space device emissions class. The values are represented by numeric strings, such as 1, 2, etc. Consult the ETSI documentation for details about the device types." + }, + "etsiEnDeviceType": { + "type": "string", + "description": "Specifies the ETSI white space device type. Valid values are single-letter strings, such as A, B, etc. Consult the ETSI documentation for details about the device types." + }, + "etsiEnTechnologyId": { + "type": "string", + "description": "Specifies the ETSI white space device technology identifier. The string value must not exceed 64 characters in length. Consult the ETSI documentation for details about the device types." + }, + "fccId": { + "type": "string", + "description": "Specifies the device's FCC certification identifier. The value is an identifier string whose length should not exceed 32 characters. Note that, in practice, a valid FCC ID may be limited to 19 characters." + }, + "fccTvbdDeviceType": { + "type": "string", + "description": "Specifies the TV Band White Space device type, as defined by the FCC. Valid values are FIXED, MODE_1, MODE_2." + }, + "manufacturerId": { + "type": "string", + "description": "The manufacturer's ID may be required by the regulatory domain. This should represent the name of the device manufacturer, should be consistent across all devices from the same manufacturer, and should be distinct from that of other manufacturers. The string value must not exceed 64 characters in length." + }, + "modelId": { + "type": "string", + "description": "The device's model ID may be required by the regulatory domain. The string value must not exceed 64 characters in length." + }, + "rulesetIds": { + "type": "array", + "description": "The list of identifiers for rulesets supported by the device. A database may require that the device provide this list before servicing the device requests. If the database does not support any of the rulesets specified in the list, the database may refuse to service the device requests. If present, the list must contain at least one entry.\n\nFor information about the valid requests, see section 9.2 of the PAWS specification. Currently, FccTvBandWhiteSpace-2010 is the only supported ruleset.", + "items": { + "type": "string" + } + }, + "serialNumber": { + "type": "string", + "description": "The manufacturer's device serial number; required by the applicable regulatory domain. The length of the value must not exceed 64 characters." + } + } + }, + "DeviceOwner": { + "id": "DeviceOwner", + "type": "object", + "description": "This parameter contains device-owner information required as part of device registration. The regulatory domains may require additional parameters.\n\nAll contact information must be expressed using the structure defined by the vCard format specification. Only the contact fields of vCard are supported: \n- fn: Full name of an individual \n- org: Name of the organization \n- adr: Address fields \n- tel: Telephone numbers \n- email: Email addresses \n\nNote that the vCard specification defines maximum lengths for each field.", + "properties": { + "operator": { + "$ref": "Vcard", + "description": "The vCard contact information for the device operator is optional, but may be required by specific regulatory domains." + }, + "owner": { + "$ref": "Vcard", + "description": "The vCard contact information for the individual or business that owns the device is required." + } + } + }, + "DeviceValidity": { + "id": "DeviceValidity", + "type": "object", + "description": "The device validity element describes whether a particular device is valid to operate in the regulatory domain.", + "properties": { + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "The descriptor of the device for which the validity check was requested. It will always be present." + }, + "isValid": { + "type": "boolean", + "description": "The validity status: true if the device is valid for operation, false otherwise. It will always be present." + }, + "reason": { + "type": "string", + "description": "If the device identifier is not valid, the database may include a reason. The reason may be in any language. The length of the value should not exceed 128 characters." + } + } + }, + "EventTime": { + "id": "EventTime", + "type": "object", + "description": "The start and stop times of an event. This is used to indicate the time period for which a spectrum profile is valid.\n\nBoth times are expressed using the format, YYYY-MM-DDThh:mm:ssZ, as defined in RFC3339. The times must be expressed using UTC.", + "properties": { + "startTime": { + "type": "string", + "description": "The inclusive start of the event. It will be present." + }, + "stopTime": { + "type": "string", + "description": "The exclusive end of the event. It will be present." + } + } + }, + "FrequencyRange": { + "id": "FrequencyRange", + "type": "object", + "description": "A specific range of frequencies together with the associated maximum power level and channel identifier.", + "properties": { + "channelId": { + "type": "string", + "description": "The database may include a channel identifier, when applicable. When it is included, the device should treat it as informative. The length of the identifier should not exceed 16 characters." + }, + "maxPowerDBm": { + "type": "number", + "description": "The maximum total power level (EIRP)—computed over the corresponding operating bandwidth—that is permitted within the frequency range. Depending on the context in which the frequency-range element appears, this value may be required. For example, it is required in the available-spectrum response, available-spectrum-batch response, and spectrum-use notification message, but it should not be present (it is not applicable) when the frequency range appears inside a device-capabilities message.", + "format": "double" + }, + "startHz": { + "type": "number", + "description": "The required inclusive start of the frequency range (in Hertz).", + "format": "double" + }, + "stopHz": { + "type": "number", + "description": "The required exclusive end of the frequency range (in Hertz).", + "format": "double" + } + } + }, + "GeoLocation": { + "id": "GeoLocation", + "type": "object", + "description": "This parameter is used to specify the geolocation of the device.", + "properties": { + "confidence": { + "type": "integer", + "description": "The location confidence level, as an integer percentage, may be required, depending on the regulatory domain. When the parameter is optional and not provided, its value is assumed to be 95. Valid values range from 0 to 99, since, in practice, 100-percent confidence is not achievable. The confidence value is meaningful only when geolocation refers to a point with uncertainty.", + "format": "int32" + }, + "point": { + "$ref": "GeoLocationEllipse", + "description": "If present, indicates that the geolocation represents a point. Paradoxically, a point is parameterized using an ellipse, where the center represents the location of the point and the distances along the major and minor axes represent the uncertainty. The uncertainty values may be required, depending on the regulatory domain." + }, + "region": { + "$ref": "GeoLocationPolygon", + "description": "If present, indicates that the geolocation represents a region. Database support for regions is optional." + } + } + }, + "GeoLocationEllipse": { + "id": "GeoLocationEllipse", + "type": "object", + "description": "A \"point\" with uncertainty is represented using the Ellipse shape.", + "properties": { + "center": { + "$ref": "GeoLocationPoint", + "description": "A required geo-spatial point representing the center of the ellipse." + }, + "orientation": { + "type": "number", + "description": "A floating-point number that expresses the orientation of the ellipse, representing the rotation, in degrees, of the semi-major axis from North towards the East. For example, when the uncertainty is greatest along the North-South direction, orientation is 0 degrees; conversely, if the uncertainty is greatest along the East-West direction, orientation is 90 degrees. When orientation is not present, the orientation is assumed to be 0.", + "format": "double" + }, + "semiMajorAxis": { + "type": "number", + "description": "A floating-point number that expresses the location uncertainty along the major axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.", + "format": "double" + }, + "semiMinorAxis": { + "type": "number", + "description": "A floating-point number that expresses the location uncertainty along the minor axis of the ellipse. May be required by the regulatory domain. When the uncertainty is optional, the default value is 0.", + "format": "double" + } + } + }, + "GeoLocationPoint": { + "id": "GeoLocationPoint", + "type": "object", + "description": "A single geolocation on the globe.", + "properties": { + "latitude": { + "type": "number", + "description": "A required floating-point number that expresses the latitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.", + "format": "double" + }, + "longitude": { + "type": "number", + "description": "A required floating-point number that expresses the longitude in degrees using the WGS84 datum. For details on this encoding, see the National Imagery and Mapping Agency's Technical Report TR8350.2.", + "format": "double" + } + } + }, + "GeoLocationPolygon": { + "id": "GeoLocationPolygon", + "type": "object", + "description": "A region is represented using the polygonal shape.", + "properties": { + "exterior": { + "type": "array", + "description": "When the geolocation describes a region, the exterior field refers to a list of latitude/longitude points that represent the vertices of a polygon. The first and last points must be the same. Thus, a minimum of four points is required. The following polygon restrictions from RFC5491 apply: \n- A connecting line shall not cross another connecting line of the same polygon. \n- The vertices must be defined in a counterclockwise order. \n- The edges of a polygon are defined by the shortest path between two points in space (not a geodesic curve). Consequently, the length between two adjacent vertices should be restricted to a maximum of 130 km. \n- All vertices are assumed to be at the same altitude. \n- Polygon shapes should be restricted to a maximum of 15 vertices (16 points that include the repeated vertex).", + "items": { + "$ref": "GeoLocationPoint" + } + } + } + }, + "GeoSpectrumSchedule": { + "id": "GeoSpectrumSchedule", + "type": "object", + "description": "The schedule of spectrum profiles available at a particular geolocation.", + "properties": { + "location": { + "$ref": "GeoLocation", + "description": "The geolocation identifies the location at which the spectrum schedule applies. It will always be present." + }, + "spectrumSchedules": { + "type": "array", + "description": "A list of available spectrum profiles and associated times. It will always be present, and at least one schedule must be included (though it may be empty if there is no available spectrum). More than one schedule may be included to represent future changes to the available spectrum.", + "items": { + "$ref": "SpectrumSchedule" + } + } + } + }, + "PawsGetSpectrumBatchRequest": { + "id": "PawsGetSpectrumBatchRequest", + "type": "object", + "description": "The request message for a batch available spectrum query protocol.", + "properties": { + "antenna": { + "$ref": "AntennaCharacteristics", + "description": "Depending on device type and regulatory domain, antenna characteristics may be required." + }, + "capabilities": { + "$ref": "DeviceCapabilities", + "description": "The master device may include its device capabilities to limit the available-spectrum batch response to the spectrum that is compatible with its capabilities. The database should not return spectrum that is incompatible with the specified capabilities." + }, + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "When the available spectrum request is made on behalf of a specific device (a master or slave device), device descriptor information for the device on whose behalf the request is made is required (in such cases, the requestType parameter must be empty). When a requestType value is specified, device descriptor information may be optional or required according to the rules of the applicable regulatory domain." + }, + "locations": { + "type": "array", + "description": "A geolocation list is required. This allows a device to specify its current location plus additional anticipated locations when allowed by the regulatory domain. At least one location must be included. Geolocation must be given as the location of the radiation center of the device's antenna. If a location specifies a region, rather than a point, the database may return an UNIMPLEMENTED error if it does not support query by region.\n\nThere is no upper limit on the number of locations included in a available spectrum batch request, but the database may restrict the number of locations it supports by returning a response with fewer locations than specified in the batch request. Note that geolocations must be those of the master device (a device with geolocation capability that makes an available spectrum batch request), whether the master device is making the request on its own behalf or on behalf of a slave device (one without geolocation capability).", + "items": { + "$ref": "GeoLocation" + } + }, + "masterDeviceDesc": { + "$ref": "DeviceDescriptor", + "description": "When an available spectrum batch request is made by the master device (a device with geolocation capability) on behalf of a slave device (a device without geolocation capability), the rules of the applicable regulatory domain may require the master device to provide its own device descriptor information (in addition to device descriptor information for the slave device in a separate parameter)." + }, + "owner": { + "$ref": "DeviceOwner", + "description": "Depending on device type and regulatory domain, device owner information may be included in an available spectrum batch request. This allows the device to register and get spectrum-availability information in a single request." + }, + "requestType": { + "type": "string", + "description": "The request type parameter is an optional parameter that can be used to modify an available spectrum batch request, but its use depends on applicable regulatory rules. For example, It may be used to request generic slave device parameters without having to specify the device descriptor for a specific device. When the requestType parameter is missing, the request is for a specific device (master or slave), and the device descriptor parameter for the device on whose behalf the batch request is made is required." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsGetSpectrumBatchResponse": { + "id": "PawsGetSpectrumBatchResponse", + "type": "object", + "description": "The response message for the batch available spectrum query contains a schedule of available spectrum for the device at multiple locations.", + "properties": { + "databaseChange": { + "$ref": "DbUpdateSpec", + "description": "A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs." + }, + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "The database must return in its available spectrum response the device descriptor information it received in the master device's available spectrum batch request." + }, + "geoSpectrumSchedules": { + "type": "array", + "description": "The available spectrum batch response must contain a geo-spectrum schedule list, The list may be empty if spectrum is not available. The database may return more than one geo-spectrum schedule to represent future changes to the available spectrum. How far in advance a schedule may be provided depends upon the applicable regulatory domain. The database may return available spectrum for fewer geolocations than requested. The device must not make assumptions about the order of the entries in the list, and must use the geolocation value in each geo-spectrum schedule entry to match available spectrum to a location.", + "items": { + "$ref": "GeoSpectrumSchedule" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsGetSpectrumBatchResponse\".", + "default": "spectrum#pawsGetSpectrumBatchResponse" + }, + "maxContiguousBwHz": { + "type": "number", + "description": "The database may return a constraint on the allowed maximum contiguous bandwidth (in Hertz). A regulatory domain may require the database to return this parameter. When this parameter is present in the response, the device must apply this constraint to its spectrum-selection logic to ensure that no single block of spectrum has bandwidth that exceeds this value.", + "format": "double" + }, + "maxTotalBwHz": { + "type": "number", + "description": "The database may return a constraint on the allowed maximum total bandwidth (in Hertz), which does not need to be contiguous. A regulatory domain may require the database to return this parameter. When this parameter is present in the available spectrum batch response, the device must apply this constraint to its spectrum-selection logic to ensure that total bandwidth does not exceed this value.", + "format": "double" + }, + "needsSpectrumReport": { + "type": "boolean", + "description": "For regulatory domains that require a spectrum-usage report from devices, the database must return true for this parameter if the geo-spectrum schedules list is not empty; otherwise, the database should either return false or omit this parameter. If this parameter is present and its value is true, the device must send a spectrum use notify message to the database; otherwise, the device should not send the notification." + }, + "rulesetInfo": { + "$ref": "RulesetInfo", + "description": "The database should return ruleset information, which identifies the applicable regulatory authority and ruleset for the available spectrum batch response. If included, the device must use the corresponding ruleset to interpret the response. Values provided in the returned ruleset information, such as maxLocationChange, take precedence over any conflicting values provided in the ruleset information returned in a prior initialization response sent by the database to the device." + }, + "timestamp": { + "type": "string", + "description": "The database includes a timestamp of the form, YYYY-MM-DDThh:mm:ssZ (Internet timestamp format per RFC3339), in its available spectrum batch response. The timestamp should be used by the device as a reference for the start and stop times specified in the response spectrum schedules." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsGetSpectrumRequest": { + "id": "PawsGetSpectrumRequest", + "type": "object", + "description": "The request message for the available spectrum query protocol which must include the device's geolocation.", + "properties": { + "antenna": { + "$ref": "AntennaCharacteristics", + "description": "Depending on device type and regulatory domain, the characteristics of the antenna may be required." + }, + "capabilities": { + "$ref": "DeviceCapabilities", + "description": "The master device may include its device capabilities to limit the available-spectrum response to the spectrum that is compatible with its capabilities. The database should not return spectrum that is incompatible with the specified capabilities." + }, + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "When the available spectrum request is made on behalf of a specific device (a master or slave device), device descriptor information for that device is required (in such cases, the requestType parameter must be empty). When a requestType value is specified, device descriptor information may be optional or required according to the rules of the applicable regulatory domain." + }, + "location": { + "$ref": "GeoLocation", + "description": "The geolocation of the master device (a device with geolocation capability that makes an available spectrum request) is required whether the master device is making the request on its own behalf or on behalf of a slave device (one without geolocation capability). The location must be the location of the radiation center of the master device's antenna. To support mobile devices, a regulatory domain may allow the anticipated position of the master device to be given instead. If the location specifies a region, rather than a point, the database may return an UNIMPLEMENTED error code if it does not support query by region." + }, + "masterDeviceDesc": { + "$ref": "DeviceDescriptor", + "description": "When an available spectrum request is made by the master device (a device with geolocation capability) on behalf of a slave device (a device without geolocation capability), the rules of the applicable regulatory domain may require the master device to provide its own device descriptor information (in addition to device descriptor information for the slave device, which is provided in a separate parameter)." + }, + "owner": { + "$ref": "DeviceOwner", + "description": "Depending on device type and regulatory domain, device owner information may be included in an available spectrum request. This allows the device to register and get spectrum-availability information in a single request." + }, + "requestType": { + "type": "string", + "description": "The request type parameter is an optional parameter that can be used to modify an available spectrum request, but its use depends on applicable regulatory rules. It may be used, for example, to request generic slave device parameters without having to specify the device descriptor for a specific device. When the requestType parameter is missing, the request is for a specific device (master or slave), and the deviceDesc parameter for the device on whose behalf the request is made is required." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsGetSpectrumResponse": { + "id": "PawsGetSpectrumResponse", + "type": "object", + "description": "The response message for the available spectrum query which contains a schedule of available spectrum for the device.", + "properties": { + "databaseChange": { + "$ref": "DbUpdateSpec", + "description": "A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs." + }, + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "The database must return, in its available spectrum response, the device descriptor information it received in the master device's available spectrum request." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsGetSpectrumResponse\".", + "default": "spectrum#pawsGetSpectrumResponse" + }, + "maxContiguousBwHz": { + "type": "number", + "description": "The database may return a constraint on the allowed maximum contiguous bandwidth (in Hertz). A regulatory domain may require the database to return this parameter. When this parameter is present in the response, the device must apply this constraint to its spectrum-selection logic to ensure that no single block of spectrum has bandwidth that exceeds this value.", + "format": "double" + }, + "maxTotalBwHz": { + "type": "number", + "description": "The database may return a constraint on the allowed maximum total bandwidth (in Hertz), which need not be contiguous. A regulatory domain may require the database to return this parameter. When this parameter is present in the available spectrum response, the device must apply this constraint to its spectrum-selection logic to ensure that total bandwidth does not exceed this value.", + "format": "double" + }, + "needsSpectrumReport": { + "type": "boolean", + "description": "For regulatory domains that require a spectrum-usage report from devices, the database must return true for this parameter if the spectrum schedule list is not empty; otherwise, the database will either return false or omit this parameter. If this parameter is present and its value is true, the device must send a spectrum use notify message to the database; otherwise, the device must not send the notification." + }, + "rulesetInfo": { + "$ref": "RulesetInfo", + "description": "The database should return ruleset information, which identifies the applicable regulatory authority and ruleset for the available spectrum response. If included, the device must use the corresponding ruleset to interpret the response. Values provided in the returned ruleset information, such as maxLocationChange, take precedence over any conflicting values provided in the ruleset information returned in a prior initialization response sent by the database to the device." + }, + "spectrumSchedules": { + "type": "array", + "description": "The available spectrum response must contain a spectrum schedule list. The list may be empty if spectrum is not available. The database may return more than one spectrum schedule to represent future changes to the available spectrum. How far in advance a schedule may be provided depends on the applicable regulatory domain.", + "items": { + "$ref": "SpectrumSchedule" + } + }, + "timestamp": { + "type": "string", + "description": "The database includes a timestamp of the form YYYY-MM-DDThh:mm:ssZ (Internet timestamp format per RFC3339) in its available spectrum response. The timestamp should be used by the device as a reference for the start and stop times specified in the response spectrum schedules." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsInitRequest": { + "id": "PawsInitRequest", + "type": "object", + "description": "The initialization request message allows the master device to initiate exchange of capabilities with the database.", + "properties": { + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "The DeviceDescriptor parameter is required. If the database does not support the device or any of the rulesets specified in the device descriptor, it must return an UNSUPPORTED error code in the error response." + }, + "location": { + "$ref": "GeoLocation", + "description": "A device's geolocation is required." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsInitResponse": { + "id": "PawsInitResponse", + "type": "object", + "description": "The initialization response message communicates database parameters to the requesting device.", + "properties": { + "databaseChange": { + "$ref": "DbUpdateSpec", + "description": "A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsInitResponse\".", + "default": "spectrum#pawsInitResponse" + }, + "rulesetInfo": { + "$ref": "RulesetInfo", + "description": "The rulesetInfo parameter must be included in the response. This parameter specifies the regulatory domain and parameters applicable to that domain. The database must include the authority field, which defines the regulatory domain for the location specified in the INIT_REQ message." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsNotifySpectrumUseRequest": { + "id": "PawsNotifySpectrumUseRequest", + "type": "object", + "description": "The spectrum-use notification message which must contain the geolocation of the Device and parameters required by the regulatory domain.", + "properties": { + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "Device descriptor information is required in the spectrum-use notification message." + }, + "location": { + "$ref": "GeoLocation", + "description": "The geolocation of the master device (the device that is sending the spectrum-use notification) to the database is required in the spectrum-use notification message." + }, + "spectra": { + "type": "array", + "description": "A spectrum list is required in the spectrum-use notification. The list specifies the spectrum that the device expects to use, which includes frequency ranges and maximum power levels. The list may be empty if the device decides not to use any of spectrum. For consistency, the psdBandwidthHz value should match that from one of the spectrum elements in the corresponding available spectrum response previously sent to the device by the database. Note that maximum power levels in the spectrum element must be expressed as power spectral density over the specified psdBandwidthHz value. The actual bandwidth to be used (as computed from the start and stop frequencies) may be different from the psdBandwidthHz value. As an example, when regulatory rules express maximum power spectral density in terms of maximum power over any 100 kHz band, then the psdBandwidthHz value should be set to 100 kHz, even though the actual bandwidth used can be 20 kHz.", + "items": { + "$ref": "SpectrumMessage" + } + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsNotifySpectrumUseResponse": { + "id": "PawsNotifySpectrumUseResponse", + "type": "object", + "description": "An empty response to the notification.", + "properties": { + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsNotifySpectrumUseResponse\".", + "default": "spectrum#pawsNotifySpectrumUseResponse" + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsRegisterRequest": { + "id": "PawsRegisterRequest", + "type": "object", + "description": "The registration request message contains the required registration parameters.", + "properties": { + "antenna": { + "$ref": "AntennaCharacteristics", + "description": "Antenna characteristics, including its height and height type." + }, + "deviceDesc": { + "$ref": "DeviceDescriptor", + "description": "A DeviceDescriptor is required." + }, + "deviceOwner": { + "$ref": "DeviceOwner", + "description": "Device owner information is required." + }, + "location": { + "$ref": "GeoLocation", + "description": "A device's geolocation is required." + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsRegisterResponse": { + "id": "PawsRegisterResponse", + "type": "object", + "description": "The registration response message simply acknowledges receipt of the request and is otherwise empty.", + "properties": { + "databaseChange": { + "$ref": "DbUpdateSpec", + "description": "A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs." + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsRegisterResponse\".", + "default": "spectrum#pawsRegisterResponse" + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsVerifyDeviceRequest": { + "id": "PawsVerifyDeviceRequest", + "type": "object", + "description": "The device validation request message.", + "properties": { + "deviceDescs": { + "type": "array", + "description": "A list of device descriptors, which specifies the slave devices to be validated, is required.", + "items": { + "$ref": "DeviceDescriptor" + } + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "PawsVerifyDeviceResponse": { + "id": "PawsVerifyDeviceResponse", + "type": "object", + "description": "The device validation response message.", + "properties": { + "databaseChange": { + "$ref": "DbUpdateSpec", + "description": "A database may include the databaseChange parameter to notify a device of a change to its database URI, providing one or more alternate database URIs. The device should use this information to update its list of pre-configured databases by (only) replacing its entry for the responding database with the list of alternate URIs." + }, + "deviceValidities": { + "type": "array", + "description": "A device validities list is required in the device validation response to report whether each slave device listed in a previous device validation request is valid. The number of entries must match the number of device descriptors listed in the previous device validation request.", + "items": { + "$ref": "DeviceValidity" + } + }, + "kind": { + "type": "string", + "description": "Identifies what kind of resource this is. Value: the fixed string \"spectrum#pawsVerifyDeviceResponse\".", + "default": "spectrum#pawsVerifyDeviceResponse" + }, + "type": { + "type": "string", + "description": "The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...).\n\nRequired field." + }, + "version": { + "type": "string", + "description": "The PAWS version. Must be exactly 1.0.\n\nRequired field." + } + } + }, + "RulesetInfo": { + "id": "RulesetInfo", + "type": "object", + "description": "This contains parameters for the ruleset of a regulatory domain that is communicated using the initialization and available-spectrum processes.", + "properties": { + "authority": { + "type": "string", + "description": "The regulatory domain to which the ruleset belongs is required. It must be a 2-letter country code. The device should use this to determine additional device behavior required by the associated regulatory domain." + }, + "maxLocationChange": { + "type": "number", + "description": "The maximum location change in meters is required in the initialization response, but optional otherwise. When the device changes location by more than this specified distance, it must contact the database to get the available spectrum for the new location. If the device is using spectrum that is no longer available, it must immediately cease use of the spectrum under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.", + "format": "double" + }, + "maxPollingSecs": { + "type": "integer", + "description": "The maximum duration, in seconds, between requests for available spectrum. It is required in the initialization response, but optional otherwise. The device must contact the database to get available spectrum no less frequently than this duration. If the new spectrum information indicates that the device is using spectrum that is no longer available, it must immediately cease use of those frequencies under rules for database-managed spectrum. If this value is provided within the context of an available-spectrum response, it takes precedence over the value within the initialization response.", + "format": "int32" + }, + "rulesetIds": { + "type": "array", + "description": "The identifiers of the rulesets supported for the device's location. The database should include at least one applicable ruleset in the initialization response. The device may use the ruleset identifiers to determine parameters to include in subsequent requests. Within the context of the available-spectrum responses, the database should include the identifier of the ruleset that it used to determine the available-spectrum response. If included, the device must use the specified ruleset to interpret the response. If the device does not support the indicated ruleset, it must not operate in the spectrum governed by the ruleset.", + "items": { + "type": "string" + } + } + } + }, + "SpectrumMessage": { + "id": "SpectrumMessage", + "type": "object", + "description": "Available spectrum can be logically characterized by a list of frequency ranges and permissible power levels for each range.", + "properties": { + "bandwidth": { + "type": "number", + "description": "The bandwidth (in Hertz) for which permissible power levels are specified. For example, FCC regulation would require only one spectrum specification at 6MHz bandwidth, but Ofcom regulation would require two specifications, at 0.1MHz and 8MHz. This parameter may be empty if there is no available spectrum. It will be present otherwise.", + "format": "double" + }, + "frequencyRanges": { + "type": "array", + "description": "The list of frequency ranges and permissible power levels. The list may be empty if there is no available spectrum, otherwise it will be present.", + "items": { + "$ref": "FrequencyRange" + } + } + } + }, + "SpectrumSchedule": { + "id": "SpectrumSchedule", + "type": "object", + "description": "The spectrum schedule element combines an event time with spectrum profile to define a time period in which the profile is valid.", + "properties": { + "eventTime": { + "$ref": "EventTime", + "description": "The event time expresses when the spectrum profile is valid. It will always be present." + }, + "spectra": { + "type": "array", + "description": "A list of spectrum messages representing the usable profile. It will always be present, but may be empty when there is no available spectrum.", + "items": { + "$ref": "SpectrumMessage" + } + } + } + }, + "Vcard": { + "id": "Vcard", + "type": "object", + "description": "A vCard-in-JSON message that contains only the fields needed for PAWS: \n- fn: Full name of an individual \n- org: Name of the organization \n- adr: Address fields \n- tel: Telephone numbers \n- email: Email addresses", + "properties": { + "adr": { + "$ref": "VcardAddress", + "description": "The street address of the entity." + }, + "email": { + "$ref": "VcardTypedText", + "description": "An email address that can be used to reach the contact." + }, + "fn": { + "type": "string", + "description": "The full name of the contact person. For example: John A. Smith." + }, + "org": { + "$ref": "VcardTypedText", + "description": "The organization associated with the registering entity." + }, + "tel": { + "$ref": "VcardTelephone", + "description": "A telephone number that can be used to call the contact." + } + } + }, + "VcardAddress": { + "id": "VcardAddress", + "type": "object", + "description": "The structure used to represent a street address.", + "properties": { + "code": { + "type": "string", + "description": "The postal code associated with the address. For example: 94423." + }, + "country": { + "type": "string", + "description": "The country name. For example: US." + }, + "locality": { + "type": "string", + "description": "The city or local equivalent portion of the address. For example: San Jose." + }, + "pobox": { + "type": "string", + "description": "An optional post office box number." + }, + "region": { + "type": "string", + "description": "The state or local equivalent portion of the address. For example: CA." + }, + "street": { + "type": "string", + "description": "The street number and name. For example: 123 Any St." + } + } + }, + "VcardTelephone": { + "id": "VcardTelephone", + "type": "object", + "description": "The structure used to represent a telephone number.", + "properties": { + "uri": { + "type": "string", + "description": "A nested telephone URI of the form: tel:+1-123-456-7890." + } + } + }, + "VcardTypedText": { + "id": "VcardTypedText", + "type": "object", + "description": "The structure used to represent an organization and an email address.", + "properties": { + "text": { + "type": "string", + "description": "The text string associated with this item. For example, for an org field: ACME, inc. For an email field: smith@example.com." + } + } + } + }, + "resources": { + "paws": { + "methods": { + "getSpectrum": { + "id": "spectrum.paws.getSpectrum", + "path": "getSpectrum", + "httpMethod": "POST", + "description": "Requests information about the available spectrum for a device at a location. Requests from a fixed-mode device must include owner information so the device can be registered with the database.", + "request": { + "$ref": "PawsGetSpectrumRequest" + }, + "response": { + "$ref": "PawsGetSpectrumResponse" + } + }, + "getSpectrumBatch": { + "id": "spectrum.paws.getSpectrumBatch", + "path": "getSpectrumBatch", + "httpMethod": "POST", + "description": "The Google Spectrum Database does not support batch requests, so this method always yields an UNIMPLEMENTED error.", + "request": { + "$ref": "PawsGetSpectrumBatchRequest" + }, + "response": { + "$ref": "PawsGetSpectrumBatchResponse" + } + }, + "init": { + "id": "spectrum.paws.init", + "path": "init", + "httpMethod": "POST", + "description": "Initializes the connection between a white space device and the database.", + "request": { + "$ref": "PawsInitRequest" + }, + "response": { + "$ref": "PawsInitResponse" + } + }, + "notifySpectrumUse": { + "id": "spectrum.paws.notifySpectrumUse", + "path": "notifySpectrumUse", + "httpMethod": "POST", + "description": "Notifies the database that the device has selected certain frequency ranges for transmission. Only to be invoked when required by the regulator. The Google Spectrum Database does not operate in domains that require notification, so this always yields an UNIMPLEMENTED error.", + "request": { + "$ref": "PawsNotifySpectrumUseRequest" + }, + "response": { + "$ref": "PawsNotifySpectrumUseResponse" + } + }, + "register": { + "id": "spectrum.paws.register", + "path": "register", + "httpMethod": "POST", + "description": "The Google Spectrum Database implements registration in the getSpectrum method. As such this always returns an UNIMPLEMENTED error.", + "request": { + "$ref": "PawsRegisterRequest" + }, + "response": { + "$ref": "PawsRegisterResponse" + } + }, + "verifyDevice": { + "id": "spectrum.paws.verifyDevice", + "path": "verifyDevice", + "httpMethod": "POST", + "description": "Validates a device for white space use in accordance with regulatory rules. The Google Spectrum Database does not support master/slave configurations, so this always yields an UNIMPLEMENTED error.", + "request": { + "$ref": "PawsVerifyDeviceRequest" + }, + "response": { + "$ref": "PawsVerifyDeviceResponse" + } + } + } + } + } +} diff --git a/etc/api/sqladmin/v1beta1/sqladmin-api.json b/etc/api/sqladmin/v1beta1/sqladmin-api.json new file mode 100644 index 0000000000..4e96962a3c --- /dev/null +++ b/etc/api/sqladmin/v1beta1/sqladmin-api.json @@ -0,0 +1,1197 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_MldXAnmrF3YuGWywxzUjYf4iHg\"", + "discoveryVersion": "v1", + "id": "sqladmin:v1beta1", + "name": "sqladmin", + "canonicalName": "SQL Admin", + "version": "v1beta1", + "revision": "20150109", + "title": "Cloud SQL Administration API", + "description": "API for Cloud SQL database instance management.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/cloud-sql/docs/admin-api/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/sql/v1beta1/", + "basePath": "/sql/v1beta1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "sql/v1beta1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/sqlservice.admin": { + "description": "Manage your Google SQL Service instances" + } + } + } + }, + "schemas": { + "BackupConfiguration": { + "id": "BackupConfiguration", + "type": "object", + "description": "Database instance backup configuration.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this configuration is enabled." + }, + "id": { + "type": "string", + "description": "Identifier for this configuration. This gets generated automatically when a backup configuration is created." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupConfiguration.", + "default": "sql#backupConfiguration" + }, + "startTime": { + "type": "string", + "description": "Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM." + } + } + }, + "BackupRun": { + "id": "BackupRun", + "type": "object", + "description": "A database instance backup run resource.", + "properties": { + "backupConfiguration": { + "type": "string", + "description": "Backup Configuration identifier." + }, + "dueTime": { + "type": "string", + "description": "The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "endTime": { + "type": "string", + "description": "The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "enqueuedTime": { + "type": "string", + "description": "The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status." + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRun.", + "default": "sql#backupRun" + }, + "startTime": { + "type": "string", + "description": "The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "The status of this run." + } + } + }, + "BackupRunsListResponse": { + "id": "BackupRunsListResponse", + "type": "object", + "description": "Backup run list results.", + "properties": { + "items": { + "type": "array", + "description": "A list of backup runs in reverse chronological order of the enqueued time.", + "items": { + "$ref": "BackupRun" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRunsList.", + "default": "sql#backupRunsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "DatabaseInstance": { + "id": "DatabaseInstance", + "type": "object", + "description": "A Cloud SQL instance resource.", + "properties": { + "currentDiskSize": { + "type": "string", + "description": "The current disk usage of the instance in bytes.", + "format": "int64" + }, + "databaseVersion": { + "type": "string", + "description": "The database engine type and version, for example MYSQL_5_5 for MySQL 5.5." + }, + "etag": { + "type": "string", + "description": "Etag for this resource - a version number for the settings object in this resource. This field has no effect when passed as a request parameter. Instead, the contents of this field should be passed in an 'If-Match' http header for use in optimistic locking.", + "annotations": { + "required": [ + "sql.instances.update" + ] + } + }, + "instance": { + "type": "string", + "description": "Name of the Cloud SQL instance. This does not include the project ID.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + }, + "kind": { + "type": "string", + "description": "This is always sql#instance.", + "default": "sql#instance" + }, + "maxDiskSize": { + "type": "string", + "description": "The maximum disk size of the instance in bytes.", + "format": "int64" + }, + "project": { + "type": "string", + "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + }, + "region": { + "type": "string", + "description": "The geographical region. Can be us-central or europe-west1. Defaults to us-central. The region can not be changed after instance creation." + }, + "settings": { + "$ref": "Settings", + "description": "The user settings." + }, + "state": { + "type": "string", + "description": "The current serving state of the Cloud SQL instance. This can be one of the following.\nRUNNABLE: The instance is running, or is ready to run when accessed.\nSUSPENDED: The instance is not available, for example due to problems with billing.\nPENDING_CREATE: The instance is being created.\nMAINTENANCE: The instance is down for maintenance.\nUNKNOWN_STATE: The state of the instance is unknown." + } + } + }, + "ExportContext": { + "id": "ExportContext", + "type": "object", + "description": "Database instance export context.", + "properties": { + "database": { + "type": "array", + "description": "Databases (for example, guestbook) from which the export is made. If unspecified, all databases are exported.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#exportContext.", + "default": "sql#exportContext" + }, + "table": { + "type": "array", + "description": "Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.", + "items": { + "type": "string" + } + }, + "uri": { + "type": "string", + "description": "The path to the file in Google Cloud Storage where the export will be stored, or where it was already stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If the filename ends with .gz, the contents are compressed." + } + } + }, + "ImportContext": { + "id": "ImportContext", + "type": "object", + "description": "Database instance import context.", + "properties": { + "database": { + "type": "string", + "description": "The database (for example, guestbook) to which the import is made. If not set, it is assumed that the database is specified in the file to be imported." + }, + "kind": { + "type": "string", + "description": "This is always sql#importContext.", + "default": "sql#importContext" + }, + "uri": { + "type": "array", + "description": "A path to the MySQL dump file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported.", + "items": { + "type": "string" + } + } + } + }, + "InstanceOperation": { + "id": "InstanceOperation", + "type": "object", + "description": "An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.", + "properties": { + "endTime": { + "type": "string", + "description": "The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "enqueuedTime": { + "type": "string", + "description": "The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "type": "array", + "description": "The error(s) encountered by this operation. Only set if the operation results in an error.", + "items": { + "$ref": "OperationError" + } + }, + "exportContext": { + "$ref": "ExportContext", + "description": "The context for export operation, if applicable." + }, + "importContext": { + "$ref": "ImportContext", + "description": "The context for import operation, if applicable." + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#instanceOperation.", + "default": "sql#instanceOperation" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + }, + "operationType": { + "type": "string", + "description": "The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME." + }, + "startTime": { + "type": "string", + "description": "The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "state": { + "type": "string", + "description": "The state of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN." + }, + "userEmailAddress": { + "type": "string", + "description": "The email address of the user who initiated this operation." + } + } + }, + "InstancesDeleteResponse": { + "id": "InstancesDeleteResponse", + "type": "object", + "description": "Database instance delete response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesDelete.", + "default": "sql#instancesDelete" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesExportRequest": { + "id": "InstancesExportRequest", + "type": "object", + "description": "Database instance export request.", + "properties": { + "exportContext": { + "$ref": "ExportContext", + "description": "Contains details about the export operation." + } + } + }, + "InstancesExportResponse": { + "id": "InstancesExportResponse", + "type": "object", + "description": "Database instance export response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesExport.", + "default": "sql#instancesExport" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesImportRequest": { + "id": "InstancesImportRequest", + "type": "object", + "description": "Database instance import request.", + "properties": { + "importContext": { + "$ref": "ImportContext", + "description": "Contains details about the import operation." + } + } + }, + "InstancesImportResponse": { + "id": "InstancesImportResponse", + "type": "object", + "description": "Database instance import response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesImport.", + "default": "sql#instancesImport" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesInsertResponse": { + "id": "InstancesInsertResponse", + "type": "object", + "description": "Database instance insert response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesInsert.", + "default": "sql#instancesInsert" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesListResponse": { + "id": "InstancesListResponse", + "type": "object", + "description": "Database instances list response.", + "properties": { + "items": { + "type": "array", + "description": "List of database instance resources.", + "items": { + "$ref": "DatabaseInstance" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#instancesList.", + "default": "sql#instancesList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "InstancesRestartResponse": { + "id": "InstancesRestartResponse", + "type": "object", + "description": "Database instance restart response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesRestart.", + "default": "sql#instancesRestart" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesRestoreBackupResponse": { + "id": "InstancesRestoreBackupResponse", + "type": "object", + "description": "Database instance restore backup response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesRestoreBackup.", + "default": "sql#instancesRestoreBackup" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesUpdateResponse": { + "id": "InstancesUpdateResponse", + "type": "object", + "description": "Database instance update response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesUpdate.", + "default": "sql#instancesUpdate" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve information about the operation." + } + } + }, + "OperationError": { + "id": "OperationError", + "type": "object", + "description": "Database instance operation error.", + "properties": { + "code": { + "type": "string", + "description": "Identifies the specific error that occurred." + }, + "kind": { + "type": "string", + "description": "This is always sql#operationError.", + "default": "sql#operationError" + } + } + }, + "OperationsListResponse": { + "id": "OperationsListResponse", + "type": "object", + "description": "Database instance list operations response.", + "properties": { + "items": { + "type": "array", + "description": "List of operation resources.", + "items": { + "$ref": "InstanceOperation" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#operationsList.", + "default": "sql#operationsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "Settings": { + "id": "Settings", + "type": "object", + "description": "Database instance settings.", + "properties": { + "activationPolicy": { + "type": "string", + "description": "The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.\nALWAYS: The instance should always be active.\nNEVER: The instance should never be activated.\nON_DEMAND: The instance is activated upon receiving requests." + }, + "authorizedGaeApplications": { + "type": "array", + "description": "The AppEngine app ids that can access this instance.", + "items": { + "type": "string" + } + }, + "backupConfiguration": { + "type": "array", + "description": "The daily backup configuration for the instance.", + "items": { + "$ref": "BackupConfiguration" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#settings.", + "default": "sql#settings" + }, + "pricingPlan": { + "type": "string", + "description": "The pricing plan for this instance. This can be either PER_USE or PACKAGE." + }, + "replicationType": { + "type": "string", + "description": "The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS." + }, + "tier": { + "type": "string", + "description": "The tier of service for this instance, for example D1, D2. For more information, see pricing.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + } + } + }, + "Tier": { + "id": "Tier", + "type": "object", + "description": "A Google Cloud SQL service tier resource.", + "properties": { + "DiskQuota": { + "type": "string", + "description": "The maximum disk size of this tier in bytes.", + "format": "int64" + }, + "RAM": { + "type": "string", + "description": "The maximum RAM usage of this tier in bytes.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#tier.", + "default": "sql#tier" + }, + "region": { + "type": "array", + "description": "The applicable regions for this tier. Can be us-east1 and europe-west1.", + "items": { + "type": "string" + } + }, + "tier": { + "type": "string", + "description": "An identifier for the service tier, for example D1, D2 etc. For related information, see Pricing." + } + } + }, + "TiersListResponse": { + "id": "TiersListResponse", + "type": "object", + "description": "Tiers list response.", + "properties": { + "items": { + "type": "array", + "description": "List of tiers.", + "items": { + "$ref": "Tier" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#tiersList.", + "default": "sql#tiersList" + } + } + } + }, + "resources": { + "backupRuns": { + "methods": { + "get": { + "id": "sql.backupRuns.get", + "path": "projects/{project}/instances/{instance}/backupRuns/{backupConfiguration}", + "httpMethod": "GET", + "description": "Retrieves a resource containing information about a backup run.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "path" + }, + "dueTime": { + "type": "string", + "description": "The start time of the four-hour backup window. The backup can occur any time in the window. The time is in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration", + "dueTime" + ], + "response": { + "$ref": "BackupRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.backupRuns.list", + "path": "projects/{project}/instances/{instance}/backupRuns", + "httpMethod": "GET", + "description": "Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the enqueued time.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of backup runs per response.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration" + ], + "response": { + "$ref": "BackupRunsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "instances": { + "methods": { + "delete": { + "id": "sql.instances.delete", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "DELETE", + "description": "Deletes a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "export": { + "id": "sql.instances.export", + "path": "projects/{project}/instances/{instance}/export", + "httpMethod": "POST", + "description": "Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be exported.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesExportRequest" + }, + "response": { + "$ref": "InstancesExportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "sql.instances.get", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "GET", + "description": "Retrieves a resource containing information about a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "DatabaseInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "import": { + "id": "sql.instances.import", + "path": "projects/{project}/instances/{instance}/import", + "httpMethod": "POST", + "description": "Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesImportRequest" + }, + "response": { + "$ref": "InstancesImportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "sql.instances.insert", + "path": "projects/{project}/instances", + "httpMethod": "POST", + "description": "Creates a new Cloud SQL instance.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.instances.list", + "path": "projects/{project}/instances", + "httpMethod": "GET", + "description": "Lists instances under a given project in the alphabetical order of the instance name.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of results to return per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstancesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "id": "sql.instances.patch", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PATCH", + "description": "Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. This method supports patch semantics.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restart": { + "id": "sql.instances.restart", + "path": "projects/{project}/instances/{instance}/restart", + "httpMethod": "POST", + "description": "Restarts a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be restarted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesRestartResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restoreBackup": { + "id": "sql.instances.restoreBackup", + "path": "projects/{project}/instances/{instance}/restoreBackup", + "httpMethod": "POST", + "description": "Restores a backup of a Cloud SQL instance.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "The identifier of the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "query" + }, + "dueTime": { + "type": "string", + "description": "The start time of the four-hour backup window. The backup can occur any time in the window. The time is in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration", + "dueTime" + ], + "response": { + "$ref": "InstancesRestoreBackupResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "id": "sql.instances.update", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PUT", + "description": "Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "etagRequired": true, + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "id": "sql.operations.get", + "path": "projects/{project}/instances/{instance}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves an instance operation that has been performed on an instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "operation": { + "type": "string", + "description": "Instance operation ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "operation" + ], + "response": { + "$ref": "InstanceOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.operations.list", + "path": "projects/{project}/instances/{instance}/operations", + "httpMethod": "GET", + "description": "Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of operations per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "OperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "tiers": { + "methods": { + "list": { + "id": "sql.tiers.list", + "path": "tiers", + "httpMethod": "GET", + "description": "Lists all available service tiers for Google Cloud SQL, for example D1, D2. For related information, see Pricing.", + "response": { + "$ref": "TiersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + } + } +} diff --git a/etc/api/sqladmin/v1beta3/sqladmin-api.json b/etc/api/sqladmin/v1beta3/sqladmin-api.json new file mode 100644 index 0000000000..800e837f93 --- /dev/null +++ b/etc/api/sqladmin/v1beta3/sqladmin-api.json @@ -0,0 +1,1966 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/O6ljRtnlfAyfdcd3dwyJdKZfq0c\"", + "discoveryVersion": "v1", + "id": "sqladmin:v1beta3", + "name": "sqladmin", + "canonicalName": "SQL Admin", + "version": "v1beta3", + "revision": "20150109", + "title": "Cloud SQL Administration API", + "description": "API for Cloud SQL database instance management.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/cloud-sql/docs/admin-api/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/sql/v1beta3/", + "basePath": "/sql/v1beta3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "sql/v1beta3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/sqlservice.admin": { + "description": "Manage your Google SQL Service instances" + } + } + } + }, + "schemas": { + "BackupConfiguration": { + "id": "BackupConfiguration", + "type": "object", + "description": "Database instance backup configuration.", + "properties": { + "binaryLogEnabled": { + "type": "boolean", + "description": "Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well." + }, + "enabled": { + "type": "boolean", + "description": "Whether this configuration is enabled." + }, + "id": { + "type": "string", + "description": "Identifier for this configuration. This gets generated automatically when a backup configuration is created." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupConfiguration.", + "default": "sql#backupConfiguration" + }, + "startTime": { + "type": "string", + "description": "Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM." + } + } + }, + "BackupRun": { + "id": "BackupRun", + "type": "object", + "description": "A database instance backup run resource.", + "properties": { + "backupConfiguration": { + "type": "string", + "description": "Backup Configuration identifier." + }, + "dueTime": { + "type": "string", + "description": "The due time of this run in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "endTime": { + "type": "string", + "description": "The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "enqueuedTime": { + "type": "string", + "description": "The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status." + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRun.", + "default": "sql#backupRun" + }, + "startTime": { + "type": "string", + "description": "The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "The status of this run." + } + } + }, + "BackupRunsListResponse": { + "id": "BackupRunsListResponse", + "type": "object", + "description": "Backup run list results.", + "properties": { + "items": { + "type": "array", + "description": "A list of backup runs in reverse chronological order of the enqueued time.", + "items": { + "$ref": "BackupRun" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRunsList.", + "default": "sql#backupRunsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "BinLogCoordinates": { + "id": "BinLogCoordinates", + "type": "object", + "description": "Binary log coordinates.", + "properties": { + "binLogFileName": { + "type": "string", + "description": "Name of the binary log file for a Cloud SQL instance." + }, + "binLogPosition": { + "type": "string", + "description": "Position (offset) within the binary log file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#binLogCoordinates.", + "default": "sql#binLogCoordinates" + } + } + }, + "CloneContext": { + "id": "CloneContext", + "type": "object", + "description": "Database instance clone context.", + "properties": { + "binLogCoordinates": { + "$ref": "BinLogCoordinates", + "description": "Binary log coordinates, if specified, indentify the position up to which the source instance should be cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates." + }, + "destinationInstanceName": { + "type": "string", + "description": "Name of the Cloud SQL instance to be created as a clone." + }, + "kind": { + "type": "string", + "description": "This is always sql#cloneContext.", + "default": "sql#cloneContext" + }, + "sourceInstanceName": { + "type": "string", + "description": "Name of the Cloud SQL instance to be cloned." + } + } + }, + "DatabaseFlags": { + "id": "DatabaseFlags", + "type": "object", + "description": "MySQL flags for Cloud SQL instances.", + "properties": { + "name": { + "type": "string", + "description": "The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are: character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000" + }, + "value": { + "type": "string", + "description": "The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value." + } + } + }, + "DatabaseInstance": { + "id": "DatabaseInstance", + "type": "object", + "description": "A Cloud SQL instance resource.", + "properties": { + "currentDiskSize": { + "type": "string", + "description": "The current disk usage of the instance in bytes.", + "format": "int64" + }, + "databaseVersion": { + "type": "string", + "description": "The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion cannot be changed after instance creation." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the resource." + }, + "instance": { + "type": "string", + "description": "Name of the Cloud SQL instance. This does not include the project ID.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + }, + "instanceType": { + "type": "string", + "description": "The instance type. This can be one of the following.\nCLOUD_SQL_INSTANCE: Regular Cloud SQL instance.\nREAD_REPLICA_INSTANCE: Cloud SQL instance acting as a read-replica." + }, + "ipAddresses": { + "type": "array", + "description": "The assigned IP addresses for the instance.", + "items": { + "$ref": "IpMapping" + } + }, + "ipv6Address": { + "type": "string", + "description": "The IPv6 address assigned to the instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#instance.", + "default": "sql#instance" + }, + "masterInstanceName": { + "type": "string", + "description": "The name of the instance which will act as master in the replication setup." + }, + "maxDiskSize": { + "type": "string", + "description": "The maximum disk size of the instance in bytes.", + "format": "int64" + }, + "project": { + "type": "string", + "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + }, + "region": { + "type": "string", + "description": "The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation." + }, + "replicaNames": { + "type": "array", + "description": "The replicas of the instance.", + "items": { + "type": "string" + } + }, + "serverCaCert": { + "$ref": "SslCert", + "description": "SSL configuration." + }, + "serviceAccountEmailAddress": { + "type": "string", + "description": "The service account email address assigned to the instance." + }, + "settings": { + "$ref": "Settings", + "description": "The user settings." + }, + "state": { + "type": "string", + "description": "The current serving state of the Cloud SQL instance. This can be one of the following.\nRUNNABLE: The instance is running, or is ready to run when accessed.\nSUSPENDED: The instance is not available, for example due to problems with billing.\nPENDING_CREATE: The instance is being created.\nMAINTENANCE: The instance is down for maintenance.\nUNKNOWN_STATE: The state of the instance is unknown." + } + } + }, + "ExportContext": { + "id": "ExportContext", + "type": "object", + "description": "Database instance export context.", + "properties": { + "database": { + "type": "array", + "description": "Databases (for example, guestbook) from which the export is made. If unspecified, all databases are exported.", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#exportContext.", + "default": "sql#exportContext" + }, + "table": { + "type": "array", + "description": "Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.", + "items": { + "type": "string" + } + }, + "uri": { + "type": "string", + "description": "The path to the file in Google Cloud Storage where the export will be stored, or where it was already stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If the filename ends with .gz, the contents are compressed." + } + } + }, + "Flag": { + "id": "Flag", + "type": "object", + "description": "A Google Cloud SQL service flag resource.", + "properties": { + "allowedStringValues": { + "type": "array", + "description": "For STRING flags, a list of strings that the value can be set to.", + "items": { + "type": "string" + } + }, + "appliesTo": { + "type": "array", + "description": "The database version this flag applies to. Currently this can only be [MYSQL_5_5].", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#flag.", + "default": "sql#flag" + }, + "maxValue": { + "type": "string", + "description": "For INTEGER flags, the maximum allowed value.", + "format": "int64" + }, + "minValue": { + "type": "string", + "description": "For INTEGER flags, the minimum allowed value.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "This is the name of the flag. Flag names always use underscores, not hyphens, e.g. max_allowed_packet" + }, + "type": { + "type": "string", + "description": "The type of the flag. Flags are typed to being BOOLEAN, STRING, INTEGER or NONE. NONE is used for flags which do not take a value, such as skip_grant_tables." + } + } + }, + "FlagsListResponse": { + "id": "FlagsListResponse", + "type": "object", + "description": "Flags list response.", + "properties": { + "items": { + "type": "array", + "description": "List of flags.", + "items": { + "$ref": "Flag" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#flagsList.", + "default": "sql#flagsList" + } + } + }, + "ImportContext": { + "id": "ImportContext", + "type": "object", + "description": "Database instance import context.", + "properties": { + "database": { + "type": "string", + "description": "The database (for example, guestbook) to which the import is made. If not set, it is assumed that the database is specified in the file to be imported." + }, + "kind": { + "type": "string", + "description": "This is always sql#importContext.", + "default": "sql#importContext" + }, + "uri": { + "type": "array", + "description": "A path to the MySQL dump file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported.", + "items": { + "type": "string" + } + } + } + }, + "InstanceOperation": { + "id": "InstanceOperation", + "type": "object", + "description": "An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.", + "properties": { + "endTime": { + "type": "string", + "description": "The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "enqueuedTime": { + "type": "string", + "description": "The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "type": "array", + "description": "The error(s) encountered by this operation. Only set if the operation results in an error.", + "items": { + "$ref": "OperationError" + } + }, + "exportContext": { + "$ref": "ExportContext", + "description": "The context for export operation, if applicable." + }, + "importContext": { + "$ref": "ImportContext", + "description": "The context for import operation, if applicable." + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#instanceOperation.", + "default": "sql#instanceOperation" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + }, + "operationType": { + "type": "string", + "description": "The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME." + }, + "startTime": { + "type": "string", + "description": "The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "state": { + "type": "string", + "description": "The state of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN." + }, + "userEmailAddress": { + "type": "string", + "description": "The email address of the user who initiated this operation." + } + } + }, + "InstanceSetRootPasswordRequest": { + "id": "InstanceSetRootPasswordRequest", + "type": "object", + "description": "Database instance set root password request.", + "properties": { + "setRootPasswordContext": { + "$ref": "SetRootPasswordContext", + "description": "Set Root Password Context." + } + } + }, + "InstancesCloneRequest": { + "id": "InstancesCloneRequest", + "type": "object", + "description": "Database instance clone request.", + "properties": { + "cloneContext": { + "$ref": "CloneContext", + "description": "Contains details about the clone operation." + } + } + }, + "InstancesCloneResponse": { + "id": "InstancesCloneResponse", + "type": "object", + "description": "Database instance clone response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesClone.", + "default": "sql#instancesClone" + }, + "operation": { + "type": "string", + "description": "An unique identifier for the operation associated with the cloned instance. You can use this identifier to retrieve the Operations resource, which has information about the operation." + } + } + }, + "InstancesDeleteResponse": { + "id": "InstancesDeleteResponse", + "type": "object", + "description": "Database instance delete response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesDelete.", + "default": "sql#instancesDelete" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesExportRequest": { + "id": "InstancesExportRequest", + "type": "object", + "description": "Database instance export request.", + "properties": { + "exportContext": { + "$ref": "ExportContext", + "description": "Contains details about the export operation." + } + } + }, + "InstancesExportResponse": { + "id": "InstancesExportResponse", + "type": "object", + "description": "Database instance export response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesExport.", + "default": "sql#instancesExport" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesImportRequest": { + "id": "InstancesImportRequest", + "type": "object", + "description": "Database instance import request.", + "properties": { + "importContext": { + "$ref": "ImportContext", + "description": "Contains details about the import operation." + } + } + }, + "InstancesImportResponse": { + "id": "InstancesImportResponse", + "type": "object", + "description": "Database instance import response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesImport.", + "default": "sql#instancesImport" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesInsertResponse": { + "id": "InstancesInsertResponse", + "type": "object", + "description": "Database instance insert response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesInsert.", + "default": "sql#instancesInsert" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesListResponse": { + "id": "InstancesListResponse", + "type": "object", + "description": "Database instances list response.", + "properties": { + "items": { + "type": "array", + "description": "List of database instance resources.", + "items": { + "$ref": "DatabaseInstance" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#instancesList.", + "default": "sql#instancesList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "InstancesPromoteReplicaResponse": { + "id": "InstancesPromoteReplicaResponse", + "type": "object", + "description": "Database promote read replica response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesPromoteReplica.", + "default": "sql#instancesPromoteReplica" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesResetSslConfigResponse": { + "id": "InstancesResetSslConfigResponse", + "type": "object", + "description": "Database instance resetSslConfig response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesResetSslConfig.", + "default": "sql#instancesResetSslConfig" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation. All ssl client certificates will be deleted and a new server certificate will be created. Does not take effect until the next instance restart." + } + } + }, + "InstancesRestartResponse": { + "id": "InstancesRestartResponse", + "type": "object", + "description": "Database instance restart response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesRestart.", + "default": "sql#instancesRestart" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesRestoreBackupResponse": { + "id": "InstancesRestoreBackupResponse", + "type": "object", + "description": "Database instance restore backup response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesRestoreBackup.", + "default": "sql#instancesRestoreBackup" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesSetRootPasswordResponse": { + "id": "InstancesSetRootPasswordResponse", + "type": "object", + "description": "Database instance set root password response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesSetRootPassword.", + "default": "sql#instancesSetRootPassword" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "InstancesUpdateResponse": { + "id": "InstancesUpdateResponse", + "type": "object", + "description": "Database instance update response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#instancesUpdate.", + "default": "sql#instancesUpdate" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve information about the operation." + } + } + }, + "IpConfiguration": { + "id": "IpConfiguration", + "type": "object", + "description": "IP Management configuration.", + "properties": { + "authorizedNetworks": { + "type": "array", + "description": "The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).", + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Whether the instance should be assigned an IP address or not." + }, + "kind": { + "type": "string", + "description": "This is always sql#ipConfiguration.", + "default": "sql#ipConfiguration" + }, + "requireSsl": { + "type": "boolean", + "description": "Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP." + } + } + }, + "IpMapping": { + "id": "IpMapping", + "type": "object", + "description": "Database instance IP Mapping.", + "properties": { + "ipAddress": { + "type": "string", + "description": "The IP address assigned." + }, + "timeToRetire": { + "type": "string", + "description": "The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.", + "format": "date-time" + } + } + }, + "LocationPreference": { + "id": "LocationPreference", + "type": "object", + "description": "Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified.", + "properties": { + "followGaeApplication": { + "type": "string", + "description": "The App Engine application to follow, it must be in the same region as the Cloud SQL instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#locationPreference.", + "default": "sql#locationPreference" + }, + "zone": { + "type": "string", + "description": "The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.)." + } + } + }, + "OperationError": { + "id": "OperationError", + "type": "object", + "description": "Database instance operation error.", + "properties": { + "code": { + "type": "string", + "description": "Identifies the specific error that occurred." + }, + "kind": { + "type": "string", + "description": "This is always sql#operationError.", + "default": "sql#operationError" + } + } + }, + "OperationsListResponse": { + "id": "OperationsListResponse", + "type": "object", + "description": "Database instance list operations response.", + "properties": { + "items": { + "type": "array", + "description": "List of operation resources.", + "items": { + "$ref": "InstanceOperation" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#operationsList.", + "default": "sql#operationsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "SetRootPasswordContext": { + "id": "SetRootPasswordContext", + "type": "object", + "description": "Database instance set root password context.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#setRootUserContext.", + "default": "sql#setRootUserContext" + }, + "password": { + "type": "string", + "description": "The password for the root user." + } + } + }, + "Settings": { + "id": "Settings", + "type": "object", + "description": "Database instance settings.", + "properties": { + "activationPolicy": { + "type": "string", + "description": "The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.\nALWAYS: The instance should always be active.\nNEVER: The instance should never be activated.\nON_DEMAND: The instance is activated upon receiving requests." + }, + "authorizedGaeApplications": { + "type": "array", + "description": "The App Engine app IDs that can access this instance.", + "items": { + "type": "string" + } + }, + "backupConfiguration": { + "type": "array", + "description": "The daily backup configuration for the instance.", + "items": { + "$ref": "BackupConfiguration" + } + }, + "databaseFlags": { + "type": "array", + "description": "The database flags passed to the instance at startup.", + "items": { + "$ref": "DatabaseFlags" + } + }, + "databaseReplicationEnabled": { + "type": "boolean", + "description": "Configuration specific to read replica instance. Indicates whether replication is enabled or not." + }, + "ipConfiguration": { + "$ref": "IpConfiguration", + "description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#settings.", + "default": "sql#settings" + }, + "locationPreference": { + "$ref": "LocationPreference", + "description": "The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance." + }, + "pricingPlan": { + "type": "string", + "description": "The pricing plan for this instance. This can be either PER_USE or PACKAGE." + }, + "replicationType": { + "type": "string", + "description": "The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS." + }, + "settingsVersion": { + "type": "string", + "description": "The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.", + "format": "int64", + "annotations": { + "required": [ + "sql.instances.update" + ] + } + }, + "tier": { + "type": "string", + "description": "The tier of service for this instance, for example D1, D2. For more information, see pricing.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + } + } + }, + "SslCert": { + "id": "SslCert", + "type": "object", + "description": "SslCerts Resource", + "properties": { + "cert": { + "type": "string", + "description": "PEM representation." + }, + "certSerialNumber": { + "type": "string", + "description": "Serial number, as extracted from the certificate." + }, + "commonName": { + "type": "string", + "description": "User supplied name. Constrained to [a-zA-Z.-_ ]+." + }, + "createTime": { + "type": "string", + "description": "Time when the certificate was created.", + "format": "date-time" + }, + "expirationTime": { + "type": "string", + "description": "Time when the certificate expires.", + "format": "date-time" + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCert.", + "default": "sql#sslCert" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 Fingerprint." + } + } + }, + "SslCertDetail": { + "id": "SslCertDetail", + "type": "object", + "description": "SslCertDetail.", + "properties": { + "certInfo": { + "$ref": "SslCert", + "description": "The public information about the cert." + }, + "certPrivateKey": { + "type": "string", + "description": "The private key for the client cert, in pem format. Keep private in order to protect your security." + } + } + }, + "SslCertsDeleteResponse": { + "id": "SslCertsDeleteResponse", + "type": "object", + "description": "SslCert delete response.", + "properties": { + "kind": { + "type": "string", + "description": "This is always sql#sslCertsDelete.", + "default": "sql#sslCertsDelete" + }, + "operation": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + }, + "SslCertsInsertRequest": { + "id": "SslCertsInsertRequest", + "type": "object", + "description": "SslCerts insert request.", + "properties": { + "commonName": { + "type": "string", + "description": "User supplied name. Must be a distinct name from the other certificates for this instance. New certificates will not be usable until the instance is restarted." + } + } + }, + "SslCertsInsertResponse": { + "id": "SslCertsInsertResponse", + "type": "object", + "description": "SslCert insert response.", + "properties": { + "clientCert": { + "$ref": "SslCertDetail", + "description": "The new client certificate and private key. The new certificate will not work until the instance is restarted." + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCertsInsert.", + "default": "sql#sslCertsInsert" + }, + "serverCaCert": { + "$ref": "SslCert", + "description": "The server Certificate Authority's certificate. If this is missing you can force a new one to be generated by calling resetSslConfig method on instances resource.." + } + } + }, + "SslCertsListResponse": { + "id": "SslCertsListResponse", + "type": "object", + "description": "SslCerts list response.", + "properties": { + "items": { + "type": "array", + "description": "List of client certificates for the instance.", + "items": { + "$ref": "SslCert" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCertsList.", + "default": "sql#sslCertsList" + } + } + }, + "Tier": { + "id": "Tier", + "type": "object", + "description": "A Google Cloud SQL service tier resource.", + "properties": { + "DiskQuota": { + "type": "string", + "description": "The maximum disk size of this tier in bytes.", + "format": "int64" + }, + "RAM": { + "type": "string", + "description": "The maximum RAM usage of this tier in bytes.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#tier.", + "default": "sql#tier" + }, + "region": { + "type": "array", + "description": "The applicable regions for this tier. Can be us-east1, europe-west1, or asia-east1.", + "items": { + "type": "string" + } + }, + "tier": { + "type": "string", + "description": "An identifier for the service tier, for example D1, D2 etc. For related information, see Pricing." + } + } + }, + "TiersListResponse": { + "id": "TiersListResponse", + "type": "object", + "description": "Tiers list response.", + "properties": { + "items": { + "type": "array", + "description": "List of tiers.", + "items": { + "$ref": "Tier" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#tiersList.", + "default": "sql#tiersList" + } + } + } + }, + "resources": { + "backupRuns": { + "methods": { + "get": { + "id": "sql.backupRuns.get", + "path": "projects/{project}/instances/{instance}/backupRuns/{backupConfiguration}", + "httpMethod": "GET", + "description": "Retrieves information about a specified backup run for a Cloud SQL instance.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "path" + }, + "dueTime": { + "type": "string", + "description": "The start time of the four-hour backup window. The backup can occur any time in the window. The time is in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration", + "dueTime" + ], + "response": { + "$ref": "BackupRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.backupRuns.list", + "path": "projects/{project}/instances/{instance}/backupRuns", + "httpMethod": "GET", + "description": "Lists all backup runs associated with a Cloud SQL instance.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "Identifier for the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of backup runs per response.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration" + ], + "response": { + "$ref": "BackupRunsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "flags": { + "methods": { + "list": { + "id": "sql.flags.list", + "path": "flags", + "httpMethod": "GET", + "description": "Lists all database flags that can be set for Google Cloud SQL instances.", + "response": { + "$ref": "FlagsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "instances": { + "methods": { + "clone": { + "id": "sql.instances.clone", + "path": "projects/{project}/instances/clone", + "httpMethod": "POST", + "description": "Creates a Cloud SQL instance as a clone of a source instance.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the source as well as the clone Cloud SQL instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "InstancesCloneRequest" + }, + "response": { + "$ref": "InstancesCloneResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "delete": { + "id": "sql.instances.delete", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "DELETE", + "description": "Deletes a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "export": { + "id": "sql.instances.export", + "path": "projects/{project}/instances/{instance}/export", + "httpMethod": "POST", + "description": "Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be exported.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesExportRequest" + }, + "response": { + "$ref": "InstancesExportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "sql.instances.get", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "GET", + "description": "Retrieves information about a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "DatabaseInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "import": { + "id": "sql.instances.import", + "path": "projects/{project}/instances/{instance}/import", + "httpMethod": "POST", + "description": "Imports data into a Cloud SQL instance from a MySQL dump file stored in a Google Cloud Storage bucket.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesImportRequest" + }, + "response": { + "$ref": "InstancesImportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "sql.instances.insert", + "path": "projects/{project}/instances", + "httpMethod": "POST", + "description": "Creates a new Cloud SQL instance.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.instances.list", + "path": "projects/{project}/instances", + "httpMethod": "GET", + "description": "Lists instances for a given project, in alphabetical order by instance name.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of results to return per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstancesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "id": "sql.instances.patch", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PATCH", + "description": "Updates the settings of a Cloud SQL instance. This method supports patch semantics.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "promoteReplica": { + "id": "sql.instances.promoteReplica", + "path": "projects/{project}/instances/{instance}/promoteReplica", + "httpMethod": "POST", + "description": "Promotes the read replica instance to be a stand-alone Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL read replica instance name.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "ID of the project that contains the read replica.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesPromoteReplicaResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "resetSslConfig": { + "id": "sql.instances.resetSslConfig", + "path": "projects/{project}/instances/{instance}/resetSslConfig", + "httpMethod": "POST", + "description": "Deletes all client certificates and generates a new server SSL certificate for a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesResetSslConfigResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restart": { + "id": "sql.instances.restart", + "path": "projects/{project}/instances/{instance}/restart", + "httpMethod": "POST", + "description": "Restarts a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be restarted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "InstancesRestartResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restoreBackup": { + "id": "sql.instances.restoreBackup", + "path": "projects/{project}/instances/{instance}/restoreBackup", + "httpMethod": "POST", + "description": "Restores a backup of a Cloud SQL instance.", + "parameters": { + "backupConfiguration": { + "type": "string", + "description": "The identifier of the backup configuration. This gets generated automatically when a backup configuration is created.", + "required": true, + "location": "query" + }, + "dueTime": { + "type": "string", + "description": "The start time of the four-hour backup window. The backup can occur any time in the window. The time is in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "backupConfiguration", + "dueTime" + ], + "response": { + "$ref": "InstancesRestoreBackupResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "setRootPassword": { + "id": "sql.instances.setRootPassword", + "path": "projects/{project}/instances/{instance}/setRootPassword", + "httpMethod": "POST", + "description": "Sets the password for the root user of the specified Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstanceSetRootPasswordRequest" + }, + "response": { + "$ref": "InstancesSetRootPasswordResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "id": "sql.instances.update", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PUT", + "description": "Updates the settings of a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "etagRequired": true, + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "InstancesUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "id": "sql.operations.get", + "path": "projects/{project}/instances/{instance}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves information about a specific operation that was performed on a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "operation": { + "type": "string", + "description": "Instance operation ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "operation" + ], + "response": { + "$ref": "InstanceOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.operations.list", + "path": "projects/{project}/instances/{instance}/operations", + "httpMethod": "GET", + "description": "Lists all operations that have been performed on a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of operations per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "OperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "sslCerts": { + "methods": { + "delete": { + "id": "sql.sslCerts.delete", + "path": "projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "DELETE", + "description": "Deletes an SSL certificate from a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be deleted.", + "required": true, + "location": "path" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 FingerPrint.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "response": { + "$ref": "SslCertsDeleteResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "id": "sql.sslCerts.get", + "path": "projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "GET", + "description": "Retrieves an SSL certificate as specified by its SHA-1 fingerprint.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 FingerPrint.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "response": { + "$ref": "SslCert" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "id": "sql.sslCerts.insert", + "path": "projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "POST", + "description": "Creates an SSL certificate and returns the certificate, the associated private key, and the server certificate authority.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "SslCertsInsertRequest" + }, + "response": { + "$ref": "SslCertsInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.sslCerts.list", + "path": "projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "GET", + "description": "Lists all of the current SSL certificates defined for a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "SslCertsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "tiers": { + "methods": { + "list": { + "id": "sql.tiers.list", + "path": "projects/{project}/tiers", + "httpMethod": "GET", + "description": "Lists service tiers that can be used to create Google Cloud SQL instances.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the project for which to list tiers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TiersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + } + } +} diff --git a/etc/api/sqladmin/v1beta4/sqladmin-api.json b/etc/api/sqladmin/v1beta4/sqladmin-api.json new file mode 100644 index 0000000000..15a33b7594 --- /dev/null +++ b/etc/api/sqladmin/v1beta4/sqladmin-api.json @@ -0,0 +1,2387 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/qCpGAuaU6FEaGvdP2C_Ovqo7mfY\"", + "discoveryVersion": "v1", + "id": "sqladmin:v1beta4", + "name": "sqladmin", + "canonicalName": "SQL Admin", + "version": "v1beta4", + "revision": "20150109", + "title": "Cloud SQL Administration API", + "description": "API for Cloud SQL database instance management.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/cloud-sql/docs/admin-api/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/sql/v1beta4/", + "basePath": "/sql/v1beta4/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "sql/v1beta4/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/sqlservice.admin": { + "description": "Manage your Google SQL Service instances" + } + } + } + }, + "schemas": { + "AclEntry": { + "id": "AclEntry", + "type": "object", + "description": "An entry for an Access Control list.", + "properties": { + "expirationTime": { + "type": "string", + "description": "The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "kind": { + "type": "string", + "description": "This is always sql#aclEntry.", + "default": "sql#aclEntry" + }, + "name": { + "type": "string", + "description": "An optional label to identify this entry." + }, + "value": { + "type": "string", + "description": "The whitelisted value for the access control list." + } + } + }, + "BackupConfiguration": { + "id": "BackupConfiguration", + "type": "object", + "description": "Database instance backup configuration.", + "properties": { + "binaryLogEnabled": { + "type": "boolean", + "description": "Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well." + }, + "enabled": { + "type": "boolean", + "description": "Whether this configuration is enabled." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupConfiguration.", + "default": "sql#backupConfiguration" + }, + "startTime": { + "type": "string", + "description": "Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM." + } + } + }, + "BackupRun": { + "id": "BackupRun", + "type": "object", + "description": "A database instance backup run resource.", + "properties": { + "endTime": { + "type": "string", + "description": "The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "enqueuedTime": { + "type": "string", + "description": "The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "$ref": "OperationError", + "description": "Information about why the backup operation failed. This is only present if the run has the FAILED status." + }, + "id": { + "type": "string", + "description": "A unique identifier for this backup run. Note that this is unique only within the scope of a particular Cloud SQL instance.", + "format": "int64" + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRun.", + "default": "sql#backupRun" + }, + "selfLink": { + "type": "string", + "description": "The URI of this resource." + }, + "startTime": { + "type": "string", + "description": "The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "The status of this run." + }, + "windowStartTime": { + "type": "string", + "description": "The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + } + } + }, + "BackupRunsListResponse": { + "id": "BackupRunsListResponse", + "type": "object", + "description": "Backup run list results.", + "properties": { + "items": { + "type": "array", + "description": "A list of backup runs in reverse chronological order of the enqueued time.", + "items": { + "$ref": "BackupRun" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#backupRunsList.", + "default": "sql#backupRunsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "BinLogCoordinates": { + "id": "BinLogCoordinates", + "type": "object", + "description": "Binary log coordinates.", + "properties": { + "binLogFileName": { + "type": "string", + "description": "Name of the binary log file for a Cloud SQL instance." + }, + "binLogPosition": { + "type": "string", + "description": "Position (offset) within the binary log file.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#binLogCoordinates.", + "default": "sql#binLogCoordinates" + } + } + }, + "CloneContext": { + "id": "CloneContext", + "type": "object", + "description": "Database instance clone context.", + "properties": { + "binLogCoordinates": { + "$ref": "BinLogCoordinates", + "description": "Binary log coordinates, if specified, indentify the the position up to which the source instance should be cloned. If not specified, the source instance is cloned up to the most recent binary log coordintes." + }, + "destinationInstanceName": { + "type": "string", + "description": "Name of the Cloud SQL instance to be created as a clone." + }, + "kind": { + "type": "string", + "description": "This is always sql#cloneContext.", + "default": "sql#cloneContext" + } + } + }, + "Database": { + "id": "Database", + "type": "object", + "description": "A database resource inside a Cloud SQL instance.", + "properties": { + "charset": { + "type": "string", + "description": "The MySQL charset value." + }, + "collation": { + "type": "string", + "description": "The MySQL collation value." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the resource." + }, + "instance": { + "type": "string", + "description": "The name of the Cloud SQL instance. This does not include the project ID.", + "annotations": { + "required": [ + "sql.databases.delete", + "sql.databases.insert", + "sql.databases.update" + ] + } + }, + "kind": { + "type": "string", + "description": "This is always sql#database.", + "default": "sql#database" + }, + "name": { + "type": "string", + "description": "The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.", + "annotations": { + "required": [ + "sql.databases.delete", + "sql.databases.insert", + "sql.databases.update" + ] + } + }, + "project": { + "type": "string", + "description": "The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.", + "annotations": { + "required": [ + "sql.databases.delete", + "sql.databases.insert", + "sql.databases.update" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The URI of this resource." + } + } + }, + "DatabaseFlags": { + "id": "DatabaseFlags", + "type": "object", + "description": "MySQL flags for Cloud SQL instances.", + "properties": { + "name": { + "type": "string", + "description": "The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are: character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000" + }, + "value": { + "type": "string", + "description": "The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value." + } + } + }, + "DatabaseInstance": { + "id": "DatabaseInstance", + "type": "object", + "description": "A Cloud SQL instance resource.", + "properties": { + "currentDiskSize": { + "type": "string", + "description": "The current disk usage of the instance in bytes.", + "format": "int64" + }, + "databaseVersion": { + "type": "string", + "description": "The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the resource." + }, + "instanceType": { + "type": "string", + "description": "The instance type. This can be one of the following.\nCLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.\nREAD_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica." + }, + "ipAddresses": { + "type": "array", + "description": "The assigned IP addresses for the instance.", + "items": { + "$ref": "IpMapping" + } + }, + "ipv6Address": { + "type": "string", + "description": "The IPv6 address assigned to the instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#instance.", + "default": "sql#instance" + }, + "masterInstanceName": { + "type": "string", + "description": "The name of the instance which will act as master in the replication setup." + }, + "maxDiskSize": { + "type": "string", + "description": "The maximum disk size of the instance in bytes.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of the Cloud SQL instance. This does not include the project ID.", + "annotations": { + "required": [ + "sql.instances.insert" + ] + } + }, + "project": { + "type": "string", + "description": "The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable." + }, + "region": { + "type": "string", + "description": "The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation." + }, + "replicaNames": { + "type": "array", + "description": "The replicas of the instance.", + "items": { + "type": "string" + } + }, + "selfLink": { + "type": "string", + "description": "The URI of this resource." + }, + "serverCaCert": { + "$ref": "SslCert", + "description": "SSL configuration." + }, + "serviceAccountEmailAddress": { + "type": "string", + "description": "The service account email address assigned to the instance." + }, + "settings": { + "$ref": "Settings", + "description": "The user settings.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + }, + "state": { + "type": "string", + "description": "The current serving state of the Cloud SQL instance. This can be one of the following.\nRUNNABLE: The instance is running, or is ready to run when accessed.\nSUSPENDED: The instance is not available, for example due to problems with billing.\nPENDING_CREATE: The instance is being created.\nMAINTENANCE: The instance is down for maintenance.\nUNKNOWN_STATE: The state of the instance is unknown." + } + } + }, + "DatabasesListResponse": { + "id": "DatabasesListResponse", + "type": "object", + "description": "Database list response.", + "properties": { + "items": { + "type": "array", + "description": "List of database resources in the instance.", + "items": { + "$ref": "Database" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#databasesList.", + "default": "sql#databasesList" + } + } + }, + "ExportContext": { + "id": "ExportContext", + "type": "object", + "description": "Database instance export context.", + "properties": { + "csvExportOptions": { + "type": "object", + "description": "Options for exporting data as CSV.", + "properties": { + "selectQuery": { + "type": "string", + "description": "The select query used to extract the data." + } + } + }, + "databases": { + "type": "array", + "description": "Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.", + "items": { + "type": "string" + } + }, + "fileType": { + "type": "string", + "description": "The file type for the specified uri.\nSQL: The file contains SQL statements.\nCSV: The file contains CSV data." + }, + "kind": { + "type": "string", + "description": "This is always sql#exportContext.", + "default": "sql#exportContext" + }, + "sqlExportOptions": { + "type": "object", + "description": "Options for exporting data as SQL statements.", + "properties": { + "tables": { + "type": "array", + "description": "Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.", + "items": { + "type": "string" + } + } + } + }, + "uri": { + "type": "string", + "description": "The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed." + } + } + }, + "Flag": { + "id": "Flag", + "type": "object", + "description": "A Google Cloud SQL service flag resource.", + "properties": { + "allowedStringValues": { + "type": "array", + "description": "For STRING flags, a list of strings that the value can be set to.", + "items": { + "type": "string" + } + }, + "appliesTo": { + "type": "array", + "description": "The database version this flag applies to. Currently this can only be [MYSQL_5_5].", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#flag.", + "default": "sql#flag" + }, + "maxValue": { + "type": "string", + "description": "For INTEGER flags, the maximum allowed value.", + "format": "int64" + }, + "minValue": { + "type": "string", + "description": "For INTEGER flags, the minimum allowed value.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "This is the name of the flag. Flag names always use underscores, not hyphens, e.g. max_allowed_packet" + }, + "type": { + "type": "string", + "description": "The type of the flag. Flags are typed to being BOOLEAN, STRING, INTEGER or NONE. NONE is used for flags which do not take a value, such as skip_grant_tables." + } + } + }, + "FlagsListResponse": { + "id": "FlagsListResponse", + "type": "object", + "description": "Flags list response.", + "properties": { + "items": { + "type": "array", + "description": "List of flags.", + "items": { + "$ref": "Flag" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#flagsList.", + "default": "sql#flagsList" + } + } + }, + "ImportContext": { + "id": "ImportContext", + "type": "object", + "description": "Database instance import context.", + "properties": { + "csvImportOptions": { + "type": "object", + "description": "Options for importing data as CSV.", + "properties": { + "columns": { + "type": "array", + "description": "The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.", + "items": { + "type": "string" + } + }, + "table": { + "type": "string", + "description": "The table to which CSV data is imported." + } + } + }, + "database": { + "type": "string", + "description": "The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified." + }, + "fileType": { + "type": "string", + "description": "The file type for the specified uri.\nSQL: The file contains SQL statements.\nCSV: The file contains CSV data." + }, + "kind": { + "type": "string", + "description": "This is always sql#importContext.", + "default": "sql#importContext" + }, + "uri": { + "type": "string", + "description": "A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL." + } + } + }, + "InstancesCloneRequest": { + "id": "InstancesCloneRequest", + "type": "object", + "description": "Database instance clone request.", + "properties": { + "cloneContext": { + "$ref": "CloneContext", + "description": "Contains details about the clone operation." + } + } + }, + "InstancesExportRequest": { + "id": "InstancesExportRequest", + "type": "object", + "description": "Database instance export request.", + "properties": { + "exportContext": { + "$ref": "ExportContext", + "description": "Contains details about the export operation." + } + } + }, + "InstancesImportRequest": { + "id": "InstancesImportRequest", + "type": "object", + "description": "Database instance import request.", + "properties": { + "importContext": { + "$ref": "ImportContext", + "description": "Contains details about the import operation." + } + } + }, + "InstancesListResponse": { + "id": "InstancesListResponse", + "type": "object", + "description": "Database instances list response.", + "properties": { + "items": { + "type": "array", + "description": "List of database instance resources.", + "items": { + "$ref": "DatabaseInstance" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#instancesList.", + "default": "sql#instancesList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "InstancesRestoreBackupRequest": { + "id": "InstancesRestoreBackupRequest", + "type": "object", + "description": "Database instance restore backup request.", + "properties": { + "restoreBackupContext": { + "$ref": "RestoreBackupContext", + "description": "Parameters required to perform the restore backup operation." + } + } + }, + "IpConfiguration": { + "id": "IpConfiguration", + "type": "object", + "description": "IP Management configuration.", + "properties": { + "authorizedNetworks": { + "type": "array", + "description": "The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).", + "items": { + "$ref": "AclEntry" + } + }, + "ipv4Enabled": { + "type": "boolean", + "description": "Whether the instance should be assigned an IP address or not." + }, + "requireSsl": { + "type": "boolean", + "description": "Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP." + } + } + }, + "IpMapping": { + "id": "IpMapping", + "type": "object", + "description": "Database instance IP Mapping.", + "properties": { + "ipAddress": { + "type": "string", + "description": "The IP address assigned." + }, + "timeToRetire": { + "type": "string", + "description": "The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.", + "format": "date-time" + } + } + }, + "LocationPreference": { + "id": "LocationPreference", + "type": "object", + "description": "Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified.", + "properties": { + "followGaeApplication": { + "type": "string", + "description": "The AppEngine application to follow, it must be in the same region as the Cloud SQL instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#locationPreference.", + "default": "sql#locationPreference" + }, + "zone": { + "type": "string", + "description": "The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.)." + } + } + }, + "Operation": { + "id": "Operation", + "type": "object", + "description": "An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.", + "properties": { + "endTime": { + "type": "string", + "description": "The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "error": { + "type": "object", + "description": "If errors occurred during processing of this operation, this field will be populated.", + "properties": { + "errors": { + "type": "array", + "description": "The list of errors encountered while processing this operation.", + "items": { + "$ref": "OperationError" + } + } + } + }, + "exportContext": { + "$ref": "ExportContext", + "description": "The context for export operation, if applicable." + }, + "importContext": { + "$ref": "ImportContext", + "description": "The context for import operation, if applicable." + }, + "insertTime": { + "type": "string", + "description": "The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "kind": { + "type": "string", + "description": "This is always sql#instanceOperation.", + "default": "sql#operation" + }, + "name": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + }, + "operationType": { + "type": "string", + "description": "TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME." + }, + "selfLink": { + "type": "string", + "description": "The URI of this resource." + }, + "startTime": { + "type": "string", + "description": "The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN." + }, + "targetId": { + "type": "string", + "description": "Name of the database instance related to this operation." + }, + "targetLink": { + "type": "string", + "description": "The URI of the instance related to the operation." + }, + "targetProject": { + "type": "string", + "description": "The project ID of the target instance related to this operation." + }, + "user": { + "type": "string", + "description": "The email address of the user who initiated this operation." + } + } + }, + "OperationError": { + "id": "OperationError", + "type": "object", + "description": "Database instance operation error.", + "properties": { + "code": { + "type": "string", + "description": "Identifies the specific error that occurred." + }, + "kind": { + "type": "string", + "description": "This is always sql#operationError.", + "default": "sql#operationError" + }, + "message": { + "type": "string", + "description": "Additional information about the error encountered." + } + } + }, + "OperationsListResponse": { + "id": "OperationsListResponse", + "type": "object", + "description": "Database instance list operations response.", + "properties": { + "items": { + "type": "array", + "description": "List of operation resources.", + "items": { + "$ref": "Operation" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#operationsList.", + "default": "sql#operationsList" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "RestoreBackupContext": { + "id": "RestoreBackupContext", + "type": "object", + "description": "Database instance restore from backup context.", + "properties": { + "backupRunId": { + "type": "string", + "description": "The ID of the backup run to restore from.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#restoreBackupContext.", + "default": "sql#restoreBackupContext" + } + } + }, + "Settings": { + "id": "Settings", + "type": "object", + "description": "Database instance settings.", + "properties": { + "activationPolicy": { + "type": "string", + "description": "The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.\nALWAYS: The instance should always be active.\nNEVER: The instance should never be activated.\nON_DEMAND: The instance is activated upon receiving requests." + }, + "authorizedGaeApplications": { + "type": "array", + "description": "The App Engine app IDs that can access this instance.", + "items": { + "type": "string" + } + }, + "backupConfiguration": { + "$ref": "BackupConfiguration", + "description": "The daily backup configuration for the instance." + }, + "databaseFlags": { + "type": "array", + "description": "The database flags passed to the instance at startup.", + "items": { + "$ref": "DatabaseFlags" + } + }, + "databaseReplicationEnabled": { + "type": "boolean", + "description": "Configuration specific to read replica instances. Indicates whether replication is enabled or not." + }, + "ipConfiguration": { + "$ref": "IpConfiguration", + "description": "The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#settings.", + "default": "sql#settings" + }, + "locationPreference": { + "$ref": "LocationPreference", + "description": "The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance." + }, + "pricingPlan": { + "type": "string", + "description": "The pricing plan for this instance. This can be either PER_USE or PACKAGE." + }, + "replicationType": { + "type": "string", + "description": "The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS." + }, + "settingsVersion": { + "type": "string", + "description": "The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.", + "format": "int64", + "annotations": { + "required": [ + "sql.instances.update" + ] + } + }, + "tier": { + "type": "string", + "description": "The tier of service for this instance, for example D1, D2. For more information, see pricing.", + "annotations": { + "required": [ + "sql.instances.insert", + "sql.instances.update" + ] + } + } + } + }, + "SslCert": { + "id": "SslCert", + "type": "object", + "description": "SslCerts Resource", + "properties": { + "cert": { + "type": "string", + "description": "PEM representation." + }, + "certSerialNumber": { + "type": "string", + "description": "Serial number, as extracted from the certificate." + }, + "commonName": { + "type": "string", + "description": "User supplied name. Constrained to [a-zA-Z.-_ ]+." + }, + "createTime": { + "type": "string", + "description": "The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z", + "format": "date-time" + }, + "expirationTime": { + "type": "string", + "description": "The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.", + "format": "date-time" + }, + "instance": { + "type": "string", + "description": "Name of the database instance." + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCert.", + "default": "sql#sslCert" + }, + "selfLink": { + "type": "string" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 Fingerprint." + } + } + }, + "SslCertDetail": { + "id": "SslCertDetail", + "type": "object", + "description": "SslCertDetail.", + "properties": { + "certInfo": { + "$ref": "SslCert", + "description": "The public information about the cert." + }, + "certPrivateKey": { + "type": "string", + "description": "The private key for the client cert, in pem format. Keep private in order to protect your security." + } + } + }, + "SslCertsInsertRequest": { + "id": "SslCertsInsertRequest", + "type": "object", + "description": "SslCerts insert request.", + "properties": { + "commonName": { + "type": "string", + "description": "User supplied name. Must be a distinct name from the other certificates for this instance. New certificates will not be usable until the instance is restarted." + } + } + }, + "SslCertsInsertResponse": { + "id": "SslCertsInsertResponse", + "type": "object", + "description": "SslCert insert response.", + "properties": { + "clientCert": { + "$ref": "SslCertDetail", + "description": "The new client certificate and private key. The new certificate will not work until the instance is restarted." + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCertsInsert.", + "default": "sql#sslCertsInsert" + }, + "serverCaCert": { + "$ref": "SslCert", + "description": "The server Certificate Authority's certificate. If this is missing you can force a new one to be generated by calling resetSslConfig method on instances resource." + } + } + }, + "SslCertsListResponse": { + "id": "SslCertsListResponse", + "type": "object", + "description": "SslCerts list response.", + "properties": { + "items": { + "type": "array", + "description": "List of client certificates for the instance.", + "items": { + "$ref": "SslCert" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#sslCertsList.", + "default": "sql#sslCertsList" + } + } + }, + "Tier": { + "id": "Tier", + "type": "object", + "description": "A Google Cloud SQL service tier resource.", + "properties": { + "DiskQuota": { + "type": "string", + "description": "The maximum disk size of this tier in bytes.", + "format": "int64" + }, + "RAM": { + "type": "string", + "description": "The maximum RAM usage of this tier in bytes.", + "format": "int64" + }, + "kind": { + "type": "string", + "description": "This is always sql#tier.", + "default": "sql#tier" + }, + "region": { + "type": "array", + "description": "The applicable regions for this tier. Can be us-east1, europe-west1 or asia-east1.", + "items": { + "type": "string" + } + }, + "tier": { + "type": "string", + "description": "An identifier for the service tier, for example D1, D2 etc. For related information, see Pricing." + } + } + }, + "TiersListResponse": { + "id": "TiersListResponse", + "type": "object", + "description": "Tiers list response.", + "properties": { + "items": { + "type": "array", + "description": "List of tiers.", + "items": { + "$ref": "Tier" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#tiersList.", + "default": "sql#tiersList" + } + } + }, + "User": { + "id": "User", + "type": "object", + "description": "A Cloud SQL user resource.", + "properties": { + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the resource." + }, + "host": { + "type": "string", + "description": "The host name from which the user can connect. For insert operations, host is set to '%'. For update operations, host is specified as part of the request URL. The host name is not mutable with this API." + }, + "instance": { + "type": "string", + "description": "The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for update since it is already specified on the URL." + }, + "kind": { + "type": "string", + "description": "This is always sql#user.", + "default": "sql#user" + }, + "name": { + "type": "string", + "description": "The name of the user in the Cloud SQL instance. Can be omitted for update since it is already specified on the URL." + }, + "password": { + "type": "string", + "description": "The password for the user." + }, + "project": { + "type": "string", + "description": "The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for update since it is already specified on the URL." + } + } + }, + "UsersListResponse": { + "id": "UsersListResponse", + "type": "object", + "description": "User list response.", + "properties": { + "items": { + "type": "array", + "description": "List of user resources in the instance.", + "items": { + "$ref": "User" + } + }, + "kind": { + "type": "string", + "description": "This is always sql#usersList.", + "default": "sql#usersList" + }, + "nextPageToken": { + "type": "string", + "description": "An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation." + } + } + } + }, + "resources": { + "backupRuns": { + "methods": { + "get": { + "id": "sql.backupRuns.get", + "path": "projects/{project}/instances/{instance}/backupRuns/{id}", + "httpMethod": "GET", + "description": "Retrieves a resource containing information about a backup run.", + "parameters": { + "id": { + "type": "string", + "description": "The ID of this Backup Run.", + "required": true, + "format": "int64", + "location": "path" + }, + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "id" + ], + "response": { + "$ref": "BackupRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.backupRuns.list", + "path": "projects/{project}/instances/{instance}/backupRuns", + "httpMethod": "GET", + "description": "Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the enqueued time.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of backup runs per response.", + "format": "int32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "BackupRunsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "databases": { + "methods": { + "delete": { + "id": "sql.databases.delete", + "path": "projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "DELETE", + "description": "Deletes a resource containing information about a database inside a Cloud SQL instance.", + "parameters": { + "database": { + "type": "string", + "description": "Name of the database to be deleted in the instance.", + "required": true, + "location": "path" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "database" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "id": "sql.databases.get", + "path": "projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "GET", + "description": "Retrieves a resource containing information about a database inside a Cloud SQL instance.", + "parameters": { + "database": { + "type": "string", + "description": "Name of the database in the instance.", + "required": true, + "location": "path" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "database" + ], + "response": { + "$ref": "Database" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "id": "sql.databases.insert", + "path": "projects/{project}/instances/{instance}/databases", + "httpMethod": "POST", + "description": "Inserts a resource containing information about a database inside a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.databases.list", + "path": "projects/{project}/instances/{instance}/databases", + "httpMethod": "GET", + "description": "Lists databases in the specified Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "DatabasesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "id": "sql.databases.patch", + "path": "projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "PATCH", + "description": "Updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.", + "parameters": { + "database": { + "type": "string", + "description": "Name of the database to be updated in the instance.", + "required": true, + "location": "path" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "database" + ], + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "id": "sql.databases.update", + "path": "projects/{project}/instances/{instance}/databases/{database}", + "httpMethod": "PUT", + "description": "Updates a resource containing information about a database inside a Cloud SQL instance.", + "parameters": { + "database": { + "type": "string", + "description": "Name of the database to be updated in the instance.", + "required": true, + "location": "path" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "database" + ], + "request": { + "$ref": "Database" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "flags": { + "methods": { + "list": { + "id": "sql.flags.list", + "path": "flags", + "httpMethod": "GET", + "description": "List all available database flags for Google Cloud SQL instances.", + "response": { + "$ref": "FlagsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "instances": { + "methods": { + "clone": { + "id": "sql.instances.clone", + "path": "projects/{project}/instances/{instance}/clone", + "httpMethod": "POST", + "description": "Creates a Cloud SQL instance as a clone of the source instance.", + "parameters": { + "instance": { + "type": "string", + "description": "The ID of the Cloud SQL instance to be cloned (source). This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the source as well as the clone Cloud SQL instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesCloneRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "delete": { + "id": "sql.instances.delete", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "DELETE", + "description": "Deletes a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be deleted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "export": { + "id": "sql.instances.export", + "path": "projects/{project}/instances/{instance}/export", + "httpMethod": "POST", + "description": "Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be exported.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesExportRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "id": "sql.instances.get", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "GET", + "description": "Retrieves a resource containing information about a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "DatabaseInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "import": { + "id": "sql.instances.import", + "path": "projects/{project}/instances/{instance}/import", + "httpMethod": "POST", + "description": "Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesImportRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "insert": { + "id": "sql.instances.insert", + "path": "projects/{project}/instances", + "httpMethod": "POST", + "description": "Creates a new Cloud SQL instance.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.instances.list", + "path": "projects/{project}/instances", + "httpMethod": "GET", + "description": "Lists instances under a given project in the alphabetical order of the instance name.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "The maximum number of results to return per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "InstancesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "patch": { + "id": "sql.instances.patch", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PATCH", + "description": "Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. This method supports patch semantics.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "promoteReplica": { + "id": "sql.instances.promoteReplica", + "path": "projects/{project}/instances/{instance}/promoteReplica", + "httpMethod": "POST", + "description": "Promotes the read replica instance to be a stand-alone Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL read replica instance name.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "ID of the project that contains the read replica.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "resetSslConfig": { + "id": "sql.instances.resetSslConfig", + "path": "projects/{project}/instances/{instance}/resetSslConfig", + "httpMethod": "POST", + "description": "Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a server certificate.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restart": { + "id": "sql.instances.restart", + "path": "projects/{project}/instances/{instance}/restart", + "httpMethod": "POST", + "description": "Restarts a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be restarted.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "restoreBackup": { + "id": "sql.instances.restoreBackup", + "path": "projects/{project}/instances/{instance}/restoreBackup", + "httpMethod": "POST", + "description": "Restores a backup of a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "InstancesRestoreBackupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "startReplica": { + "id": "sql.instances.startReplica", + "path": "projects/{project}/instances/{instance}/startReplica", + "httpMethod": "POST", + "description": "Starts the replication in the read replica instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL read replica instance name.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "ID of the project that contains the read replica.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "stopReplica": { + "id": "sql.instances.stopReplica", + "path": "projects/{project}/instances/{instance}/stopReplica", + "httpMethod": "POST", + "description": "Stops the replication in the read replica instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL read replica instance name.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "ID of the project that contains the read replica.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "id": "sql.instances.update", + "path": "projects/{project}/instances/{instance}", + "httpMethod": "PUT", + "description": "Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "etagRequired": true, + "request": { + "$ref": "DatabaseInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "operations": { + "methods": { + "get": { + "id": "sql.operations.get", + "path": "projects/{project}/operations/{operation}", + "httpMethod": "GET", + "description": "Retrieves an instance operation that has been performed on an instance.", + "parameters": { + "operation": { + "type": "string", + "description": "Instance operation ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "operation" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.operations.list", + "path": "projects/{project}/operations", + "httpMethod": "GET", + "description": "Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of operations per response.", + "format": "uint32", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "OperationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "sslCerts": { + "methods": { + "delete": { + "id": "sql.sslCerts.delete", + "path": "projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "DELETE", + "description": "Deletes the SSL certificate. The change will not take effect until the instance is restarted.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance to be deleted.", + "required": true, + "location": "path" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 FingerPrint.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "get": { + "id": "sql.sslCerts.get", + "path": "projects/{project}/instances/{instance}/sslCerts/{sha1Fingerprint}", + "httpMethod": "GET", + "description": "Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + }, + "sha1Fingerprint": { + "type": "string", + "description": "Sha1 FingerPrint.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "sha1Fingerprint" + ], + "response": { + "$ref": "SslCert" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "id": "sql.sslCerts.insert", + "path": "projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "POST", + "description": "Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project to which the newly created Cloud SQL instances should belong.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "SslCertsInsertRequest" + }, + "response": { + "$ref": "SslCertsInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.sslCerts.list", + "path": "projects/{project}/instances/{instance}/sslCerts", + "httpMethod": "GET", + "description": "Lists all of the current SSL certificates for the instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Cloud SQL instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project for which to list Cloud SQL instances.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "SslCertsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "tiers": { + "methods": { + "list": { + "id": "sql.tiers.list", + "path": "projects/{project}/tiers", + "httpMethod": "GET", + "description": "Lists all available service tiers for Google Cloud SQL, for example D1, D2. For related information, see Pricing.", + "parameters": { + "project": { + "type": "string", + "description": "Project ID of the project for which to list tiers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "TiersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + }, + "users": { + "methods": { + "delete": { + "id": "sql.users.delete", + "path": "projects/{project}/instances/{instance}/users", + "httpMethod": "DELETE", + "description": "Deletes a user from a Cloud SQL instance.", + "parameters": { + "host": { + "type": "string", + "description": "Host of the user in the instance.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "name": { + "type": "string", + "description": "Name of the user in the instance.", + "required": true, + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "host", + "name" + ], + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "insert": { + "id": "sql.users.insert", + "path": "projects/{project}/instances/{instance}/users", + "httpMethod": "POST", + "description": "Creates a new user in a Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "request": { + "$ref": "User" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "list": { + "id": "sql.users.list", + "path": "projects/{project}/instances/{instance}/users", + "httpMethod": "GET", + "description": "Lists users in the specified Cloud SQL instance.", + "parameters": { + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance" + ], + "response": { + "$ref": "UsersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, + "update": { + "id": "sql.users.update", + "path": "projects/{project}/instances/{instance}/users", + "httpMethod": "PUT", + "description": "Updates an existing user in a Cloud SQL instance.", + "parameters": { + "host": { + "type": "string", + "description": "Host of the user in the instance.", + "required": true, + "location": "query" + }, + "instance": { + "type": "string", + "description": "Database instance ID. This does not include the project ID.", + "required": true, + "location": "path" + }, + "name": { + "type": "string", + "description": "Name of the user in the instance.", + "required": true, + "location": "query" + }, + "project": { + "type": "string", + "description": "Project ID of the project that contains the instance.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "instance", + "host", + "name" + ], + "request": { + "$ref": "User" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + } + } + } + } +} diff --git a/etc/api/storage/v1/storage-api.json b/etc/api/storage/v1/storage-api.json new file mode 100644 index 0000000000..adbe20e939 --- /dev/null +++ b/etc/api/storage/v1/storage-api.json @@ -0,0 +1,2632 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_1g57dSUpbId-W-VlfiwZJYq_Tc\"", + "discoveryVersion": "v1", + "id": "storage:v1", + "name": "storage", + "version": "v1", + "revision": "20141112", + "title": "Cloud Storage API", + "description": "Lets you store and retrieve potentially-large, immutable data objects.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", + "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" + }, + "documentationLink": "https://developers.google.com/storage/docs/json_api/", + "labels": [ + "labs" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/storage/v1/", + "basePath": "/storage/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "storage/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "View and manage your data across Google Cloud Platform services" + }, + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + } + } + } + }, + "schemas": { + "Bucket": { + "id": "Bucket", + "type": "object", + "description": "A bucket.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the bucket.", + "items": { + "$ref": "BucketAccessControl" + }, + "annotations": { + "required": [ + "storage.buckets.update" + ] + } + }, + "cors": { + "type": "array", + "description": "The bucket's Cross-Origin Resource Sharing (CORS) configuration.", + "items": { + "type": "object", + "properties": { + "maxAgeSeconds": { + "type": "integer", + "description": "The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.", + "format": "int32" + }, + "method": { + "type": "array", + "description": "The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: \"*\" is permitted in the list of methods, and means \"any method\".", + "items": { + "type": "string" + } + }, + "origin": { + "type": "array", + "description": "The list of Origins eligible to receive CORS response headers. Note: \"*\" is permitted in the list of origins, and means \"any Origin\".", + "items": { + "type": "string" + } + }, + "responseHeader": { + "type": "array", + "description": "The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.", + "items": { + "type": "string" + } + } + } + } + }, + "defaultObjectAcl": { + "type": "array", + "description": "Default access controls to apply to new objects when no ACL is provided.", + "items": { + "$ref": "ObjectAccessControl" + } + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the bucket." + }, + "id": { + "type": "string", + "description": "The ID of the bucket." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For buckets, this is always storage#bucket.", + "default": "storage#bucket" + }, + "lifecycle": { + "type": "object", + "description": "The bucket's lifecycle configuration. See lifecycle management for more information.", + "properties": { + "rule": { + "type": "array", + "description": "A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.", + "items": { + "type": "object", + "properties": { + "action": { + "type": "object", + "description": "The action to take.", + "properties": { + "type": { + "type": "string", + "description": "Type of the action. Currently, only Delete is supported." + } + } + }, + "condition": { + "type": "object", + "description": "The condition(s) under which the action will be taken.", + "properties": { + "age": { + "type": "integer", + "description": "Age of an object (in days). This condition is satisfied when an object reaches the specified age.", + "format": "int32" + }, + "createdBefore": { + "type": "string", + "description": "A date in RFC 3339 format with only the date part (for instance, \"2013-01-15\"). This condition is satisfied when an object is created before midnight of the specified date in UTC.", + "format": "date" + }, + "isLive": { + "type": "boolean", + "description": "Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects." + }, + "numNewerVersions": { + "type": "integer", + "description": "Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.", + "format": "int32" + } + } + } + } + } + } + } + }, + "location": { + "type": "string", + "description": "The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list." + }, + "logging": { + "type": "object", + "description": "The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.", + "properties": { + "logBucket": { + "type": "string", + "description": "The destination bucket where the current bucket's logs should be placed." + }, + "logObjectPrefix": { + "type": "string", + "description": "A prefix for log object names." + } + } + }, + "metageneration": { + "type": "string", + "description": "The metadata generation of this bucket.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the bucket.", + "annotations": { + "required": [ + "storage.buckets.insert" + ] + } + }, + "owner": { + "type": "object", + "description": "The owner of the bucket. This is always the project team's owner group.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form project-owner-projectId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "projectNumber": { + "type": "string", + "description": "The project number of the project the bucket belongs to.", + "format": "uint64" + }, + "selfLink": { + "type": "string", + "description": "The URI of this bucket." + }, + "storageClass": { + "type": "string", + "description": "The bucket's storage class. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list." + }, + "timeCreated": { + "type": "string", + "description": "Creation time of the bucket in RFC 3339 format.", + "format": "date-time" + }, + "versioning": { + "type": "object", + "description": "The bucket's versioning configuration.", + "properties": { + "enabled": { + "type": "boolean", + "description": "While set to true, versioning is fully enabled for this bucket." + } + } + }, + "website": { + "type": "object", + "description": "The bucket's website configuration.", + "properties": { + "mainPageSuffix": { + "type": "string", + "description": "Behaves as the bucket's directory index where missing objects are treated as potential directories." + }, + "notFoundPage": { + "type": "string", + "description": "The custom object to return when a requested resource is not found." + } + } + } + } + }, + "BucketAccessControl": { + "id": "BucketAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- project-team-projectId \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the access-control entry." + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.", + "default": "storage#bucketAccessControl" + }, + "projectTeam": { + "type": "object", + "description": "The project team associated with the entity, if any.", + "properties": { + "projectNumber": { + "type": "string", + "description": "The project number." + }, + "team": { + "type": "string", + "description": "The team. Can be owners, editors, or viewers." + } + } + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER, WRITER, or OWNER.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "BucketAccessControls": { + "id": "BucketAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "BucketAccessControl" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of bucket access control entries, this is always storage#bucketAccessControls.", + "default": "storage#bucketAccessControls" + } + } + }, + "Buckets": { + "id": "Buckets", + "type": "object", + "description": "A list of buckets.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Bucket" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of buckets, this is always storage#buckets.", + "default": "storage#buckets" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "An notification channel used to watch for resource changes.", + "properties": { + "address": { + "type": "string", + "description": "The address where notifications are delivered for this channel." + }, + "expiration": { + "type": "string", + "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "A UUID or similar unique string that identifies this channel." + }, + "kind": { + "type": "string", + "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".", + "default": "api#channel" + }, + "params": { + "type": "object", + "description": "Additional parameters controlling delivery channel behavior. Optional.", + "additionalProperties": { + "type": "string", + "description": "Declares a new parameter by name." + } + }, + "payload": { + "type": "boolean", + "description": "A Boolean value to indicate whether payload is wanted. Optional." + }, + "resourceId": { + "type": "string", + "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions." + }, + "resourceUri": { + "type": "string", + "description": "A version-specific identifier for the watched resource." + }, + "token": { + "type": "string", + "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional." + }, + "type": { + "type": "string", + "description": "The type of delivery mechanism used for this channel." + } + } + }, + "ComposeRequest": { + "id": "ComposeRequest", + "type": "object", + "description": "A Compose request.", + "properties": { + "destination": { + "$ref": "Object", + "description": "Properties of the resulting object." + }, + "kind": { + "type": "string", + "description": "The kind of item this is.", + "default": "storage#composeRequest" + }, + "sourceObjects": { + "type": "array", + "description": "The list of source objects that will be concatenated into a single object.", + "items": { + "type": "object", + "properties": { + "generation": { + "type": "string", + "description": "The generation of this object to use as the source.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The source object's name. The source object's bucket is implicitly the destination bucket.", + "annotations": { + "required": [ + "storage.objects.compose" + ] + } + }, + "objectPreconditions": { + "type": "object", + "description": "Conditions that must be met for this operation to execute.", + "properties": { + "ifGenerationMatch": { + "type": "string", + "description": "Only perform the composition if the generation of the source object that would be used matches this value. If this value and a generation are both specified, they must be the same value or the call will fail.", + "format": "int64" + } + } + } + } + }, + "annotations": { + "required": [ + "storage.objects.compose" + ] + } + } + } + }, + "Object": { + "id": "Object", + "type": "object", + "description": "An object.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the object.", + "items": { + "$ref": "ObjectAccessControl" + }, + "annotations": { + "required": [ + "storage.objects.update" + ] + } + }, + "bucket": { + "type": "string", + "description": "The name of the bucket containing this object." + }, + "cacheControl": { + "type": "string", + "description": "Cache-Control directive for the object data." + }, + "componentCount": { + "type": "integer", + "description": "Number of underlying components that make up this object. Components are accumulated by compose operations.", + "format": "int32" + }, + "contentDisposition": { + "type": "string", + "description": "Content-Disposition of the object data." + }, + "contentEncoding": { + "type": "string", + "description": "Content-Encoding of the object data." + }, + "contentLanguage": { + "type": "string", + "description": "Content-Language of the object data." + }, + "contentType": { + "type": "string", + "description": "Content-Type of the object data.", + "annotations": { + "required": [ + "storage.objects.update" + ] + } + }, + "crc32c": { + "type": "string", + "description": "CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the object." + }, + "generation": { + "type": "string", + "description": "The content generation of this object. Used for object versioning.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The ID of the object." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For objects, this is always storage#object.", + "default": "storage#object" + }, + "md5Hash": { + "type": "string", + "description": "MD5 hash of the data; encoded using base64." + }, + "mediaLink": { + "type": "string", + "description": "Media download link." + }, + "metadata": { + "type": "object", + "description": "User-provided metadata, in key/value pairs.", + "additionalProperties": { + "type": "string", + "description": "An individual metadata entry." + } + }, + "metageneration": { + "type": "string", + "description": "The version of the metadata for this object at this generation. Used for preconditions and for detecting changes in metadata. A metageneration number is only meaningful in the context of a particular generation of a particular object.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of this object. Required if not specified by URL parameter." + }, + "owner": { + "type": "object", + "description": "The owner of the object. This will always be the uploader of the object.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form user-userId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "selfLink": { + "type": "string", + "description": "The link to this object." + }, + "size": { + "type": "string", + "description": "Content-Length of the data in bytes.", + "format": "uint64" + }, + "storageClass": { + "type": "string", + "description": "Storage class of the object." + }, + "timeDeleted": { + "type": "string", + "description": "The deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.", + "format": "date-time" + }, + "updated": { + "type": "string", + "description": "The creation or modification time of the object in RFC 3339 format. For buckets with versioning enabled, changing an object's metadata does not change this property.", + "format": "date-time" + } + } + }, + "ObjectAccessControl": { + "id": "ObjectAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- project-team-projectId \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the access-control entry." + }, + "generation": { + "type": "string", + "description": "The content generation of the object.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For object access control entries, this is always storage#objectAccessControl.", + "default": "storage#objectAccessControl" + }, + "object": { + "type": "string", + "description": "The name of the object." + }, + "projectTeam": { + "type": "object", + "description": "The project team associated with the entity, if any.", + "properties": { + "projectNumber": { + "type": "string", + "description": "The project number." + }, + "team": { + "type": "string", + "description": "The team. Can be owners, editors, or viewers." + } + } + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER or OWNER." + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "ObjectAccessControls": { + "id": "ObjectAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "type": "any" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of object access control entries, this is always storage#objectAccessControls.", + "default": "storage#objectAccessControls" + } + } + }, + "Objects": { + "id": "Objects", + "type": "object", + "description": "A list of objects.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Object" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of objects, this is always storage#objects.", + "default": "storage#objects" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "prefixes": { + "type": "array", + "description": "The list of prefixes of objects matching-but-not-listed up to and including the requested delimiter.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "bucketAccessControls": { + "methods": { + "delete": { + "id": "storage.bucketAccessControls.delete", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.bucketAccessControls.get", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.bucketAccessControls.insert", + "path": "b/{bucket}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.bucketAccessControls.list", + "path": "b/{bucket}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "BucketAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.bucketAccessControls.patch", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.bucketAccessControls.update", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "buckets": { + "methods": { + "delete": { + "id": "storage.buckets.delete", + "path": "b/{bucket}", + "httpMethod": "DELETE", + "description": "Permanently deletes an empty bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "If set, only deletes the bucket if its metageneration matches this value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "If set, only deletes the bucket if its metageneration does not match this value.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.buckets.get", + "path": "b/{bucket}", + "httpMethod": "GET", + "description": "Returns metadata for the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "insert": { + "id": "storage.buckets.insert", + "path": "b", + "httpMethod": "POST", + "description": "Creates a new bucket.", + "parameters": { + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this bucket.", + "enum": [ + "authenticatedRead", + "private", + "projectPrivate", + "publicRead", + "publicReadWrite" + ], + "enumDescriptions": [ + "Project team owners get OWNER access, and allAuthenticatedUsers get READER access.", + "Project team owners get OWNER access.", + "Project team members get access according to their roles.", + "Project team owners get OWNER access, and allUsers get READER access.", + "Project team owners get OWNER access, and allUsers get WRITER access." + ], + "location": "query" + }, + "predefinedDefaultObjectAcl": { + "type": "string", + "description": "Apply a predefined set of default object access controls to this bucket.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "project": { + "type": "string", + "description": "A valid API project identifier.", + "required": true, + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "id": "storage.buckets.list", + "path": "b", + "httpMethod": "GET", + "description": "Retrieves a list of buckets for a given project.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of buckets to return.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to buckets whose names begin with this prefix.", + "location": "query" + }, + "project": { + "type": "string", + "description": "A valid API project identifier.", + "required": true, + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Buckets" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "patch": { + "id": "storage.buckets.patch", + "path": "b/{bucket}", + "httpMethod": "PATCH", + "description": "Updates a bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this bucket.", + "enum": [ + "authenticatedRead", + "private", + "projectPrivate", + "publicRead", + "publicReadWrite" + ], + "enumDescriptions": [ + "Project team owners get OWNER access, and allAuthenticatedUsers get READER access.", + "Project team owners get OWNER access.", + "Project team members get access according to their roles.", + "Project team owners get OWNER access, and allUsers get READER access.", + "Project team owners get OWNER access, and allUsers get WRITER access." + ], + "location": "query" + }, + "predefinedDefaultObjectAcl": { + "type": "string", + "description": "Apply a predefined set of default object access controls to this bucket.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.buckets.update", + "path": "b/{bucket}", + "httpMethod": "PUT", + "description": "Updates a bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this bucket.", + "enum": [ + "authenticatedRead", + "private", + "projectPrivate", + "publicRead", + "publicReadWrite" + ], + "enumDescriptions": [ + "Project team owners get OWNER access, and allAuthenticatedUsers get READER access.", + "Project team owners get OWNER access.", + "Project team members get access according to their roles.", + "Project team owners get OWNER access, and allUsers get READER access.", + "Project team owners get OWNER access, and allUsers get WRITER access." + ], + "location": "query" + }, + "predefinedDefaultObjectAcl": { + "type": "string", + "description": "Apply a predefined set of default object access controls to this bucket.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "channels": { + "methods": { + "stop": { + "id": "storage.channels.stop", + "path": "channels/stop", + "httpMethod": "POST", + "description": "Stop watching resources through this channel", + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "defaultObjectAccessControls": { + "methods": { + "delete": { + "id": "storage.defaultObjectAccessControls.delete", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the default object ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.defaultObjectAccessControls.get", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "GET", + "description": "Returns the default object ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.defaultObjectAccessControls.insert", + "path": "b/{bucket}/defaultObjectAcl", + "httpMethod": "POST", + "description": "Creates a new default object ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.defaultObjectAccessControls.list", + "path": "b/{bucket}/defaultObjectAcl", + "httpMethod": "GET", + "description": "Retrieves default object ACL entries on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "If present, only return default ACL listing if the bucket's current metageneration matches this value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "If present, only return default ACL listing if the bucket's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "ObjectAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.defaultObjectAccessControls.patch", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "PATCH", + "description": "Updates a default object ACL entry on the specified bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.defaultObjectAccessControls.update", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "PUT", + "description": "Updates a default object ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "objectAccessControls": { + "methods": { + "delete": { + "id": "storage.objectAccessControls.delete", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.objectAccessControls.get", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.objectAccessControls.insert", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.objectAccessControls.list", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "ObjectAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.objectAccessControls.patch", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified object. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.objectAccessControls.update", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "objects": { + "methods": { + "compose": { + "id": "storage.objects.compose", + "path": "b/{destinationBucket}/o/{destinationObject}/compose", + "httpMethod": "POST", + "description": "Concatenates a list of existing objects into a new object in the same bucket.", + "parameters": { + "destinationBucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object.", + "required": true, + "location": "path" + }, + "destinationObject": { + "type": "string", + "description": "Name of the new object.", + "required": true, + "location": "path" + }, + "destinationPredefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to the destination object.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "destinationBucket", + "destinationObject" + ], + "request": { + "$ref": "ComposeRequest" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "copy": { + "id": "storage.objects.copy", + "path": "b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}", + "httpMethod": "POST", + "description": "Copies an object to a specified location. Optionally overrides metadata.", + "parameters": { + "destinationBucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.", + "required": true, + "location": "path" + }, + "destinationObject": { + "type": "string", + "description": "Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.", + "required": true, + "location": "path" + }, + "destinationPredefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to the destination object.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifSourceGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifSourceGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifSourceMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifSourceMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "sourceBucket": { + "type": "string", + "description": "Name of the bucket in which to find the source object.", + "required": true, + "location": "path" + }, + "sourceGeneration": { + "type": "string", + "description": "If present, selects a specific revision of the source object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "sourceObject": { + "type": "string", + "description": "Name of the source object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "sourceBucket", + "sourceObject", + "destinationBucket", + "destinationObject" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "delete": { + "id": "storage.objects.delete", + "path": "b/{bucket}/o/{object}", + "httpMethod": "DELETE", + "description": "Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, permanently deletes a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.objects.get", + "path": "b/{bucket}/o/{object}", + "httpMethod": "GET", + "description": "Retrieves an object or its metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "insert": { + "id": "storage.objects.insert", + "path": "b/{bucket}/o", + "httpMethod": "POST", + "description": "Stores a new object and metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.", + "required": true, + "location": "path" + }, + "contentEncoding": { + "type": "string", + "description": "If set, sets the contentEncoding property of the final object to this value. Setting this parameter is equivalent to setting the contentEncoding metadata property. This can be useful when uploading an object with uploadType=media to indicate the encoding of the content being uploaded.", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "name": { + "type": "string", + "description": "Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.", + "location": "query" + }, + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this object.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/storage/v1/b/{bucket}/o" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/storage/v1/b/{bucket}/o" + } + } + } + }, + "list": { + "id": "storage.objects.list", + "path": "b/{bucket}/o", + "httpMethod": "GET", + "description": "Retrieves a list of objects matching the criteria.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to look for objects.", + "required": true, + "location": "path" + }, + "delimiter": { + "type": "string", + "description": "Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to objects whose names begin with this prefix.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "versions": { + "type": "boolean", + "description": "If true, lists all versions of a file as distinct results.", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Objects" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsSubscription": true + }, + "patch": { + "id": "storage.objects.patch", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PATCH", + "description": "Updates an object's metadata. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this object.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.objects.update", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PUT", + "description": "Updates an object's metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "int64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "int64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "predefinedAcl": { + "type": "string", + "description": "Apply a predefined set of access controls to this object.", + "enum": [ + "authenticatedRead", + "bucketOwnerFullControl", + "bucketOwnerRead", + "private", + "projectPrivate", + "publicRead" + ], + "enumDescriptions": [ + "Object owner gets OWNER access, and allAuthenticatedUsers get READER access.", + "Object owner gets OWNER access, and project team owners get OWNER access.", + "Object owner gets OWNER access, and project team owners get READER access.", + "Object owner gets OWNER access.", + "Object owner gets OWNER access, and project team members get access according to their roles.", + "Object owner gets OWNER access, and allUsers get READER access." + ], + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "watchAll": { + "id": "storage.objects.watchAll", + "path": "b/{bucket}/o/watch", + "httpMethod": "POST", + "description": "Watch for changes on all objects in a bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to look for objects.", + "required": true, + "location": "path" + }, + "delimiter": { + "type": "string", + "description": "Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to objects whose names begin with this prefix.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "versions": { + "type": "boolean", + "description": "If true, lists all versions of a file as distinct results.", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsSubscription": true + } + } + } + } +} diff --git a/etc/api/storage/v1beta1/storage-api.json b/etc/api/storage/v1beta1/storage-api.json new file mode 100644 index 0000000000..b0319e319e --- /dev/null +++ b/etc/api/storage/v1beta1/storage-api.json @@ -0,0 +1,1427 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/--kbHbD1ylfgYf5jjY5PzcBb6t4\"", + "discoveryVersion": "v1", + "id": "storage:v1beta1", + "name": "storage", + "version": "v1beta1", + "revision": "20141229", + "title": "Cloud Storage API", + "description": "Lets you store and retrieve potentially-large, immutable data objects.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", + "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" + }, + "documentationLink": "https://developers.google.com/storage/docs/json_api/", + "labels": [ + "labs" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/storage/v1beta1/", + "basePath": "/storage/v1beta1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "storage/v1beta1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + } + } + } + }, + "schemas": { + "Bucket": { + "id": "Bucket", + "type": "object", + "description": "A bucket.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the bucket.", + "items": { + "$ref": "BucketAccessControl" + }, + "annotations": { + "required": [ + "storage.buckets.update" + ] + } + }, + "defaultObjectAcl": { + "type": "array", + "description": "Default access controls to apply to new objects when no ACL is provided.", + "items": { + "$ref": "ObjectAccessControl" + } + }, + "id": { + "type": "string", + "description": "The name of the bucket.", + "annotations": { + "required": [ + "storage.buckets.insert" + ] + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For buckets, this is always storage#bucket.", + "default": "storage#bucket" + }, + "location": { + "type": "string", + "description": "The location of the bucket. Object data for objects in the bucket resides in physical storage in this location. Can be US or EU. Defaults to US." + }, + "owner": { + "type": "object", + "description": "The owner of the bucket. This will always be the project team's owner group.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form group-groupId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "projectId": { + "type": "string", + "description": "The project the bucket belongs to.", + "format": "uint64", + "annotations": { + "required": [ + "storage.buckets.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The URI of this bucket." + }, + "timeCreated": { + "type": "string", + "description": "Creation time of the bucket in RFC 3339 format.", + "format": "date-time" + }, + "website": { + "type": "object", + "description": "The bucket's website configuration.", + "properties": { + "mainPageSuffix": { + "type": "string", + "description": "Behaves as the bucket's directory index where missing objects are treated as potential directories." + }, + "notFoundPage": { + "type": "string", + "description": "The custom object to return when a requested resource is not found." + } + } + } + } + }, + "BucketAccessControl": { + "id": "BucketAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.", + "default": "storage#bucketAccessControl" + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER, WRITER, or OWNER.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "BucketAccessControls": { + "id": "BucketAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "BucketAccessControl" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of bucket access control entries, this is always storage#bucketAccessControls.", + "default": "storage#bucketAccessControls" + } + } + }, + "Buckets": { + "id": "Buckets", + "type": "object", + "description": "A list of buckets.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Bucket" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of buckets, this is always storage#buckets.", + "default": "storage#buckets" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "Object": { + "id": "Object", + "type": "object", + "description": "An object.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the object.", + "items": { + "$ref": "ObjectAccessControl" + }, + "annotations": { + "required": [ + "storage.objects.update" + ] + } + }, + "bucket": { + "type": "string", + "description": "The bucket containing this object." + }, + "cacheControl": { + "type": "string", + "description": "Cache-Control directive for the object data." + }, + "contentDisposition": { + "type": "string", + "description": "Content-Disposition of the object data." + }, + "contentEncoding": { + "type": "string", + "description": "Content-Encoding of the object data." + }, + "contentLanguage": { + "type": "string", + "description": "Content-Language of the object data." + }, + "id": { + "type": "string", + "description": "The ID of the object." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For objects, this is always storage#object.", + "default": "storage#object" + }, + "media": { + "type": "object", + "description": "Object media data. Provided on your behalf when uploading raw media or multipart/related with an auxiliary media part.", + "properties": { + "algorithm": { + "type": "string", + "description": "Hash algorithm used. Currently only MD5 is supported. Required if a hash is provided.", + "default": "MD5" + }, + "contentType": { + "type": "string", + "description": "Content-Type of the object data.", + "annotations": { + "required": [ + "storage.objects.insert", + "storage.objects.update" + ] + } + }, + "data": { + "type": "string", + "description": "URL-safe Base64-encoded data. This property can be used to insert objects under 64KB in size, and will only be returned in response to the get method for objects so created. When this resource is returned in response to the list method, this property is omitted.", + "format": "byte", + "annotations": { + "required": [ + "storage.objects.insert" + ] + } + }, + "hash": { + "type": "string", + "description": "Hash of the data. Required if a hash algorithm is provided." + }, + "length": { + "type": "string", + "description": "Content-Length of the data in bytes.", + "format": "uint64" + }, + "link": { + "type": "string", + "description": "Media download link." + }, + "timeCreated": { + "type": "string", + "description": "Creation time of the data in RFC 3339 format.", + "format": "date-time" + } + } + }, + "metadata": { + "type": "object", + "description": "User-provided metadata, in key/value pairs.", + "additionalProperties": { + "type": "string", + "description": "An individual metadata entry." + } + }, + "name": { + "type": "string", + "description": "The name of this object. Required if not specified by URL parameter." + }, + "owner": { + "type": "object", + "description": "The owner of the object. This will always be the uploader of the object.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form user-userId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "selfLink": { + "type": "string", + "description": "The link to this object." + } + } + }, + "ObjectAccessControl": { + "id": "ObjectAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.", + "annotations": { + "required": [ + "storage.objectAccessControls.insert" + ] + } + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For object access control entries, this is always storage#objectAccessControl.", + "default": "storage#objectAccessControl" + }, + "object": { + "type": "string", + "description": "The name of the object." + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER or OWNER.", + "annotations": { + "required": [ + "storage.objectAccessControls.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "ObjectAccessControls": { + "id": "ObjectAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "ObjectAccessControl" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of object access control entries, this is always storage#objectAccessControls.", + "default": "storage#objectAccessControls" + } + } + }, + "Objects": { + "id": "Objects", + "type": "object", + "description": "A list of objects.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Object" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of objects, this is always storage#objects.", + "default": "storage#objects" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "prefixes": { + "type": "array", + "description": "The list of prefixes of objects matching-but-not-listed up to and including the requested delimiter.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "bucketAccessControls": { + "methods": { + "delete": { + "id": "storage.bucketAccessControls.delete", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Deletes the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.bucketAccessControls.get", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.bucketAccessControls.insert", + "path": "b/{bucket}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.bucketAccessControls.list", + "path": "b/{bucket}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "BucketAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.bucketAccessControls.patch", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.bucketAccessControls.update", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "buckets": { + "methods": { + "delete": { + "id": "storage.buckets.delete", + "path": "b/{bucket}", + "httpMethod": "DELETE", + "description": "Deletes an empty bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.buckets.get", + "path": "b/{bucket}", + "httpMethod": "GET", + "description": "Returns metadata for the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "insert": { + "id": "storage.buckets.insert", + "path": "b", + "httpMethod": "POST", + "description": "Creates a new bucket.", + "parameters": { + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "id": "storage.buckets.list", + "path": "b", + "httpMethod": "GET", + "description": "Retrieves a list of buckets for a given project.", + "parameters": { + "max-results": { + "type": "integer", + "description": "Maximum number of buckets to return.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "projectId": { + "type": "string", + "description": "A valid API project identifier.", + "required": true, + "format": "uint64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "projectId" + ], + "response": { + "$ref": "Buckets" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "patch": { + "id": "storage.buckets.patch", + "path": "b/{bucket}", + "httpMethod": "PATCH", + "description": "Updates a bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.buckets.update", + "path": "b/{bucket}", + "httpMethod": "PUT", + "description": "Updates a bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "objectAccessControls": { + "methods": { + "delete": { + "id": "storage.objectAccessControls.delete", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Deletes the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.objectAccessControls.get", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.objectAccessControls.insert", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.objectAccessControls.list", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "ObjectAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.objectAccessControls.patch", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified object. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.objectAccessControls.update", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "objects": { + "methods": { + "delete": { + "id": "storage.objects.delete", + "path": "b/{bucket}/o/{object}", + "httpMethod": "DELETE", + "description": "Deletes data blobs and associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.objects.get", + "path": "b/{bucket}/o/{object}", + "httpMethod": "GET", + "description": "Retrieves objects or their associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "insert": { + "id": "storage.objects.insert", + "path": "b/{bucket}/o", + "httpMethod": "POST", + "description": "Stores new data blobs and associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.", + "required": true, + "location": "path" + }, + "name": { + "type": "string", + "description": "Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl, unless the object resource specifies the acl property, when it defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/storage/v1beta1/b/{bucket}/o" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/storage/v1beta1/b/{bucket}/o" + } + } + } + }, + "list": { + "id": "storage.objects.list", + "path": "b/{bucket}/o", + "httpMethod": "GET", + "description": "Retrieves a list of objects matching the criteria.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to look for objects.", + "required": true, + "location": "path" + }, + "delimiter": { + "type": "string", + "description": "Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to objects whose names begin with this prefix.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to no_acl.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Objects" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsSubscription": true + }, + "patch": { + "id": "storage.objects.patch", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PATCH", + "description": "Updates a data blob's associated metadata. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.objects.update", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PUT", + "description": "Updates a data blob's associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "no_acl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + } + } + } + } +} diff --git a/etc/api/storage/v1beta2/storage-api.json b/etc/api/storage/v1beta2/storage-api.json new file mode 100644 index 0000000000..b552bed41c --- /dev/null +++ b/etc/api/storage/v1beta2/storage-api.json @@ -0,0 +1,2345 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/15LYn2He35ZdsKeqcXSKVIUDAPY\"", + "discoveryVersion": "v1", + "id": "storage:v1beta2", + "name": "storage", + "version": "v1beta2", + "revision": "20141229", + "title": "Cloud Storage API", + "description": "Lets you store and retrieve potentially-large, immutable data objects.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", + "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" + }, + "documentationLink": "https://developers.google.com/storage/docs/json_api/", + "labels": [ + "labs" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/storage/v1beta2/", + "basePath": "/storage/v1beta2/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "storage/v1beta2/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/devstorage.full_control": { + "description": "Manage your data and permissions in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_only": { + "description": "View your data in Google Cloud Storage" + }, + "https://www.googleapis.com/auth/devstorage.read_write": { + "description": "Manage your data in Google Cloud Storage" + } + } + } + }, + "schemas": { + "Bucket": { + "id": "Bucket", + "type": "object", + "description": "A bucket.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the bucket.", + "items": { + "$ref": "BucketAccessControl" + }, + "annotations": { + "required": [ + "storage.buckets.update" + ] + } + }, + "cors": { + "type": "array", + "description": "The bucket's Cross-Origin Resource Sharing (CORS) configuration.", + "items": { + "type": "object", + "properties": { + "maxAgeSeconds": { + "type": "integer", + "description": "The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.", + "format": "int32" + }, + "method": { + "type": "array", + "description": "The list of HTTP methods on which to include CORS response headers: GET, OPTIONS, POST, etc. Note, \"*\" is permitted in the list of methods, and means \"any method\".", + "items": { + "type": "string" + } + }, + "origin": { + "type": "array", + "description": "The list of Origins eligible to receive CORS response headers. Note: \"*\" is permitted in the list of origins, and means \"any Origin\".", + "items": { + "type": "string" + } + }, + "responseHeader": { + "type": "array", + "description": "The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.", + "items": { + "type": "string" + } + } + } + } + }, + "defaultObjectAcl": { + "type": "array", + "description": "Default access controls to apply to new objects when no ACL is provided.", + "items": { + "$ref": "ObjectAccessControl" + } + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the bucket." + }, + "id": { + "type": "string", + "description": "The ID of the bucket." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For buckets, this is always storage#bucket.", + "default": "storage#bucket" + }, + "lifecycle": { + "type": "object", + "description": "The bucket's lifecycle configuration. See object lifecycle management for more information.", + "properties": { + "rule": { + "type": "array", + "description": "A lifecycle management rule, which is made of an action to take and the condition(s) under which the action will be taken.", + "items": { + "type": "object", + "properties": { + "action": { + "type": "object", + "description": "The action to take.", + "properties": { + "type": { + "type": "string", + "description": "Type of the action. Currently only Delete is supported." + } + } + }, + "condition": { + "type": "object", + "description": "The condition(s) under which the action will be taken.", + "properties": { + "age": { + "type": "integer", + "description": "Age of an object (in days). This condition is satisfied when an object reaches the specified age.", + "format": "int32" + }, + "createdBefore": { + "type": "string", + "description": "A date in RFC 3339 format with only the date part, e.g. \"2013-01-15\". This condition is satisfied when an object is created before midnight of the specified date in UTC.", + "format": "date" + }, + "isLive": { + "type": "boolean", + "description": "Relevant only for versioned objects. If the value is true, this condition matches live objects; if the value is false, it matches archived objects." + }, + "numNewerVersions": { + "type": "integer", + "description": "Relevant only for versioned objects. If the value is N, this condition is satisfied when there are at least N versions (including the live version) newer than this version of the object.", + "format": "int32" + } + } + } + } + } + } + } + }, + "location": { + "type": "string", + "description": "The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Typical values are US and EU. Defaults to US. See the developer's guide for the authoritative list." + }, + "logging": { + "type": "object", + "description": "The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.", + "properties": { + "logBucket": { + "type": "string", + "description": "The destination bucket where the current bucket's logs should be placed." + }, + "logObjectPrefix": { + "type": "string", + "description": "A prefix for log object names." + } + } + }, + "metageneration": { + "type": "string", + "description": "The metadata generation of this bucket.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the bucket.", + "annotations": { + "required": [ + "storage.buckets.insert" + ] + } + }, + "owner": { + "type": "object", + "description": "The owner of the bucket. This is always the project team's owner group.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form group-groupId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "selfLink": { + "type": "string", + "description": "The URI of this bucket." + }, + "storageClass": { + "type": "string", + "description": "The bucket's storage class. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Typical values are STANDARD and DURABLE_REDUCED_AVAILABILITY. Defaults to STANDARD. See the developer's guide for the authoritative list." + }, + "timeCreated": { + "type": "string", + "description": "Creation time of the bucket in RFC 3339 format.", + "format": "date-time" + }, + "versioning": { + "type": "object", + "description": "The bucket's versioning configuration.", + "properties": { + "enabled": { + "type": "boolean", + "description": "While set to true, versioning is fully enabled for this bucket." + } + } + }, + "website": { + "type": "object", + "description": "The bucket's website configuration.", + "properties": { + "mainPageSuffix": { + "type": "string", + "description": "Behaves as the bucket's directory index where missing objects are treated as potential directories." + }, + "notFoundPage": { + "type": "string", + "description": "The custom object to return when a requested resource is not found." + } + } + } + } + }, + "BucketAccessControl": { + "id": "BucketAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the access-control entry." + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For bucket access control entries, this is always storage#bucketAccessControl.", + "default": "storage#bucketAccessControl" + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER, WRITER, or OWNER.", + "annotations": { + "required": [ + "storage.bucketAccessControls.insert" + ] + } + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "BucketAccessControls": { + "id": "BucketAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "BucketAccessControl" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of bucket access control entries, this is always storage#bucketAccessControls.", + "default": "storage#bucketAccessControls" + } + } + }, + "Buckets": { + "id": "Buckets", + "type": "object", + "description": "A list of buckets.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Bucket" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of buckets, this is always storage#buckets.", + "default": "storage#buckets" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + } + } + }, + "Channel": { + "id": "Channel", + "type": "object", + "description": "An notification channel used to watch for resource changes.", + "properties": { + "address": { + "type": "string", + "description": "The address where notifications are delivered for this channel." + }, + "expiration": { + "type": "string", + "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "A UUID or similar unique string that identifies this channel." + }, + "kind": { + "type": "string", + "description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".", + "default": "api#channel" + }, + "params": { + "type": "object", + "description": "Additional parameters controlling delivery channel behavior. Optional.", + "additionalProperties": { + "type": "string", + "description": "Declares a new parameter by name." + } + }, + "payload": { + "type": "boolean", + "description": "A Boolean value to indicate whether payload is wanted. Optional." + }, + "resourceId": { + "type": "string", + "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions." + }, + "resourceUri": { + "type": "string", + "description": "A version-specific identifier for the watched resource." + }, + "token": { + "type": "string", + "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional." + }, + "type": { + "type": "string", + "description": "The type of delivery mechanism used for this channel." + } + } + }, + "ComposeRequest": { + "id": "ComposeRequest", + "type": "object", + "description": "A Compose request.", + "properties": { + "destination": { + "$ref": "Object", + "description": "Properties of the resulting object" + }, + "kind": { + "type": "string", + "description": "The kind of item this is.", + "default": "storage#composeRequest" + }, + "sourceObjects": { + "type": "array", + "description": "The list of source objects that will be concatenated into a single object.", + "items": { + "type": "object", + "properties": { + "generation": { + "type": "string", + "description": "The generation of this object to use as the source.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The source object's name. The source object's bucket is implicitly the destination bucket.", + "annotations": { + "required": [ + "storage.objects.compose" + ] + } + }, + "objectPreconditions": { + "type": "object", + "description": "Conditions that must be met for this operation to execute.", + "properties": { + "ifGenerationMatch": { + "type": "string", + "description": "Only perform the composition if the generation of the source object that would be used matches this value. If this value and a generation are both specified, they must be the same value or the call will fail.", + "format": "int64" + } + } + } + } + }, + "annotations": { + "required": [ + "storage.objects.compose" + ] + } + } + } + }, + "Object": { + "id": "Object", + "type": "object", + "description": "An object.", + "properties": { + "acl": { + "type": "array", + "description": "Access controls on the object.", + "items": { + "$ref": "ObjectAccessControl" + }, + "annotations": { + "required": [ + "storage.objects.update" + ] + } + }, + "bucket": { + "type": "string", + "description": "The bucket containing this object." + }, + "cacheControl": { + "type": "string", + "description": "Cache-Control directive for the object data." + }, + "componentCount": { + "type": "integer", + "description": "Number of underlying components that make up this object. Components are accumulated by compose operations and are limited to a count of 32.", + "format": "int32" + }, + "contentDisposition": { + "type": "string", + "description": "Content-Disposition of the object data." + }, + "contentEncoding": { + "type": "string", + "description": "Content-Encoding of the object data." + }, + "contentLanguage": { + "type": "string", + "description": "Content-Language of the object data." + }, + "contentType": { + "type": "string", + "description": "Content-Type of the object data.", + "annotations": { + "required": [ + "storage.objects.update" + ] + } + }, + "crc32c": { + "type": "string", + "description": "CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the object." + }, + "generation": { + "type": "string", + "description": "The content generation of this object. Used for object versioning.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The ID of the object." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For objects, this is always storage#object.", + "default": "storage#object" + }, + "md5Hash": { + "type": "string", + "description": "MD5 hash of the data; encoded using base64." + }, + "mediaLink": { + "type": "string", + "description": "Media download link." + }, + "metadata": { + "type": "object", + "description": "User-provided metadata, in key/value pairs.", + "additionalProperties": { + "type": "string", + "description": "An individual metadata entry." + } + }, + "metageneration": { + "type": "string", + "description": "The generation of the metadata for this object at this generation. Used for metadata versioning. Has no meaning outside of the context of this generation.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of this object. Required if not specified by URL parameter." + }, + "owner": { + "type": "object", + "description": "The owner of the object. This will always be the uploader of the object.", + "properties": { + "entity": { + "type": "string", + "description": "The entity, in the form user-userId." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity." + } + } + }, + "selfLink": { + "type": "string", + "description": "The link to this object." + }, + "size": { + "type": "string", + "description": "Content-Length of the data in bytes.", + "format": "uint64" + }, + "storageClass": { + "type": "string", + "description": "Storage class of the object." + }, + "timeDeleted": { + "type": "string", + "description": "Deletion time of the object in RFC 3339 format. Will be returned if and only if this version of the object has been deleted.", + "format": "date-time" + }, + "updated": { + "type": "string", + "description": "Modification time of the object metadata in RFC 3339 format.", + "format": "date-time" + } + } + }, + "ObjectAccessControl": { + "id": "ObjectAccessControl", + "type": "object", + "description": "An access-control entry.", + "properties": { + "bucket": { + "type": "string", + "description": "The name of the bucket." + }, + "domain": { + "type": "string", + "description": "The domain associated with the entity, if any." + }, + "email": { + "type": "string", + "description": "The email address associated with the entity, if any." + }, + "entity": { + "type": "string", + "description": "The entity holding the permission, in one of the following forms: \n- user-userId \n- user-email \n- group-groupId \n- group-email \n- domain-domain \n- allUsers \n- allAuthenticatedUsers Examples: \n- The user liz@example.com would be user-liz@example.com. \n- The group example@googlegroups.com would be group-example@googlegroups.com. \n- To refer to all members of the Google Apps for Business domain example.com, the entity would be domain-example.com." + }, + "entityId": { + "type": "string", + "description": "The ID for the entity, if any." + }, + "etag": { + "type": "string", + "description": "HTTP 1.1 Entity tag for the access-control entry." + }, + "generation": { + "type": "string", + "description": "The content generation of the object.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "The ID of the access-control entry." + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For object access control entries, this is always storage#objectAccessControl.", + "default": "storage#objectAccessControl" + }, + "object": { + "type": "string", + "description": "The name of the object." + }, + "role": { + "type": "string", + "description": "The access permission for the entity. Can be READER or OWNER." + }, + "selfLink": { + "type": "string", + "description": "The link to this access-control entry." + } + } + }, + "ObjectAccessControls": { + "id": "ObjectAccessControls", + "type": "object", + "description": "An access-control list.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "type": "any" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of object access control entries, this is always storage#objectAccessControls.", + "default": "storage#objectAccessControls" + } + } + }, + "Objects": { + "id": "Objects", + "type": "object", + "description": "A list of objects.", + "properties": { + "items": { + "type": "array", + "description": "The list of items.", + "items": { + "$ref": "Object" + } + }, + "kind": { + "type": "string", + "description": "The kind of item this is. For lists of objects, this is always storage#objects.", + "default": "storage#objects" + }, + "nextPageToken": { + "type": "string", + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results." + }, + "prefixes": { + "type": "array", + "description": "The list of prefixes of objects matching-but-not-listed up to and including the requested delimiter.", + "items": { + "type": "string" + } + } + } + } + }, + "resources": { + "bucketAccessControls": { + "methods": { + "delete": { + "id": "storage.bucketAccessControls.delete", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.bucketAccessControls.get", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.bucketAccessControls.insert", + "path": "b/{bucket}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.bucketAccessControls.list", + "path": "b/{bucket}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "BucketAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.bucketAccessControls.patch", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.bucketAccessControls.update", + "path": "b/{bucket}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "BucketAccessControl" + }, + "response": { + "$ref": "BucketAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "buckets": { + "methods": { + "delete": { + "id": "storage.buckets.delete", + "path": "b/{bucket}", + "httpMethod": "DELETE", + "description": "Permanently deletes an empty bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.buckets.get", + "path": "b/{bucket}", + "httpMethod": "GET", + "description": "Returns metadata for the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "insert": { + "id": "storage.buckets.insert", + "path": "b", + "httpMethod": "POST", + "description": "Creates a new bucket.", + "parameters": { + "project": { + "type": "string", + "description": "A valid API project identifier.", + "required": true, + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "id": "storage.buckets.list", + "path": "b", + "httpMethod": "GET", + "description": "Retrieves a list of buckets for a given project.", + "parameters": { + "maxResults": { + "type": "integer", + "description": "Maximum number of buckets to return.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "project": { + "type": "string", + "description": "A valid API project identifier.", + "required": true, + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "project" + ], + "response": { + "$ref": "Buckets" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "patch": { + "id": "storage.buckets.patch", + "path": "b/{bucket}", + "httpMethod": "PATCH", + "description": "Updates a bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.buckets.update", + "path": "b/{bucket}", + "httpMethod": "PUT", + "description": "Updates a bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit acl and defaultObjectAcl properties." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Bucket" + }, + "response": { + "$ref": "Bucket" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "channels": { + "methods": { + "stop": { + "id": "storage.channels.stop", + "path": "channels/stop", + "httpMethod": "POST", + "description": "Stop watching resources through this channel", + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "defaultObjectAccessControls": { + "methods": { + "delete": { + "id": "storage.defaultObjectAccessControls.delete", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the default object ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.defaultObjectAccessControls.get", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "GET", + "description": "Returns the default object ACL entry for the specified entity on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.defaultObjectAccessControls.insert", + "path": "b/{bucket}/defaultObjectAcl", + "httpMethod": "POST", + "description": "Creates a new default object ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.defaultObjectAccessControls.list", + "path": "b/{bucket}/defaultObjectAcl", + "httpMethod": "GET", + "description": "Retrieves default object ACL entries on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "If present, only return default ACL listing if the bucket's current metageneration matches this value.", + "format": "int64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "If present, only return default ACL listing if the bucket's current metageneration does not match the given value.", + "format": "int64", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "ObjectAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.defaultObjectAccessControls.patch", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "PATCH", + "description": "Updates a default object ACL entry on the specified bucket. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.defaultObjectAccessControls.update", + "path": "b/{bucket}/defaultObjectAcl/{entity}", + "httpMethod": "PUT", + "description": "Updates a default object ACL entry on the specified bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "objectAccessControls": { + "methods": { + "delete": { + "id": "storage.objectAccessControls.delete", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "DELETE", + "description": "Permanently deletes the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "get": { + "id": "storage.objectAccessControls.get", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "GET", + "description": "Returns the ACL entry for the specified entity on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "insert": { + "id": "storage.objectAccessControls.insert", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "POST", + "description": "Creates a new ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "list": { + "id": "storage.objectAccessControls.list", + "path": "b/{bucket}/o/{object}/acl", + "httpMethod": "GET", + "description": "Retrieves ACL entries on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "ObjectAccessControls" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "patch": { + "id": "storage.objectAccessControls.patch", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PATCH", + "description": "Updates an ACL entry on the specified object. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "update": { + "id": "storage.objectAccessControls.update", + "path": "b/{bucket}/o/{object}/acl/{entity}", + "httpMethod": "PUT", + "description": "Updates an ACL entry on the specified object.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of a bucket.", + "required": true, + "location": "path" + }, + "entity": { + "type": "string", + "description": "The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object", + "entity" + ], + "request": { + "$ref": "ObjectAccessControl" + }, + "response": { + "$ref": "ObjectAccessControl" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, + "objects": { + "methods": { + "compose": { + "id": "storage.objects.compose", + "path": "b/{destinationBucket}/o/{destinationObject}/compose", + "httpMethod": "POST", + "description": "Concatenates a list of existing objects into a new object in the same bucket.", + "parameters": { + "destinationBucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object.", + "required": true, + "location": "path" + }, + "destinationObject": { + "type": "string", + "description": "Name of the new object.", + "required": true, + "location": "path" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + } + }, + "parameterOrder": [ + "destinationBucket", + "destinationObject" + ], + "request": { + "$ref": "ComposeRequest" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "copy": { + "id": "storage.objects.copy", + "path": "b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}", + "httpMethod": "POST", + "description": "Copies an object to a destination in the same location. Optionally overrides metadata.", + "parameters": { + "destinationBucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.", + "required": true, + "location": "path" + }, + "destinationObject": { + "type": "string", + "description": "Name of the new object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.", + "required": true, + "location": "path" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the destination object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifSourceGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifSourceGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifSourceMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifSourceMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the source object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "sourceBucket": { + "type": "string", + "description": "Name of the bucket in which to find the source object.", + "required": true, + "location": "path" + }, + "sourceGeneration": { + "type": "string", + "description": "If present, selects a specific revision of the source object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "sourceObject": { + "type": "string", + "description": "Name of the source object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "sourceBucket", + "sourceObject", + "destinationBucket", + "destinationObject" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "delete": { + "id": "storage.objects.delete", + "path": "b/{bucket}/o/{object}", + "httpMethod": "DELETE", + "description": "Deletes data blobs and associated metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, permanently deletes a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "id": "storage.objects.get", + "path": "b/{bucket}/o/{object}", + "httpMethod": "GET", + "description": "Retrieves objects or their associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "insert": { + "id": "storage.objects.insert", + "path": "b/{bucket}/o", + "httpMethod": "POST", + "description": "Stores new data blobs and associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to store the new object. Overrides the provided object metadata's bucket value, if any.", + "required": true, + "location": "path" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "name": { + "type": "string", + "description": "Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true, + "supportsMediaUpload": true, + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/storage/v1beta2/b/{bucket}/o" + }, + "resumable": { + "multipart": true, + "path": "/resumable/upload/storage/v1beta2/b/{bucket}/o" + } + } + } + }, + "list": { + "id": "storage.objects.list", + "path": "b/{bucket}/o", + "httpMethod": "GET", + "description": "Retrieves a list of objects matching the criteria.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to look for objects.", + "required": true, + "location": "path" + }, + "delimiter": { + "type": "string", + "description": "Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to objects whose names begin with this prefix.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "versions": { + "type": "boolean", + "description": "If true, lists all versions of a file as distinct results.", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "response": { + "$ref": "Objects" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsSubscription": true + }, + "patch": { + "id": "storage.objects.patch", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PATCH", + "description": "Updates a data blob's associated metadata. This method supports patch semantics.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "update": { + "id": "storage.objects.update", + "path": "b/{bucket}/o/{object}", + "httpMethod": "PUT", + "description": "Updates a data blob's associated metadata.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which the object resides.", + "required": true, + "location": "path" + }, + "generation": { + "type": "string", + "description": "If present, selects a specific revision of this object (as opposed to the latest version, the default).", + "format": "uint64", + "location": "query" + }, + "ifGenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifGenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current generation does not match the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration matches the given value.", + "format": "uint64", + "location": "query" + }, + "ifMetagenerationNotMatch": { + "type": "string", + "description": "Makes the operation conditional on whether the object's current metageneration does not match the given value.", + "format": "uint64", + "location": "query" + }, + "object": { + "type": "string", + "description": "Name of the object.", + "required": true, + "location": "path" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to full.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + } + }, + "parameterOrder": [ + "bucket", + "object" + ], + "request": { + "$ref": "Object" + }, + "response": { + "$ref": "Object" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsMediaDownload": true + }, + "watchAll": { + "id": "storage.objects.watchAll", + "path": "b/{bucket}/o/watch", + "httpMethod": "POST", + "description": "Watch for changes on all objects in a bucket.", + "parameters": { + "bucket": { + "type": "string", + "description": "Name of the bucket in which to look for objects.", + "required": true, + "location": "path" + }, + "delimiter": { + "type": "string", + "description": "Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.", + "location": "query" + }, + "maxResults": { + "type": "integer", + "description": "Maximum number of items plus prefixes to return. As duplicate prefixes are omitted, fewer total results may be returned than requested.", + "format": "uint32", + "minimum": "0", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query" + }, + "prefix": { + "type": "string", + "description": "Filter results to objects whose names begin with this prefix.", + "location": "query" + }, + "projection": { + "type": "string", + "description": "Set of properties to return. Defaults to noAcl.", + "enum": [ + "full", + "noAcl" + ], + "enumDescriptions": [ + "Include all properties.", + "Omit the acl property." + ], + "location": "query" + }, + "versions": { + "type": "boolean", + "description": "If true, lists all versions of a file as distinct results.", + "location": "query" + } + }, + "parameterOrder": [ + "bucket" + ], + "request": { + "$ref": "Channel", + "parameterName": "resource" + }, + "response": { + "$ref": "Channel" + }, + "scopes": [ + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ], + "supportsSubscription": true + } + } + } + } +} diff --git a/etc/api/tagmanager/v1/tagmanager-api.json b/etc/api/tagmanager/v1/tagmanager-api.json new file mode 100644 index 0000000000..54f71999ac --- /dev/null +++ b/etc/api/tagmanager/v1/tagmanager-api.json @@ -0,0 +1,2821 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/VOqeEOPH-o9v8dt3uW3tHJ6u1a4\"", + "discoveryVersion": "v1", + "id": "tagmanager:v1", + "name": "tagmanager", + "canonicalName": "Tag Manager", + "version": "v1", + "revision": "20150121", + "title": "Tag Manager API", + "description": "API for accessing Tag Manager accounts and containers.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/tag-manager/api/v1/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/tagmanager/v1/", + "basePath": "/tagmanager/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "tagmanager/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/tagmanager.delete.containers": { + "description": "Delete your Google Tag Manager containers" + }, + "https://www.googleapis.com/auth/tagmanager.edit.containers": { + "description": "Manage your Google Tag Manager containers" + }, + "https://www.googleapis.com/auth/tagmanager.edit.containerversions": { + "description": "Manage your Google Tag Manager container versions" + }, + "https://www.googleapis.com/auth/tagmanager.manage.accounts": { + "description": "Manage your Google Tag Manager accounts" + }, + "https://www.googleapis.com/auth/tagmanager.manage.users": { + "description": "Manage user permissions of your Google Tag Manager data" + }, + "https://www.googleapis.com/auth/tagmanager.publish": { + "description": "Publish your Google Tag Manager containers" + }, + "https://www.googleapis.com/auth/tagmanager.readonly": { + "description": "View your Google Tag Manager containers" + } + } + } + }, + "schemas": { + "Account": { + "id": "Account", + "type": "object", + "description": "Represents a Google Tag Manager Account.", + "properties": { + "accountId": { + "type": "string", + "description": "The Account ID uniquely identifies the GTM Account." + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified." + }, + "name": { + "type": "string", + "description": "Account display name." + }, + "shareData": { + "type": "boolean", + "description": "Whether the account shares data anonymously with Google and others." + } + } + }, + "AccountAccess": { + "id": "AccountAccess", + "type": "object", + "description": "Defines the Google Tag Manager Account access permissions.", + "properties": { + "permission": { + "type": "array", + "description": "List of Account permissions. Valid account permissions are read and manage.", + "items": { + "type": "string", + "enum": [ + "delete", + "edit", + "manage", + "publish", + "read" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + }, + "annotations": { + "required": [ + "tagmanager.accounts.permissions.create" + ] + } + } + } + }, + "Condition": { + "id": "Condition", + "type": "object", + "description": "Represents a predicate.", + "properties": { + "parameter": { + "type": "array", + "description": "A list of named parameters (key/value), depending on the condition's type. Notes: \n- For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively. \n- At this time, the left operand (arg0) must be a reference to a macro. \n- For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive. \n- To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.", + "items": { + "$ref": "Parameter" + }, + "annotations": { + "required": [ + "tagmanager.accounts.containers.rules.create", + "tagmanager.accounts.containers.rules.update" + ] + } + }, + "type": { + "type": "string", + "description": "The type of operator for this condition.", + "enum": [ + "contains", + "endsWith", + "equals", + "greater", + "greaterOrEquals", + "less", + "lessOrEquals", + "matchRegex", + "startsWith" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "tagmanager.accounts.containers.rules.create", + "tagmanager.accounts.containers.rules.update" + ] + } + } + } + }, + "Container": { + "id": "Container", + "type": "object", + "description": "Represents a Google Tag Manager Container.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "containerId": { + "type": "string", + "description": "The Container ID uniquely identifies the GTM Container." + }, + "domainName": { + "type": "array", + "description": "Optional list of domain names associated with the Container.", + "items": { + "type": "string" + } + }, + "enabledBuiltInVariable": { + "type": "array", + "description": "List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.", + "items": { + "type": "string", + "enum": [ + "clickClasses", + "clickElement", + "clickId", + "clickTarget", + "clickText", + "clickUrl", + "containerId", + "containerVersion", + "debugMode", + "errorLine", + "errorMessage", + "errorUrl", + "event", + "formClasses", + "formElement", + "formId", + "formTarget", + "formText", + "formUrl", + "historySource", + "newHistoryFragment", + "newHistoryState", + "oldHistoryFragment", + "oldHistoryState", + "pageHostname", + "pagePath", + "pageUrl", + "randomNumber", + "referrer" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified." + }, + "name": { + "type": "string", + "description": "Container display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.create" + ] + } + }, + "notes": { + "type": "string", + "description": "Container Notes." + }, + "publicId": { + "type": "string", + "description": "Container Public ID." + }, + "timeZoneCountryId": { + "type": "string", + "description": "Container Country ID.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.create" + ] + } + }, + "timeZoneId": { + "type": "string", + "description": "Container Time Zone ID.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.create" + ] + } + }, + "usageContext": { + "type": "array", + "description": "List of Usage Contexts for the Container. Valid values include: web, android, ios.", + "items": { + "type": "string", + "enum": [ + "android", + "ios", + "web" + ], + "enumDescriptions": [ + "", + "", + "" + ] + }, + "annotations": { + "required": [ + "tagmanager.accounts.containers.create" + ] + } + } + } + }, + "ContainerAccess": { + "id": "ContainerAccess", + "type": "object", + "description": "Defines the Google Tag Manager Container access permissions.", + "properties": { + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "permission": { + "type": "array", + "description": "List of Container permissions. Valid container permissions are: read, edit, delete, publish.", + "items": { + "type": "string", + "enum": [ + "delete", + "edit", + "manage", + "publish", + "read" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ] + } + } + } + }, + "ContainerVersion": { + "id": "ContainerVersion", + "type": "object", + "description": "Represents a Google Tag Manager Container Version.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "container": { + "$ref": "Container", + "description": "The container that this version was taken from." + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "containerVersionId": { + "type": "string", + "description": "The Container Version ID uniquely identifies the GTM Container Version." + }, + "deleted": { + "type": "boolean", + "description": "A value of true indicates this container version has been deleted." + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified." + }, + "macro": { + "type": "array", + "description": "The macros in the container that this version was taken from.", + "items": { + "$ref": "Macro" + } + }, + "name": { + "type": "string", + "description": "Container version display name." + }, + "notes": { + "type": "string", + "description": "User notes on how to apply this container version in the container." + }, + "rule": { + "type": "array", + "description": "The rules in the container that this version was taken from.", + "items": { + "$ref": "Rule" + } + }, + "tag": { + "type": "array", + "description": "The tags in the container that this version was taken from.", + "items": { + "$ref": "Tag" + } + }, + "trigger": { + "type": "array", + "description": "The triggers in the container that this version was taken from.", + "items": { + "$ref": "Trigger" + } + }, + "variable": { + "type": "array", + "description": "The variables in the container that this version was taken from.", + "items": { + "$ref": "Variable" + } + } + } + }, + "ContainerVersionHeader": { + "id": "ContainerVersionHeader", + "type": "object", + "description": "Represents a Google Tag Manager Container Version Header.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "containerVersionId": { + "type": "string", + "description": "The Container Version ID uniquely identifies the GTM Container Version." + }, + "deleted": { + "type": "boolean", + "description": "A value of true indicates this container version has been deleted." + }, + "name": { + "type": "string", + "description": "Container version display name." + }, + "numMacros": { + "type": "string", + "description": "Number of macros in the container version." + }, + "numRules": { + "type": "string", + "description": "Number of rules in the container version." + }, + "numTags": { + "type": "string", + "description": "Number of tags in the container version." + }, + "numTriggers": { + "type": "string", + "description": "Number of triggers in the container version." + }, + "numVariables": { + "type": "string", + "description": "Number of variables in the container version." + } + } + }, + "CreateContainerVersionRequestVersionOptions": { + "id": "CreateContainerVersionRequestVersionOptions", + "type": "object", + "description": "Options for new container versions.", + "properties": { + "name": { + "type": "string", + "description": "The name of the container version to be created." + }, + "notes": { + "type": "string", + "description": "The notes of the container version to be created." + }, + "quickPreview": { + "type": "boolean", + "description": "The creation of this version may be for quick preview and shouldn't be saved." + } + } + }, + "CreateContainerVersionResponse": { + "id": "CreateContainerVersionResponse", + "type": "object", + "description": "Create container versions response.", + "properties": { + "compilerError": { + "type": "boolean", + "description": "Compiler errors or not." + }, + "containerVersion": { + "$ref": "ContainerVersion", + "description": "The container version created." + } + } + }, + "ListAccountUsersResponse": { + "id": "ListAccountUsersResponse", + "type": "object", + "description": "List AccountUsers Response.", + "properties": { + "userAccess": { + "type": "array", + "description": "All GTM AccountUsers of a GTM Account.", + "items": { + "$ref": "UserAccess" + } + } + } + }, + "ListAccountsResponse": { + "id": "ListAccountsResponse", + "type": "object", + "description": "List Accounts Response.", + "properties": { + "accounts": { + "type": "array", + "description": "List of GTM Accounts that a user has access to.", + "items": { + "$ref": "Account" + } + } + } + }, + "ListContainerVersionsResponse": { + "id": "ListContainerVersionsResponse", + "type": "object", + "description": "List container versions response.", + "properties": { + "containerVersion": { + "type": "array", + "description": "All versions of a GTM Container.", + "items": { + "$ref": "ContainerVersion" + } + }, + "containerVersionHeader": { + "type": "array", + "description": "All container version headers of a GTM Container.", + "items": { + "$ref": "ContainerVersionHeader" + } + } + } + }, + "ListContainersResponse": { + "id": "ListContainersResponse", + "type": "object", + "description": "List Containers Response.", + "properties": { + "containers": { + "type": "array", + "description": "All Containers of a GTM Account.", + "items": { + "$ref": "Container" + } + } + } + }, + "ListMacrosResponse": { + "id": "ListMacrosResponse", + "type": "object", + "description": "List Macros Response.", + "properties": { + "macros": { + "type": "array", + "description": "All GTM Macros of a GTM Container.", + "items": { + "$ref": "Macro" + } + } + } + }, + "ListRulesResponse": { + "id": "ListRulesResponse", + "type": "object", + "description": "List Rules Response.", + "properties": { + "rules": { + "type": "array", + "description": "All GTM Rules of a GTM Container.", + "items": { + "$ref": "Rule" + } + } + } + }, + "ListTagsResponse": { + "id": "ListTagsResponse", + "type": "object", + "description": "List Tags Response.", + "properties": { + "tags": { + "type": "array", + "description": "All GTM Tags of a GTM Container.", + "items": { + "$ref": "Tag" + } + } + } + }, + "ListTriggersResponse": { + "id": "ListTriggersResponse", + "type": "object", + "description": "List triggers response.", + "properties": { + "triggers": { + "type": "array", + "description": "All GTM Triggers of a GTM Container.", + "items": { + "$ref": "Trigger" + } + } + } + }, + "ListVariablesResponse": { + "id": "ListVariablesResponse", + "type": "object", + "description": "List Variables Response.", + "properties": { + "variables": { + "type": "array", + "description": "All GTM Variables of a GTM Container.", + "items": { + "$ref": "Variable" + } + } + } + }, + "Macro": { + "id": "Macro", + "type": "object", + "description": "Represents a Google Tag Manager Macro.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "disablingRuleId": { + "type": "array", + "description": "For mobile containers only: A list of rule IDs for disabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set.", + "items": { + "type": "string" + } + }, + "enablingRuleId": { + "type": "array", + "description": "For mobile containers only: A list of rule IDs for enabling conditional macros; the macro is enabled if one of the enabling rules is true while all the disabling rules are false. Treated as an unordered set.", + "items": { + "type": "string" + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Macro as computed at storage time. This value is recomputed whenever the macro is modified." + }, + "macroId": { + "type": "string", + "description": "The Macro ID uniquely identifies the GTM Macro." + }, + "name": { + "type": "string", + "description": "Macro display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.macros.create" + ] + } + }, + "notes": { + "type": "string", + "description": "User notes on how to apply this macro in the container." + }, + "parameter": { + "type": "array", + "description": "The macro's parameters.", + "items": { + "$ref": "Parameter" + } + }, + "scheduleEndMs": { + "type": "string", + "description": "The end timestamp in milliseconds to schedule a macro.", + "format": "int64" + }, + "scheduleStartMs": { + "type": "string", + "description": "The start timestamp in milliseconds to schedule a macro.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "GTM Macro Type.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.macros.create", + "tagmanager.accounts.containers.macros.update" + ] + } + } + } + }, + "Parameter": { + "id": "Parameter", + "type": "object", + "description": "Represents a Google Tag Manager Parameter.", + "properties": { + "key": { + "type": "string", + "description": "The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values." + }, + "list": { + "type": "array", + "description": "This list parameter's parameters (keys will be ignored).", + "items": { + "$ref": "Parameter" + } + }, + "map": { + "type": "array", + "description": "This map parameter's parameters (must have keys; keys must be unique).", + "items": { + "$ref": "Parameter" + } + }, + "type": { + "type": "string", + "description": "The parameter type. Valid values are: \n- boolean: The value represents a boolean, represented as 'true' or 'false' \n- integer: The value represents a 64-bit signed integer value, in base 10 \n- list: A list of parameters should be specified \n- map: A map of parameters should be specified \n- template: The value represents any text; this can include macro references (even macro references that might return non-string types)", + "enum": [ + "boolean", + "integer", + "list", + "map", + "template" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "tagmanager.accounts.containers.macros.create", + "tagmanager.accounts.containers.macros.update", + "tagmanager.accounts.containers.rules.create", + "tagmanager.accounts.containers.rules.update", + "tagmanager.accounts.containers.tags.create", + "tagmanager.accounts.containers.tags.update" + ] + } + }, + "value": { + "type": "string", + "description": "A parameter's value (may contain macro references such as \"{{myMacro}}\") as appropriate to the specified type." + } + } + }, + "PublishContainerVersionResponse": { + "id": "PublishContainerVersionResponse", + "type": "object", + "description": "Publish container version response.", + "properties": { + "compilerError": { + "type": "boolean", + "description": "Compiler errors or not." + }, + "containerVersion": { + "$ref": "ContainerVersion", + "description": "The container version created." + } + } + }, + "Rule": { + "id": "Rule", + "type": "object", + "description": "Represents a Google Tag Manager Rule.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "condition": { + "type": "array", + "description": "The list of conditions that make up this rule (implicit AND between them).", + "items": { + "$ref": "Condition" + } + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Rule as computed at storage time. This value is recomputed whenever the rule is modified." + }, + "name": { + "type": "string", + "description": "Rule display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.rules.create" + ] + } + }, + "notes": { + "type": "string", + "description": "User notes on how to apply this rule in the container." + }, + "ruleId": { + "type": "string", + "description": "The Rule ID uniquely identifies the GTM Rule." + } + } + }, + "Tag": { + "id": "Tag", + "type": "object", + "description": "Represents a Google Tag Manager Tag.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "blockingRuleId": { + "type": "array", + "description": "Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.", + "items": { + "type": "string" + } + }, + "blockingTriggerId": { + "type": "array", + "description": "Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.", + "items": { + "type": "string" + } + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified." + }, + "firingRuleId": { + "type": "array", + "description": "Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.", + "items": { + "type": "string" + } + }, + "firingTriggerId": { + "type": "array", + "description": "Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.", + "items": { + "type": "string" + } + }, + "liveOnly": { + "type": "boolean", + "description": "If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode)." + }, + "name": { + "type": "string", + "description": "Tag display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.tags.create" + ] + } + }, + "notes": { + "type": "string", + "description": "User notes on how to apply this tag in the container." + }, + "parameter": { + "type": "array", + "description": "The tag's parameters.", + "items": { + "$ref": "Parameter" + } + }, + "priority": { + "$ref": "Parameter", + "description": "User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0." + }, + "scheduleEndMs": { + "type": "string", + "description": "The end timestamp in milliseconds to schedule a tag.", + "format": "int64" + }, + "scheduleStartMs": { + "type": "string", + "description": "The start timestamp in milliseconds to schedule a tag.", + "format": "int64" + }, + "tagId": { + "type": "string", + "description": "The Tag ID uniquely identifies the GTM Tag." + }, + "type": { + "type": "string", + "description": "GTM Tag Type.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.tags.create" + ] + } + } + } + }, + "Trigger": { + "id": "Trigger", + "type": "object", + "description": "Represents a Google Tag Manager Trigger", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "autoEventFilter": { + "type": "array", + "description": "Used in the case of auto event tracking.", + "items": { + "$ref": "Condition" + } + }, + "checkValidation": { + "$ref": "Parameter", + "description": "Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers." + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "customEventFilter": { + "type": "array", + "description": "Used in the case of custom event, which is fired iff all Conditions are true.", + "items": { + "$ref": "Condition" + } + }, + "enableAllVideos": { + "$ref": "Parameter", + "description": "Reloads the videos in the page that don't already have the YT API enabled. If false, only capture events from videos that already have the API enabled. Only valid for YouTube triggers." + }, + "eventName": { + "$ref": "Parameter", + "description": "Name of the GTM event that is fired. Only valid for Timer triggers." + }, + "filter": { + "type": "array", + "description": "The trigger will only fire iff all Conditions are true.", + "items": { + "$ref": "Condition" + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified." + }, + "interval": { + "$ref": "Parameter", + "description": "Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers." + }, + "limit": { + "$ref": "Parameter", + "description": "Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers." + }, + "name": { + "type": "string", + "description": "Trigger display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.triggers.create" + ] + } + }, + "triggerId": { + "type": "string", + "description": "The Trigger ID uniquely identifies the GTM Trigger." + }, + "type": { + "type": "string", + "description": "Defines the data layer event that causes this trigger.", + "enum": [ + "ajaxSubmission", + "always", + "click", + "customEvent", + "domReady", + "formSubmission", + "historyChange", + "jsError", + "linkClick", + "pageview", + "timer", + "windowLoaded", + "youTube" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "annotations": { + "required": [ + "tagmanager.accounts.containers.triggers.create" + ] + } + }, + "uniqueTriggerId": { + "$ref": "Parameter", + "description": "Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers." + }, + "videoPercentageList": { + "$ref": "Parameter", + "description": "List of integer percentage values. The trigger will fire as each percentage is reached in any instrumented videos. Only valid for YouTube triggers." + }, + "waitForTags": { + "$ref": "Parameter", + "description": "Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers." + }, + "waitForTagsTimeout": { + "$ref": "Parameter", + "description": "How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers." + } + } + }, + "UserAccess": { + "id": "UserAccess", + "type": "object", + "description": "Represents a user's permissions to an account and its container.", + "properties": { + "accountAccess": { + "$ref": "AccountAccess", + "description": "GTM Account access permissions.", + "annotations": { + "required": [ + "tagmanager.accounts.permissions.create" + ] + } + }, + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "containerAccess": { + "type": "array", + "description": "GTM Container access permissions.", + "items": { + "$ref": "ContainerAccess" + } + }, + "emailAddress": { + "type": "string", + "description": "User's email address.", + "annotations": { + "required": [ + "tagmanager.accounts.permissions.create" + ] + } + }, + "permissionId": { + "type": "string", + "description": "Account Permission ID." + } + } + }, + "Variable": { + "id": "Variable", + "type": "object", + "description": "Represents a Google Tag Manager Variable.", + "properties": { + "accountId": { + "type": "string", + "description": "GTM Account ID." + }, + "containerId": { + "type": "string", + "description": "GTM Container ID." + }, + "disablingTriggerId": { + "type": "array", + "description": "For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.", + "items": { + "type": "string" + } + }, + "enablingTriggerId": { + "type": "array", + "description": "For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.", + "items": { + "type": "string" + } + }, + "fingerprint": { + "type": "string", + "description": "The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified." + }, + "name": { + "type": "string", + "description": "Variable display name.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.variables.create" + ] + } + }, + "notes": { + "type": "string", + "description": "User notes on how to apply this variable in the container." + }, + "parameter": { + "type": "array", + "description": "The variable's parameters.", + "items": { + "$ref": "Parameter" + } + }, + "scheduleEndMs": { + "type": "string", + "description": "The end timestamp in milliseconds to schedule a variable.", + "format": "int64" + }, + "scheduleStartMs": { + "type": "string", + "description": "The start timestamp in milliseconds to schedule a variable.", + "format": "int64" + }, + "type": { + "type": "string", + "description": "GTM Variable Type.", + "annotations": { + "required": [ + "tagmanager.accounts.containers.variables.create", + "tagmanager.accounts.containers.variables.update" + ] + } + }, + "variableId": { + "type": "string", + "description": "The Variable ID uniquely identifies the GTM Variable." + } + } + } + }, + "resources": { + "accounts": { + "methods": { + "get": { + "id": "tagmanager.accounts.get", + "path": "accounts/{accountId}", + "httpMethod": "GET", + "description": "Gets a GTM Account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.manage.accounts", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.list", + "path": "accounts", + "httpMethod": "GET", + "description": "Lists all GTM Accounts that a user has access to.", + "response": { + "$ref": "ListAccountsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.manage.accounts", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.update", + "path": "accounts/{accountId}", + "httpMethod": "PUT", + "description": "Updates a GTM Account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the account in storage.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "Account" + }, + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.accounts" + ] + } + }, + "resources": { + "containers": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.create", + "path": "accounts/{accountId}/containers", + "httpMethod": "POST", + "description": "Creates a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "Container" + }, + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.delete", + "path": "accounts/{accountId}/containers/{containerId}", + "httpMethod": "DELETE", + "description": "Deletes a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.delete.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.get", + "path": "accounts/{accountId}/containers/{containerId}", + "httpMethod": "GET", + "description": "Gets a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.list", + "path": "accounts/{accountId}/containers", + "httpMethod": "GET", + "description": "Lists all Containers that belongs to a GTM Account.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "ListContainersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.update", + "path": "accounts/{accountId}/containers/{containerId}", + "httpMethod": "PUT", + "description": "Updates a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the container in storage.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Container" + }, + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + }, + "resources": { + "macros": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.macros.create", + "path": "accounts/{accountId}/containers/{containerId}/macros", + "httpMethod": "POST", + "description": "Creates a GTM Macro.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Macro" + }, + "response": { + "$ref": "Macro" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.macros.delete", + "path": "accounts/{accountId}/containers/{containerId}/macros/{macroId}", + "httpMethod": "DELETE", + "description": "Deletes a GTM Macro.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "macroId": { + "type": "string", + "description": "The GTM Macro ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "macroId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.macros.get", + "path": "accounts/{accountId}/containers/{containerId}/macros/{macroId}", + "httpMethod": "GET", + "description": "Gets a GTM Macro.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "macroId": { + "type": "string", + "description": "The GTM Macro ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "macroId" + ], + "response": { + "$ref": "Macro" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.macros.list", + "path": "accounts/{accountId}/containers/{containerId}/macros", + "httpMethod": "GET", + "description": "Lists all GTM Macros of a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListMacrosResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.macros.update", + "path": "accounts/{accountId}/containers/{containerId}/macros/{macroId}", + "httpMethod": "PUT", + "description": "Updates a GTM Macro.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the macro in storage.", + "location": "query" + }, + "macroId": { + "type": "string", + "description": "The GTM Macro ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "macroId" + ], + "request": { + "$ref": "Macro" + }, + "response": { + "$ref": "Macro" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, + "rules": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.rules.create", + "path": "accounts/{accountId}/containers/{containerId}/rules", + "httpMethod": "POST", + "description": "Creates a GTM Rule.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Rule" + }, + "response": { + "$ref": "Rule" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.rules.delete", + "path": "accounts/{accountId}/containers/{containerId}/rules/{ruleId}", + "httpMethod": "DELETE", + "description": "Deletes a GTM Rule.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "The GTM Rule ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "ruleId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.rules.get", + "path": "accounts/{accountId}/containers/{containerId}/rules/{ruleId}", + "httpMethod": "GET", + "description": "Gets a GTM Rule.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "ruleId": { + "type": "string", + "description": "The GTM Rule ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "ruleId" + ], + "response": { + "$ref": "Rule" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.rules.list", + "path": "accounts/{accountId}/containers/{containerId}/rules", + "httpMethod": "GET", + "description": "Lists all GTM Rules of a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.rules.update", + "path": "accounts/{accountId}/containers/{containerId}/rules/{ruleId}", + "httpMethod": "PUT", + "description": "Updates a GTM Rule.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the rule in storage.", + "location": "query" + }, + "ruleId": { + "type": "string", + "description": "The GTM Rule ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "ruleId" + ], + "request": { + "$ref": "Rule" + }, + "response": { + "$ref": "Rule" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, + "tags": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.tags.create", + "path": "accounts/{accountId}/containers/{containerId}/tags", + "httpMethod": "POST", + "description": "Creates a GTM Tag.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Tag" + }, + "response": { + "$ref": "Tag" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.tags.delete", + "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}", + "httpMethod": "DELETE", + "description": "Deletes a GTM Tag.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "tagId": { + "type": "string", + "description": "The GTM Tag ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "tagId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.tags.get", + "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}", + "httpMethod": "GET", + "description": "Gets a GTM Tag.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "tagId": { + "type": "string", + "description": "The GTM Tag ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "tagId" + ], + "response": { + "$ref": "Tag" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.tags.list", + "path": "accounts/{accountId}/containers/{containerId}/tags", + "httpMethod": "GET", + "description": "Lists all GTM Tags of a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListTagsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.tags.update", + "path": "accounts/{accountId}/containers/{containerId}/tags/{tagId}", + "httpMethod": "PUT", + "description": "Updates a GTM Tag.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the tag in storage.", + "location": "query" + }, + "tagId": { + "type": "string", + "description": "The GTM Tag ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "tagId" + ], + "request": { + "$ref": "Tag" + }, + "response": { + "$ref": "Tag" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, + "triggers": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.triggers.create", + "path": "accounts/{accountId}/containers/{containerId}/triggers", + "httpMethod": "POST", + "description": "Creates a GTM Trigger.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Trigger" + }, + "response": { + "$ref": "Trigger" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.triggers.delete", + "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}", + "httpMethod": "DELETE", + "description": "Deletes a GTM Trigger.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "triggerId": { + "type": "string", + "description": "The GTM Trigger ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "triggerId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.triggers.get", + "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}", + "httpMethod": "GET", + "description": "Gets a GTM Trigger.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "triggerId": { + "type": "string", + "description": "The GTM Trigger ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "triggerId" + ], + "response": { + "$ref": "Trigger" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.triggers.list", + "path": "accounts/{accountId}/containers/{containerId}/triggers", + "httpMethod": "GET", + "description": "Lists all GTM Triggers of a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListTriggersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.triggers.update", + "path": "accounts/{accountId}/containers/{containerId}/triggers/{triggerId}", + "httpMethod": "PUT", + "description": "Updates a GTM Trigger.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the trigger in storage.", + "location": "query" + }, + "triggerId": { + "type": "string", + "description": "The GTM Trigger ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "triggerId" + ], + "request": { + "$ref": "Trigger" + }, + "response": { + "$ref": "Trigger" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, + "variables": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.variables.create", + "path": "accounts/{accountId}/containers/{containerId}/variables", + "httpMethod": "POST", + "description": "Creates a GTM Variable.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "Variable" + }, + "response": { + "$ref": "Variable" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.variables.delete", + "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}", + "httpMethod": "DELETE", + "description": "Deletes a GTM Variable.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "variableId": { + "type": "string", + "description": "The GTM Variable ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "variableId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.variables.get", + "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}", + "httpMethod": "GET", + "description": "Gets a GTM Variable.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "variableId": { + "type": "string", + "description": "The GTM Variable ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "variableId" + ], + "response": { + "$ref": "Variable" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.variables.list", + "path": "accounts/{accountId}/containers/{containerId}/variables", + "httpMethod": "GET", + "description": "Lists all GTM Variables of a Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListVariablesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.variables.update", + "path": "accounts/{accountId}/containers/{containerId}/variables/{variableId}", + "httpMethod": "PUT", + "description": "Updates a GTM Variable.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the variable in storage.", + "location": "query" + }, + "variableId": { + "type": "string", + "description": "The GTM Variable ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "variableId" + ], + "request": { + "$ref": "Variable" + }, + "response": { + "$ref": "Variable" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, + "versions": { + "methods": { + "create": { + "id": "tagmanager.accounts.containers.versions.create", + "path": "accounts/{accountId}/containers/{containerId}/versions", + "httpMethod": "POST", + "description": "Creates a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "request": { + "$ref": "CreateContainerVersionRequestVersionOptions" + }, + "response": { + "$ref": "CreateContainerVersionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containerversions" + ] + }, + "delete": { + "id": "tagmanager.accounts.containers.versions.delete", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}", + "httpMethod": "DELETE", + "description": "Deletes a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containerversions" + ] + }, + "get": { + "id": "tagmanager.accounts.containers.versions.get", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}", + "httpMethod": "GET", + "description": "Gets a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID. Specify published to retrieve the currently published version.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "response": { + "$ref": "ContainerVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.edit.containerversions", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "id": "tagmanager.accounts.containers.versions.list", + "path": "accounts/{accountId}/containers/{containerId}/versions", + "httpMethod": "GET", + "description": "Lists all Container Versions of a GTM Container.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "headers": { + "type": "boolean", + "description": "Retrieve headers only when true.", + "default": "false", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "containerId" + ], + "response": { + "$ref": "ListContainerVersionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.edit.containerversions", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "publish": { + "id": "tagmanager.accounts.containers.versions.publish", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/publish", + "httpMethod": "POST", + "description": "Publishes a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "response": { + "$ref": "PublishContainerVersionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.publish" + ] + }, + "restore": { + "id": "tagmanager.accounts.containers.versions.restore", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/restore", + "httpMethod": "POST", + "description": "Restores a Container Version. This will overwrite the container's current configuration (including its macros, rules and tags). The operation will not have any effect on the version that is being served (i.e. the published version).", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "response": { + "$ref": "ContainerVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "undelete": { + "id": "tagmanager.accounts.containers.versions.undelete", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}/undelete", + "httpMethod": "POST", + "description": "Undeletes a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "response": { + "$ref": "ContainerVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containerversions" + ] + }, + "update": { + "id": "tagmanager.accounts.containers.versions.update", + "path": "accounts/{accountId}/containers/{containerId}/versions/{containerVersionId}", + "httpMethod": "PUT", + "description": "Updates a Container Version.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "containerId": { + "type": "string", + "description": "The GTM Container ID.", + "required": true, + "location": "path" + }, + "containerVersionId": { + "type": "string", + "description": "The GTM Container Version ID.", + "required": true, + "location": "path" + }, + "fingerprint": { + "type": "string", + "description": "When provided, this fingerprint must match the fingerprint of the container version in storage.", + "location": "query" + } + }, + "parameterOrder": [ + "accountId", + "containerId", + "containerVersionId" + ], + "request": { + "$ref": "ContainerVersion" + }, + "response": { + "$ref": "ContainerVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containerversions" + ] + } + } + } + } + }, + "permissions": { + "methods": { + "create": { + "id": "tagmanager.accounts.permissions.create", + "path": "accounts/{accountId}/permissions", + "httpMethod": "POST", + "description": "Creates a user's Account & Container Permissions.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "request": { + "$ref": "UserAccess" + }, + "response": { + "$ref": "UserAccess" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.users" + ] + }, + "delete": { + "id": "tagmanager.accounts.permissions.delete", + "path": "accounts/{accountId}/permissions/{permissionId}", + "httpMethod": "DELETE", + "description": "Removes a user from the account, revoking access to it and all of its containers.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "permissionId": { + "type": "string", + "description": "The GTM User ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "permissionId" + ], + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.users" + ] + }, + "get": { + "id": "tagmanager.accounts.permissions.get", + "path": "accounts/{accountId}/permissions/{permissionId}", + "httpMethod": "GET", + "description": "Gets a user's Account & Container Permissions.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "permissionId": { + "type": "string", + "description": "The GTM User ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "permissionId" + ], + "response": { + "$ref": "UserAccess" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.users" + ] + }, + "list": { + "id": "tagmanager.accounts.permissions.list", + "path": "accounts/{accountId}/permissions", + "httpMethod": "GET", + "description": "List all users that have access to the account along with Account and Container Permissions granted to each of them.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID. @required tagmanager.accounts.permissions.list", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId" + ], + "response": { + "$ref": "ListAccountUsersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.users" + ] + }, + "update": { + "id": "tagmanager.accounts.permissions.update", + "path": "accounts/{accountId}/permissions/{permissionId}", + "httpMethod": "PUT", + "description": "Updates a user's Account & Container Permissions.", + "parameters": { + "accountId": { + "type": "string", + "description": "The GTM Account ID.", + "required": true, + "location": "path" + }, + "permissionId": { + "type": "string", + "description": "The GTM User ID.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "accountId", + "permissionId" + ], + "request": { + "$ref": "UserAccess" + }, + "response": { + "$ref": "UserAccess" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.manage.users" + ] + } + } + } + } + } + } +} diff --git a/etc/api/taskqueue/v1beta1/taskqueue-api.json b/etc/api/taskqueue/v1beta1/taskqueue-api.json new file mode 100644 index 0000000000..f2b5406e00 --- /dev/null +++ b/etc/api/taskqueue/v1beta1/taskqueue-api.json @@ -0,0 +1,422 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/xnLtIe0CIvW_kIgCrq0S6VocjyE\"", + "discoveryVersion": "v1", + "id": "taskqueue:v1beta1", + "name": "taskqueue", + "version": "v1beta1", + "revision": "20141111", + "title": "TaskQueue API", + "description": "Lets you access a Google App Engine Pull Task Queue over REST.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/app_engine-16.png", + "x32": "https://www.google.com/images/icons/product/app_engine-32.png" + }, + "documentationLink": "https://developers.google.com/appengine/docs/python/taskqueue/rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/taskqueue/v1beta1/projects/", + "basePath": "/taskqueue/v1beta1/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "taskqueue/v1beta1/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/taskqueue": { + "description": "Manage your Tasks and Taskqueues" + }, + "https://www.googleapis.com/auth/taskqueue.consumer": { + "description": "Consume Tasks from your Taskqueues" + } + } + } + }, + "schemas": { + "Task": { + "id": "Task", + "type": "object", + "properties": { + "enqueueTimestamp": { + "type": "string", + "description": "Time (in seconds since the epoch) at which the task was enqueued.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Name of the task." + }, + "kind": { + "type": "string", + "description": "The kind of object returned, in this case set to task.", + "default": "taskqueues#task" + }, + "leaseTimestamp": { + "type": "string", + "description": "Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.", + "format": "int64" + }, + "payloadBase64": { + "type": "string", + "description": "A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded." + }, + "queueName": { + "type": "string", + "description": "Name of the queue that the task is in." + } + } + }, + "TaskQueue": { + "id": "TaskQueue", + "type": "object", + "properties": { + "acl": { + "type": "object", + "description": "ACLs that are applicable to this TaskQueue object.", + "properties": { + "adminEmails": { + "type": "array", + "description": "Email addresses of users who are \"admins\" of the TaskQueue. This means they can control the queue, eg set ACLs for the queue.", + "items": { + "type": "string" + } + }, + "consumerEmails": { + "type": "array", + "description": "Email addresses of users who can \"consume\" tasks from the TaskQueue. This means they can Dequeue and Delete tasks from the queue.", + "items": { + "type": "string" + } + }, + "producerEmails": { + "type": "array", + "description": "Email addresses of users who can \"produce\" tasks into the TaskQueue. This means they can Insert tasks into the queue.", + "items": { + "type": "string" + } + } + } + }, + "id": { + "type": "string", + "description": "Name of the taskqueue." + }, + "kind": { + "type": "string", + "description": "The kind of REST object returned, in this case taskqueue.", + "default": "taskqueues#taskqueue" + }, + "maxLeases": { + "type": "integer", + "description": "The number of times we should lease out tasks before giving up on them. If unset we lease them out forever until a worker deletes the task.", + "format": "int32" + }, + "stats": { + "type": "object", + "description": "Statistics for the TaskQueue object in question.", + "properties": { + "leasedLastHour": { + "type": "string", + "description": "Number of tasks leased in the last hour.", + "format": "int64" + }, + "leasedLastMinute": { + "type": "string", + "description": "Number of tasks leased in the last minute.", + "format": "int64" + }, + "oldestTask": { + "type": "string", + "description": "The timestamp (in seconds since the epoch) of the oldest unfinished task.", + "format": "int64" + }, + "totalTasks": { + "type": "integer", + "description": "Number of tasks in the queue.", + "format": "int32" + } + } + } + } + }, + "Tasks": { + "id": "Tasks", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The actual list of tasks returned as a result of the lease operation.", + "items": { + "$ref": "Task" + } + }, + "kind": { + "type": "string", + "description": "The kind of object returned, a list of tasks.", + "default": "taskqueue#tasks" + } + } + }, + "Tasks2": { + "id": "Tasks2", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The actual list of tasks currently active in the TaskQueue.", + "items": { + "$ref": "Task" + } + }, + "kind": { + "type": "string", + "description": "The kind of object returned, a list of tasks.", + "default": "taskqueues#tasks" + } + } + } + }, + "resources": { + "taskqueues": { + "methods": { + "get": { + "id": "taskqueue.taskqueues.get", + "path": "{project}/taskqueues/{taskqueue}", + "httpMethod": "GET", + "description": "Get detailed information about a TaskQueue.", + "parameters": { + "getStats": { + "type": "boolean", + "description": "Whether to get stats. Optional.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The id of the taskqueue to get the properties of.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue" + ], + "response": { + "$ref": "TaskQueue" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + } + } + }, + "tasks": { + "methods": { + "delete": { + "id": "taskqueue.tasks.delete", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "DELETE", + "description": "Delete a task from a TaskQueue.", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "description": "The id of the task to delete.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue to delete a task from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task" + ], + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "get": { + "id": "taskqueue.tasks.get", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "GET", + "description": "Get a particular task from a TaskQueue.", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "description": "The task to get properties of.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue in which the task belongs.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task" + ], + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "lease": { + "id": "taskqueue.tasks.lease", + "path": "{project}/taskqueues/{taskqueue}/tasks/lease", + "httpMethod": "POST", + "description": "Lease 1 or more tasks from a TaskQueue.", + "parameters": { + "leaseSecs": { + "type": "integer", + "description": "The lease in seconds.", + "required": true, + "format": "int32", + "location": "query" + }, + "numTasks": { + "type": "integer", + "description": "The number of tasks to lease.", + "required": true, + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue to lease a task from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "numTasks", + "leaseSecs" + ], + "response": { + "$ref": "Tasks" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "list": { + "id": "taskqueue.tasks.list", + "path": "{project}/taskqueues/{taskqueue}/tasks", + "httpMethod": "GET", + "description": "List Tasks in a TaskQueue", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The id of the taskqueue to list tasks from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue" + ], + "response": { + "$ref": "Tasks2" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + } + } + } + } +} diff --git a/etc/api/taskqueue/v1beta2/taskqueue-api.json b/etc/api/taskqueue/v1beta2/taskqueue-api.json new file mode 100644 index 0000000000..1752f903fc --- /dev/null +++ b/etc/api/taskqueue/v1beta2/taskqueue-api.json @@ -0,0 +1,569 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/LPLXKKjaGUbCz_MfuhQ-STkNWfw\"", + "discoveryVersion": "v1", + "id": "taskqueue:v1beta2", + "name": "taskqueue", + "version": "v1beta2", + "revision": "20141111", + "title": "TaskQueue API", + "description": "Lets you access a Google App Engine Pull Task Queue over REST.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/app_engine-16.png", + "x32": "https://www.google.com/images/icons/product/app_engine-32.png" + }, + "documentationLink": "https://developers.google.com/appengine/docs/python/taskqueue/rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/taskqueue/v1beta2/projects/", + "basePath": "/taskqueue/v1beta2/projects/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "taskqueue/v1beta2/projects/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/taskqueue": { + "description": "Manage your Tasks and Taskqueues" + }, + "https://www.googleapis.com/auth/taskqueue.consumer": { + "description": "Consume Tasks from your Taskqueues" + } + } + } + }, + "schemas": { + "Task": { + "id": "Task", + "type": "object", + "properties": { + "enqueueTimestamp": { + "type": "string", + "description": "Time (in seconds since the epoch) at which the task was enqueued.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Name of the task." + }, + "kind": { + "type": "string", + "description": "The kind of object returned, in this case set to task.", + "default": "taskqueues#task" + }, + "leaseTimestamp": { + "type": "string", + "description": "Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.", + "format": "int64" + }, + "payloadBase64": { + "type": "string", + "description": "A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded." + }, + "queueName": { + "type": "string", + "description": "Name of the queue that the task is in." + }, + "retry_count": { + "type": "integer", + "description": "The number of leases applied to this task.", + "format": "int32" + }, + "tag": { + "type": "string", + "description": "Tag for the task, could be used later to lease tasks grouped by a specific tag." + } + } + }, + "TaskQueue": { + "id": "TaskQueue", + "type": "object", + "properties": { + "acl": { + "type": "object", + "description": "ACLs that are applicable to this TaskQueue object.", + "properties": { + "adminEmails": { + "type": "array", + "description": "Email addresses of users who are \"admins\" of the TaskQueue. This means they can control the queue, eg set ACLs for the queue.", + "items": { + "type": "string" + } + }, + "consumerEmails": { + "type": "array", + "description": "Email addresses of users who can \"consume\" tasks from the TaskQueue. This means they can Dequeue and Delete tasks from the queue.", + "items": { + "type": "string" + } + }, + "producerEmails": { + "type": "array", + "description": "Email addresses of users who can \"produce\" tasks into the TaskQueue. This means they can Insert tasks into the queue.", + "items": { + "type": "string" + } + } + } + }, + "id": { + "type": "string", + "description": "Name of the taskqueue." + }, + "kind": { + "type": "string", + "description": "The kind of REST object returned, in this case taskqueue.", + "default": "taskqueues#taskqueue" + }, + "maxLeases": { + "type": "integer", + "description": "The number of times we should lease out tasks before giving up on them. If unset we lease them out forever until a worker deletes the task.", + "format": "int32" + }, + "stats": { + "type": "object", + "description": "Statistics for the TaskQueue object in question.", + "properties": { + "leasedLastHour": { + "type": "string", + "description": "Number of tasks leased in the last hour.", + "format": "int64" + }, + "leasedLastMinute": { + "type": "string", + "description": "Number of tasks leased in the last minute.", + "format": "int64" + }, + "oldestTask": { + "type": "string", + "description": "The timestamp (in seconds since the epoch) of the oldest unfinished task.", + "format": "int64" + }, + "totalTasks": { + "type": "integer", + "description": "Number of tasks in the queue.", + "format": "int32" + } + } + } + } + }, + "Tasks": { + "id": "Tasks", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The actual list of tasks returned as a result of the lease operation.", + "items": { + "$ref": "Task" + } + }, + "kind": { + "type": "string", + "description": "The kind of object returned, a list of tasks.", + "default": "taskqueue#tasks" + } + } + }, + "Tasks2": { + "id": "Tasks2", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The actual list of tasks currently active in the TaskQueue.", + "items": { + "$ref": "Task" + } + }, + "kind": { + "type": "string", + "description": "The kind of object returned, a list of tasks.", + "default": "taskqueues#tasks" + } + } + } + }, + "resources": { + "taskqueues": { + "methods": { + "get": { + "id": "taskqueue.taskqueues.get", + "path": "{project}/taskqueues/{taskqueue}", + "httpMethod": "GET", + "description": "Get detailed information about a TaskQueue.", + "parameters": { + "getStats": { + "type": "boolean", + "description": "Whether to get stats. Optional.", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The id of the taskqueue to get the properties of.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue" + ], + "response": { + "$ref": "TaskQueue" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + } + } + }, + "tasks": { + "methods": { + "delete": { + "id": "taskqueue.tasks.delete", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "DELETE", + "description": "Delete a task from a TaskQueue.", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "description": "The id of the task to delete.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue to delete a task from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task" + ], + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "get": { + "id": "taskqueue.tasks.get", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "GET", + "description": "Get a particular task from a TaskQueue.", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "description": "The task to get properties of.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue in which the task belongs.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task" + ], + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "insert": { + "id": "taskqueue.tasks.insert", + "path": "{project}/taskqueues/{taskqueue}/tasks", + "httpMethod": "POST", + "description": "Insert a new task in a TaskQueue", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue to insert the task into", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "lease": { + "id": "taskqueue.tasks.lease", + "path": "{project}/taskqueues/{taskqueue}/tasks/lease", + "httpMethod": "POST", + "description": "Lease 1 or more tasks from a TaskQueue.", + "parameters": { + "groupByTag": { + "type": "boolean", + "description": "When true, all returned tasks will have the same tag", + "location": "query" + }, + "leaseSecs": { + "type": "integer", + "description": "The lease in seconds.", + "required": true, + "format": "int32", + "location": "query" + }, + "numTasks": { + "type": "integer", + "description": "The number of tasks to lease.", + "required": true, + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "tag": { + "type": "string", + "description": "The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag", + "location": "query" + }, + "taskqueue": { + "type": "string", + "description": "The taskqueue to lease a task from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "numTasks", + "leaseSecs" + ], + "response": { + "$ref": "Tasks" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "list": { + "id": "taskqueue.tasks.list", + "path": "{project}/taskqueues/{taskqueue}/tasks", + "httpMethod": "GET", + "description": "List Tasks in a TaskQueue", + "parameters": { + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "description": "The id of the taskqueue to list tasks from.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue" + ], + "response": { + "$ref": "Tasks2" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "patch": { + "id": "taskqueue.tasks.patch", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "PATCH", + "description": "Update tasks that are leased out of a TaskQueue. This method supports patch semantics.", + "parameters": { + "newLeaseSeconds": { + "type": "integer", + "description": "The new lease in seconds.", + "required": true, + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task", + "newLeaseSeconds" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + }, + "update": { + "id": "taskqueue.tasks.update", + "path": "{project}/taskqueues/{taskqueue}/tasks/{task}", + "httpMethod": "POST", + "description": "Update tasks that are leased out of a TaskQueue.", + "parameters": { + "newLeaseSeconds": { + "type": "integer", + "description": "The new lease in seconds.", + "required": true, + "format": "int32", + "location": "query" + }, + "project": { + "type": "string", + "description": "The project under which the queue lies.", + "required": true, + "location": "path" + }, + "task": { + "type": "string", + "required": true, + "location": "path" + }, + "taskqueue": { + "type": "string", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "project", + "taskqueue", + "task", + "newLeaseSeconds" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/taskqueue", + "https://www.googleapis.com/auth/taskqueue.consumer" + ] + } + } + } + } +} diff --git a/etc/api/tasks/v1/tasks-api.json b/etc/api/tasks/v1/tasks-api.json new file mode 100644 index 0000000000..668e38a5e9 --- /dev/null +++ b/etc/api/tasks/v1/tasks-api.json @@ -0,0 +1,696 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/0TjOHp0h7jdMsIEfc7wjsU7Gx9k\"", + "discoveryVersion": "v1", + "id": "tasks:v1", + "name": "tasks", + "version": "v1", + "revision": "20141121", + "title": "Tasks API", + "description": "Lets you manage your tasks and task lists.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/tasks-16.png", + "x32": "https://www.google.com/images/icons/product/tasks-32.png" + }, + "documentationLink": "https://developers.google.com/google-apps/tasks/firstapp", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/tasks/v1/", + "basePath": "/tasks/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "tasks/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/tasks": { + "description": "Manage your tasks" + }, + "https://www.googleapis.com/auth/tasks.readonly": { + "description": "View your tasks" + } + } + } + }, + "schemas": { + "Task": { + "id": "Task", + "type": "object", + "properties": { + "completed": { + "type": "string", + "description": "Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.", + "format": "date-time" + }, + "deleted": { + "type": "boolean", + "description": "Flag indicating whether the task has been deleted. The default if False." + }, + "due": { + "type": "string", + "description": "Due date of the task (as a RFC 3339 timestamp). Optional.", + "format": "date-time" + }, + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "hidden": { + "type": "boolean", + "description": "Flag indicating whether the task is hidden. This is the case if the task had been marked completed when the task list was last cleared. The default is False. This field is read-only." + }, + "id": { + "type": "string", + "description": "Task identifier." + }, + "kind": { + "type": "string", + "description": "Type of the resource. This is always \"tasks#task\".", + "default": "tasks#task" + }, + "links": { + "type": "array", + "description": "Collection of links. This collection is read-only.", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description. In HTML speak: Everything between \u003ca\u003e and \u003c/a\u003e." + }, + "link": { + "type": "string", + "description": "The URL." + }, + "type": { + "type": "string", + "description": "Type of the link, e.g. \"email\"." + } + } + } + }, + "notes": { + "type": "string", + "description": "Notes describing the task. Optional." + }, + "parent": { + "type": "string", + "description": "Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the \"move\" method to move the task under a different parent or to the top level." + }, + "position": { + "type": "string", + "description": "String indicating the position of the task among its sibling tasks under the same parent task or at the top level. If this string is greater than another task's corresponding position string according to lexicographical ordering, the task is positioned after the other task under the same parent task (or at the top level). This field is read-only. Use the \"move\" method to move the task to another position." + }, + "selfLink": { + "type": "string", + "description": "URL pointing to this task. Used to retrieve, update, or delete this task." + }, + "status": { + "type": "string", + "description": "Status of the task. This is either \"needsAction\" or \"completed\"." + }, + "title": { + "type": "string", + "description": "Title of the task." + }, + "updated": { + "type": "string", + "description": "Last modification time of the task (as a RFC 3339 timestamp).", + "format": "date-time" + } + } + }, + "TaskList": { + "id": "TaskList", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "id": { + "type": "string", + "description": "Task list identifier." + }, + "kind": { + "type": "string", + "description": "Type of the resource. This is always \"tasks#taskList\".", + "default": "tasks#taskList" + }, + "selfLink": { + "type": "string", + "description": "URL pointing to this task list. Used to retrieve, update, or delete this task list." + }, + "title": { + "type": "string", + "description": "Title of the task list." + }, + "updated": { + "type": "string", + "description": "Last modification time of the task list (as a RFC 3339 timestamp).", + "format": "date-time" + } + } + }, + "TaskLists": { + "id": "TaskLists", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "Collection of task lists.", + "items": { + "$ref": "TaskList" + } + }, + "kind": { + "type": "string", + "description": "Type of the resource. This is always \"tasks#taskLists\".", + "default": "tasks#taskLists" + }, + "nextPageToken": { + "type": "string", + "description": "Token that can be used to request the next page of this result." + } + } + }, + "Tasks": { + "id": "Tasks", + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "ETag of the resource." + }, + "items": { + "type": "array", + "description": "Collection of tasks.", + "items": { + "$ref": "Task" + } + }, + "kind": { + "type": "string", + "description": "Type of the resource. This is always \"tasks#tasks\".", + "default": "tasks#tasks" + }, + "nextPageToken": { + "type": "string", + "description": "Token used to access the next page of this result." + } + } + } + }, + "resources": { + "tasklists": { + "methods": { + "delete": { + "id": "tasks.tasklists.delete", + "path": "users/@me/lists/{tasklist}", + "httpMethod": "DELETE", + "description": "Deletes the authenticated user's specified task list.", + "parameters": { + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "get": { + "id": "tasks.tasklists.get", + "path": "users/@me/lists/{tasklist}", + "httpMethod": "GET", + "description": "Returns the authenticated user's specified task list.", + "parameters": { + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "response": { + "$ref": "TaskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks", + "https://www.googleapis.com/auth/tasks.readonly" + ] + }, + "insert": { + "id": "tasks.tasklists.insert", + "path": "users/@me/lists", + "httpMethod": "POST", + "description": "Creates a new task list and adds it to the authenticated user's task lists.", + "request": { + "$ref": "TaskList" + }, + "response": { + "$ref": "TaskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "list": { + "id": "tasks.tasklists.list", + "path": "users/@me/lists", + "httpMethod": "GET", + "description": "Returns all the authenticated user's task lists.", + "parameters": { + "maxResults": { + "type": "string", + "description": "Maximum number of task lists returned on one page. Optional. The default is 100.", + "format": "int64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying the result page to return. Optional.", + "location": "query" + } + }, + "response": { + "$ref": "TaskLists" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks", + "https://www.googleapis.com/auth/tasks.readonly" + ] + }, + "patch": { + "id": "tasks.tasklists.patch", + "path": "users/@me/lists/{tasklist}", + "httpMethod": "PATCH", + "description": "Updates the authenticated user's specified task list. This method supports patch semantics.", + "parameters": { + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "request": { + "$ref": "TaskList" + }, + "response": { + "$ref": "TaskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "update": { + "id": "tasks.tasklists.update", + "path": "users/@me/lists/{tasklist}", + "httpMethod": "PUT", + "description": "Updates the authenticated user's specified task list.", + "parameters": { + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "request": { + "$ref": "TaskList" + }, + "response": { + "$ref": "TaskList" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + } + } + }, + "tasks": { + "methods": { + "clear": { + "id": "tasks.tasks.clear", + "path": "lists/{tasklist}/clear", + "httpMethod": "POST", + "description": "Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list.", + "parameters": { + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "delete": { + "id": "tasks.tasks.delete", + "path": "lists/{tasklist}/tasks/{task}", + "httpMethod": "DELETE", + "description": "Deletes the specified task from the task list.", + "parameters": { + "task": { + "type": "string", + "description": "Task identifier.", + "required": true, + "location": "path" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist", + "task" + ], + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "get": { + "id": "tasks.tasks.get", + "path": "lists/{tasklist}/tasks/{task}", + "httpMethod": "GET", + "description": "Returns the specified task.", + "parameters": { + "task": { + "type": "string", + "description": "Task identifier.", + "required": true, + "location": "path" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist", + "task" + ], + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks", + "https://www.googleapis.com/auth/tasks.readonly" + ] + }, + "insert": { + "id": "tasks.tasks.insert", + "path": "lists/{tasklist}/tasks", + "httpMethod": "POST", + "description": "Creates a new task on the specified task list.", + "parameters": { + "parent": { + "type": "string", + "description": "Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.", + "location": "query" + }, + "previous": { + "type": "string", + "description": "Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.", + "location": "query" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "list": { + "id": "tasks.tasks.list", + "path": "lists/{tasklist}/tasks", + "httpMethod": "GET", + "description": "Returns all tasks in the specified task list.", + "parameters": { + "completedMax": { + "type": "string", + "description": "Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.", + "location": "query" + }, + "completedMin": { + "type": "string", + "description": "Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.", + "location": "query" + }, + "dueMax": { + "type": "string", + "description": "Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.", + "location": "query" + }, + "dueMin": { + "type": "string", + "description": "Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.", + "location": "query" + }, + "maxResults": { + "type": "string", + "description": "Maximum number of task lists returned on one page. Optional. The default is 100.", + "format": "int64", + "location": "query" + }, + "pageToken": { + "type": "string", + "description": "Token specifying the result page to return. Optional.", + "location": "query" + }, + "showCompleted": { + "type": "boolean", + "description": "Flag indicating whether completed tasks are returned in the result. Optional. The default is True.", + "location": "query" + }, + "showDeleted": { + "type": "boolean", + "description": "Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.", + "location": "query" + }, + "showHidden": { + "type": "boolean", + "description": "Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.", + "location": "query" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + }, + "updatedMin": { + "type": "string", + "description": "Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.", + "location": "query" + } + }, + "parameterOrder": [ + "tasklist" + ], + "response": { + "$ref": "Tasks" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks", + "https://www.googleapis.com/auth/tasks.readonly" + ] + }, + "move": { + "id": "tasks.tasks.move", + "path": "lists/{tasklist}/tasks/{task}/move", + "httpMethod": "POST", + "description": "Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.", + "parameters": { + "parent": { + "type": "string", + "description": "New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.", + "location": "query" + }, + "previous": { + "type": "string", + "description": "New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.", + "location": "query" + }, + "task": { + "type": "string", + "description": "Task identifier.", + "required": true, + "location": "path" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist", + "task" + ], + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "patch": { + "id": "tasks.tasks.patch", + "path": "lists/{tasklist}/tasks/{task}", + "httpMethod": "PATCH", + "description": "Updates the specified task. This method supports patch semantics.", + "parameters": { + "task": { + "type": "string", + "description": "Task identifier.", + "required": true, + "location": "path" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist", + "task" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + }, + "update": { + "id": "tasks.tasks.update", + "path": "lists/{tasklist}/tasks/{task}", + "httpMethod": "PUT", + "description": "Updates the specified task.", + "parameters": { + "task": { + "type": "string", + "description": "Task identifier.", + "required": true, + "location": "path" + }, + "tasklist": { + "type": "string", + "description": "Task list identifier.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "tasklist", + "task" + ], + "request": { + "$ref": "Task" + }, + "response": { + "$ref": "Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/tasks" + ] + } + } + } + } +} diff --git a/etc/api/translate/v2/translate-api.json b/etc/api/translate/v2/translate-api.json new file mode 100644 index 0000000000..50af88ca3d --- /dev/null +++ b/etc/api/translate/v2/translate-api.json @@ -0,0 +1,267 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/1Db23Cwr9s4MHtGjE0y-QSzRBMg\"", + "discoveryVersion": "v1", + "id": "translate:v2", + "name": "translate", + "version": "v2", + "revision": "20141123", + "title": "Translate API", + "description": "Lets you translate text from one language to another", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/translate-16.png", + "x32": "https://www.google.com/images/icons/product/translate-32.png" + }, + "documentationLink": "https://developers.google.com/translate/v2/using_rest", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/language/translate/", + "basePath": "/language/translate/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "language/translate/", + "batchPath": "batch", + "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": { + "DetectionsListResponse": { + "id": "DetectionsListResponse", + "type": "object", + "properties": { + "detections": { + "type": "array", + "description": "A detections contains detection results of several text", + "items": { + "$ref": "DetectionsResource" + } + } + } + }, + "DetectionsResource": { + "id": "DetectionsResource", + "type": "array", + "description": "An array of languages which we detect for the given text The most likely language list first.", + "items": { + "type": "object", + "properties": { + "confidence": { + "type": "number", + "description": "The confidence of the detection resul of this language.", + "format": "float" + }, + "isReliable": { + "type": "boolean", + "description": "A boolean to indicate is the language detection result reliable." + }, + "language": { + "type": "string", + "description": "The language we detect" + } + } + } + }, + "LanguagesListResponse": { + "id": "LanguagesListResponse", + "type": "object", + "properties": { + "languages": { + "type": "array", + "description": "List of source/target languages supported by the translation API. If target parameter is unspecified, the list is sorted by the ASCII code point order of the language code. If target parameter is specified, the list is sorted by the collation order of the language name in the target language.", + "items": { + "$ref": "LanguagesResource" + } + } + } + }, + "LanguagesResource": { + "id": "LanguagesResource", + "type": "object", + "properties": { + "language": { + "type": "string", + "description": "The language code." + }, + "name": { + "type": "string", + "description": "The localized name of the language if target parameter is given." + } + } + }, + "TranslationsListResponse": { + "id": "TranslationsListResponse", + "type": "object", + "properties": { + "translations": { + "type": "array", + "description": "Translations contains list of translation results of given text", + "items": { + "$ref": "TranslationsResource" + } + } + } + }, + "TranslationsResource": { + "id": "TranslationsResource", + "type": "object", + "properties": { + "detectedSourceLanguage": { + "type": "string", + "description": "Detected source language if source parameter is unspecified." + }, + "translatedText": { + "type": "string", + "description": "The translation." + } + } + } + }, + "resources": { + "detections": { + "methods": { + "list": { + "id": "language.detections.list", + "path": "v2/detect", + "httpMethod": "GET", + "description": "Detect the language of text.", + "parameters": { + "q": { + "type": "string", + "description": "The text to detect", + "required": true, + "repeated": true, + "location": "query" + } + }, + "parameterOrder": [ + "q" + ], + "response": { + "$ref": "DetectionsListResponse" + } + } + } + }, + "languages": { + "methods": { + "list": { + "id": "language.languages.list", + "path": "v2/languages", + "httpMethod": "GET", + "description": "List the source/target languages supported by the API", + "parameters": { + "target": { + "type": "string", + "description": "the language and collation in which the localized results should be returned", + "location": "query" + } + }, + "response": { + "$ref": "LanguagesListResponse" + } + } + } + }, + "translations": { + "methods": { + "list": { + "id": "language.translations.list", + "path": "v2", + "httpMethod": "GET", + "description": "Returns text translations from one language to another.", + "parameters": { + "cid": { + "type": "string", + "description": "The customization id for translate", + "repeated": true, + "location": "query" + }, + "format": { + "type": "string", + "description": "The format of the text", + "enum": [ + "html", + "text" + ], + "enumDescriptions": [ + "Specifies the input is in HTML", + "Specifies the input is in plain textual format" + ], + "location": "query" + }, + "q": { + "type": "string", + "description": "The text to translate", + "required": true, + "repeated": true, + "location": "query" + }, + "source": { + "type": "string", + "description": "The source language of the text", + "location": "query" + }, + "target": { + "type": "string", + "description": "The target language into which the text should be translated", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "q", + "target" + ], + "response": { + "$ref": "TranslationsListResponse" + } + } + } + } + } +} diff --git a/etc/api/urlshortener/v1/urlshortener-api.json b/etc/api/urlshortener/v1/urlshortener-api.json new file mode 100644 index 0000000000..4d0502796d --- /dev/null +++ b/etc/api/urlshortener/v1/urlshortener-api.json @@ -0,0 +1,316 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/0cbm1ejxCEt_jSRBcXxhj-fnxEs\"", + "discoveryVersion": "v1", + "id": "urlshortener:v1", + "name": "urlshortener", + "version": "v1", + "revision": "20141210", + "title": "URL Shortener API", + "description": "Lets you create, inspect, and manage goo.gl short URLs", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "documentationLink": "https://developers.google.com/url-shortener/v1/getting_started", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/urlshortener/v1/", + "basePath": "/urlshortener/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "urlshortener/v1/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/urlshortener": { + "description": "Manage your goo.gl short URLs" + } + } + } + }, + "schemas": { + "AnalyticsSnapshot": { + "id": "AnalyticsSnapshot", + "type": "object", + "properties": { + "browsers": { + "type": "array", + "description": "Top browsers, e.g. \"Chrome\"; sorted by (descending) click counts. Only present if this data is available.", + "items": { + "$ref": "StringCount" + } + }, + "countries": { + "type": "array", + "description": "Top countries (expressed as country codes), e.g. \"US\" or \"DE\"; sorted by (descending) click counts. Only present if this data is available.", + "items": { + "$ref": "StringCount" + } + }, + "longUrlClicks": { + "type": "string", + "description": "Number of clicks on all goo.gl short URLs pointing to this long URL.", + "format": "int64" + }, + "platforms": { + "type": "array", + "description": "Top platforms or OSes, e.g. \"Windows\"; sorted by (descending) click counts. Only present if this data is available.", + "items": { + "$ref": "StringCount" + } + }, + "referrers": { + "type": "array", + "description": "Top referring hosts, e.g. \"www.google.com\"; sorted by (descending) click counts. Only present if this data is available.", + "items": { + "$ref": "StringCount" + } + }, + "shortUrlClicks": { + "type": "string", + "description": "Number of clicks on this short URL.", + "format": "int64" + } + } + }, + "AnalyticsSummary": { + "id": "AnalyticsSummary", + "type": "object", + "properties": { + "allTime": { + "$ref": "AnalyticsSnapshot", + "description": "Click analytics over all time." + }, + "day": { + "$ref": "AnalyticsSnapshot", + "description": "Click analytics over the last day." + }, + "month": { + "$ref": "AnalyticsSnapshot", + "description": "Click analytics over the last month." + }, + "twoHours": { + "$ref": "AnalyticsSnapshot", + "description": "Click analytics over the last two hours." + }, + "week": { + "$ref": "AnalyticsSnapshot", + "description": "Click analytics over the last week." + } + } + }, + "StringCount": { + "id": "StringCount", + "type": "object", + "properties": { + "count": { + "type": "string", + "description": "Number of clicks for this top entry, e.g. for this particular country or browser.", + "format": "int64" + }, + "id": { + "type": "string", + "description": "Label assigned to this top entry, e.g. \"US\" or \"Chrome\"." + } + } + }, + "Url": { + "id": "Url", + "type": "object", + "properties": { + "analytics": { + "$ref": "AnalyticsSummary", + "description": "A summary of the click analytics for the short and long URL. Might not be present if not requested or currently unavailable." + }, + "created": { + "type": "string", + "description": "Time the short URL was created; ISO 8601 representation using the yyyy-MM-dd'T'HH:mm:ss.SSSZZ format, e.g. \"2010-10-14T19:01:24.944+00:00\"." + }, + "id": { + "type": "string", + "description": "Short URL, e.g. \"http://goo.gl/l6MS\"." + }, + "kind": { + "type": "string", + "description": "The fixed string \"urlshortener#url\".", + "default": "urlshortener#url" + }, + "longUrl": { + "type": "string", + "description": "Long URL, e.g. \"http://www.google.com/\". Might not be present if the status is \"REMOVED\"." + }, + "status": { + "type": "string", + "description": "Status of the target URL. Possible values: \"OK\", \"MALWARE\", \"PHISHING\", or \"REMOVED\". A URL might be marked \"REMOVED\" if it was flagged as spam, for example." + } + } + }, + "UrlHistory": { + "id": "UrlHistory", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "A list of URL resources.", + "items": { + "$ref": "Url" + } + }, + "itemsPerPage": { + "type": "integer", + "description": "Number of items returned with each full \"page\" of results. Note that the last page could have fewer items than the \"itemsPerPage\" value.", + "format": "int32" + }, + "kind": { + "type": "string", + "description": "The fixed string \"urlshortener#urlHistory\".", + "default": "urlshortener#urlHistory" + }, + "nextPageToken": { + "type": "string", + "description": "A token to provide to get the next page of results." + }, + "totalItems": { + "type": "integer", + "description": "Total number of short URLs associated with this user (may be approximate).", + "format": "int32" + } + } + } + }, + "resources": { + "url": { + "methods": { + "get": { + "id": "urlshortener.url.get", + "path": "url", + "httpMethod": "GET", + "description": "Expands a short URL or gets creation time and analytics.", + "parameters": { + "projection": { + "type": "string", + "description": "Additional information to return.", + "enum": [ + "ANALYTICS_CLICKS", + "ANALYTICS_TOP_STRINGS", + "FULL" + ], + "enumDescriptions": [ + "Returns only click counts.", + "Returns only top string counts.", + "Returns the creation timestamp and all available analytics." + ], + "location": "query" + }, + "shortUrl": { + "type": "string", + "description": "The short URL, including the protocol.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "shortUrl" + ], + "response": { + "$ref": "Url" + } + }, + "insert": { + "id": "urlshortener.url.insert", + "path": "url", + "httpMethod": "POST", + "description": "Creates a new short URL.", + "request": { + "$ref": "Url" + }, + "response": { + "$ref": "Url" + }, + "scopes": [ + "https://www.googleapis.com/auth/urlshortener" + ] + }, + "list": { + "id": "urlshortener.url.list", + "path": "url/history", + "httpMethod": "GET", + "description": "Retrieves a list of URLs shortened by a user.", + "parameters": { + "projection": { + "type": "string", + "description": "Additional information to return.", + "enum": [ + "ANALYTICS_CLICKS", + "FULL" + ], + "enumDescriptions": [ + "Returns short URL click counts.", + "Returns short URL click counts." + ], + "location": "query" + }, + "start-token": { + "type": "string", + "description": "Token for requesting successive pages of results.", + "location": "query" + } + }, + "response": { + "$ref": "UrlHistory" + }, + "scopes": [ + "https://www.googleapis.com/auth/urlshortener" + ] + } + } + } + } +} diff --git a/etc/api/webfonts/v1/webfonts-api.json b/etc/api/webfonts/v1/webfonts-api.json new file mode 100644 index 0000000000..fc0fe8c3dc --- /dev/null +++ b/etc/api/webfonts/v1/webfonts-api.json @@ -0,0 +1,175 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"FrPV2U6xXFUq8eRv_PO3IoAURkc/uRZcMEbTVS9rWZxqJQOe5kJsXfo\"", + "discoveryVersion": "v1", + "id": "webfonts:v1", + "name": "webfonts", + "version": "v1", + "revision": "20140210", + "title": "Google Fonts Developer API", + "description": "The Google Fonts Developer API.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "http://www.google.com/images/icons/feature/font_api-16.png", + "x32": "http://www.google.com/images/icons/feature/font_api-32.gif" + }, + "documentationLink": "https://developers.google.com/fonts/docs/developer_api", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/webfonts/v1/", + "basePath": "/webfonts/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "webfonts/v1/", + "batchPath": "batch", + "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": { + "Webfont": { + "id": "Webfont", + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "The category of the font." + }, + "family": { + "type": "string", + "description": "The name of the font." + }, + "files": { + "type": "object", + "description": "The font files (with all supported scripts) for each one of the available variants, as a key : value map.", + "additionalProperties": { + "type": "string", + "description": "The font file URL (value) for an specific variant (key)." + } + }, + "kind": { + "type": "string", + "description": "This kind represents a webfont object in the webfonts service.", + "default": "webfonts#webfont" + }, + "lastModified": { + "type": "string", + "description": "The date (format \"yyyy-MM-dd\") the font was modified for the last time.", + "format": "date" + }, + "subsets": { + "type": "array", + "description": "The scripts supported by the font.", + "items": { + "type": "string" + } + }, + "variants": { + "type": "array", + "description": "The available variants for the font.", + "items": { + "type": "string" + } + }, + "version": { + "type": "string", + "description": "The font version." + } + } + }, + "WebfontList": { + "id": "WebfontList", + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "The list of fonts currently served by the Google Fonts API.", + "items": { + "$ref": "Webfont" + } + }, + "kind": { + "type": "string", + "description": "This kind represents a list of webfont objects in the webfonts service.", + "default": "webfonts#webfontList" + } + } + } + }, + "resources": { + "webfonts": { + "methods": { + "list": { + "id": "webfonts.webfonts.list", + "path": "webfonts", + "httpMethod": "GET", + "description": "Retrieves the list of fonts currently served by the Google Fonts Developer API", + "parameters": { + "sort": { + "type": "string", + "description": "Enables sorting of the list", + "enum": [ + "alpha", + "date", + "popularity", + "style", + "trending" + ], + "enumDescriptions": [ + "Sort alphabetically", + "Sort by date added", + "Sort by popularity", + "Sort by number of styles", + "Sort by trending" + ], + "location": "query" + } + }, + "response": { + "$ref": "WebfontList" + } + } + } + } + } +} diff --git a/etc/api/webmasters/v3/webmasters-api.json b/etc/api/webmasters/v3/webmasters-api.json new file mode 100644 index 0000000000..d3cb4dc13c --- /dev/null +++ b/etc/api/webmasters/v3/webmasters-api.json @@ -0,0 +1,806 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"uUWyYHXmEn-ab7WLvo8qNz2S8ws/sCAxuVQJb4ynjZxsnsm28T2muEw\"", + "discoveryVersion": "v1", + "id": "webmasters:v3", + "name": "webmasters", + "version": "v3", + "revision": "20140908", + "title": "Webmaster Tools API", + "description": "Lets you view Google Webmaster Tools data for your verified sites.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/webmaster_tools-16.png", + "x32": "https://www.google.com/images/icons/product/webmaster_tools-32.png" + }, + "documentationLink": "https://developers.google.com/webmaster-tools/v3/welcome", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/webmasters/v3/", + "basePath": "/webmasters/v3/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "webmasters/v3/", + "batchPath": "batch", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/webmasters": { + "description": "View and modify Webmaster Tools data for your verified sites" + }, + "https://www.googleapis.com/auth/webmasters.readonly": { + "description": "View Webmaster Tools data for your verified sites" + } + } + } + }, + "schemas": { + "SitemapsListResponse": { + "id": "SitemapsListResponse", + "type": "object", + "description": "List of sitemaps.", + "properties": { + "sitemap": { + "type": "array", + "description": "Information about a sitemap entry.", + "items": { + "$ref": "WmxSitemap" + } + } + } + }, + "SitesListResponse": { + "id": "SitesListResponse", + "type": "object", + "description": "List of sites with access level information.", + "properties": { + "siteEntry": { + "type": "array", + "description": "Access level information for a Webmaster Tools site.", + "items": { + "$ref": "WmxSite" + } + } + } + }, + "UrlCrawlErrorCount": { + "id": "UrlCrawlErrorCount", + "type": "object", + "description": "An entry in a URL crawl errors time series.", + "properties": { + "count": { + "type": "string", + "description": "The error count at the given timestamp.", + "format": "int64" + }, + "timestamp": { + "type": "string", + "description": "The time (well, date) when errors were detected, in RFC 3339 format.", + "format": "date-time" + } + } + }, + "UrlCrawlErrorCountsPerType": { + "id": "UrlCrawlErrorCountsPerType", + "type": "object", + "description": "Number of errors per day for a specific error type (defined by platform and category).", + "properties": { + "category": { + "type": "string", + "description": "The crawl error type." + }, + "entries": { + "type": "array", + "description": "The error count entries time series.", + "items": { + "$ref": "UrlCrawlErrorCount" + } + }, + "platform": { + "type": "string", + "description": "Corresponding to the user agent that made the request." + } + } + }, + "UrlCrawlErrorsCountsQueryResponse": { + "id": "UrlCrawlErrorsCountsQueryResponse", + "type": "object", + "description": "A time series of the number of URL crawl errors per error category and platform.", + "properties": { + "countPerTypes": { + "type": "array", + "description": "The time series of the number of URL crawl errors for per error category and platform.", + "items": { + "$ref": "UrlCrawlErrorCountsPerType" + } + } + } + }, + "UrlCrawlErrorsSample": { + "id": "UrlCrawlErrorsSample", + "type": "object", + "properties": { + "first_detected": { + "type": "string", + "description": "The time the error was first detected, in RFC 3339 format.", + "format": "date-time" + }, + "last_crawled": { + "type": "string", + "description": "The time when the URL was last crawled, in RFC 3339 format.", + "format": "date-time" + }, + "pageUrl": { + "type": "string", + "description": "The URL of an error, relative to the site." + }, + "responseCode": { + "type": "integer", + "description": "The HTTP response code, if any.", + "format": "int32" + }, + "urlDetails": { + "$ref": "UrlSampleDetails", + "description": "Additional details about the URL, set only when calling get()." + } + } + }, + "UrlCrawlErrorsSamplesListResponse": { + "id": "UrlCrawlErrorsSamplesListResponse", + "type": "object", + "description": "List of crawl error samples.", + "properties": { + "urlCrawlErrorSample": { + "type": "array", + "description": "Information about the sample URL and its crawl error.", + "items": { + "$ref": "UrlCrawlErrorsSample" + } + } + } + }, + "UrlSampleDetails": { + "id": "UrlSampleDetails", + "type": "object", + "description": "Additional details about the URL, set only when calling get().", + "properties": { + "containingSitemaps": { + "type": "array", + "description": "List of sitemaps pointing at this URL.", + "items": { + "type": "string" + } + }, + "linkedFromUrls": { + "type": "array", + "description": "A sample set of URLs linking to this URL.", + "items": { + "type": "string" + } + } + } + }, + "WmxSite": { + "id": "WmxSite", + "type": "object", + "description": "Access level information for a Webmaster Tools site.", + "properties": { + "permissionLevel": { + "type": "string", + "description": "The user's permission level for the site." + }, + "siteUrl": { + "type": "string", + "description": "The URL of the site." + } + } + }, + "WmxSitemap": { + "id": "WmxSitemap", + "type": "object", + "properties": { + "contents": { + "type": "array", + "description": "The various content types in the sitemap.", + "items": { + "$ref": "WmxSitemapContent" + } + }, + "errors": { + "type": "string", + "description": "Number of errors in the sitemap - issues with the sitemap itself, that needs to be fixed before it can be processed correctly.", + "format": "int64" + }, + "isPending": { + "type": "boolean", + "description": "If true, the sitemap has not been processed." + }, + "isSitemapsIndex": { + "type": "boolean", + "description": "If true, the sitemap is a collection of sitemaps." + }, + "lastDownloaded": { + "type": "string", + "description": "Date & time in which this sitemap was last downloaded. Date format is in RFC 3339 format (yyyy-mm-dd).", + "format": "date-time" + }, + "lastSubmitted": { + "type": "string", + "description": "Date & time in which this sitemap was submitted. Date format is in RFC 3339 format (yyyy-mm-dd).", + "format": "date-time" + }, + "path": { + "type": "string", + "description": "The url of the sitemap." + }, + "type": { + "type": "string", + "description": "The type of the sitemap (for example \"sitemap\")." + }, + "warnings": { + "type": "string", + "description": "Number of warnings for the sitemap - issues with URLs in the sitemaps.", + "format": "int64" + } + } + }, + "WmxSitemapContent": { + "id": "WmxSitemapContent", + "type": "object", + "description": "Information about the various content types in the sitemap.", + "properties": { + "indexed": { + "type": "string", + "description": "The number of URLs from the sitemap that were indexed (of the content type).", + "format": "int64" + }, + "submitted": { + "type": "string", + "description": "The number of URLs in the sitemap (of the content type).", + "format": "int64" + }, + "type": { + "type": "string", + "description": "The specific type of content in this sitemap (for example \"web\", \"images\")." + } + } + } + }, + "resources": { + "sitemaps": { + "methods": { + "delete": { + "id": "webmasters.sitemaps.delete", + "path": "sites/{siteUrl}/sitemaps/{feedpath}", + "httpMethod": "DELETE", + "description": "Deletes a sitemap from this site.", + "parameters": { + "feedpath": { + "type": "string", + "description": "The URL of the actual sitemap (for example http://www.example.com/sitemap.xml).", + "required": true, + "location": "path" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "feedpath" + ], + "scopes": [ + "https://www.googleapis.com/auth/webmasters" + ] + }, + "get": { + "id": "webmasters.sitemaps.get", + "path": "sites/{siteUrl}/sitemaps/{feedpath}", + "httpMethod": "GET", + "description": "Retrieves information about a specific sitemap.", + "parameters": { + "feedpath": { + "type": "string", + "description": "The URL of the actual sitemap (for example http://www.example.com/sitemap.xml).", + "required": true, + "location": "path" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "feedpath" + ], + "response": { + "$ref": "WmxSitemap" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + }, + "list": { + "id": "webmasters.sitemaps.list", + "path": "sites/{siteUrl}/sitemaps", + "httpMethod": "GET", + "description": "Lists sitemaps uploaded to the site.", + "parameters": { + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + }, + "sitemapIndex": { + "type": "string", + "description": "A URL of a site's sitemap index.", + "location": "query" + } + }, + "parameterOrder": [ + "siteUrl" + ], + "response": { + "$ref": "SitemapsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + }, + "submit": { + "id": "webmasters.sitemaps.submit", + "path": "sites/{siteUrl}/sitemaps/{feedpath}", + "httpMethod": "PUT", + "description": "Submits a sitemap for a site.", + "parameters": { + "feedpath": { + "type": "string", + "description": "The URL of the sitemap to add.", + "required": true, + "location": "path" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "feedpath" + ], + "scopes": [ + "https://www.googleapis.com/auth/webmasters" + ] + } + } + }, + "sites": { + "methods": { + "add": { + "id": "webmasters.sites.add", + "path": "sites/{siteUrl}", + "httpMethod": "PUT", + "description": "Adds a site to the set of the user's sites in Webmaster Tools.", + "parameters": { + "siteUrl": { + "type": "string", + "description": "The URL of the site to add.", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl" + ], + "scopes": [ + "https://www.googleapis.com/auth/webmasters" + ] + }, + "delete": { + "id": "webmasters.sites.delete", + "path": "sites/{siteUrl}", + "httpMethod": "DELETE", + "description": "Removes a site from the set of the user's Webmaster Tools sites.", + "parameters": { + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl" + ], + "scopes": [ + "https://www.googleapis.com/auth/webmasters" + ] + }, + "get": { + "id": "webmasters.sites.get", + "path": "sites/{siteUrl}", + "httpMethod": "GET", + "description": "Retrieves information about specific site.", + "parameters": { + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl" + ], + "response": { + "$ref": "WmxSite" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + }, + "list": { + "id": "webmasters.sites.list", + "path": "sites", + "httpMethod": "GET", + "description": "Lists your Webmaster Tools sites.", + "response": { + "$ref": "SitesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + } + } + }, + "urlcrawlerrorscounts": { + "methods": { + "query": { + "id": "webmasters.urlcrawlerrorscounts.query", + "path": "sites/{siteUrl}/urlCrawlErrorsCounts/query", + "httpMethod": "GET", + "description": "Retrieves a time series of the number of URL crawl errors per error category and platform.", + "parameters": { + "category": { + "type": "string", + "description": "The crawl error category, for example 'serverError'. If not specified, we return results for all categories.", + "enum": [ + "authPermissions", + "manyToOneRedirect", + "notFollowed", + "notFound", + "other", + "roboted", + "serverError", + "soft404" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "latestCountsOnly": { + "type": "boolean", + "description": "If true, returns only the latest crawl error counts.", + "default": "true", + "location": "query" + }, + "platform": { + "type": "string", + "description": "The user agent type (platform) that made the request, for example 'web'. If not specified, we return results for all platforms.", + "enum": [ + "mobile", + "smartphoneOnly", + "web" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl" + ], + "response": { + "$ref": "UrlCrawlErrorsCountsQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + } + } + }, + "urlcrawlerrorssamples": { + "methods": { + "get": { + "id": "webmasters.urlcrawlerrorssamples.get", + "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}", + "httpMethod": "GET", + "description": "Retrieves details about crawl errors for a site's sample URL.", + "parameters": { + "category": { + "type": "string", + "description": "The crawl error category, for example 'authPermissions'", + "required": true, + "enum": [ + "authPermissions", + "manyToOneRedirect", + "notFollowed", + "notFound", + "other", + "roboted", + "serverError", + "soft404" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "platform": { + "type": "string", + "description": "The user agent type (platform) that made the request, for example 'web'", + "required": true, + "enum": [ + "mobile", + "smartphoneOnly", + "web" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + }, + "url": { + "type": "string", + "description": "The relative path (without the site) of the sample URL; must be one of the URLs returned by list", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "url", + "category", + "platform" + ], + "response": { + "$ref": "UrlCrawlErrorsSample" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + }, + "list": { + "id": "webmasters.urlcrawlerrorssamples.list", + "path": "sites/{siteUrl}/urlCrawlErrorsSamples", + "httpMethod": "GET", + "description": "Lists a site's sample URLs for the specified crawl error category and platform.", + "parameters": { + "category": { + "type": "string", + "description": "The crawl error category, for example 'authPermissions'", + "required": true, + "enum": [ + "authPermissions", + "manyToOneRedirect", + "notFollowed", + "notFound", + "other", + "roboted", + "serverError", + "soft404" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "platform": { + "type": "string", + "description": "The user agent type (platform) that made the request, for example 'web'", + "required": true, + "enum": [ + "mobile", + "smartphoneOnly", + "web" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "category", + "platform" + ], + "response": { + "$ref": "UrlCrawlErrorsSamplesListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/webmasters", + "https://www.googleapis.com/auth/webmasters.readonly" + ] + }, + "markAsFixed": { + "id": "webmasters.urlcrawlerrorssamples.markAsFixed", + "path": "sites/{siteUrl}/urlCrawlErrorsSamples/{url}", + "httpMethod": "DELETE", + "description": "Marks the provided site's sample URL as fixed, and removes it from the samples list.", + "parameters": { + "category": { + "type": "string", + "description": "The crawl error category, for example 'authPermissions'", + "required": true, + "enum": [ + "authPermissions", + "manyToOneRedirect", + "notFollowed", + "notFound", + "other", + "roboted", + "serverError", + "soft404" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query" + }, + "platform": { + "type": "string", + "description": "The user agent type (platform) that made the request, for example 'web'", + "required": true, + "enum": [ + "mobile", + "smartphoneOnly", + "web" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query" + }, + "siteUrl": { + "type": "string", + "description": "The site's URL, including protocol, for example 'http://www.example.com/'", + "required": true, + "location": "path" + }, + "url": { + "type": "string", + "description": "The relative path (without the site) of the sample URL; must be one of the URLs returned by list", + "required": true, + "location": "path" + } + }, + "parameterOrder": [ + "siteUrl", + "url", + "category", + "platform" + ], + "scopes": [ + "https://www.googleapis.com/auth/webmasters" + ] + } + } + } + } +} diff --git a/etc/api/youtubeanalytics/v1/youtubeanalytics-api.json b/etc/api/youtubeanalytics/v1/youtubeanalytics-api.json new file mode 100644 index 0000000000..b2be6cbc0a --- /dev/null +++ b/etc/api/youtubeanalytics/v1/youtubeanalytics-api.json @@ -0,0 +1,718 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/mgPC2o6emzAE7yocMVmScgLphrM\"", + "discoveryVersion": "v1", + "id": "youtubeAnalytics:v1", + "name": "youtubeAnalytics", + "canonicalName": "YouTube Analytics", + "version": "v1", + "revision": "20150213", + "title": "YouTube Analytics API", + "description": "Retrieve your YouTube Analytics reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/youtube-16.png", + "x32": "https://www.google.com/images/icons/product/youtube-32.png" + }, + "documentationLink": "http://developers.google.com/youtube/analytics/", + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/youtube/analytics/v1/", + "basePath": "/youtube/analytics/v1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "youtube/analytics/v1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/youtube": { + "description": "Manage your YouTube account" + }, + "https://www.googleapis.com/auth/youtube.readonly": { + "description": "View your YouTube account" + }, + "https://www.googleapis.com/auth/youtubepartner": { + "description": "View and manage your assets and associated content on YouTube" + }, + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly": { + "description": "View YouTube Analytics monetary reports for your YouTube content" + }, + "https://www.googleapis.com/auth/yt-analytics.readonly": { + "description": "View YouTube Analytics reports for your YouTube content" + } + } + } + }, + "schemas": { + "BatchReport": { + "id": "BatchReport", + "type": "object", + "description": "Contains single batchReport resource.", + "properties": { + "id": { + "type": "string", + "description": "The ID that YouTube assigns and uses to uniquely identify the report." + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data of this item. For batch report the kind property value is youtubeAnalytics#batchReport.", + "default": "youtubeAnalytics#batchReport" + }, + "outputs": { + "type": "array", + "description": "Report outputs.", + "items": { + "type": "object", + "properties": { + "downloadUrl": { + "type": "string", + "description": "Cloud storage URL to download this report. This URL is valid for 30 minutes." + }, + "format": { + "type": "string", + "description": "Format of the output." + }, + "type": { + "type": "string", + "description": "Type of the output.", + "default": "cloudStorageOutput" + } + } + } + }, + "reportId": { + "type": "string", + "description": "The ID of the the report definition." + }, + "timeSpan": { + "type": "object", + "description": "Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.", + "properties": { + "endTime": { + "type": "string", + "description": "End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.", + "format": "date-time" + }, + "startTime": { + "type": "string", + "description": "Start of the period included in the report. Inclusive.", + "format": "date-time" + } + } + }, + "timeUpdated": { + "type": "string", + "description": "The time when the report was updated.", + "format": "date-time" + } + } + }, + "BatchReportDefinition": { + "id": "BatchReportDefinition", + "type": "object", + "description": "Contains single batchReportDefinition resource.", + "properties": { + "id": { + "type": "string", + "description": "The ID that YouTube assigns and uses to uniquely identify the report definition." + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data of this item. For batch report definition the kind property value is youtubeAnalytics#batchReportDefinition.", + "default": "youtubeAnalytics#batchReportDefinition" + }, + "name": { + "type": "string", + "description": "Name of the report definition." + }, + "status": { + "type": "string", + "description": "Status of the report definition." + }, + "type": { + "type": "string", + "description": "Type of the report definition." + } + } + }, + "BatchReportDefinitionList": { + "id": "BatchReportDefinitionList", + "type": "object", + "description": "A paginated list of batchReportDefinition resources returned in response to a youtubeAnalytics.batchReportDefinitions.list request.", + "properties": { + "items": { + "type": "array", + "description": "A list of batchReportDefinition resources that match the request criteria.", + "items": { + "$ref": "BatchReportDefinition" + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportDefinitionList.", + "default": "youtubeAnalytics#batchReportDefinitionList" + } + } + }, + "BatchReportList": { + "id": "BatchReportList", + "type": "object", + "description": "A paginated list of batchReport resources returned in response to a youtubeAnalytics.batchReport.list request.", + "properties": { + "items": { + "type": "array", + "description": "A list of batchReport resources that match the request criteria.", + "items": { + "$ref": "BatchReport" + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportList.", + "default": "youtubeAnalytics#batchReportList" + } + } + }, + "Group": { + "id": "Group", + "type": "object", + "properties": { + "contentDetails": { + "type": "object", + "properties": { + "itemCount": { + "type": "string", + "format": "uint64" + }, + "itemType": { + "type": "string" + } + } + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "youtube#group" + }, + "snippet": { + "type": "object", + "properties": { + "publishedAt": { + "type": "string", + "format": "date-time" + }, + "title": { + "type": "string" + } + } + } + } + }, + "GroupItem": { + "id": "GroupItem", + "type": "object", + "properties": { + "etag": { + "type": "string" + }, + "groupId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "youtube#groupItem" + }, + "resource": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + } + } + }, + "GroupItemListResponse": { + "id": "GroupItemListResponse", + "type": "object", + "description": "A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.", + "properties": { + "etag": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "GroupItem" + } + }, + "kind": { + "type": "string", + "default": "youtube#groupItemListResponse" + } + } + }, + "GroupListResponse": { + "id": "GroupListResponse", + "type": "object", + "description": "A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.", + "properties": { + "etag": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "Group" + } + }, + "kind": { + "type": "string", + "default": "youtube#groupListResponse" + } + } + }, + "ResultTable": { + "id": "ResultTable", + "type": "object", + "description": "Contains a single result table. The table is returned as an array of rows that contain the values for the cells of the table. Depending on the metric or dimension, the cell can contain a string (video ID, country code) or a number (number of views or number of likes).", + "properties": { + "columnHeaders": { + "type": "array", + "description": "This value specifies information about the data returned in the rows fields. Each item in the columnHeaders list identifies a field returned in the rows value, which contains a list of comma-delimited data. The columnHeaders list will begin with the dimensions specified in the API request, which will be followed by the metrics specified in the API request. The order of both dimensions and metrics will match the ordering in the API request. For example, if the API request contains the parameters dimensions=ageGroup,gender&metrics=viewerPercentage, the API response will return columns in this order: ageGroup,gender,viewerPercentage.", + "items": { + "type": "object", + "properties": { + "columnType": { + "type": "string", + "description": "The type of the column (DIMENSION or METRIC)." + }, + "dataType": { + "type": "string", + "description": "The type of the data in the column (STRING, INTEGER, FLOAT, etc.)." + }, + "name": { + "type": "string", + "description": "The name of the dimension or metric." + } + } + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the query method, the kind property value will be youtubeAnalytics#resultTable.", + "default": "youtubeAnalytics#resultTable" + }, + "rows": { + "type": "array", + "description": "The list contains all rows of the result table. Each item in the list is an array that contains comma-delimited data corresponding to a single row of data. The order of the comma-delimited data fields will match the order of the columns listed in the columnHeaders field. If no data is available for the given query, the rows element will be omitted from the response. The response for a query with the day dimension will not contain rows for the most recent days.", + "items": { + "type": "array", + "items": { + "type": "any" + } + } + } + } + } + }, + "resources": { + "batchReportDefinitions": { + "methods": { + "list": { + "id": "youtubeAnalytics.batchReportDefinitions.list", + "path": "batchReportDefinitions", + "httpMethod": "GET", + "description": "Retrieves a list of available batch report definitions.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "onBehalfOfContentOwner" + ], + "response": { + "$ref": "BatchReportDefinitionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "batchReports": { + "methods": { + "list": { + "id": "youtubeAnalytics.batchReports.list", + "path": "batchReports", + "httpMethod": "GET", + "description": "Retrieves a list of processed batch reports.", + "parameters": { + "batchReportDefinitionId": { + "type": "string", + "description": "The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for which you are retrieving reports.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "batchReportDefinitionId", + "onBehalfOfContentOwner" + ], + "response": { + "$ref": "BatchReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "groupItems": { + "methods": { + "delete": { + "id": "youtubeAnalytics.groupItems.delete", + "path": "groupItems", + "httpMethod": "DELETE", + "description": "Removes an item from a group.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies the YouTube group item ID for the group that is being deleted.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "insert": { + "id": "youtubeAnalytics.groupItems.insert", + "path": "groupItems", + "httpMethod": "POST", + "description": "Creates a group item.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "GroupItem" + }, + "response": { + "$ref": "GroupItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "list": { + "id": "youtubeAnalytics.groupItems.list", + "path": "groupItems", + "httpMethod": "GET", + "description": "Returns a collection of group items that match the API request parameters.", + "parameters": { + "groupId": { + "type": "string", + "description": "The id parameter specifies the unique ID of the group for which you want to retrieve group items.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "groupId" + ], + "response": { + "$ref": "GroupItemListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.readonly", + "https://www.googleapis.com/auth/youtubepartner", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "groups": { + "methods": { + "delete": { + "id": "youtubeAnalytics.groups.delete", + "path": "groups", + "httpMethod": "DELETE", + "description": "Deletes a group.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies the YouTube group ID for the group that is being deleted.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "insert": { + "id": "youtubeAnalytics.groups.insert", + "path": "groups", + "httpMethod": "POST", + "description": "Creates a group.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "list": { + "id": "youtubeAnalytics.groups.list", + "path": "groups", + "httpMethod": "GET", + "description": "Returns a collection of groups that match the API request parameters. For example, you can retrieve all groups that the authenticated user owns, or you can retrieve one or more groups by their unique IDs.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies a comma-separated list of the YouTube group ID(s) for the resource(s) that are being retrieved. In a group resource, the id property specifies the group's YouTube group ID.", + "location": "query" + }, + "mine": { + "type": "boolean", + "description": "Set this parameter's value to true to instruct the API to only return groups owned by the authenticated user.", + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "response": { + "$ref": "GroupListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.readonly", + "https://www.googleapis.com/auth/youtubepartner", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + }, + "update": { + "id": "youtubeAnalytics.groups.update", + "path": "groups", + "httpMethod": "PUT", + "description": "Modifies a group. For example, you could change a group's title.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + } + } + }, + "reports": { + "methods": { + "query": { + "id": "youtubeAnalytics.reports.query", + "path": "reports", + "httpMethod": "GET", + "description": "Retrieve your YouTube Analytics reports.", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of YouTube Analytics dimensions, such as views or ageGroup,gender. See the Available Reports document for a list of the reports that you can retrieve and the dimensions used for those reports. Also see the Dimensions document for definitions of those dimensions.", + "pattern": "[0-9a-zA-Z,]+", + "location": "query" + }, + "end-date": { + "type": "string", + "description": "The end date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A list of filters that should be applied when retrieving YouTube Analytics data. The Available Reports document identifies the dimensions that can be used to filter each report, and the Dimensions document defines those dimensions. If a request uses multiple filters, join them together with a semicolon (;), and the returned result table will satisfy both filters. For example, a filters parameter value of video==dMH0bHeiRNg;country==IT restricts the result set to include data for the given video in Italy.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics data.\n- To request data for a YouTube user, set the ids parameter value to channel==CHANNEL_ID, where CHANNEL_ID specifies the unique YouTube channel ID.\n- To request data for a YouTube CMS content owner, set the ids parameter value to contentOwner==OWNER_NAME, where OWNER_NAME is the CMS name of the content owner.", + "required": true, + "pattern": "[a-zA-Z]+==[a-zA-Z0-9_+-]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of rows to include in the response.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of YouTube Analytics metrics, such as views or likes,dislikes. See the Available Reports document for a list of the reports that you can retrieve and the metrics available in each report, and see the Metrics document for definitions of those metrics.", + "required": true, + "pattern": "[0-9a-zA-Z,]+", + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for YouTube Analytics data. By default the sort order is ascending. The '-' prefix causes descending sort order.", + "pattern": "[-0-9a-zA-Z,]+", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "The start date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter (one-based, inclusive).", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "start-date", + "end-date", + "metrics" + ], + "response": { + "$ref": "ResultTable" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + } + } +} diff --git a/etc/api/youtubeanalytics/v1beta1/youtubeanalytics-api.json b/etc/api/youtubeanalytics/v1beta1/youtubeanalytics-api.json new file mode 100644 index 0000000000..c84bd6e5c0 --- /dev/null +++ b/etc/api/youtubeanalytics/v1beta1/youtubeanalytics-api.json @@ -0,0 +1,721 @@ +{ + "kind": "discovery#restDescription", + "etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/qYnCbO50tBJQh7cxSXJ680n-meg\"", + "discoveryVersion": "v1", + "id": "youtubeAnalytics:v1beta1", + "name": "youtubeAnalytics", + "canonicalName": "YouTube Analytics", + "version": "v1beta1", + "revision": "20150213", + "title": "YouTube Analytics API", + "description": "Retrieve your YouTube Analytics reports.", + "ownerDomain": "google.com", + "ownerName": "Google", + "icons": { + "x16": "https://www.google.com/images/icons/product/youtube-16.png", + "x32": "https://www.google.com/images/icons/product/youtube-32.png" + }, + "documentationLink": "http://developers.google.com/youtube/analytics/", + "labels": [ + "deprecated" + ], + "protocol": "rest", + "baseUrl": "https://www.googleapis.com/youtube/analytics/v1beta1/", + "basePath": "/youtube/analytics/v1beta1/", + "rootUrl": "https://www.googleapis.com/", + "servicePath": "youtube/analytics/v1beta1/", + "batchPath": "batch", + "parameters": { + "alt": { + "type": "string", + "description": "Data format for the response.", + "default": "json", + "enum": [ + "csv", + "json" + ], + "enumDescriptions": [ + "Responses with Content-Type of text/csv", + "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" + } + }, + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/youtube": { + "description": "Manage your YouTube account" + }, + "https://www.googleapis.com/auth/youtube.readonly": { + "description": "View your YouTube account" + }, + "https://www.googleapis.com/auth/youtubepartner": { + "description": "View and manage your assets and associated content on YouTube" + }, + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly": { + "description": "View YouTube Analytics monetary reports for your YouTube content" + }, + "https://www.googleapis.com/auth/yt-analytics.readonly": { + "description": "View YouTube Analytics reports for your YouTube content" + } + } + } + }, + "schemas": { + "BatchReport": { + "id": "BatchReport", + "type": "object", + "description": "Contains single batchReport resource.", + "properties": { + "id": { + "type": "string", + "description": "The ID that YouTube assigns and uses to uniquely identify the report." + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data of this item. For batch report the kind property value is youtubeAnalytics#batchReport.", + "default": "youtubeAnalytics#batchReport" + }, + "outputs": { + "type": "array", + "description": "Report outputs.", + "items": { + "type": "object", + "properties": { + "downloadUrl": { + "type": "string", + "description": "Cloud storage URL to download this report. This URL is valid for 30 minutes." + }, + "format": { + "type": "string", + "description": "Format of the output." + }, + "type": { + "type": "string", + "description": "Type of the output.", + "default": "cloudStorageOutput" + } + } + } + }, + "reportId": { + "type": "string", + "description": "The ID of the the report definition." + }, + "timeSpan": { + "type": "object", + "description": "Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.", + "properties": { + "endTime": { + "type": "string", + "description": "End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.", + "format": "date-time" + }, + "startTime": { + "type": "string", + "description": "Start of the period included in the report. Inclusive.", + "format": "date-time" + } + } + }, + "timeUpdated": { + "type": "string", + "description": "The time when the report was updated.", + "format": "date-time" + } + } + }, + "BatchReportDefinition": { + "id": "BatchReportDefinition", + "type": "object", + "description": "Contains single batchReportDefinition resource.", + "properties": { + "id": { + "type": "string", + "description": "The ID that YouTube assigns and uses to uniquely identify the report definition." + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data of this item. For batch report definition the kind property value is youtubeAnalytics#batchReportDefinition.", + "default": "youtubeAnalytics#batchReportDefinition" + }, + "name": { + "type": "string", + "description": "Name of the report definition." + }, + "status": { + "type": "string", + "description": "Status of the report definition." + }, + "type": { + "type": "string", + "description": "Type of the report definition." + } + } + }, + "BatchReportDefinitionList": { + "id": "BatchReportDefinitionList", + "type": "object", + "description": "A paginated list of batchReportDefinition resources returned in response to a youtubeAnalytics.batchReportDefinitions.list request.", + "properties": { + "items": { + "type": "array", + "description": "A list of batchReportDefinition resources that match the request criteria.", + "items": { + "$ref": "BatchReportDefinition" + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportDefinitionList.", + "default": "youtubeAnalytics#batchReportDefinitionList" + } + } + }, + "BatchReportList": { + "id": "BatchReportList", + "type": "object", + "description": "A paginated list of batchReport resources returned in response to a youtubeAnalytics.batchReport.list request.", + "properties": { + "items": { + "type": "array", + "description": "A list of batchReport resources that match the request criteria.", + "items": { + "$ref": "BatchReport" + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportList.", + "default": "youtubeAnalytics#batchReportList" + } + } + }, + "Group": { + "id": "Group", + "type": "object", + "properties": { + "contentDetails": { + "type": "object", + "properties": { + "itemCount": { + "type": "string", + "format": "uint64" + }, + "itemType": { + "type": "string" + } + } + }, + "etag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "youtube#group" + }, + "snippet": { + "type": "object", + "properties": { + "publishedAt": { + "type": "string", + "format": "date-time" + }, + "title": { + "type": "string" + } + } + } + } + }, + "GroupItem": { + "id": "GroupItem", + "type": "object", + "properties": { + "etag": { + "type": "string" + }, + "groupId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "type": "string", + "default": "youtube#groupItem" + }, + "resource": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + } + } + }, + "GroupItemListResponse": { + "id": "GroupItemListResponse", + "type": "object", + "description": "A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.", + "properties": { + "etag": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "GroupItem" + } + }, + "kind": { + "type": "string", + "default": "youtube#groupItemListResponse" + } + } + }, + "GroupListResponse": { + "id": "GroupListResponse", + "type": "object", + "description": "A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.", + "properties": { + "etag": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "Group" + } + }, + "kind": { + "type": "string", + "default": "youtube#groupListResponse" + } + } + }, + "ResultTable": { + "id": "ResultTable", + "type": "object", + "description": "Contains a single result table. The table is returned as an array of rows that contain the values for the cells of the table. Depending on the metric or dimension, the cell can contain a string (video ID, country code) or a number (number of views or number of likes).", + "properties": { + "columnHeaders": { + "type": "array", + "description": "This value specifies information about the data returned in the rows fields. Each item in the columnHeaders list identifies a field returned in the rows value, which contains a list of comma-delimited data. The columnHeaders list will begin with the dimensions specified in the API request, which will be followed by the metrics specified in the API request. The order of both dimensions and metrics will match the ordering in the API request. For example, if the API request contains the parameters dimensions=ageGroup,gender&metrics=viewerPercentage, the API response will return columns in this order: ageGroup,gender,viewerPercentage.", + "items": { + "type": "object", + "properties": { + "columnType": { + "type": "string", + "description": "The type of the column (DIMENSION or METRIC)." + }, + "dataType": { + "type": "string", + "description": "The type of the data in the column (STRING, INTEGER, FLOAT, etc.)." + }, + "name": { + "type": "string", + "description": "The name of the dimension or metric." + } + } + } + }, + "kind": { + "type": "string", + "description": "This value specifies the type of data included in the API response. For the query method, the kind property value will be youtubeAnalytics#resultTable.", + "default": "youtubeAnalytics#resultTable" + }, + "rows": { + "type": "array", + "description": "The list contains all rows of the result table. Each item in the list is an array that contains comma-delimited data corresponding to a single row of data. The order of the comma-delimited data fields will match the order of the columns listed in the columnHeaders field. If no data is available for the given query, the rows element will be omitted from the response. The response for a query with the day dimension will not contain rows for the most recent days.", + "items": { + "type": "array", + "items": { + "type": "any" + } + } + } + } + } + }, + "resources": { + "batchReportDefinitions": { + "methods": { + "list": { + "id": "youtubeAnalytics.batchReportDefinitions.list", + "path": "batchReportDefinitions", + "httpMethod": "GET", + "description": "Retrieves a list of available batch report definitions.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "onBehalfOfContentOwner" + ], + "response": { + "$ref": "BatchReportDefinitionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "batchReports": { + "methods": { + "list": { + "id": "youtubeAnalytics.batchReports.list", + "path": "batchReports", + "httpMethod": "GET", + "description": "Retrieves a list of processed batch reports.", + "parameters": { + "batchReportDefinitionId": { + "type": "string", + "description": "The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for which you are retrieving reports.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of.", + "required": true, + "location": "query" + } + }, + "parameterOrder": [ + "batchReportDefinitionId", + "onBehalfOfContentOwner" + ], + "response": { + "$ref": "BatchReportList" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "groupItems": { + "methods": { + "delete": { + "id": "youtubeAnalytics.groupItems.delete", + "path": "groupItems", + "httpMethod": "DELETE", + "description": "Removes an item from a group.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies the YouTube group item ID for the group that is being deleted.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "insert": { + "id": "youtubeAnalytics.groupItems.insert", + "path": "groupItems", + "httpMethod": "POST", + "description": "Creates a group item.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "GroupItem" + }, + "response": { + "$ref": "GroupItem" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "list": { + "id": "youtubeAnalytics.groupItems.list", + "path": "groupItems", + "httpMethod": "GET", + "description": "Returns a collection of group items that match the API request parameters.", + "parameters": { + "groupId": { + "type": "string", + "description": "The id parameter specifies the unique ID of the group for which you want to retrieve group items.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "groupId" + ], + "response": { + "$ref": "GroupItemListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.readonly", + "https://www.googleapis.com/auth/youtubepartner", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + }, + "groups": { + "methods": { + "delete": { + "id": "youtubeAnalytics.groups.delete", + "path": "groups", + "httpMethod": "DELETE", + "description": "Deletes a group.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies the YouTube group ID for the group that is being deleted.", + "required": true, + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "parameterOrder": [ + "id" + ], + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "insert": { + "id": "youtubeAnalytics.groups.insert", + "path": "groups", + "httpMethod": "POST", + "description": "Creates a group.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, + "list": { + "id": "youtubeAnalytics.groups.list", + "path": "groups", + "httpMethod": "GET", + "description": "Returns a collection of groups that match the API request parameters. For example, you can retrieve all groups that the authenticated user owns, or you can retrieve one or more groups by their unique IDs.", + "parameters": { + "id": { + "type": "string", + "description": "The id parameter specifies a comma-separated list of the YouTube group ID(s) for the resource(s) that are being retrieved. In a group resource, the id property specifies the group's YouTube group ID.", + "location": "query" + }, + "mine": { + "type": "boolean", + "description": "Set this parameter's value to true to instruct the API to only return groups owned by the authenticated user.", + "location": "query" + }, + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "response": { + "$ref": "GroupListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.readonly", + "https://www.googleapis.com/auth/youtubepartner", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + }, + "update": { + "id": "youtubeAnalytics.groups.update", + "path": "groups", + "httpMethod": "PUT", + "description": "Modifies a group. For example, you could change a group's title.", + "parameters": { + "onBehalfOfContentOwner": { + "type": "string", + "description": "Note: This parameter is intended exclusively for YouTube content partners.\n\nThe onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.", + "location": "query" + } + }, + "request": { + "$ref": "Group" + }, + "response": { + "$ref": "Group" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtubepartner" + ] + } + } + }, + "reports": { + "methods": { + "query": { + "id": "youtubeAnalytics.reports.query", + "path": "reports", + "httpMethod": "GET", + "description": "Retrieve your YouTube Analytics reports.", + "parameters": { + "dimensions": { + "type": "string", + "description": "A comma-separated list of YouTube Analytics dimensions, such as views or ageGroup,gender. See the Available Reports document for a list of the reports that you can retrieve and the dimensions used for those reports. Also see the Dimensions document for definitions of those dimensions.", + "pattern": "[0-9a-zA-Z,]+", + "location": "query" + }, + "end-date": { + "type": "string", + "description": "The end date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "filters": { + "type": "string", + "description": "A list of filters that should be applied when retrieving YouTube Analytics data. The Available Reports document identifies the dimensions that can be used to filter each report, and the Dimensions document defines those dimensions. If a request uses multiple filters, join them together with a semicolon (;), and the returned result table will satisfy both filters. For example, a filters parameter value of video==dMH0bHeiRNg;country==IT restricts the result set to include data for the given video in Italy.", + "location": "query" + }, + "ids": { + "type": "string", + "description": "Identifies the YouTube channel or content owner for which you are retrieving YouTube Analytics data.\n- To request data for a YouTube user, set the ids parameter value to channel==CHANNEL_ID, where CHANNEL_ID specifies the unique YouTube channel ID.\n- To request data for a YouTube CMS content owner, set the ids parameter value to contentOwner==OWNER_NAME, where OWNER_NAME is the CMS name of the content owner.", + "required": true, + "pattern": "[a-zA-Z]+==[a-zA-Z0-9_+-]+", + "location": "query" + }, + "max-results": { + "type": "integer", + "description": "The maximum number of rows to include in the response.", + "format": "int32", + "minimum": "1", + "location": "query" + }, + "metrics": { + "type": "string", + "description": "A comma-separated list of YouTube Analytics metrics, such as views or likes,dislikes. See the Available Reports document for a list of the reports that you can retrieve and the metrics available in each report, and see the Metrics document for definitions of those metrics.", + "required": true, + "pattern": "[0-9a-zA-Z,]+", + "location": "query" + }, + "sort": { + "type": "string", + "description": "A comma-separated list of dimensions or metrics that determine the sort order for YouTube Analytics data. By default the sort order is ascending. The '-' prefix causes descending sort order.", + "pattern": "[-0-9a-zA-Z,]+", + "location": "query" + }, + "start-date": { + "type": "string", + "description": "The start date for fetching YouTube Analytics data. The value should be in YYYY-MM-DD format.", + "required": true, + "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}", + "location": "query" + }, + "start-index": { + "type": "integer", + "description": "An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter (one-based, inclusive).", + "format": "int32", + "minimum": "1", + "location": "query" + } + }, + "parameterOrder": [ + "ids", + "start-date", + "end-date", + "metrics" + ], + "response": { + "$ref": "ResultTable" + }, + "scopes": [ + "https://www.googleapis.com/auth/yt-analytics-monetary.readonly", + "https://www.googleapis.com/auth/yt-analytics.readonly" + ] + } + } + } + } +} diff --git a/etc/bin/update-json.sh b/etc/bin/update-json.sh new file mode 100755 index 0000000000..b6e5c08a69 --- /dev/null +++ b/etc/bin/update-json.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +repo_path=${1:?First argument must be the part to the google go API clients repository} +api_base=${2:?Second argument must be the destination path to which to copy the APIs} + +(cd ${repo_path} && git pull --ff-only) || exit $? + +for json_path in `cd ${repo_path} && find . -type f -name "*-api.json"`; do + dest=${api_base}/`dirname ${json_path}` + mkdir -p ${dest} || exit $? + cp ${repo_path}/${json_path} ${dest} || exit $? +done \ No newline at end of file diff --git a/src/mako/lib/util.py b/src/mako/lib/util.py index f0935ef2a4..33b94f311a 100644 --- a/src/mako/lib/util.py +++ b/src/mako/lib/util.py @@ -579,7 +579,7 @@ def new_context(resources): # Expects v to be 'v\d+', throws otherwise def to_api_version(v): assert len(v) >= 2 and v[0] == 'v' - return v[1:] + return v[1:].replace('.', 'p') # build a full library name (non-canonical) def library_name(name, version):