Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/composer_v1beta1.projects.locations.environments.html b/docs/dyn/composer_v1beta1.projects.locations.environments.html
new file mode 100644
index 0000000..0bc777c
--- /dev/null
+++ b/docs/dyn/composer_v1beta1.projects.locations.environments.html
@@ -0,0 +1,1625 @@
+<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="composer_v1beta1.html">Cloud Composer API</a> . <a href="composer_v1beta1.projects.html">projects</a> . <a href="composer_v1beta1.projects.locations.html">locations</a> . <a href="composer_v1beta1.projects.locations.environments.html">environments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a new environment.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Delete an environment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Get an existing environment.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">List environments.</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>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update an environment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
+  <pre>Create a new environment.
+
+Args:
+  parent: string, The parent must be of the form
+"projects/{projectId}/locations/{locationId}". (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An environment for running orchestration tasks.
+    "updateTime": "A String", # Output only.
+        # The time at which this environment was last modified.
+    "uuid": "A String", # Output only.
+        # The UUID (Universally Unique IDentifier) associated with this environment.
+        # This value is generated when the environment is created.
+    "labels": { # Optional. User-defined labels for this environment.
+        # The labels map can contain no more than 64 entries. Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
+      "a_key": "A String",
+    },
+    "state": "A String", # The current state of the environment.
+    "config": { # Configuration information for an environment. # Configuration parameters for this environment.
+      "dagGcsPrefix": "A String", # Output only.
+          # The Cloud Storage prefix of the DAGs for this environment. Although Cloud
+          # Storage objects reside in a flat namespace, a hierarchical file tree
+          # can be simulated using "/"-delimited object name prefixes. DAG objects for
+          # this environment reside in a simulated directory with the given prefix.
+      "softwareConfig": { # Specifies the selection and configuration of software inside the environment. # The configuration settings for software inside the environment.
+        "pythonVersion": "A String", # Optional. The major version of Python used to run the Apache Airflow
+            # scheduler, worker, and webserver processes.
+            #
+            # Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be
+            # updated.
+        "imageVersion": "A String", # The version of the software running in the environment.
+            # This encapsulates both the version of Cloud Composer functionality and the
+            # version of Apache Airflow. It must match the regular expression
+            # `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`.
+            # When used as input, the server also checks if the provided version is
+            # supported and denies the request for an unsupported version.
+            #
+            # The Cloud Composer portion of the version is a
+            # [semantic version](https://semver.org) or `latest`. When the patch version
+            # is omitted, the current Cloud Composer patch version is selected.
+            # When `latest` is provided instead of an explicit version number,
+            # the server replaces `latest` with the current Cloud Composer version
+            # and stores that version number in the same field.
+            #
+            # The portion of the image version that follows <em>airflow-</em> is an
+            # official Apache Airflow repository
+            # [release name](https://github.com/apache/incubator-airflow/releases).
+            #
+            # See also [Version
+            # List](/composer/docs/concepts/versioning/composer-versions).
+        "airflowConfigOverrides": { # Optional. Apache Airflow configuration properties to override.
+            #
+            # Property keys contain the section and property names, separated by a
+            # hyphen, for example "core-dags_are_paused_at_creation". Section names must
+            # not contain hyphens ("-"), opening square brackets ("["),  or closing
+            # square brackets ("]"). The property name must not be empty and must not
+            # contain an equals sign ("=") or semicolon (";"). Section and property names
+            # must not contain a period ("."). Apache Airflow configuration property
+            # names must be written in
+            # [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can
+            # contain any character, and can be written in any lower/upper case format.
+            #
+            # Certain Apache Airflow configuration property values are
+            # [blacklisted](/composer/docs/how-to/managing/setting-airflow-configurations#airflow_configuration_blacklists),
+            # and cannot be overridden.
+          "a_key": "A String",
+        },
+        "envVariables": { # Optional. Additional environment variables to provide to the Apache Airflow
+            # scheduler, worker, and webserver processes.
+            #
+            # Environment variable names must match the regular expression
+            # `a-zA-Z_*`. They cannot specify Apache Airflow
+            # software configuration overrides (they cannot match the regular expression
+            # `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
+            # following reserved names:
+            #
+            # * `AIRFLOW_HOME`
+            # * `C_FORCE_ROOT`
+            # * `CONTAINER_NAME`
+            # * `DAGS_FOLDER`
+            # * `GCP_PROJECT`
+            # * `GCS_BUCKET`
+            # * `GKE_CLUSTER_NAME`
+            # * `SQL_DATABASE`
+            # * `SQL_INSTANCE`
+            # * `SQL_PASSWORD`
+            # * `SQL_PROJECT`
+            # * `SQL_REGION`
+            # * `SQL_USER`
+          "a_key": "A String",
+        },
+        "pypiPackages": { # Optional. Custom Python Package Index (PyPI) packages to be installed in
+            # the environment.
+            #
+            # Keys refer to the lowercase package name such as "numpy"
+            # and values are the lowercase extras and version specifier such as
+            # "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a
+            # package without pinning it to a version specifier, use the empty string as
+            # the value.
+          "a_key": "A String",
+        },
+      },
+      "airflowUri": "A String", # Output only.
+          # The URI of the Apache Airflow Web UI hosted within this environment (see
+          # [Airflow web
+          # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
+      "gkeCluster": "A String", # Output only.
+          # The Kubernetes Engine cluster used to run this environment.
+      "nodeConfig": { # The configuration information for the Kubernetes Engine nodes running # The configuration used for the Kubernetes Engine cluster.
+          # the Apache Airflow software.
+        "machineType": "A String", # Optional. The Compute Engine
+            # [machine type](/compute/docs/machine-types) used for cluster instances,
+            # specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}".
+            #
+            # The `machineType` must belong to the enclosing environment's project and
+            # location. If both this field and `nodeConfig.location` are specified,
+            # this `machineType` must belong to the `nodeConfig.location`; if both are
+            # unspecified, the service will pick a zone in the Compute Engine region
+            # corresponding to the Cloud Composer location, and propagate that choice to
+            # both fields. If exactly one of this field and `nodeConfig.location` is
+            # specified, the location information from the specified field will be
+            # propagated to the unspecified field.
+            #
+            # If this field is unspecified, the `machineTypeId` defaults
+            # to "n1-standard-1".
+        "network": "A String", # Optional. The Compute Engine network to be used for machine
+            # communications, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/global/networks/{networkId}".
+            #
+            # If unspecified, the default network in the environment's project is used.
+            # If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets)
+            # is provided, `nodeConfig.subnetwork` must also be provided. For
+            # [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see
+            # `nodeConfig.subnetwork`.
+        "tags": [ # Optional. The list of instance tags applied to all node VMs. Tags are used
+            # to identify valid sources or targets for network firewalls. Each tag within
+            # the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
+            # Cannot be updated.
+          "A String",
+        ],
+        "serviceAccount": "A String", # Optional. The Google Cloud Platform Service Account to be used by the node
+            # VMs. If a service account is not specified, the "default" Compute Engine
+            # service account is used. Cannot be updated.
+        "oauthScopes": [ # Optional. The set of Google API scopes to be made available on all
+            # node VMs. If `oauth_scopes` is empty, defaults to
+            # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
+          "A String",
+        ],
+        "diskSizeGb": 42, # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
+            # If unspecified, defaults to 100GB. Cannot be updated.
+        "location": "A String", # Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which
+            # to deploy the VMs used to run the Apache Airflow software, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/zones/{zoneId}".
+            #
+            # This `location` must belong to the enclosing environment's project and
+            # location. If both this field and `nodeConfig.machineType` are specified,
+            # `nodeConfig.machineType` must belong to this `location`; if both are
+            # unspecified, the service will pick a zone in the Compute Engine region
+            # corresponding to the Cloud Composer location, and propagate that choice to
+            # both fields. If only one field (`location` or `nodeConfig.machineType`) is
+            # specified, the location information from the specified field will be
+            # propagated to the unspecified field.
+        "subnetwork": "A String", # Optional. The Compute Engine subnetwork to be used for machine
+            # communications, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}"
+            #
+            # If a subnetwork is provided, `nodeConfig.network` must also be provided,
+            # and the subnetwork must belong to the enclosing environment's project and
+            # location.
+        "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the # Optional. The IPAllocationPolicy fields for the GKE cluster.
+            # GKE cluster.
+          "clusterIpv4CidrBlock": "A String", # Optional. The IP address range used to allocate IP addresses to pods in
+              # the cluster.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+              #
+              # Set to blank to have GKE choose a range with the default size.
+              #
+              # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+              # netmask.
+              #
+              # Set to a
+              # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+              # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+              # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+              # to use.
+              # Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block`
+              # but not both.
+          "servicesIpv4CidrBlock": "A String", # Optional. The IP address range of the services IP addresses in this
+              # cluster.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+              #
+              # Set to blank to have GKE choose a range with the default size.
+              #
+              # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+              # netmask.
+              #
+              # Set to a
+              # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+              # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+              # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+              # to use.
+              # Specify `services_secondary_range_name` or `services_ipv4_cidr_block`
+              # but not both.
+          "servicesSecondaryRangeName": "A String", # Optional. The name of the services' secondary range used to allocate
+              # IP addresses to the cluster. Specify either `services_secondary_range_name`
+              # or `services_ipv4_cidr_block` but not both.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+          "useIpAliases": True or False, # Optional. Whether or not to enable Alias IPs in the GKE cluster.
+              # If `true`, a VPC-native cluster is created.
+          "clusterSecondaryRangeName": "A String", # Optional. The name of the cluster's secondary range used to allocate
+              # IP addresses to pods. Specify either `cluster_secondary_range_name`
+              # or `cluster_ipv4_cidr_block` but not both.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+        },
+      },
+      "nodeCount": 42, # The number of nodes in the Kubernetes Engine cluster that will be
+          # used to run this environment.
+      "privateEnvironmentConfig": { # The configuration information for configuring a Private IP Cloud Composer # The configuration used for the Private IP Cloud Composer environment.
+          # environment.
+        "enablePrivateEnvironment": True or False, # Optional. If `true`, a Private IP Cloud Composer environment is created.
+            # If this field is true, `use_ip_aliases` must be true.
+        "privateClusterConfig": { # Configuration options for the private GKE cluster in a Cloud Composer # Optional. Configuration for the private GKE cluster for a Private IP
+            # Cloud Composer environment.
+            # environment.
+          "enablePrivateEndpoint": True or False, # Optional. If `true`, access to the public endpoint of the GKE cluster is
+              # denied.
+          "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+              # range is used for assigning internal IP addresses to the cluster
+              # master or set of masters and to the internal load balancer virtual IP.
+              # This range must not overlap with any other ranges in use
+              # within the cluster's network. If left blank, the default value of
+              # '172.16.0.0/28' is used.
+        },
+      },
+    },
+    "createTime": "A String", # Output only.
+        # The time at which this environment was created.
+    "name": "A String", # The resource name of the environment, in the form:
+        # "projects/{projectId}/locations/{locationId}/environments/{environmentId}"
+  }
+
+  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.
+    "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.
+    },
+    "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). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error
+        # message, and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "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.
+        },
+      ],
+    },
+    "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.
+    "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.
+    },
+    "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}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Delete an environment.
+
+Args:
+  name: string, The environment to delete, in the form:
+"projects/{projectId}/locations/{locationId}/environments/{environmentId}" (required)
+  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.
+    "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.
+    },
+    "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). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error
+        # message, and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "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.
+        },
+      ],
+    },
+    "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.
+    "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.
+    },
+    "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}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Get an existing environment.
+
+Args:
+  name: string, The resource name of the environment to get, in the form:
+"projects/{projectId}/locations/{locationId}/environments/{environmentId}" (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An environment for running orchestration tasks.
+      "updateTime": "A String", # Output only.
+          # The time at which this environment was last modified.
+      "uuid": "A String", # Output only.
+          # The UUID (Universally Unique IDentifier) associated with this environment.
+          # This value is generated when the environment is created.
+      "labels": { # Optional. User-defined labels for this environment.
+          # The labels map can contain no more than 64 entries. Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
+        "a_key": "A String",
+      },
+      "state": "A String", # The current state of the environment.
+      "config": { # Configuration information for an environment. # Configuration parameters for this environment.
+        "dagGcsPrefix": "A String", # Output only.
+            # The Cloud Storage prefix of the DAGs for this environment. Although Cloud
+            # Storage objects reside in a flat namespace, a hierarchical file tree
+            # can be simulated using "/"-delimited object name prefixes. DAG objects for
+            # this environment reside in a simulated directory with the given prefix.
+        "softwareConfig": { # Specifies the selection and configuration of software inside the environment. # The configuration settings for software inside the environment.
+          "pythonVersion": "A String", # Optional. The major version of Python used to run the Apache Airflow
+              # scheduler, worker, and webserver processes.
+              #
+              # Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be
+              # updated.
+          "imageVersion": "A String", # The version of the software running in the environment.
+              # This encapsulates both the version of Cloud Composer functionality and the
+              # version of Apache Airflow. It must match the regular expression
+              # `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`.
+              # When used as input, the server also checks if the provided version is
+              # supported and denies the request for an unsupported version.
+              #
+              # The Cloud Composer portion of the version is a
+              # [semantic version](https://semver.org) or `latest`. When the patch version
+              # is omitted, the current Cloud Composer patch version is selected.
+              # When `latest` is provided instead of an explicit version number,
+              # the server replaces `latest` with the current Cloud Composer version
+              # and stores that version number in the same field.
+              #
+              # The portion of the image version that follows <em>airflow-</em> is an
+              # official Apache Airflow repository
+              # [release name](https://github.com/apache/incubator-airflow/releases).
+              #
+              # See also [Version
+              # List](/composer/docs/concepts/versioning/composer-versions).
+          "airflowConfigOverrides": { # Optional. Apache Airflow configuration properties to override.
+              #
+              # Property keys contain the section and property names, separated by a
+              # hyphen, for example "core-dags_are_paused_at_creation". Section names must
+              # not contain hyphens ("-"), opening square brackets ("["),  or closing
+              # square brackets ("]"). The property name must not be empty and must not
+              # contain an equals sign ("=") or semicolon (";"). Section and property names
+              # must not contain a period ("."). Apache Airflow configuration property
+              # names must be written in
+              # [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can
+              # contain any character, and can be written in any lower/upper case format.
+              #
+              # Certain Apache Airflow configuration property values are
+              # [blacklisted](/composer/docs/how-to/managing/setting-airflow-configurations#airflow_configuration_blacklists),
+              # and cannot be overridden.
+            "a_key": "A String",
+          },
+          "envVariables": { # Optional. Additional environment variables to provide to the Apache Airflow
+              # scheduler, worker, and webserver processes.
+              #
+              # Environment variable names must match the regular expression
+              # `a-zA-Z_*`. They cannot specify Apache Airflow
+              # software configuration overrides (they cannot match the regular expression
+              # `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
+              # following reserved names:
+              #
+              # * `AIRFLOW_HOME`
+              # * `C_FORCE_ROOT`
+              # * `CONTAINER_NAME`
+              # * `DAGS_FOLDER`
+              # * `GCP_PROJECT`
+              # * `GCS_BUCKET`
+              # * `GKE_CLUSTER_NAME`
+              # * `SQL_DATABASE`
+              # * `SQL_INSTANCE`
+              # * `SQL_PASSWORD`
+              # * `SQL_PROJECT`
+              # * `SQL_REGION`
+              # * `SQL_USER`
+            "a_key": "A String",
+          },
+          "pypiPackages": { # Optional. Custom Python Package Index (PyPI) packages to be installed in
+              # the environment.
+              #
+              # Keys refer to the lowercase package name such as "numpy"
+              # and values are the lowercase extras and version specifier such as
+              # "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a
+              # package without pinning it to a version specifier, use the empty string as
+              # the value.
+            "a_key": "A String",
+          },
+        },
+        "airflowUri": "A String", # Output only.
+            # The URI of the Apache Airflow Web UI hosted within this environment (see
+            # [Airflow web
+            # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
+        "gkeCluster": "A String", # Output only.
+            # The Kubernetes Engine cluster used to run this environment.
+        "nodeConfig": { # The configuration information for the Kubernetes Engine nodes running # The configuration used for the Kubernetes Engine cluster.
+            # the Apache Airflow software.
+          "machineType": "A String", # Optional. The Compute Engine
+              # [machine type](/compute/docs/machine-types) used for cluster instances,
+              # specified as a
+              # [relative resource
+              # name](/apis/design/resource_names#relative_resource_name). For example:
+              # "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}".
+              #
+              # The `machineType` must belong to the enclosing environment's project and
+              # location. If both this field and `nodeConfig.location` are specified,
+              # this `machineType` must belong to the `nodeConfig.location`; if both are
+              # unspecified, the service will pick a zone in the Compute Engine region
+              # corresponding to the Cloud Composer location, and propagate that choice to
+              # both fields. If exactly one of this field and `nodeConfig.location` is
+              # specified, the location information from the specified field will be
+              # propagated to the unspecified field.
+              #
+              # If this field is unspecified, the `machineTypeId` defaults
+              # to "n1-standard-1".
+          "network": "A String", # Optional. The Compute Engine network to be used for machine
+              # communications, specified as a
+              # [relative resource
+              # name](/apis/design/resource_names#relative_resource_name). For example:
+              # "projects/{projectId}/global/networks/{networkId}".
+              #
+              # If unspecified, the default network in the environment's project is used.
+              # If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets)
+              # is provided, `nodeConfig.subnetwork` must also be provided. For
+              # [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see
+              # `nodeConfig.subnetwork`.
+          "tags": [ # Optional. The list of instance tags applied to all node VMs. Tags are used
+              # to identify valid sources or targets for network firewalls. Each tag within
+              # the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
+              # Cannot be updated.
+            "A String",
+          ],
+          "serviceAccount": "A String", # Optional. The Google Cloud Platform Service Account to be used by the node
+              # VMs. If a service account is not specified, the "default" Compute Engine
+              # service account is used. Cannot be updated.
+          "oauthScopes": [ # Optional. The set of Google API scopes to be made available on all
+              # node VMs. If `oauth_scopes` is empty, defaults to
+              # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
+            "A String",
+          ],
+          "diskSizeGb": 42, # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
+              # If unspecified, defaults to 100GB. Cannot be updated.
+          "location": "A String", # Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which
+              # to deploy the VMs used to run the Apache Airflow software, specified as a
+              # [relative resource
+              # name](/apis/design/resource_names#relative_resource_name). For example:
+              # "projects/{projectId}/zones/{zoneId}".
+              #
+              # This `location` must belong to the enclosing environment's project and
+              # location. If both this field and `nodeConfig.machineType` are specified,
+              # `nodeConfig.machineType` must belong to this `location`; if both are
+              # unspecified, the service will pick a zone in the Compute Engine region
+              # corresponding to the Cloud Composer location, and propagate that choice to
+              # both fields. If only one field (`location` or `nodeConfig.machineType`) is
+              # specified, the location information from the specified field will be
+              # propagated to the unspecified field.
+          "subnetwork": "A String", # Optional. The Compute Engine subnetwork to be used for machine
+              # communications, specified as a
+              # [relative resource
+              # name](/apis/design/resource_names#relative_resource_name). For example:
+              # "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}"
+              #
+              # If a subnetwork is provided, `nodeConfig.network` must also be provided,
+              # and the subnetwork must belong to the enclosing environment's project and
+              # location.
+          "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the # Optional. The IPAllocationPolicy fields for the GKE cluster.
+              # GKE cluster.
+            "clusterIpv4CidrBlock": "A String", # Optional. The IP address range used to allocate IP addresses to pods in
+                # the cluster.
+                #
+                # This field is applicable only when `use_ip_aliases` is true.
+                #
+                # Set to blank to have GKE choose a range with the default size.
+                #
+                # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+                # netmask.
+                #
+                # Set to a
+                # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+                # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+                # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+                # to use.
+                # Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block`
+                # but not both.
+            "servicesIpv4CidrBlock": "A String", # Optional. The IP address range of the services IP addresses in this
+                # cluster.
+                #
+                # This field is applicable only when `use_ip_aliases` is true.
+                #
+                # Set to blank to have GKE choose a range with the default size.
+                #
+                # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+                # netmask.
+                #
+                # Set to a
+                # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+                # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+                # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+                # to use.
+                # Specify `services_secondary_range_name` or `services_ipv4_cidr_block`
+                # but not both.
+            "servicesSecondaryRangeName": "A String", # Optional. The name of the services' secondary range used to allocate
+                # IP addresses to the cluster. Specify either `services_secondary_range_name`
+                # or `services_ipv4_cidr_block` but not both.
+                #
+                # This field is applicable only when `use_ip_aliases` is true.
+            "useIpAliases": True or False, # Optional. Whether or not to enable Alias IPs in the GKE cluster.
+                # If `true`, a VPC-native cluster is created.
+            "clusterSecondaryRangeName": "A String", # Optional. The name of the cluster's secondary range used to allocate
+                # IP addresses to pods. Specify either `cluster_secondary_range_name`
+                # or `cluster_ipv4_cidr_block` but not both.
+                #
+                # This field is applicable only when `use_ip_aliases` is true.
+          },
+        },
+        "nodeCount": 42, # The number of nodes in the Kubernetes Engine cluster that will be
+            # used to run this environment.
+        "privateEnvironmentConfig": { # The configuration information for configuring a Private IP Cloud Composer # The configuration used for the Private IP Cloud Composer environment.
+            # environment.
+          "enablePrivateEnvironment": True or False, # Optional. If `true`, a Private IP Cloud Composer environment is created.
+              # If this field is true, `use_ip_aliases` must be true.
+          "privateClusterConfig": { # Configuration options for the private GKE cluster in a Cloud Composer # Optional. Configuration for the private GKE cluster for a Private IP
+              # Cloud Composer environment.
+              # environment.
+            "enablePrivateEndpoint": True or False, # Optional. If `true`, access to the public endpoint of the GKE cluster is
+                # denied.
+            "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+                # range is used for assigning internal IP addresses to the cluster
+                # master or set of masters and to the internal load balancer virtual IP.
+                # This range must not overlap with any other ranges in use
+                # within the cluster's network. If left blank, the default value of
+                # '172.16.0.0/28' is used.
+          },
+        },
+      },
+      "createTime": "A String", # Output only.
+          # The time at which this environment was created.
+      "name": "A String", # The resource name of the environment, in the form:
+          # "projects/{projectId}/locations/{locationId}/environments/{environmentId}"
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>List environments.
+
+Args:
+  parent: string, List environments in the given project and location, in the form:
+"projects/{projectId}/locations/{locationId}" (required)
+  pageToken: string, The next_page_token value returned from a previous List request, if any.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, The maximum number of environments to return.
+
+Returns:
+  An object of the form:
+
+    { # The environments in a project and location.
+    "nextPageToken": "A String", # The page token used to query for the next page if one exists.
+    "environments": [ # The list of environments returned by a ListEnvironmentsRequest.
+      { # An environment for running orchestration tasks.
+          "updateTime": "A String", # Output only.
+              # The time at which this environment was last modified.
+          "uuid": "A String", # Output only.
+              # The UUID (Universally Unique IDentifier) associated with this environment.
+              # This value is generated when the environment is created.
+          "labels": { # Optional. User-defined labels for this environment.
+              # The labels map can contain no more than 64 entries. Entries of the labels
+              # map are UTF8 strings that comply with the following restrictions:
+              #
+              # * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62}
+              # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+              # * Both keys and values are additionally constrained to be <= 128 bytes in
+              # size.
+            "a_key": "A String",
+          },
+          "state": "A String", # The current state of the environment.
+          "config": { # Configuration information for an environment. # Configuration parameters for this environment.
+            "dagGcsPrefix": "A String", # Output only.
+                # The Cloud Storage prefix of the DAGs for this environment. Although Cloud
+                # Storage objects reside in a flat namespace, a hierarchical file tree
+                # can be simulated using "/"-delimited object name prefixes. DAG objects for
+                # this environment reside in a simulated directory with the given prefix.
+            "softwareConfig": { # Specifies the selection and configuration of software inside the environment. # The configuration settings for software inside the environment.
+              "pythonVersion": "A String", # Optional. The major version of Python used to run the Apache Airflow
+                  # scheduler, worker, and webserver processes.
+                  #
+                  # Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be
+                  # updated.
+              "imageVersion": "A String", # The version of the software running in the environment.
+                  # This encapsulates both the version of Cloud Composer functionality and the
+                  # version of Apache Airflow. It must match the regular expression
+                  # `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`.
+                  # When used as input, the server also checks if the provided version is
+                  # supported and denies the request for an unsupported version.
+                  #
+                  # The Cloud Composer portion of the version is a
+                  # [semantic version](https://semver.org) or `latest`. When the patch version
+                  # is omitted, the current Cloud Composer patch version is selected.
+                  # When `latest` is provided instead of an explicit version number,
+                  # the server replaces `latest` with the current Cloud Composer version
+                  # and stores that version number in the same field.
+                  #
+                  # The portion of the image version that follows <em>airflow-</em> is an
+                  # official Apache Airflow repository
+                  # [release name](https://github.com/apache/incubator-airflow/releases).
+                  #
+                  # See also [Version
+                  # List](/composer/docs/concepts/versioning/composer-versions).
+              "airflowConfigOverrides": { # Optional. Apache Airflow configuration properties to override.
+                  #
+                  # Property keys contain the section and property names, separated by a
+                  # hyphen, for example "core-dags_are_paused_at_creation". Section names must
+                  # not contain hyphens ("-"), opening square brackets ("["),  or closing
+                  # square brackets ("]"). The property name must not be empty and must not
+                  # contain an equals sign ("=") or semicolon (";"). Section and property names
+                  # must not contain a period ("."). Apache Airflow configuration property
+                  # names must be written in
+                  # [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can
+                  # contain any character, and can be written in any lower/upper case format.
+                  #
+                  # Certain Apache Airflow configuration property values are
+                  # [blacklisted](/composer/docs/how-to/managing/setting-airflow-configurations#airflow_configuration_blacklists),
+                  # and cannot be overridden.
+                "a_key": "A String",
+              },
+              "envVariables": { # Optional. Additional environment variables to provide to the Apache Airflow
+                  # scheduler, worker, and webserver processes.
+                  #
+                  # Environment variable names must match the regular expression
+                  # `a-zA-Z_*`. They cannot specify Apache Airflow
+                  # software configuration overrides (they cannot match the regular expression
+                  # `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
+                  # following reserved names:
+                  #
+                  # * `AIRFLOW_HOME`
+                  # * `C_FORCE_ROOT`
+                  # * `CONTAINER_NAME`
+                  # * `DAGS_FOLDER`
+                  # * `GCP_PROJECT`
+                  # * `GCS_BUCKET`
+                  # * `GKE_CLUSTER_NAME`
+                  # * `SQL_DATABASE`
+                  # * `SQL_INSTANCE`
+                  # * `SQL_PASSWORD`
+                  # * `SQL_PROJECT`
+                  # * `SQL_REGION`
+                  # * `SQL_USER`
+                "a_key": "A String",
+              },
+              "pypiPackages": { # Optional. Custom Python Package Index (PyPI) packages to be installed in
+                  # the environment.
+                  #
+                  # Keys refer to the lowercase package name such as "numpy"
+                  # and values are the lowercase extras and version specifier such as
+                  # "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a
+                  # package without pinning it to a version specifier, use the empty string as
+                  # the value.
+                "a_key": "A String",
+              },
+            },
+            "airflowUri": "A String", # Output only.
+                # The URI of the Apache Airflow Web UI hosted within this environment (see
+                # [Airflow web
+                # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
+            "gkeCluster": "A String", # Output only.
+                # The Kubernetes Engine cluster used to run this environment.
+            "nodeConfig": { # The configuration information for the Kubernetes Engine nodes running # The configuration used for the Kubernetes Engine cluster.
+                # the Apache Airflow software.
+              "machineType": "A String", # Optional. The Compute Engine
+                  # [machine type](/compute/docs/machine-types) used for cluster instances,
+                  # specified as a
+                  # [relative resource
+                  # name](/apis/design/resource_names#relative_resource_name). For example:
+                  # "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}".
+                  #
+                  # The `machineType` must belong to the enclosing environment's project and
+                  # location. If both this field and `nodeConfig.location` are specified,
+                  # this `machineType` must belong to the `nodeConfig.location`; if both are
+                  # unspecified, the service will pick a zone in the Compute Engine region
+                  # corresponding to the Cloud Composer location, and propagate that choice to
+                  # both fields. If exactly one of this field and `nodeConfig.location` is
+                  # specified, the location information from the specified field will be
+                  # propagated to the unspecified field.
+                  #
+                  # If this field is unspecified, the `machineTypeId` defaults
+                  # to "n1-standard-1".
+              "network": "A String", # Optional. The Compute Engine network to be used for machine
+                  # communications, specified as a
+                  # [relative resource
+                  # name](/apis/design/resource_names#relative_resource_name). For example:
+                  # "projects/{projectId}/global/networks/{networkId}".
+                  #
+                  # If unspecified, the default network in the environment's project is used.
+                  # If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets)
+                  # is provided, `nodeConfig.subnetwork` must also be provided. For
+                  # [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see
+                  # `nodeConfig.subnetwork`.
+              "tags": [ # Optional. The list of instance tags applied to all node VMs. Tags are used
+                  # to identify valid sources or targets for network firewalls. Each tag within
+                  # the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
+                  # Cannot be updated.
+                "A String",
+              ],
+              "serviceAccount": "A String", # Optional. The Google Cloud Platform Service Account to be used by the node
+                  # VMs. If a service account is not specified, the "default" Compute Engine
+                  # service account is used. Cannot be updated.
+              "oauthScopes": [ # Optional. The set of Google API scopes to be made available on all
+                  # node VMs. If `oauth_scopes` is empty, defaults to
+                  # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
+                "A String",
+              ],
+              "diskSizeGb": 42, # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
+                  # If unspecified, defaults to 100GB. Cannot be updated.
+              "location": "A String", # Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which
+                  # to deploy the VMs used to run the Apache Airflow software, specified as a
+                  # [relative resource
+                  # name](/apis/design/resource_names#relative_resource_name). For example:
+                  # "projects/{projectId}/zones/{zoneId}".
+                  #
+                  # This `location` must belong to the enclosing environment's project and
+                  # location. If both this field and `nodeConfig.machineType` are specified,
+                  # `nodeConfig.machineType` must belong to this `location`; if both are
+                  # unspecified, the service will pick a zone in the Compute Engine region
+                  # corresponding to the Cloud Composer location, and propagate that choice to
+                  # both fields. If only one field (`location` or `nodeConfig.machineType`) is
+                  # specified, the location information from the specified field will be
+                  # propagated to the unspecified field.
+              "subnetwork": "A String", # Optional. The Compute Engine subnetwork to be used for machine
+                  # communications, specified as a
+                  # [relative resource
+                  # name](/apis/design/resource_names#relative_resource_name). For example:
+                  # "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}"
+                  #
+                  # If a subnetwork is provided, `nodeConfig.network` must also be provided,
+                  # and the subnetwork must belong to the enclosing environment's project and
+                  # location.
+              "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the # Optional. The IPAllocationPolicy fields for the GKE cluster.
+                  # GKE cluster.
+                "clusterIpv4CidrBlock": "A String", # Optional. The IP address range used to allocate IP addresses to pods in
+                    # the cluster.
+                    #
+                    # This field is applicable only when `use_ip_aliases` is true.
+                    #
+                    # Set to blank to have GKE choose a range with the default size.
+                    #
+                    # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+                    # netmask.
+                    #
+                    # Set to a
+                    # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+                    # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+                    # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+                    # to use.
+                    # Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block`
+                    # but not both.
+                "servicesIpv4CidrBlock": "A String", # Optional. The IP address range of the services IP addresses in this
+                    # cluster.
+                    #
+                    # This field is applicable only when `use_ip_aliases` is true.
+                    #
+                    # Set to blank to have GKE choose a range with the default size.
+                    #
+                    # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+                    # netmask.
+                    #
+                    # Set to a
+                    # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+                    # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+                    # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+                    # to use.
+                    # Specify `services_secondary_range_name` or `services_ipv4_cidr_block`
+                    # but not both.
+                "servicesSecondaryRangeName": "A String", # Optional. The name of the services' secondary range used to allocate
+                    # IP addresses to the cluster. Specify either `services_secondary_range_name`
+                    # or `services_ipv4_cidr_block` but not both.
+                    #
+                    # This field is applicable only when `use_ip_aliases` is true.
+                "useIpAliases": True or False, # Optional. Whether or not to enable Alias IPs in the GKE cluster.
+                    # If `true`, a VPC-native cluster is created.
+                "clusterSecondaryRangeName": "A String", # Optional. The name of the cluster's secondary range used to allocate
+                    # IP addresses to pods. Specify either `cluster_secondary_range_name`
+                    # or `cluster_ipv4_cidr_block` but not both.
+                    #
+                    # This field is applicable only when `use_ip_aliases` is true.
+              },
+            },
+            "nodeCount": 42, # The number of nodes in the Kubernetes Engine cluster that will be
+                # used to run this environment.
+            "privateEnvironmentConfig": { # The configuration information for configuring a Private IP Cloud Composer # The configuration used for the Private IP Cloud Composer environment.
+                # environment.
+              "enablePrivateEnvironment": True or False, # Optional. If `true`, a Private IP Cloud Composer environment is created.
+                  # If this field is true, `use_ip_aliases` must be true.
+              "privateClusterConfig": { # Configuration options for the private GKE cluster in a Cloud Composer # Optional. Configuration for the private GKE cluster for a Private IP
+                  # Cloud Composer environment.
+                  # environment.
+                "enablePrivateEndpoint": True or False, # Optional. If `true`, access to the public endpoint of the GKE cluster is
+                    # denied.
+                "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+                    # range is used for assigning internal IP addresses to the cluster
+                    # master or set of masters and to the internal load balancer virtual IP.
+                    # This range must not overlap with any other ranges in use
+                    # within the cluster's network. If left blank, the default value of
+                    # '172.16.0.0/28' is used.
+              },
+            },
+          },
+          "createTime": "A String", # Output only.
+              # The time at which this environment was created.
+          "name": "A String", # The resource name of the environment, in the form:
+              # "projects/{projectId}/locations/{locationId}/environments/{environmentId}"
+        },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Update an environment.
+
+Args:
+  name: string, The relative resource name of the environment to update, in the form:
+"projects/{projectId}/locations/{locationId}/environments/{environmentId}" (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An environment for running orchestration tasks.
+    "updateTime": "A String", # Output only.
+        # The time at which this environment was last modified.
+    "uuid": "A String", # Output only.
+        # The UUID (Universally Unique IDentifier) associated with this environment.
+        # This value is generated when the environment is created.
+    "labels": { # Optional. User-defined labels for this environment.
+        # The labels map can contain no more than 64 entries. Entries of the labels
+        # map are UTF8 strings that comply with the following restrictions:
+        # 
+        # * Keys must conform to regexp: \p{Ll}\p{Lo}{0,62}
+        # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+        # * Both keys and values are additionally constrained to be <= 128 bytes in
+        # size.
+      "a_key": "A String",
+    },
+    "state": "A String", # The current state of the environment.
+    "config": { # Configuration information for an environment. # Configuration parameters for this environment.
+      "dagGcsPrefix": "A String", # Output only.
+          # The Cloud Storage prefix of the DAGs for this environment. Although Cloud
+          # Storage objects reside in a flat namespace, a hierarchical file tree
+          # can be simulated using "/"-delimited object name prefixes. DAG objects for
+          # this environment reside in a simulated directory with the given prefix.
+      "softwareConfig": { # Specifies the selection and configuration of software inside the environment. # The configuration settings for software inside the environment.
+        "pythonVersion": "A String", # Optional. The major version of Python used to run the Apache Airflow
+            # scheduler, worker, and webserver processes.
+            #
+            # Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be
+            # updated.
+        "imageVersion": "A String", # The version of the software running in the environment.
+            # This encapsulates both the version of Cloud Composer functionality and the
+            # version of Apache Airflow. It must match the regular expression
+            # `composer-([0-9]+\.[0-9]+\.[0-9]+|latest)-airflow-[0-9]+\.[0-9]+(\.[0-9]+.*)?`.
+            # When used as input, the server also checks if the provided version is
+            # supported and denies the request for an unsupported version.
+            #
+            # The Cloud Composer portion of the version is a
+            # [semantic version](https://semver.org) or `latest`. When the patch version
+            # is omitted, the current Cloud Composer patch version is selected.
+            # When `latest` is provided instead of an explicit version number,
+            # the server replaces `latest` with the current Cloud Composer version
+            # and stores that version number in the same field.
+            #
+            # The portion of the image version that follows <em>airflow-</em> is an
+            # official Apache Airflow repository
+            # [release name](https://github.com/apache/incubator-airflow/releases).
+            #
+            # See also [Version
+            # List](/composer/docs/concepts/versioning/composer-versions).
+        "airflowConfigOverrides": { # Optional. Apache Airflow configuration properties to override.
+            #
+            # Property keys contain the section and property names, separated by a
+            # hyphen, for example "core-dags_are_paused_at_creation". Section names must
+            # not contain hyphens ("-"), opening square brackets ("["),  or closing
+            # square brackets ("]"). The property name must not be empty and must not
+            # contain an equals sign ("=") or semicolon (";"). Section and property names
+            # must not contain a period ("."). Apache Airflow configuration property
+            # names must be written in
+            # [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can
+            # contain any character, and can be written in any lower/upper case format.
+            #
+            # Certain Apache Airflow configuration property values are
+            # [blacklisted](/composer/docs/how-to/managing/setting-airflow-configurations#airflow_configuration_blacklists),
+            # and cannot be overridden.
+          "a_key": "A String",
+        },
+        "envVariables": { # Optional. Additional environment variables to provide to the Apache Airflow
+            # scheduler, worker, and webserver processes.
+            #
+            # Environment variable names must match the regular expression
+            # `a-zA-Z_*`. They cannot specify Apache Airflow
+            # software configuration overrides (they cannot match the regular expression
+            # `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
+            # following reserved names:
+            #
+            # * `AIRFLOW_HOME`
+            # * `C_FORCE_ROOT`
+            # * `CONTAINER_NAME`
+            # * `DAGS_FOLDER`
+            # * `GCP_PROJECT`
+            # * `GCS_BUCKET`
+            # * `GKE_CLUSTER_NAME`
+            # * `SQL_DATABASE`
+            # * `SQL_INSTANCE`
+            # * `SQL_PASSWORD`
+            # * `SQL_PROJECT`
+            # * `SQL_REGION`
+            # * `SQL_USER`
+          "a_key": "A String",
+        },
+        "pypiPackages": { # Optional. Custom Python Package Index (PyPI) packages to be installed in
+            # the environment.
+            #
+            # Keys refer to the lowercase package name such as "numpy"
+            # and values are the lowercase extras and version specifier such as
+            # "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To specify a
+            # package without pinning it to a version specifier, use the empty string as
+            # the value.
+          "a_key": "A String",
+        },
+      },
+      "airflowUri": "A String", # Output only.
+          # The URI of the Apache Airflow Web UI hosted within this environment (see
+          # [Airflow web
+          # interface](/composer/docs/how-to/accessing/airflow-web-interface)).
+      "gkeCluster": "A String", # Output only.
+          # The Kubernetes Engine cluster used to run this environment.
+      "nodeConfig": { # The configuration information for the Kubernetes Engine nodes running # The configuration used for the Kubernetes Engine cluster.
+          # the Apache Airflow software.
+        "machineType": "A String", # Optional. The Compute Engine
+            # [machine type](/compute/docs/machine-types) used for cluster instances,
+            # specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/zones/{zoneId}/machineTypes/{machineTypeId}".
+            #
+            # The `machineType` must belong to the enclosing environment's project and
+            # location. If both this field and `nodeConfig.location` are specified,
+            # this `machineType` must belong to the `nodeConfig.location`; if both are
+            # unspecified, the service will pick a zone in the Compute Engine region
+            # corresponding to the Cloud Composer location, and propagate that choice to
+            # both fields. If exactly one of this field and `nodeConfig.location` is
+            # specified, the location information from the specified field will be
+            # propagated to the unspecified field.
+            #
+            # If this field is unspecified, the `machineTypeId` defaults
+            # to "n1-standard-1".
+        "network": "A String", # Optional. The Compute Engine network to be used for machine
+            # communications, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/global/networks/{networkId}".
+            #
+            # If unspecified, the default network in the environment's project is used.
+            # If a [Custom Subnet Network](/vpc/docs/vpc#vpc_networks_and_subnets)
+            # is provided, `nodeConfig.subnetwork` must also be provided. For
+            # [Shared VPC](/vpc/docs/shared-vpc) subnetwork requirements, see
+            # `nodeConfig.subnetwork`.
+        "tags": [ # Optional. The list of instance tags applied to all node VMs. Tags are used
+            # to identify valid sources or targets for network firewalls. Each tag within
+            # the list must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
+            # Cannot be updated.
+          "A String",
+        ],
+        "serviceAccount": "A String", # Optional. The Google Cloud Platform Service Account to be used by the node
+            # VMs. If a service account is not specified, the "default" Compute Engine
+            # service account is used. Cannot be updated.
+        "oauthScopes": [ # Optional. The set of Google API scopes to be made available on all
+            # node VMs. If `oauth_scopes` is empty, defaults to
+            # ["https://www.googleapis.com/auth/cloud-platform"]. Cannot be updated.
+          "A String",
+        ],
+        "diskSizeGb": 42, # Optional. The disk size in GB used for node VMs. Minimum size is 20GB.
+            # If unspecified, defaults to 100GB. Cannot be updated.
+        "location": "A String", # Optional. The Compute Engine [zone](/compute/docs/regions-zones) in which
+            # to deploy the VMs used to run the Apache Airflow software, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/zones/{zoneId}".
+            #
+            # This `location` must belong to the enclosing environment's project and
+            # location. If both this field and `nodeConfig.machineType` are specified,
+            # `nodeConfig.machineType` must belong to this `location`; if both are
+            # unspecified, the service will pick a zone in the Compute Engine region
+            # corresponding to the Cloud Composer location, and propagate that choice to
+            # both fields. If only one field (`location` or `nodeConfig.machineType`) is
+            # specified, the location information from the specified field will be
+            # propagated to the unspecified field.
+        "subnetwork": "A String", # Optional. The Compute Engine subnetwork to be used for machine
+            # communications, specified as a
+            # [relative resource
+            # name](/apis/design/resource_names#relative_resource_name). For example:
+            # "projects/{projectId}/regions/{regionId}/subnetworks/{subnetworkId}"
+            #
+            # If a subnetwork is provided, `nodeConfig.network` must also be provided,
+            # and the subnetwork must belong to the enclosing environment's project and
+            # location.
+        "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the # Optional. The IPAllocationPolicy fields for the GKE cluster.
+            # GKE cluster.
+          "clusterIpv4CidrBlock": "A String", # Optional. The IP address range used to allocate IP addresses to pods in
+              # the cluster.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+              #
+              # Set to blank to have GKE choose a range with the default size.
+              #
+              # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+              # netmask.
+              #
+              # Set to a
+              # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+              # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+              # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+              # to use.
+              # Specify `cluster_secondary_range_name` or `cluster_ipv4_cidr_block`
+              # but not both.
+          "servicesIpv4CidrBlock": "A String", # Optional. The IP address range of the services IP addresses in this
+              # cluster.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+              #
+              # Set to blank to have GKE choose a range with the default size.
+              #
+              # Set to /netmask (e.g. `/14`) to have GKE choose a range with a specific
+              # netmask.
+              #
+              # Set to a
+              # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+              # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+              # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+              # to use.
+              # Specify `services_secondary_range_name` or `services_ipv4_cidr_block`
+              # but not both.
+          "servicesSecondaryRangeName": "A String", # Optional. The name of the services' secondary range used to allocate
+              # IP addresses to the cluster. Specify either `services_secondary_range_name`
+              # or `services_ipv4_cidr_block` but not both.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+          "useIpAliases": True or False, # Optional. Whether or not to enable Alias IPs in the GKE cluster.
+              # If `true`, a VPC-native cluster is created.
+          "clusterSecondaryRangeName": "A String", # Optional. The name of the cluster's secondary range used to allocate
+              # IP addresses to pods. Specify either `cluster_secondary_range_name`
+              # or `cluster_ipv4_cidr_block` but not both.
+              #
+              # This field is applicable only when `use_ip_aliases` is true.
+        },
+      },
+      "nodeCount": 42, # The number of nodes in the Kubernetes Engine cluster that will be
+          # used to run this environment.
+      "privateEnvironmentConfig": { # The configuration information for configuring a Private IP Cloud Composer # The configuration used for the Private IP Cloud Composer environment.
+          # environment.
+        "enablePrivateEnvironment": True or False, # Optional. If `true`, a Private IP Cloud Composer environment is created.
+            # If this field is true, `use_ip_aliases` must be true.
+        "privateClusterConfig": { # Configuration options for the private GKE cluster in a Cloud Composer # Optional. Configuration for the private GKE cluster for a Private IP
+            # Cloud Composer environment.
+            # environment.
+          "enablePrivateEndpoint": True or False, # Optional. If `true`, access to the public endpoint of the GKE cluster is
+              # denied.
+          "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+              # range is used for assigning internal IP addresses to the cluster
+              # master or set of masters and to the internal load balancer virtual IP.
+              # This range must not overlap with any other ranges in use
+              # within the cluster's network. If left blank, the default value of
+              # '172.16.0.0/28' is used.
+        },
+      },
+    },
+    "createTime": "A String", # Output only.
+        # The time at which this environment was created.
+    "name": "A String", # The resource name of the environment, in the form:
+        # "projects/{projectId}/locations/{locationId}/environments/{environmentId}"
+  }
+
+  updateMask: string, Required. A comma-separated list of paths, relative to `Environment`, of
+fields to update.
+For example, to set the version of scikit-learn to install in the
+environment to 0.19.0 and to remove an existing installation of
+argparse, the `updateMask` parameter would include the following two
+`paths` values: "config.softwareConfig.pypiPackages.scikit-learn" and
+"config.softwareConfig.pypiPackages.argparse". The included patch
+environment would specify the scikit-learn version as follows:
+
+    {
+      "config":{
+        "softwareConfig":{
+          "pypiPackages":{
+            "scikit-learn":"==0.19.0"
+          }
+        }
+      }
+    }
+
+Note that in the above example, any existing PyPI packages
+other than scikit-learn and argparse will be unaffected.
+
+Only one update type may be included in a single request's `updateMask`.
+For example, one cannot update both the PyPI packages and
+labels in the same request. However, it is possible to update multiple
+members of a map field simultaneously in the same request. For example,
+to set the labels "label1" and "label2" while clearing "label3" (assuming
+it already exists), one can
+provide the paths "labels.label1", "labels.label2", and "labels.label3"
+and populate the patch environment as follows:
+
+    {
+      "labels":{
+        "label1":"new-label1-value"
+        "label2":"new-label2-value"
+      }
+    }
+
+Note that in the above example, any existing labels that are not
+included in the `updateMask` will be unaffected.
+
+It is also possible to replace an entire map field by providing the
+map field's path in the `updateMask`. The new value of the field will
+be that which is provided in the patch environment. For example, to
+delete all pre-existing user-specified PyPI packages and
+install botocore at version 1.7.14, the `updateMask` would contain
+the path "config.softwareConfig.pypiPackages", and
+the patch environment would be the following:
+
+    {
+      "config":{
+        "softwareConfig":{
+          "pypiPackages":{
+            "botocore":"==1.7.14"
+          }
+        }
+      }
+    }
+
+<strong>Note:</strong> Only the following fields can be updated:
+
+ <table>
+ <tbody>
+ <tr>
+ <td><strong>Mask</strong></td>
+ <td><strong>Purpose</strong></td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.pypiPackages
+ </td>
+ <td>Replace all custom custom PyPI packages. If a replacement
+ package map is not included in `environment`, all custom
+ PyPI packages are cleared. It is an error to provide both this mask and a
+ mask specifying an individual package.</td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.pypiPackages.<var>packagename</var></td>
+ <td>Update the custom PyPI package <var>packagename</var>,
+ preserving other packages. To delete the package, include it in
+ `updateMask`, and omit the mapping for it in
+ `environment.config.softwareConfig.pypiPackages`. It is an error
+ to provide both a mask of this form and the
+ "config.softwareConfig.pypiPackages" mask.</td>
+ </tr>
+ <tr>
+ <td>labels</td>
+ <td>Replace all environment labels. If a replacement labels map is not
+ included in `environment`, all labels are cleared. It is an error to
+ provide both this mask and a mask specifying one or more individual
+ labels.</td>
+ </tr>
+ <tr>
+ <td>labels.<var>labelName</var></td>
+ <td>Set the label named <var>labelName</var>, while preserving other
+ labels. To delete the label, include it in `updateMask` and omit its
+ mapping in `environment.labels`. It is an error to provide both a
+ mask of this form and the "labels" mask.</td>
+ </tr>
+ <tr>
+ <td>config.nodeCount</td>
+ <td>Horizontally scale the number of nodes in the environment. An integer
+ greater than or equal to 3 must be provided in the `config.nodeCount`
+ field.
+ </td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.airflowConfigOverrides</td>
+ <td>Replace all Apache Airflow config overrides. If a replacement config
+ overrides map is not included in `environment`, all config overrides
+ are cleared.
+ It is an error to provide both this mask and a mask specifying one or
+ more individual config overrides.</td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.airflowConfigOverrides.<var>section</var>-<var>name
+ </var></td>
+ <td>Override the Apache Airflow config property <var>name</var> in the
+ section named <var>section</var>, preserving other properties. To delete
+ the property override, include it in `updateMask` and omit its mapping
+ in `environment.config.softwareConfig.airflowConfigOverrides`.
+ It is an error to provide both a mask of this form and the
+ "config.softwareConfig.airflowConfigOverrides" mask.</td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.envVariables</td>
+ <td>Replace all environment variables. If a replacement environment
+ variable map is not included in `environment`, all custom environment
+ variables  are cleared.
+ It is an error to provide both this mask and a mask specifying one or
+ more individual environment variables.</td>
+ </tr>
+ <tr>
+ <td>config.softwareConfig.imageVersion</td>
+ <td>Upgrade the version of the environment in-place. Refer to
+ `SoftwareConfig.image_version` for information on how to format the new
+ image version. Additionally, the new image version cannot effect a version
+ downgrade and must match the current image version's Composer major
+ version and Airflow major and minor versions. Consult the
+ <a href="/composer/docs/concepts/versioning/composer-versions">Cloud
+ Composer Version List</a> for valid values.</td>
+ </tr>
+ </tbody>
+ </table>
+  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.
+    "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.
+    },
+    "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). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error
+        # message, and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "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.
+        },
+      ],
+    },
+    "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.
+    "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.
+    },
+    "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}`.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file