# APIs Discovery Service . apis

## Instance Methods

Retrieve the description of a particular version of an api.

Retrieve the list of APIs supported at this endpoint.

### Method Details

`getRest(api, version)`

    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",
                ],
                "variant": { # 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.
                  "map": [ # The map of discriminant value to schema to use for parsing..
                    {
                      "type_value": "A String",
                      "$ref": "A String",
                    },
                  ],
                  "discriminant": "A String", # The name of the type discriminant property.
                },
                "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 cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is 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.
              "parameterName": "A String", # parameter name.
              "$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",
        ],
        "ownerName": "A String", # The name of the owner of this API. See ownerDomain.
        "batchPath": "batch", # The path for REST batch requests.
        "id": "A String", # The ID of this API.
        "features": [ # A list of supported features for this API.
          "A String",
        ],
        "ownerDomain": "A String", # 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.
        "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",
            ],
            "variant": { # 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.
              "map": [ # The map of discriminant value to schema to use for parsing..
                {
                  "type_value": "A String",
                  "$ref": "A String",
                },
              ],
              "discriminant": "A String", # The name of the type discriminant property.
            },
            "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 cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is 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.
        "version": "A String", # The version of this API.
        "servicePath": "A String", # The base path for all REST requests.
        "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",
            ],
            "variant": { # 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.
              "map": [ # The map of discriminant value to schema to use for parsing..
                {
                  "type_value": "A String",
                  "$ref": "A String",
                },
              ],
              "discriminant": "A String", # The name of the type discriminant property.
            },
            "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 cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is 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.
          },
        },
        "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",
                    ],
                    "variant": { # 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.
                      "map": [ # The map of discriminant value to schema to use for parsing..
                        {
                          "type_value": "A String",
                          "$ref": "A String",
                        },
                      ],
                      "discriminant": "A String", # The name of the type discriminant property.
                    },
                    "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 cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is 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.
                  "parameterName": "A String", # parameter name.
                  "$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.
              },
            },
          },
        },
        "packagePath": "A String", # The package of the owner of this API. See ownerDomain.
        "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.
      }

`list(name=None, preferred=None)`

    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:

        {
        "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.
      }