<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="discovery_v1.html">APIs Discovery Service</a> . <a href="discovery_v1.apis.html">apis</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#getRest">getRest(api, version)</a></code></p>
<p class="firstline">Retrieve the description of a particular version of an api.</p>
<p class="toc_element">
  <code><a href="#list">list(name=None, preferred=None, label=None)</a></code></p>
<p class="firstline">Retrieve the list of APIs supported at this endpoint.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="getRest">getRest(api, version)</code>
  <pre>Retrieve the description of a particular version of an api.

Args:
  api: string, The name of the API. (required)
  version: string, The version of the API. (required)

Returns:
  An object of the form:

    {
    "protocol": "rest", # The protocol described by this document.
    "methods": { # API-level methods for this API.
      "a_key": { # An individual method description.
        "scopes": [ # OAuth 2.0 scopes applicable to this method.
          "A String",
        ],
        "description": "A String", # Description of this method.
        "parameters": { # Details for all parameters in this method.
          "a_key": { # Details for a single parameter in this method.
            "properties": { # If this is a schema for an object, list the schema for each property of this object.
              "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
            },
            "required": True or False, # Whether the parameter is required.
            "type": "A String", # 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
            "description": "A String", # A description of this object.
            "format": "A String", # 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
            "default": "A String", # The default value of this property (if one exists).
            "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
            "enum": [ # Values this parameter may take (if it is an enum).
              "A String",
            ],
            "maximum": "A String", # The maximum value of this parameter.
            "id": "A String", # Unique identifier for this schema.
            "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
              "A String",
            ],
            "minimum": "A String", # The minimum value of this parameter.
            "readOnly": True or False, # The value is read-only, generated by the service. The value can not be modified by the client. It the value is included in a POST, PUT or PATCH request, it will be ignored by the service.
            "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
            "pattern": "A String", # 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
            "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
            "repeated": True or False, # Whether this parameter may appear multiple times.
            "annotations": { # Additional information about this property.
              "required": [ # A list of methods for which this property is required on requests.
                "A String",
              ],
            },
            "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
          },
        },
        "supportsMediaUpload": True or False, # Whether this method supports media uploads.
        "etagRequired": True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
        "mediaUpload": { # Media upload parameters.
          "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
          "protocols": { # Supported upload protocols.
            "simple": { # Supports uploading as a single HTTP request.
              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
              "multipart": true, # True if this endpoint supports upload multipart media.
            },
            "resumable": { # Supports the Resumable Media Upload protocol.
              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
              "multipart": true, # True if this endpoint supports uploading multipart media.
            },
          },
          "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
            "A String",
          ],
        },
        "request": { # The schema for the request.
          "$ref": "A String", # Schema ID for the request schema.
        },
        "response": { # The schema for the response.
          "$ref": "A String", # Schema ID for the response schema.
        },
        "httpMethod": "A String", # HTTP method used by this method.
        "supportsSubscription": True or False, # Whether this method supports subscriptions.
        "parameterOrder": [ # 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.
          "A String",
        ],
        "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
        "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
        "supportsMediaDownload": True or False, # Whether this method supports media downloads.
      },
    },
    "labels": [ # Labels for the status of this API, such as labs or deprecated.
      "A String",
    ],
    "batchPath": "batch", # The path for REST batch requests.
    "id": "A String", # The id of this API.
    "schemas": { # The schemas for this API.
      "a_key": { # An individual schema description.
        "properties": { # If this is a schema for an object, list the schema for each property of this object.
          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
        },
        "required": True or False, # Whether the parameter is required.
        "type": "A String", # 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
        "description": "A String", # A description of this object.
        "format": "A String", # 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
        "default": "A String", # The default value of this property (if one exists).
        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
        "enum": [ # Values this parameter may take (if it is an enum).
          "A String",
        ],
        "maximum": "A String", # The maximum value of this parameter.
        "id": "A String", # Unique identifier for this schema.
        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
          "A String",
        ],
        "minimum": "A String", # The minimum value of this parameter.
        "readOnly": True or False, # The value is read-only, generated by the service. The value can not be modified by the client. It the value is included in a POST, PUT or PATCH request, it will be ignored by the service.
        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
        "pattern": "A String", # 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
        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
        "repeated": True or False, # Whether this parameter may appear multiple times.
        "annotations": { # Additional information about this property.
          "required": [ # A list of methods for which this property is required on requests.
            "A String",
          ],
        },
        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
      },
    },
    "rootUrl": "A String", # The root url under which all API services live.
    "parameters": { # Common parameters that apply across all apis.
      "a_key": { # Description of a single parameter.
        "properties": { # If this is a schema for an object, list the schema for each property of this object.
          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
        },
        "required": True or False, # Whether the parameter is required.
        "type": "A String", # 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
        "description": "A String", # A description of this object.
        "format": "A String", # 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
        "default": "A String", # The default value of this property (if one exists).
        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
        "enum": [ # Values this parameter may take (if it is an enum).
          "A String",
        ],
        "maximum": "A String", # The maximum value of this parameter.
        "id": "A String", # Unique identifier for this schema.
        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
          "A String",
        ],
        "minimum": "A String", # The minimum value of this parameter.
        "readOnly": True or False, # The value is read-only, generated by the service. The value can not be modified by the client. It the value is included in a POST, PUT or PATCH request, it will be ignored by the service.
        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
        "pattern": "A String", # 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
        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
        "repeated": True or False, # Whether this parameter may appear multiple times.
        "annotations": { # Additional information about this property.
          "required": [ # A list of methods for which this property is required on requests.
            "A String",
          ],
        },
        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
      },
    },
    "icons": { # Links to 16x16 and 32x32 icons representing the API.
      "x32": "A String", # The url of the 32x32 icon.
      "x16": "A String", # The url of the 16x16 icon.
    },
    "baseUrl": "A String", # [DEPRECATED] The base URL for REST requests.
    "etag": "A String", # The etag for this response.
    "features": [ # A list of supported features for this API.
      "A String",
    ],
    "version": "A String", # The version of this API.
    "servicePath": "A String", # The base path for all REST requests.
    "resources": { # The resources in this API.
      "a_key": { # An individual resource description. Contains methods and sub-resources related to this resource.
        "methods": { # Methods on this resource.
          "a_key": { # Description for any methods on this resource.
            "scopes": [ # OAuth 2.0 scopes applicable to this method.
              "A String",
            ],
            "description": "A String", # Description of this method.
            "parameters": { # Details for all parameters in this method.
              "a_key": { # Details for a single parameter in this method.
                "properties": { # If this is a schema for an object, list the schema for each property of this object.
                  "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
                },
                "required": True or False, # Whether the parameter is required.
                "type": "A String", # 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
                "description": "A String", # A description of this object.
                "format": "A String", # 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
                "default": "A String", # The default value of this property (if one exists).
                "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
                "enum": [ # Values this parameter may take (if it is an enum).
                  "A String",
                ],
                "maximum": "A String", # The maximum value of this parameter.
                "id": "A String", # Unique identifier for this schema.
                "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
                  "A String",
                ],
                "minimum": "A String", # The minimum value of this parameter.
                "readOnly": True or False, # The value is read-only, generated by the service. The value can not be modified by the client. It the value is included in a POST, PUT or PATCH request, it will be ignored by the service.
                "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
                "pattern": "A String", # 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
                "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
                "repeated": True or False, # Whether this parameter may appear multiple times.
                "annotations": { # Additional information about this property.
                  "required": [ # A list of methods for which this property is required on requests.
                    "A String",
                  ],
                },
                "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
              },
            },
            "supportsMediaUpload": True or False, # Whether this method supports media uploads.
            "etagRequired": True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
            "mediaUpload": { # Media upload parameters.
              "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
              "protocols": { # Supported upload protocols.
                "simple": { # Supports uploading as a single HTTP request.
                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
                  "multipart": true, # True if this endpoint supports upload multipart media.
                },
                "resumable": { # Supports the Resumable Media Upload protocol.
                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
                  "multipart": true, # True if this endpoint supports uploading multipart media.
                },
              },
              "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
                "A String",
              ],
            },
            "request": { # The schema for the request.
              "$ref": "A String", # Schema ID for the request schema.
            },
            "response": { # The schema for the response.
              "$ref": "A String", # Schema ID for the response schema.
            },
            "httpMethod": "A String", # HTTP method used by this method.
            "supportsSubscription": True or False, # Whether this method supports subscriptions.
            "parameterOrder": [ # 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.
              "A String",
            ],
            "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
            "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
            "supportsMediaDownload": True or False, # Whether this method supports media downloads.
          },
        },
        "resources": { # Sub-resources on this resource.
          "a_key": # Object with schema name: RestResource # Description for any sub-resources on this resource.
        },
      },
    },
    "revision": "A String", # The version of this API.
    "description": "A String", # The description of this API.
    "canonicalName": "A String", # Indicates how the API name should be capitalized and split into various parts. Useful for generating pretty class names.
    "auth": { # Authentication information.
      "oauth2": { # OAuth 2.0 authentication information.
        "scopes": { # Available OAuth 2.0 scopes.
          "a_key": { # The scope value.
            "description": "A String", # Description of scope.
          },
        },
      },
    },
    "kind": "discovery#restDescription", # The kind for this response.
    "name": "A String", # The name of this API.
    "basePath": "A String", # [DEPRECATED] The base path for REST requests.
    "title": "A String", # The title of this API.
    "discoveryVersion": "v1", # Indicate the version of the Discovery API used to generate this doc.
    "documentationLink": "A String", # A link to human readable documentation for the API.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(name=None, preferred=None, label=None)</code>
  <pre>Retrieve the list of APIs supported at this endpoint.

