Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/serviceusage_v1beta1.services.html b/docs/dyn/serviceusage_v1beta1.services.html
new file mode 100644
index 0000000..e738ab3
--- /dev/null
+++ b/docs/dyn/serviceusage_v1beta1.services.html
@@ -0,0 +1,1739 @@
+<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="serviceusage_v1beta1.html">Service Usage API</a> . <a href="serviceusage_v1beta1.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchEnable">batchEnable(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enable multiple services on a project. The operation is atomic: if enabling</p>
+<p class="toc_element">
+  <code><a href="#disable">disable(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Disable a service so that it can no longer be used with a project.</p>
+<p class="toc_element">
+  <code><a href="#enable">enable(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Enable a service so that it can be used with a project.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the service configuration and enabled state for a given service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</a></code></p>
+<p class="firstline">List all services available to the specified project, and the current</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchEnable">batchEnable(parent, body, x__xgafv=None)</code>
+  <pre>Enable multiple services on a project. The operation is atomic: if enabling
+any service fails, then the entire batch fails, and no state changes occur.
+
+Operation<response: google.protobuf.Empty>
+
+Args:
+  parent: string, Parent to enable services on.
+
+An example name would be:
+`projects/123`
+where `123` is the project number (not project ID).
+
+The `BatchEnableServices` method currently only supports projects. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for the `BatchEnableServices` method.
+    "serviceIds": [ # The identifiers of the services to enable on the project.
+        # 
+        # A valid identifier would be:
+        # serviceusage.googleapis.com
+        # 
+        # Enabling services requires that each service is public or is shared with
+        # the user enabling the service.
+        # 
+        # Two or more services must be specified. To enable a single service,
+        # use the `EnableService` method instead.
+        # 
+        # A single request can enable a maximum of 20 services at a time. If more
+        # than 20 services are specified, the request will fail, and no state changes
+        # will occur.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="disable">disable(name, body=None, x__xgafv=None)</code>
+  <pre>Disable a service so that it can no longer be used with a project.
+This prevents unintended usage that may cause unexpected billing
+charges or security leaks.
+
+It is not valid to call the disable method on a service that is not
+currently enabled. Callers will receive a `FAILED_PRECONDITION` status if
+the target service is not currently enabled.
+
+Operation<response: google.protobuf.Empty>
+
+Args:
+  name: string, Name of the consumer and service to disable the service on.
+
+The enable and disable methods currently only support projects.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com`
+where `123` is the project number (not project ID). (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the `DisableService` method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enable">enable(name, body=None, x__xgafv=None)</code>
+  <pre>Enable a service so that it can be used with a project.
+
+Operation<response: google.protobuf.Empty>
+
+Args:
+  name: string, Name of the consumer and service to enable the service on.
+
+The `EnableService` and `DisableService` methods currently only support
+projects.
+
+Enabling a service requires that the service is public or is shared with
+the user enabling the service.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com`
+where `123` is the project number (not project ID). (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the `EnableService` method.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If `true`, the operation is completed, and either `error` or `response` is
+        # available.
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should be a resource name ending with `operations/{unique_id}`.
+    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+        # different programming environments, including REST APIs and RPC APIs. It is
+        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+        # three pieces of data: error code, error message, and error details.
+        #
+        # You can find out more about this error model and how to work with it in the
+        # [API Design Guide](https://cloud.google.com/apis/design/errors).
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There is a common set of
+          # message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns the service configuration and enabled state for a given service.
+
+Args:
+  name: string, Name of the consumer and service to get the `ConsumerState` for.
+
+An example name would be:
+`projects/123/services/serviceusage.googleapis.com`
+where `123` is the project number (not project ID). (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A service that is available for use by the consumer.
+    "state": "A String", # Whether or not the service has been enabled for use by the consumer.
+    "config": { # The configuration of the service. # The service configuration of the available service.
+        # Some fields may be filtered out of the configuration in responses to
+        # the `ListServices` method. These fields are present only in responses to
+        # the `GetService` method.
+      "name": "A String", # The DNS address at which this service is available.
+          #
+          # An example DNS address would be:
+          # `calendar.googleapis.com`.
+      "apis": [ # A list of API interfaces exported by this service. Contains only the names,
+          # versions, and method names of the interfaces.
+        { # Api is a light-weight descriptor for an API Interface.
+            #
+            # Interfaces are also described as "protocol buffer services" in some contexts,
+            # such as by the "service" keyword in a .proto file, but they are different
+            # from API Services, which represent a concrete implementation of an interface
+            # as opposed to simply a description of methods and bindings. They are also
+            # sometimes simply referred to as "APIs" in other contexts, such as the name of
+            # this message itself. See https://cloud.google.com/apis/design/glossary for
+            # detailed terminology.
+          "name": "A String", # The fully qualified name of this interface, including package name
+              # followed by the interface's simple name.
+          "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+              # message.
+              # protobuf element, like the file in which it is defined.
+            "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+          },
+          "mixins": [ # Included interfaces. See Mixin.
+            { # Declares an API Interface to be included in this interface. The including
+                # interface must redeclare all the methods from the included interface, but
+                # documentation and options are inherited as follows:
+                #
+                # - If after comment and whitespace stripping, the documentation
+                #   string of the redeclared method is empty, it will be inherited
+                #   from the original method.
+                #
+                # - Each annotation belonging to the service config (http,
+                #   visibility) which is not set in the redeclared method will be
+                #   inherited.
+                #
+                # - If an http annotation is inherited, the path pattern will be
+                #   modified as follows. Any version prefix will be replaced by the
+                #   version of the including interface plus the root path if
+                #   specified.
+                #
+                # Example of a simple mixin:
+                #
+                #     package google.acl.v1;
+                #     service AccessControl {
+                #       // Get the underlying ACL object.
+                #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                #         option (google.api.http).get = "/v1/{resource=**}:getAcl";
+                #       }
+                #     }
+                #
+                #     package google.storage.v2;
+                #     service Storage {
+                #       //       rpc GetAcl(GetAclRequest) returns (Acl);
+                #
+                #       // Get a data record.
+                #       rpc GetData(GetDataRequest) returns (Data) {
+                #         option (google.api.http).get = "/v2/{resource=**}";
+                #       }
+                #     }
+                #
+                # Example of a mixin configuration:
+                #
+                #     apis:
+                #     - name: google.storage.v2.Storage
+                #       mixins:
+                #       - name: google.acl.v1.AccessControl
+                #
+                # The mixin construct implies that all methods in `AccessControl` are
+                # also declared with same name and request/response types in
+                # `Storage`. A documentation generator or annotation processor will
+                # see the effective `Storage.GetAcl` method after inherting
+                # documentation and annotations as follows:
+                #
+                #     service Storage {
+                #       // Get the underlying ACL object.
+                #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                #         option (google.api.http).get = "/v2/{resource=**}:getAcl";
+                #       }
+                #       ...
+                #     }
+                #
+                # Note how the version in the path pattern changed from `v1` to `v2`.
+                #
+                # If the `root` field in the mixin is specified, it should be a
+                # relative path under which inherited HTTP paths are placed. Example:
+                #
+                #     apis:
+                #     - name: google.storage.v2.Storage
+                #       mixins:
+                #       - name: google.acl.v1.AccessControl
+                #         root: acls
+                #
+                # This implies the following inherited HTTP annotation:
+                #
+                #     service Storage {
+                #       // Get the underlying ACL object.
+                #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                #         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+                #       }
+                #       ...
+                #     }
+              "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+                  # are rooted.
+              "name": "A String", # The fully qualified name of the interface which is included.
+            },
+          ],
+          "syntax": "A String", # The source syntax of the service.
+          "version": "A String", # A version string for this interface. If specified, must have the form
+              # `major-version.minor-version`, as in `1.10`. If the minor version is
+              # omitted, it defaults to zero. If the entire version field is empty, the
+              # major version is derived from the package name, as outlined below. If the
+              # field is not empty, the version in the package name will be verified to be
+              # consistent with what is provided here.
+              #
+              # The versioning schema uses [semantic
+              # versioning](http://semver.org) where the major version number
+              # indicates a breaking change and the minor version an additive,
+              # non-breaking change. Both version numbers are signals to users
+              # what to expect from different versions, and should be carefully
+              # chosen based on the product plan.
+              #
+              # The major version is also reflected in the package name of the
+              # interface, which must end in `v<major-version>`, as in
+              # `google.feature.v1`. For major versions 0 and 1, the suffix can
+              # be omitted. Zero major versions must only be used for
+              # experimental, non-GA interfaces.
+          "options": [ # Any metadata attached to the interface.
+            { # A protocol buffer option, which can be attached to a message, field,
+                # enumeration, etc.
+              "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                  # For custom options, it should be the fully-qualified name. For example,
+                  # `"google.api.http"`.
+              "value": { # The option's value packed in an Any message. If the value is a primitive,
+                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                  # should be used. If the value is an enum, it should be stored as an int32
+                  # value using the google.protobuf.Int32Value type.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            },
+          ],
+          "methods": [ # The methods of this interface, in unspecified order.
+            { # Method represents a method of an API interface.
+              "name": "A String", # The simple name of this method.
+              "requestStreaming": True or False, # If true, the request is streamed.
+              "responseTypeUrl": "A String", # The URL of the output message type.
+              "requestTypeUrl": "A String", # A URL of the input message type.
+              "responseStreaming": True or False, # If true, the response is streamed.
+              "syntax": "A String", # The source syntax of this method.
+              "options": [ # Any metadata attached to the method.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+            },
+          ],
+        },
+      ],
+      "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+          # documentation URL.
+          #
+          # Example:
+          # <pre><code>documentation:
+          #   summary: >
+          #     The Google Calendar API gives access
+          #     to most calendar features.
+          #   pages:
+          #   - name: Overview
+          #     content: &#40;== include google/foo/overview.md ==&#41;
+          #   - name: Tutorial
+          #     content: &#40;== include google/foo/tutorial.md ==&#41;
+          #     subpages;
+          #     - name: Java
+          #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
+          #   rules:
+          #   - selector: google.calendar.Calendar.Get
+          #     description: >
+          #       ...
+          #   - selector: google.calendar.Calendar.Put
+          #     description: >
+          #       ...
+          # </code></pre>
+          # Documentation is provided in markdown syntax. In addition to
+          # standard markdown features, definition lists, tables and fenced
+          # code blocks are supported. Section headers can be provided and are
+          # interpreted relative to the section nesting of the context where
+          # a documentation fragment is embedded.
+          #
+          # Documentation from the IDL is merged with documentation defined
+          # via the config at normalization time, where documentation provided
+          # by config rules overrides IDL provided.
+          #
+          # A number of constructs specific to the API platform are supported
+          # in documentation text.
+          #
+          # In order to reference a proto element, the following
+          # notation can be used:
+          # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+          # To override the display text used for the link, this can be used:
+          # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+          # Text can be excluded from doc using the following notation:
+          # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+          #
+          # A few directives are available in documentation. Note that
+          # directives must appear on a single line to be properly
+          # identified. The `include` directive includes a markdown file from
+          # an external source:
+          # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+          # The `resource_for` directive marks a message to be the resource of
+          # a collection in REST view. If it is not specified, tools attempt
+          # to infer the resource from the operations in a collection:
+          # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+          # The directive `suppress_warning` does not directly affect documentation
+          # and is documented together with service config validation.
+        "rules": [ # A list of documentation rules that apply to individual API elements.
+            #
+            # **NOTE:** All service configuration rules follow "last one wins" order.
+          { # A documentation rule provides information about individual API elements.
+            "description": "A String", # Description of the selected API(s).
+            "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+                # an element is marked as `deprecated`.
+            "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                # qualified name of the element which may end in "*", indicating a wildcard.
+                # Wildcards are only allowed at the end and for a whole component of the
+                # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
+                # wildcard will match one or more components. To specify a default for all
+                # applicable elements, the whole pattern "*" is used.
+          },
+        ],
+        "overview": "A String", # Declares a single overview page. For example:
+            # <pre><code>documentation:
+            #   summary: ...
+            #   overview: &#40;== include overview.md ==&#41;
+            # </code></pre>
+            # This is a shortcut for the following declaration (using pages style):
+            # <pre><code>documentation:
+            #   summary: ...
+            #   pages:
+            #   - name: Overview
+            #     content: &#40;== include overview.md ==&#41;
+            # </code></pre>
+            # Note: you cannot specify both `overview` field and `pages` field.
+        "pages": [ # The top level pages for the documentation set.
+          { # Represents a documentation page. A page can contain subpages to represent
+              # nested documentation set structure.
+            "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
+                # ==&#41;</code> to include content from a Markdown file.
+            "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                # honored in the generated docset.
+              # Object with schema name: Page
+            ],
+            "name": "A String", # The name of the page. It will be used as an identity of the page to
+                # generate URI of the page, text of the link to this page in navigation,
+                # etc. The full page name (start from the root page name to this page
+                # concatenated with `.`) can be used as reference to the page in your
+                # documentation. For example:
+                # <pre><code>pages:
+                # - name: Tutorial
+                #   content: &#40;== include tutorial.md ==&#41;
+                #   subpages:
+                #   - name: Java
+                #     content: &#40;== include tutorial_java.md ==&#41;
+                # </code></pre>
+                # You can reference `Java` page using Markdown reference link syntax:
+                # `Java`.
+          },
+        ],
+        "documentationRootUrl": "A String", # The URL to the root of documentation.
+        "summary": "A String", # A short summary of what the service does. Can only be provided by
+            # plain text.
+      },
+      "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+          # usage.
+          #
+          # The metric based quota configuration works this way:
+          # - The service configuration defines a set of metrics.
+          # - For API calls, the quota.metric_rules maps methods to metrics with
+          #   corresponding costs.
+          # - The quota.limits defines limits on the metrics, which will be used for
+          #   quota checks at runtime.
+          #
+          # An example quota configuration in yaml format:
+          #
+          #    quota:
+          #      limits:
+          #
+          #      - name: apiWriteQpsPerProject
+          #        metric: library.googleapis.com/write_calls
+          #        unit: "1/min/{project}"  # rate limit for consumer projects
+          #        values:
+          #          STANDARD: 10000
+          #
+          #
+          #      # The metric rules bind all methods to the read_calls metric,
+          #      # except for the UpdateBook and DeleteBook methods. These two methods
+          #      # are mapped to the write_calls metric, with the UpdateBook method
+          #      # consuming at twice rate as the DeleteBook method.
+          #      metric_rules:
+          #      - selector: "*"
+          #        metric_costs:
+          #          library.googleapis.com/read_calls: 1
+          #      - selector: google.example.library.v1.LibraryService.UpdateBook
+          #        metric_costs:
+          #          library.googleapis.com/write_calls: 2
+          #      - selector: google.example.library.v1.LibraryService.DeleteBook
+          #        metric_costs:
+          #          library.googleapis.com/write_calls: 1
+          #
+          #  Corresponding Metric definition:
+          #
+          #      metrics:
+          #      - name: library.googleapis.com/read_calls
+          #        display_name: Read requests
+          #        metric_kind: DELTA
+          #        value_type: INT64
+          #
+          #      - name: library.googleapis.com/write_calls
+          #        display_name: Write requests
+          #        metric_kind: DELTA
+          #        value_type: INT64
+          #
+        "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+            # or more metrics.
+          { # Bind API methods to metrics. Binding a method to a metric causes that
+              # metric's configured quota behaviors to apply to the method call.
+            "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+                # cost applied to each metric.
+                #
+                # The key of the map is the metric name, and the values are the amount
+                # increased for the metric against which the quota limits are defined.
+                # The value must not be negative.
+              "a_key": "A String",
+            },
+            "selector": "A String", # Selects the methods to which this rule applies.
+                #
+                # Refer to selector for syntax details.
+          },
+        ],
+        "limits": [ # List of `QuotaLimit` definitions for the service.
+          { # `QuotaLimit` defines a specific limit that applies over a specified duration
+              # for a limit type. There can be at most one limit for a duration and limit
+              # type combination defined within a `QuotaGroup`.
+            "displayName": "A String", # User-visible display name for this limit.
+                # Optional. If not set, the UI will provide a default display name based on
+                # the quota configuration. This field can be used to override the default
+                # display name generated from the configuration.
+            "name": "A String", # Name of the quota limit.
+                #
+                # The name must be provided, and it must be unique within the service. The
+                # name can only include alphanumeric characters as well as '-'.
+                #
+                # The maximum length of the limit name is 64 characters.
+            "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+                # duration. This is the number of tokens assigned when a client
+                # application developer activates the service for his/her project.
+                #
+                # Specifying a value of 0 will block all requests. This can be used if you
+                # are provisioning quota to selected consumers and blocking others.
+                # Similarly, a value of -1 will indicate an unlimited quota. No other
+                # negative values are allowed.
+                #
+                # Used by group-based quotas only.
+            "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+                # the same metric will be checked together during runtime. The metric must be
+                # defined within the service config.
+            "values": { # Tiered limit values. You must specify this as a key:value pair, with an
+                # integer value that is the maximum number of requests allowed for the
+                # specified unit. Currently only STANDARD is supported.
+              "a_key": "A String",
+            },
+            "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+                # duration. Client application developers can override the default limit up
+                # to this maximum. If specified, this value cannot be set to a value less
+                # than the default limit. If not specified, it is set to the default limit.
+                #
+                # To allow clients to apply overrides with no upper bound, set this to -1,
+                # indicating unlimited maximum quota.
+                #
+                # Used by group-based quotas only.
+            "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+                # For duration longer than a day, only multiple of days is supported. We
+                # support only "100s" and "1d" for now. Additional support will be added in
+                # the future. "0" indicates indefinite duration.
+                #
+                # Used by group-based quotas only.
+            "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+                # The free tier is the number of tokens that will be subtracted from the
+                # billed amount when billing is enabled.
+                # This field can only be set on a limit with duration "1d", in a billable
+                # group; it is invalid on any other limit. If this field is not set, it
+                # defaults to 0, indicating that there is no free tier for this service.
+                #
+                # Used by group-based quotas only.
+            "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+                # Metric.unit. The supported unit kinds are determined by the quota
+                # backend system.
+                #
+                # Here are some examples:
+                # * "1/min/{project}" for quota per minute per project.
+                #
+                # Note: the order of unit components is insignificant.
+                # The "1" at the beginning is required to follow the metric unit syntax.
+            "description": "A String", # Optional. User-visible, extended description for this quota limit.
+                # Should be used only when more context is needed to understand this limit
+                # than provided by the limit's display name (see: `display_name`).
+          },
+        ],
+      },
+      "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
+          #
+          # Example for an API targeted for external use:
+          #
+          #     name: calendar.googleapis.com
+          #     authentication:
+          #       providers:
+          #       - id: google_calendar_auth
+          #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+          #         issuer: https://securetoken.google.com
+          #       rules:
+          #       - selector: "*"
+          #         requirements:
+          #           provider_id: google_calendar_auth
+        "rules": [ # A list of authentication rules that apply to individual API methods.
+            #
+            # **NOTE:** All service configuration rules follow "last one wins" order.
+          { # Authentication rules for the service.
+              #
+              # By default, if a method has any authentication requirements, every request
+              # must include a valid credential matching one of the requirements.
+              # It's an error to include more than one kind of credential in a single
+              # request.
+              #
+              # If a method doesn't have any auth requirements, request credentials will be
+              # ignored.
+            "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+                # there are scopes defined for "Read-only access to Google Calendar" and
+                # "Access to Cloud Platform". Users can consent to a scope for an application,
+                # giving it permission to access that data on their behalf.
+                #
+                # OAuth scope specifications should be fairly coarse grained; a user will need
+                # to see and understand the text description of what your scope means.
+                #
+                # In most cases: use one or at most two OAuth scopes for an entire family of
+                # products. If your product has multiple APIs, you should probably be sharing
+                # the OAuth scope across all of those APIs.
+                #
+                # When you need finer grained OAuth consent screens: talk with your product
+                # management about how developers will use them in practice.
+                #
+                # Please note that even though each of the canonical scopes is enough for a
+                # request to be accepted and passed to the backend, a request can still fail
+                # due to the backend requiring additional scopes or permissions.
+              "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
+                  # OAuth token containing any of these scopes will be accepted.
+                  #
+                  # Example:
+                  #
+                  #      canonical_scopes: https://www.googleapis.com/auth/calendar,
+                  #                        https://www.googleapis.com/auth/calendar.read
+            },
+            "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
+            "requirements": [ # Requirements for additional authentication providers.
+              { # User-defined authentication requirements, including support for
+                  # [JSON Web Token
+                  # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                "providerId": "A String", # id from authentication provider.
+                    #
+                    # Example:
+                    #
+                    #     provider_id: bookstore_auth
+                "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
+                    # implemented and accepted in all the runtime components.
+                    #
+                    # The list of JWT
+                    # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                    # that are allowed to access. A JWT containing any of these audiences will
+                    # be accepted. When this setting is absent, only JWTs with audience
+                    # "https://Service_name/API_name"
+                    # will be accepted. For example, if no audiences are in the setting,
+                    # LibraryService API will only accept JWTs with the following audience
+                    # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                    #
+                    # Example:
+                    #
+                    #     audiences: bookstore_android.apps.googleusercontent.com,
+                    #                bookstore_web.apps.googleusercontent.com
+              },
+            ],
+            "selector": "A String", # Selects the methods to which this rule applies.
+                #
+                # Refer to selector for syntax details.
+          },
+        ],
+        "providers": [ # Defines a set of authentication providers that a service supports.
+          { # Configuration for an authentication provider, including support for
+              # [JSON Web Token
+              # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+            "audiences": "A String", # The list of JWT
+                # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                # that are allowed to access. A JWT containing any of these audiences will
+                # be accepted. When this setting is absent, only JWTs with audience
+                # "https://Service_name/API_name"
+                # will be accepted. For example, if no audiences are in the setting,
+                # LibraryService API will only accept JWTs with the following audience
+                # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                #
+                # Example:
+                #
+                #     audiences: bookstore_android.apps.googleusercontent.com,
+                #                bookstore_web.apps.googleusercontent.com
+            "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+                # [OpenID
+                # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+                # Optional if the key set document:
+                #  - can be retrieved from
+                #    [OpenID
+                #    Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
+                #    the issuer.
+                #  - can be inferred from the email domain of the issuer (e.g. a Google
+                #  service account).
+                #
+                # Example: https://www.googleapis.com/oauth2/v1/certs
+            "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+                # `AuthRequirement.provider_id`.
+                #
+                # Example: "bookstore_auth".
+            "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
+                # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+            "issuer": "A String", # Identifies the principal that issued the JWT. See
+                # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
+                # Usually a URL or an email address.
+                #
+                # Example: https://securetoken.google.com
+                # Example: 1234567-compute@developer.gserviceaccount.com
+          },
+        ],
+      },
+      "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+        "rules": [ # A list of usage rules that apply to individual API methods.
+            #
+            # **NOTE:** All service configuration rules follow "last one wins" order.
+          { # Usage configuration rules for the service.
+              #
+              # NOTE: Under development.
+              #
+              #
+              # Use this rule to configure unregistered calls for the service. Unregistered
+              # calls are calls that do not contain consumer project identity.
+              # (Example: calls that do not contain an API key).
+              # By default, API methods do not allow unregistered calls, and each method call
+              # must be identified by a consumer project identity. Use this rule to
+              # allow/disallow unregistered calls.
+              #
+              # Example of an API that wants to allow unregistered calls for entire service.
+              #
+              #     usage:
+              #       rules:
+              #       - selector: "*"
+              #         allow_unregistered_calls: true
+              #
+              # Example of a method that wants to allow unregistered calls.
+              #
+              #     usage:
+              #       rules:
+              #       - selector: "google.example.library.v1.LibraryService.CreateBook"
+              #         allow_unregistered_calls: true
+            "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                # methods in all APIs.
+                #
+                # Refer to selector for syntax details.
+            "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
+                # plane features, such as quota and billing, will not be available.
+                # This flag is used by Google Cloud Endpoints to bypass checks for internal
+                # methods, such as service health check methods.
+            "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
+                # that don't identify any user or application.
+          },
+        ],
+        "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
+            # service producer.
+            #
+            # Google Service Management currently only supports
+            # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
+            # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
+            # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
+            # documented in https://cloud.google.com/pubsub/docs/overview.
+        "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+            # service. Each requirement is of the form <service.name>/<requirement-id>;
+            # for example 'serviceusage.googleapis.com/billing-enabled'.
+          "A String",
+        ],
+      },
+      "title": "A String", # The product title for this service.
+      "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
+          # of the endpoints.
+        { # `Endpoint` describes a network endpoint that serves a set of APIs.
+            # A service may expose any number of endpoints, and all endpoints share the
+            # same service configuration, such as quota configuration and monitoring
+            # configuration.
+            #
+            # Example service configuration:
+            #
+            #     name: library-example.googleapis.com
+            #     endpoints:
+            #       # Below entry makes 'google.example.library.v1.Library'
+            #       # API be served from endpoint address library-example.googleapis.com.
+            #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
+            #       # it to decide whether the subsequent cross-origin request is
+            #       # allowed to proceed.
+            #     - name: library-example.googleapis.com
+            #       allow_cors: true
+          "allowCors": True or False, # Allowing
+              # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
+              # cross-domain traffic, would allow the backends served from this endpoint to
+              # receive and respond to HTTP OPTIONS requests. The response will be used by
+              # the browser to determine whether the subsequent cross-origin request is
+              # allowed to proceed.
+          "target": "A String", # The specification of an Internet routable address of API frontend that will
+              # handle requests to this [API
+              # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
+              # either a valid IPv4 address or a fully-qualified domain name. For example,
+              # "8.8.8.8" or "myservice.appspot.com".
+          "features": [ # The list of features enabled on this endpoint.
+            "A String",
+          ],
+          "name": "A String", # The canonical name of this endpoint.
+          "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+              # please specify multiple google.api.Endpoint for each of the intended
+              # aliases.
+              #
+              # Additional names that this endpoint will be hosted on.
+            "A String",
+          ],
+        },
+      ],
+    },
+    "name": "A String", # The resource name of the consumer and service.
+        #
+        # A valid name would be:
+        # - projects/123/services/serviceusage.googleapis.com
+    "parent": "A String", # The resource name of the consumer.
+        #
+        # A valid name would be:
+        # - projects/123
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)</code>
+  <pre>List all services available to the specified project, and the current
+state of those services with respect to the project. The list includes
+all public services, all services for which the calling user has the
+`servicemanagement.services.bind` permission, and all services that have
+already been enabled on the project. The list can be filtered to
+only include services in a specific state, for example to only include
+services enabled on the project.
+
+Args:
+  parent: string, Parent to search for services on.
+
+An example name would be:
+`projects/123`
+where `123` is the project number (not project ID). (required)
+  pageToken: string, Token identifying which result to start with, which is returned by a
+previous list call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Requested size of the next page of data.
+Requested page size cannot exceed 200.
+ If not set, the default page size is 50.
+  filter: string, Only list services that conform to the given filter.
+The allowed filter strings are `state:ENABLED` and `state:DISABLED`.
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `ListServices` method.
+    "services": [ # The available services for the requested project.
+      { # A service that is available for use by the consumer.
+        "state": "A String", # Whether or not the service has been enabled for use by the consumer.
+        "config": { # The configuration of the service. # The service configuration of the available service.
+            # Some fields may be filtered out of the configuration in responses to
+            # the `ListServices` method. These fields are present only in responses to
+            # the `GetService` method.
+          "name": "A String", # The DNS address at which this service is available.
+              #
+              # An example DNS address would be:
+              # `calendar.googleapis.com`.
+          "apis": [ # A list of API interfaces exported by this service. Contains only the names,
+              # versions, and method names of the interfaces.
+            { # Api is a light-weight descriptor for an API Interface.
+                #
+                # Interfaces are also described as "protocol buffer services" in some contexts,
+                # such as by the "service" keyword in a .proto file, but they are different
+                # from API Services, which represent a concrete implementation of an interface
+                # as opposed to simply a description of methods and bindings. They are also
+                # sometimes simply referred to as "APIs" in other contexts, such as the name of
+                # this message itself. See https://cloud.google.com/apis/design/glossary for
+                # detailed terminology.
+              "name": "A String", # The fully qualified name of this interface, including package name
+                  # followed by the interface's simple name.
+              "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
+                  # message.
+                  # protobuf element, like the file in which it is defined.
+                "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
+                    # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
+              },
+              "mixins": [ # Included interfaces. See Mixin.
+                { # Declares an API Interface to be included in this interface. The including
+                    # interface must redeclare all the methods from the included interface, but
+                    # documentation and options are inherited as follows:
+                    #
+                    # - If after comment and whitespace stripping, the documentation
+                    #   string of the redeclared method is empty, it will be inherited
+                    #   from the original method.
+                    #
+                    # - Each annotation belonging to the service config (http,
+                    #   visibility) which is not set in the redeclared method will be
+                    #   inherited.
+                    #
+                    # - If an http annotation is inherited, the path pattern will be
+                    #   modified as follows. Any version prefix will be replaced by the
+                    #   version of the including interface plus the root path if
+                    #   specified.
+                    #
+                    # Example of a simple mixin:
+                    #
+                    #     package google.acl.v1;
+                    #     service AccessControl {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v1/{resource=**}:getAcl";
+                    #       }
+                    #     }
+                    #
+                    #     package google.storage.v2;
+                    #     service Storage {
+                    #       //       rpc GetAcl(GetAclRequest) returns (Acl);
+                    #
+                    #       // Get a data record.
+                    #       rpc GetData(GetDataRequest) returns (Data) {
+                    #         option (google.api.http).get = "/v2/{resource=**}";
+                    #       }
+                    #     }
+                    #
+                    # Example of a mixin configuration:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #
+                    # The mixin construct implies that all methods in `AccessControl` are
+                    # also declared with same name and request/response types in
+                    # `Storage`. A documentation generator or annotation processor will
+                    # see the effective `Storage.GetAcl` method after inherting
+                    # documentation and annotations as follows:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                    #
+                    # Note how the version in the path pattern changed from `v1` to `v2`.
+                    #
+                    # If the `root` field in the mixin is specified, it should be a
+                    # relative path under which inherited HTTP paths are placed. Example:
+                    #
+                    #     apis:
+                    #     - name: google.storage.v2.Storage
+                    #       mixins:
+                    #       - name: google.acl.v1.AccessControl
+                    #         root: acls
+                    #
+                    # This implies the following inherited HTTP annotation:
+                    #
+                    #     service Storage {
+                    #       // Get the underlying ACL object.
+                    #       rpc GetAcl(GetAclRequest) returns (Acl) {
+                    #         option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+                    #       }
+                    #       ...
+                    #     }
+                  "root": "A String", # If non-empty specifies a path under which inherited HTTP paths
+                      # are rooted.
+                  "name": "A String", # The fully qualified name of the interface which is included.
+                },
+              ],
+              "syntax": "A String", # The source syntax of the service.
+              "version": "A String", # A version string for this interface. If specified, must have the form
+                  # `major-version.minor-version`, as in `1.10`. If the minor version is
+                  # omitted, it defaults to zero. If the entire version field is empty, the
+                  # major version is derived from the package name, as outlined below. If the
+                  # field is not empty, the version in the package name will be verified to be
+                  # consistent with what is provided here.
+                  #
+                  # The versioning schema uses [semantic
+                  # versioning](http://semver.org) where the major version number
+                  # indicates a breaking change and the minor version an additive,
+                  # non-breaking change. Both version numbers are signals to users
+                  # what to expect from different versions, and should be carefully
+                  # chosen based on the product plan.
+                  #
+                  # The major version is also reflected in the package name of the
+                  # interface, which must end in `v<major-version>`, as in
+                  # `google.feature.v1`. For major versions 0 and 1, the suffix can
+                  # be omitted. Zero major versions must only be used for
+                  # experimental, non-GA interfaces.
+              "options": [ # Any metadata attached to the interface.
+                { # A protocol buffer option, which can be attached to a message, field,
+                    # enumeration, etc.
+                  "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                      # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                      # For custom options, it should be the fully-qualified name. For example,
+                      # `"google.api.http"`.
+                  "value": { # The option's value packed in an Any message. If the value is a primitive,
+                      # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                      # should be used. If the value is an enum, it should be stored as an int32
+                      # value using the google.protobuf.Int32Value type.
+                    "a_key": "", # Properties of the object. Contains field @type with type URL.
+                  },
+                },
+              ],
+              "methods": [ # The methods of this interface, in unspecified order.
+                { # Method represents a method of an API interface.
+                  "name": "A String", # The simple name of this method.
+                  "requestStreaming": True or False, # If true, the request is streamed.
+                  "responseTypeUrl": "A String", # The URL of the output message type.
+                  "requestTypeUrl": "A String", # A URL of the input message type.
+                  "responseStreaming": True or False, # If true, the response is streamed.
+                  "syntax": "A String", # The source syntax of this method.
+                  "options": [ # Any metadata attached to the method.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+          "documentation": { # `Documentation` provides the information for describing a service. # Additional API documentation. Contains only the summary and the
+              # documentation URL.
+              #
+              # Example:
+              # <pre><code>documentation:
+              #   summary: >
+              #     The Google Calendar API gives access
+              #     to most calendar features.
+              #   pages:
+              #   - name: Overview
+              #     content: &#40;== include google/foo/overview.md ==&#41;
+              #   - name: Tutorial
+              #     content: &#40;== include google/foo/tutorial.md ==&#41;
+              #     subpages;
+              #     - name: Java
+              #       content: &#40;== include google/foo/tutorial_java.md ==&#41;
+              #   rules:
+              #   - selector: google.calendar.Calendar.Get
+              #     description: >
+              #       ...
+              #   - selector: google.calendar.Calendar.Put
+              #     description: >
+              #       ...
+              # </code></pre>
+              # Documentation is provided in markdown syntax. In addition to
+              # standard markdown features, definition lists, tables and fenced
+              # code blocks are supported. Section headers can be provided and are
+              # interpreted relative to the section nesting of the context where
+              # a documentation fragment is embedded.
+              #
+              # Documentation from the IDL is merged with documentation defined
+              # via the config at normalization time, where documentation provided
+              # by config rules overrides IDL provided.
+              #
+              # A number of constructs specific to the API platform are supported
+              # in documentation text.
+              #
+              # In order to reference a proto element, the following
+              # notation can be used:
+              # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
+              # To override the display text used for the link, this can be used:
+              # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
+              # Text can be excluded from doc using the following notation:
+              # <pre><code>&#40;-- internal comment --&#41;</code></pre>
+              #
+              # A few directives are available in documentation. Note that
+              # directives must appear on a single line to be properly
+              # identified. The `include` directive includes a markdown file from
+              # an external source:
+              # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
+              # The `resource_for` directive marks a message to be the resource of
+              # a collection in REST view. If it is not specified, tools attempt
+              # to infer the resource from the operations in a collection:
+              # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
+              # The directive `suppress_warning` does not directly affect documentation
+              # and is documented together with service config validation.
+            "rules": [ # A list of documentation rules that apply to individual API elements.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # A documentation rule provides information about individual API elements.
+                "description": "A String", # Description of the selected API(s).
+                "deprecationDescription": "A String", # Deprecation description of the selected element(s). It can be provided if
+                    # an element is marked as `deprecated`.
+                "selector": "A String", # The selector is a comma-separated list of patterns. Each pattern is a
+                    # qualified name of the element which may end in "*", indicating a wildcard.
+                    # Wildcards are only allowed at the end and for a whole component of the
+                    # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
+                    # wildcard will match one or more components. To specify a default for all
+                    # applicable elements, the whole pattern "*" is used.
+              },
+            ],
+            "overview": "A String", # Declares a single overview page. For example:
+                # <pre><code>documentation:
+                #   summary: ...
+                #   overview: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # This is a shortcut for the following declaration (using pages style):
+                # <pre><code>documentation:
+                #   summary: ...
+                #   pages:
+                #   - name: Overview
+                #     content: &#40;== include overview.md ==&#41;
+                # </code></pre>
+                # Note: you cannot specify both `overview` field and `pages` field.
+            "pages": [ # The top level pages for the documentation set.
+              { # Represents a documentation page. A page can contain subpages to represent
+                  # nested documentation set structure.
+                "content": "A String", # The Markdown content of the page. You can use <code>&#40;== include {path}
+                    # ==&#41;</code> to include content from a Markdown file.
+                "subpages": [ # Subpages of this page. The order of subpages specified here will be
+                    # honored in the generated docset.
+                  # Object with schema name: Page
+                ],
+                "name": "A String", # The name of the page. It will be used as an identity of the page to
+                    # generate URI of the page, text of the link to this page in navigation,
+                    # etc. The full page name (start from the root page name to this page
+                    # concatenated with `.`) can be used as reference to the page in your
+                    # documentation. For example:
+                    # <pre><code>pages:
+                    # - name: Tutorial
+                    #   content: &#40;== include tutorial.md ==&#41;
+                    #   subpages:
+                    #   - name: Java
+                    #     content: &#40;== include tutorial_java.md ==&#41;
+                    # </code></pre>
+                    # You can reference `Java` page using Markdown reference link syntax:
+                    # `Java`.
+              },
+            ],
+            "documentationRootUrl": "A String", # The URL to the root of documentation.
+            "summary": "A String", # A short summary of what the service does. Can only be provided by
+                # plain text.
+          },
+          "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+              # usage.
+              #
+              # The metric based quota configuration works this way:
+              # - The service configuration defines a set of metrics.
+              # - For API calls, the quota.metric_rules maps methods to metrics with
+              #   corresponding costs.
+              # - The quota.limits defines limits on the metrics, which will be used for
+              #   quota checks at runtime.
+              #
+              # An example quota configuration in yaml format:
+              #
+              #    quota:
+              #      limits:
+              #
+              #      - name: apiWriteQpsPerProject
+              #        metric: library.googleapis.com/write_calls
+              #        unit: "1/min/{project}"  # rate limit for consumer projects
+              #        values:
+              #          STANDARD: 10000
+              #
+              #
+              #      # The metric rules bind all methods to the read_calls metric,
+              #      # except for the UpdateBook and DeleteBook methods. These two methods
+              #      # are mapped to the write_calls metric, with the UpdateBook method
+              #      # consuming at twice rate as the DeleteBook method.
+              #      metric_rules:
+              #      - selector: "*"
+              #        metric_costs:
+              #          library.googleapis.com/read_calls: 1
+              #      - selector: google.example.library.v1.LibraryService.UpdateBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 2
+              #      - selector: google.example.library.v1.LibraryService.DeleteBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 1
+              #
+              #  Corresponding Metric definition:
+              #
+              #      metrics:
+              #      - name: library.googleapis.com/read_calls
+              #        display_name: Read requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+              #
+              #      - name: library.googleapis.com/write_calls
+              #        display_name: Write requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+              #
+            "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+                # or more metrics.
+              { # Bind API methods to metrics. Binding a method to a metric causes that
+                  # metric's configured quota behaviors to apply to the method call.
+                "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+                    # cost applied to each metric.
+                    #
+                    # The key of the map is the metric name, and the values are the amount
+                    # increased for the metric against which the quota limits are defined.
+                    # The value must not be negative.
+                  "a_key": "A String",
+                },
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "limits": [ # List of `QuotaLimit` definitions for the service.
+              { # `QuotaLimit` defines a specific limit that applies over a specified duration
+                  # for a limit type. There can be at most one limit for a duration and limit
+                  # type combination defined within a `QuotaGroup`.
+                "displayName": "A String", # User-visible display name for this limit.
+                    # Optional. If not set, the UI will provide a default display name based on
+                    # the quota configuration. This field can be used to override the default
+                    # display name generated from the configuration.
+                "name": "A String", # Name of the quota limit.
+                    #
+                    # The name must be provided, and it must be unique within the service. The
+                    # name can only include alphanumeric characters as well as '-'.
+                    #
+                    # The maximum length of the limit name is 64 characters.
+                "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+                    # duration. This is the number of tokens assigned when a client
+                    # application developer activates the service for his/her project.
+                    #
+                    # Specifying a value of 0 will block all requests. This can be used if you
+                    # are provisioning quota to selected consumers and blocking others.
+                    # Similarly, a value of -1 will indicate an unlimited quota. No other
+                    # negative values are allowed.
+                    #
+                    # Used by group-based quotas only.
+                "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+                    # the same metric will be checked together during runtime. The metric must be
+                    # defined within the service config.
+                "values": { # Tiered limit values. You must specify this as a key:value pair, with an
+                    # integer value that is the maximum number of requests allowed for the
+                    # specified unit. Currently only STANDARD is supported.
+                  "a_key": "A String",
+                },
+                "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+                    # duration. Client application developers can override the default limit up
+                    # to this maximum. If specified, this value cannot be set to a value less
+                    # than the default limit. If not specified, it is set to the default limit.
+                    #
+                    # To allow clients to apply overrides with no upper bound, set this to -1,
+                    # indicating unlimited maximum quota.
+                    #
+                    # Used by group-based quotas only.
+                "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+                    # For duration longer than a day, only multiple of days is supported. We
+                    # support only "100s" and "1d" for now. Additional support will be added in
+                    # the future. "0" indicates indefinite duration.
+                    #
+                    # Used by group-based quotas only.
+                "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+                    # The free tier is the number of tokens that will be subtracted from the
+                    # billed amount when billing is enabled.
+                    # This field can only be set on a limit with duration "1d", in a billable
+                    # group; it is invalid on any other limit. If this field is not set, it
+                    # defaults to 0, indicating that there is no free tier for this service.
+                    #
+                    # Used by group-based quotas only.
+                "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+                    # Metric.unit. The supported unit kinds are determined by the quota
+                    # backend system.
+                    #
+                    # Here are some examples:
+                    # * "1/min/{project}" for quota per minute per project.
+                    #
+                    # Note: the order of unit components is insignificant.
+                    # The "1" at the beginning is required to follow the metric unit syntax.
+                "description": "A String", # Optional. User-visible, extended description for this quota limit.
+                    # Should be used only when more context is needed to understand this limit
+                    # than provided by the limit's display name (see: `display_name`).
+              },
+            ],
+          },
+          "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration. Contains only the OAuth rules.
+              #
+              # Example for an API targeted for external use:
+              #
+              #     name: calendar.googleapis.com
+              #     authentication:
+              #       providers:
+              #       - id: google_calendar_auth
+              #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+              #         issuer: https://securetoken.google.com
+              #       rules:
+              #       - selector: "*"
+              #         requirements:
+              #           provider_id: google_calendar_auth
+            "rules": [ # A list of authentication rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Authentication rules for the service.
+                  #
+                  # By default, if a method has any authentication requirements, every request
+                  # must include a valid credential matching one of the requirements.
+                  # It's an error to include more than one kind of credential in a single
+                  # request.
+                  #
+                  # If a method doesn't have any auth requirements, request credentials will be
+                  # ignored.
+                "oauth": { # OAuth scopes are a way to define data and permissions on data. For example, # The requirements for OAuth credentials.
+                    # there are scopes defined for "Read-only access to Google Calendar" and
+                    # "Access to Cloud Platform". Users can consent to a scope for an application,
+                    # giving it permission to access that data on their behalf.
+                    #
+                    # OAuth scope specifications should be fairly coarse grained; a user will need
+                    # to see and understand the text description of what your scope means.
+                    #
+                    # In most cases: use one or at most two OAuth scopes for an entire family of
+                    # products. If your product has multiple APIs, you should probably be sharing
+                    # the OAuth scope across all of those APIs.
+                    #
+                    # When you need finer grained OAuth consent screens: talk with your product
+                    # management about how developers will use them in practice.
+                    #
+                    # Please note that even though each of the canonical scopes is enough for a
+                    # request to be accepted and passed to the backend, a request can still fail
+                    # due to the backend requiring additional scopes or permissions.
+                  "canonicalScopes": "A String", # The list of publicly documented OAuth scopes that are allowed access. An
+                      # OAuth token containing any of these scopes will be accepted.
+                      #
+                      # Example:
+                      #
+                      #      canonical_scopes: https://www.googleapis.com/auth/calendar,
+                      #                        https://www.googleapis.com/auth/calendar.read
+                },
+                "allowWithoutCredential": True or False, # If true, the service accepts API keys without any other credential.
+                "requirements": [ # Requirements for additional authentication providers.
+                  { # User-defined authentication requirements, including support for
+                      # [JSON Web Token
+                      # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                    "providerId": "A String", # id from authentication provider.
+                        #
+                        # Example:
+                        #
+                        #     provider_id: bookstore_auth
+                    "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
+                        # implemented and accepted in all the runtime components.
+                        #
+                        # The list of JWT
+                        # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                        # that are allowed to access. A JWT containing any of these audiences will
+                        # be accepted. When this setting is absent, only JWTs with audience
+                        # "https://Service_name/API_name"
+                        # will be accepted. For example, if no audiences are in the setting,
+                        # LibraryService API will only accept JWTs with the following audience
+                        # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                        #
+                        # Example:
+                        #
+                        #     audiences: bookstore_android.apps.googleusercontent.com,
+                        #                bookstore_web.apps.googleusercontent.com
+                  },
+                ],
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "providers": [ # Defines a set of authentication providers that a service supports.
+              { # Configuration for an authentication provider, including support for
+                  # [JSON Web Token
+                  # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
+                "audiences": "A String", # The list of JWT
+                    # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+                    # that are allowed to access. A JWT containing any of these audiences will
+                    # be accepted. When this setting is absent, only JWTs with audience
+                    # "https://Service_name/API_name"
+                    # will be accepted. For example, if no audiences are in the setting,
+                    # LibraryService API will only accept JWTs with the following audience
+                    # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+                    #
+                    # Example:
+                    #
+                    #     audiences: bookstore_android.apps.googleusercontent.com,
+                    #                bookstore_web.apps.googleusercontent.com
+                "jwksUri": "A String", # URL of the provider's public key set to validate signature of the JWT. See
+                    # [OpenID
+                    # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
+                    # Optional if the key set document:
+                    #  - can be retrieved from
+                    #    [OpenID
+                    #    Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
+                    #    the issuer.
+                    #  - can be inferred from the email domain of the issuer (e.g. a Google
+                    #  service account).
+                    #
+                    # Example: https://www.googleapis.com/oauth2/v1/certs
+                "id": "A String", # The unique identifier of the auth provider. It will be referred to by
+                    # `AuthRequirement.provider_id`.
+                    #
+                    # Example: "bookstore_auth".
+                "authorizationUrl": "A String", # Redirect URL if JWT token is required but not present or is expired.
+                    # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+                "issuer": "A String", # Identifies the principal that issued the JWT. See
+                    # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
+                    # Usually a URL or an email address.
+                    #
+                    # Example: https://securetoken.google.com
+                    # Example: 1234567-compute@developer.gserviceaccount.com
+              },
+            ],
+          },
+          "usage": { # Configuration controlling usage of a service. # Configuration controlling usage of this service.
+            "rules": [ # A list of usage rules that apply to individual API methods.
+                #
+                # **NOTE:** All service configuration rules follow "last one wins" order.
+              { # Usage configuration rules for the service.
+                  #
+                  # NOTE: Under development.
+                  #
+                  #
+                  # Use this rule to configure unregistered calls for the service. Unregistered
+                  # calls are calls that do not contain consumer project identity.
+                  # (Example: calls that do not contain an API key).
+                  # By default, API methods do not allow unregistered calls, and each method call
+                  # must be identified by a consumer project identity. Use this rule to
+                  # allow/disallow unregistered calls.
+                  #
+                  # Example of an API that wants to allow unregistered calls for entire service.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "*"
+                  #         allow_unregistered_calls: true
+                  #
+                  # Example of a method that wants to allow unregistered calls.
+                  #
+                  #     usage:
+                  #       rules:
+                  #       - selector: "google.example.library.v1.LibraryService.CreateBook"
+                  #         allow_unregistered_calls: true
+                "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
+                    # methods in all APIs.
+                    #
+                    # Refer to selector for syntax details.
+                "skipServiceControl": True or False, # If true, the selected method should skip service control and the control
+                    # plane features, such as quota and billing, will not be available.
+                    # This flag is used by Google Cloud Endpoints to bypass checks for internal
+                    # methods, such as service health check methods.
+                "allowUnregisteredCalls": True or False, # If true, the selected method allows unregistered calls, e.g. calls
+                    # that don't identify any user or application.
+              },
+            ],
+            "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
+                # service producer.
+                #
+                # Google Service Management currently only supports
+                # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
+                # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
+                # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
+                # documented in https://cloud.google.com/pubsub/docs/overview.
+            "requirements": [ # Requirements that must be satisfied before a consumer project can use the
+                # service. Each requirement is of the form <service.name>/<requirement-id>;
+                # for example 'serviceusage.googleapis.com/billing-enabled'.
+              "A String",
+            ],
+          },
+          "title": "A String", # The product title for this service.
+          "endpoints": [ # Configuration for network endpoints. Contains only the names and aliases
+              # of the endpoints.
+            { # `Endpoint` describes a network endpoint that serves a set of APIs.
+                # A service may expose any number of endpoints, and all endpoints share the
+                # same service configuration, such as quota configuration and monitoring
+                # configuration.
+                #
+                # Example service configuration:
+                #
+                #     name: library-example.googleapis.com
+                #     endpoints:
+                #       # Below entry makes 'google.example.library.v1.Library'
+                #       # API be served from endpoint address library-example.googleapis.com.
+                #       # It also allows HTTP OPTIONS calls to be passed to the backend, for
+                #       # it to decide whether the subsequent cross-origin request is
+                #       # allowed to proceed.
+                #     - name: library-example.googleapis.com
+                #       allow_cors: true
+              "allowCors": True or False, # Allowing
+                  # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
+                  # cross-domain traffic, would allow the backends served from this endpoint to
+                  # receive and respond to HTTP OPTIONS requests. The response will be used by
+                  # the browser to determine whether the subsequent cross-origin request is
+                  # allowed to proceed.
+              "target": "A String", # The specification of an Internet routable address of API frontend that will
+                  # handle requests to this [API
+                  # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
+                  # either a valid IPv4 address or a fully-qualified domain name. For example,
+                  # "8.8.8.8" or "myservice.appspot.com".
+              "features": [ # The list of features enabled on this endpoint.
+                "A String",
+              ],
+              "name": "A String", # The canonical name of this endpoint.
+              "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+                  # please specify multiple google.api.Endpoint for each of the intended
+                  # aliases.
+                  #
+                  # Additional names that this endpoint will be hosted on.
+                "A String",
+              ],
+            },
+          ],
+        },
+        "name": "A String", # The resource name of the consumer and service.
+            #
+            # A valid name would be:
+            # - projects/123/services/serviceusage.googleapis.com
+        "parent": "A String", # The resource name of the consumer.
+            #
+            # A valid name would be:
+            # - projects/123
+      },
+    ],
+    "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated
+        # query.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file