<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">API Discovery Service</a> . <a href="discovery_v1.apis.html">apis</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<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)</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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<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:

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

<div class="method">
    <code class="details" id="list">list(name=None, preferred=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.

Returns:
  An object of the form:

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

</body></html>