Args:
  name: string, Only include APIs with the given name.
  preferred: boolean, Return only the preferred version of an API.
  label: string, Only include APIs with a matching label, such as 'graduated' or 'labs'.
    Allowed values
      deprecated - APIs that have been deprecated.
      graduated - Supported APIs that have graduated from labs.
      labs - APIs that are experimental

Returns:
  An object of the form:

    {
    "items": [ # The individual directory entries. One entry per api/version pair.
      {
        "kind": "discovery#directoryItem", # The kind for this response.
        "labels": [ # Labels for the status of this API, such as labs or deprecated.
          "A String",
        ],
        "description": "A String", # The description of this API.
        "icons": { # Links to 16x16 and 32x32 icons representing the API.
          "x32": "A String", # The url of the 32x32 icon.
          "x16": "A String", # The url of the 16x16 icon.
        },
        "discoveryRestUrl": "A String", # The url for the discovery REST document.
        "preferred": True or False, # True if this version is the preferred version to use.
        "name": "A String", # The name of the API.
        "discoveryLink": "A String", # A link to the discovery document.
        "version": "A String", # The version of the API.
        "title": "A String", # The title of this API.
        "id": "A String", # The id of this API.
        "documentationLink": "A String", # A link to human readable documentation for the API.
      },
    ],
    "discoveryVersion": "v1", # Indicate the version of the Discovery API used to generate this doc.
    "kind": "discovery#directoryList", # The kind for this response.
  }</pre>
</div>

</body></html>