Release v1.6.0 (#324)

* Update version and changelog for v1.6.0
* Update docs
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index 31cfe5b..efcad15 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -89,7 +89,7 @@
 <p class="firstline">Creates a new managed service.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(serviceName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes a managed service. This method will change the serivce in the</p>
+<p class="firstline">Deletes a managed service. This method will change the service to the</p>
 <p class="toc_element">
   <code><a href="#disable">disable(serviceName=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Disable a managed service for a project.</p>
@@ -101,7 +101,7 @@
 <p class="firstline">Generates and returns a report (errors, warnings and changes from</p>
 <p class="toc_element">
   <code><a href="#get">get(serviceName=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a managed service.</p>
+<p class="firstline">Gets a managed service. Authentication is required unless the service is</p>
 <p class="toc_element">
   <code><a href="#getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a service configuration (version) for a managed service.</p>
@@ -109,8 +109,8 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(producerProjectId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all managed services.</p>
+  <code><a href="#list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists managed services.</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>
@@ -242,7 +242,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(serviceName=None, x__xgafv=None)</code>
-  <pre>Deletes a managed service. This method will change the serivce in the
+  <pre>Deletes a managed service. This method will change the service to the
 `Soft-Delete` state for 30 days. Within this period, service producers may
 call UndeleteService to restore the service.
 After 30 days, the service will be permanently deleted.
@@ -367,7 +367,8 @@
         # applied to.
         # 
         # The Google Service Management implementation accepts the following
-        # forms: "project:<project_id>", "project_number:<project_number>".
+        # forms:
+        # - "project:<project_id>"
         # 
         # Note: this is made compatible with
         # google.api.servicecontrol.v1.Operation.consumer_id.
@@ -491,7 +492,8 @@
         # applied to.
         # 
         # The Google Service Management implementation accepts the following
-        # forms: "project:<project_id>", "project_number:<project_number>".
+        # forms:
+        # - "project:<project_id>"
         # 
         # Note: this is made compatible with
         # google.api.servicecontrol.v1.Operation.consumer_id.
@@ -698,7 +700,8 @@
 
 <div class="method">
     <code class="details" id="get">get(serviceName=None, x__xgafv=None)</code>
-  <pre>Gets a managed service.
+  <pre>Gets a managed service. Authentication is required unless the service is
+public.
 
 Args:
   serviceName: string, The name of the service.  See the `ServiceManager` overview for naming
@@ -726,7 +729,7 @@
 Args:
   serviceName: string, The name of the service.  See the [overview](/service-management/overview)
 for naming requirements.  For example: `example.googleapis.com`. (required)
-  configId: string, A parameter
+  configId: string, The id of the service configuration resource.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -749,10 +752,15 @@
       #     title: Google Calendar API
       #     apis:
       #     - name: google.calendar.v3.Calendar
-      #     backend:
+      #     authentication:
+      #       providers:
+      #       - id: google_calendar_auth
+      #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+      #         issuer: https://securetoken.google.com
       #       rules:
-      #       - selector: "google.calendar.v3.*"
-      #         address: calendar.example.com
+      #       - selector: "*"
+      #         requirements:
+      #           provider_id: google_calendar_auth
     "control": { # Selects and configures the service controller used by the service.  The # Configuration for the service control plane.
         # service controller handles features like abuse, quota, billing, logging,
         # monitoring, etc.
@@ -824,56 +832,6 @@
             # slash, underscore, hyphen, period [/_-.].
       },
     ],
-    "analytics": { # Analytics configuration of the service. # WARNING: DO NOT USE UNTIL THIS MESSAGE IS REMOVED.
-        #
-        # Analytics configuration.
-        #
-        # The example below shows how to configure monitored resources and metrics
-        # for analytics. In the example, a monitored resource and two metrics are
-        # defined. The `library.googleapis.com/book/returned_count` and
-        # `library.googleapis.com/book/overdue_count` metric are sent
-        # to the analytics.
-        #
-        #     monitored_resources:
-        #     - type: library.googleapis.com/branch
-        #       labels:
-        #       - key: /city
-        #         description: The city where the library branch is located in.
-        #       - key: /name
-        #         description: The name of the branch.
-        #     metrics:
-        #     - name: library.googleapis.com/book/returned_count
-        #       metric_kind: DELTA
-        #       value_type: INT64
-        #       labels:
-        #       - key: /customer_id
-        #     - name: library.googleapis.com/book/overdue_count
-        #       metric_kind: GAUGE
-        #       value_type: INT64
-        #       labels:
-        #       - key: /customer_id
-        #     analytics:
-        #       producer_destinations:
-        #       - monitored_resource: library.googleapis.com/branch
-        #         metrics:
-        #         - library.googleapis.com/book/returned_count
-        #         - library.googleapis.com/book/overdue_count
-      "producerDestinations": [ # Analytics configurations for sending metrics to the analytics backend.
-          # There can be multiple producer destinations, each one must have a
-          # different monitored resource type. A metric can be used in at most
-          # one producer destination.
-        { # Configuration of a specific analytics destination.
-          "monitoredResource": "A String", # The monitored resource type. The type must be defined in
-              # Service.monitored_resources section.
-          "metrics": [ # Names of the metrics to report to this analytics destination.
-              # Each name must be defined in Service.metrics section. Metrics
-              # with value type BOOL and STRING must be of GUAGE kind, metrics with
-              # value type INT64, DOUBLE and MONEY must be of DELTA kind.
-            "A String",
-          ],
-        },
-      ],
-    },
     "systemParameters": { # ### System parameter configuration # System parameter configuration.
         #
         # A system parameter is a special kind of parameter defined by the API
@@ -887,27 +845,26 @@
           # config, default system parameters will be used. Default system parameters
           # and names is implementation-dependent.
           #
-          # Example: define api key and alt name for all methods
+          # Example: define api key for all methods
           #
-          # system_parameters
-          #   rules:
-          #     - selector: "*"
-          #       parameters:
-          #         - name: api_key
-          #           url_query_parameter: api_key
-          #         - name: alt
-          #           http_header: Response-Content-Type
+          #     system_parameters
+          #       rules:
+          #         - selector: "*"
+          #           parameters:
+          #             - name: api_key
+          #               url_query_parameter: api_key
+          #
           #
           # Example: define 2 api key names for a specific method.
           #
-          # system_parameters
-          #   rules:
-          #     - selector: "/ListShelves"
-          #       parameters:
-          #         - name: api_key
-          #           http_header: Api-Key1
-          #         - name: api_key
-          #           http_header: Api-Key2
+          #     system_parameters
+          #       rules:
+          #         - selector: "/ListShelves"
+          #           parameters:
+          #             - name: api_key
+          #               http_header: Api-Key1
+          #             - name: api_key
+          #               http_header: Api-Key2
           #
           # **NOTE:** All service configuration rules follow "last one wins" order.
         { # Define a system parameter rule mapping system parameter definitions to
@@ -922,8 +879,7 @@
                 # is implementation-dependent.
               "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
                   # sensitive.
-              "name": "A String", # Define the name of the parameter, such as "api_key", "alt", "callback",
-                  # and etc. It is case sensitive.
+              "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
               "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
                   # insensitive.
             },
@@ -1025,14 +981,14 @@
         #
         #     name: calendar.googleapis.com
         #     authentication:
+        #       providers:
+        #       - id: google_calendar_auth
+        #         jwks_uri: https://www.googleapis.com/oauth2/v1/certs
+        #         issuer: https://securetoken.google.com
         #       rules:
         #       - selector: "*"
-        #         oauth:
-        #           canonical_scopes: https://www.googleapis.com/auth/calendar
-        #
-        #       - selector: google.calendar.Delegate
-        #         oauth:
-        #           canonical_scopes: https://www.googleapis.com/auth/calendar.read
+        #         requirements:
+        #           provider_id: google_calendar_auth
       "rules": [ # A list of authentication rules that apply to individual API methods.
           #
           # **NOTE:** All service configuration rules follow "last one wins" order.
@@ -1079,7 +1035,10 @@
                   # Example:
                   #
                   #     provider_id: bookstore_auth
-              "audiences": "A String", # The list of JWT
+              "audiences": "A String", # NOTE: This will be deprecated soon, once AuthProvider.audiences is
+                  # implemented and accepted in all the runtime components.
+                  #
+                  # The list of JWT
                   # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
                   # that are allowed to access. A JWT containing any of these audiences will
                   # be accepted. When this setting is absent, only JWTs with audience
@@ -1118,6 +1077,19 @@
               #  - can be inferred from the email domain of the issuer (e.g. a Google service account).
               #
               # Example: https://www.googleapis.com/oauth2/v1/certs
+          "audiences": "A String", # The list of JWT
+              # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
+              # that are allowed to access. A JWT containing any of these audiences will
+              # be accepted. When this setting is absent, only JWTs with audience
+              # "https://Service_name/API_name"
+              # will be accepted. For example, if no audiences are in the setting,
+              # LibraryService API will only accept JWTs with the following audience
+              # "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
+              #
+              # Example:
+              #
+              #     audiences: bookstore_android.apps.googleusercontent.com,
+              #                bookstore_web.apps.googleusercontent.com
           "id": "A String", # The unique identifier of the auth provider. It will be referred to by
               # `AuthRequirement.provider_id`.
               #
@@ -1167,6 +1139,14 @@
           "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         },
       ],
+      "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
+          # service producer.
+          #
+          # Google Service Management currently only supports
+          # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
+          # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
+          # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
+          # documented in https://cloud.google.com/pubsub/docs/overview.
       "requirements": [ # Requirements that must be satisfied before a consumer project can use the
           # service. Each requirement is of the form <service.name>/<requirement-id>;
           # for example 'serviceusage.googleapis.com/billing-enabled'.
@@ -1198,23 +1178,30 @@
             # message, as in the example below which describes a REST GET
             # operation on a resource collection of messages:
             #
-            # ```proto
-            # service Messaging {
-            #   rpc GetMessage(GetMessageRequest) returns (Message) {
-            #     option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
-            #   }
-            # }
-            # message GetMessageRequest {
-            #   message SubMessage {
-            #     string subfield = 1;
-            #   }
-            #   string message_id = 1; // mapped to the URL
-            #   SubMessage sub = 2;    // `sub.subfield` is url-mapped
-            # }
-            # message Message {
-            #   string text = 1; // content of the resource
-            # }
-            # ```
+            #
+            #     service Messaging {
+            #       rpc GetMessage(GetMessageRequest) returns (Message) {
+            #         option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
+            #       }
+            #     }
+            #     message GetMessageRequest {
+            #       message SubMessage {
+            #         string subfield = 1;
+            #       }
+            #       string message_id = 1; // mapped to the URL
+            #       SubMessage sub = 2;    // `sub.subfield` is url-mapped
+            #     }
+            #     message Message {
+            #       string text = 1; // content of the resource
+            #     }
+            #
+            # The same http annotation can alternatively be expressed inside the
+            # `GRPC API Configuration` YAML file.
+            #
+            #     http:
+            #       rules:
+            #         - selector: <proto_package_name>.Messaging.GetMessage
+            #           get: /v1/messages/{message_id}/{sub.subfield}
             #
             # This definition enables an automatic, bidrectional mapping of HTTP
             # JSON to RPC. Example:
@@ -1231,16 +1218,16 @@
             # pattern automatically become (optional) HTTP query
             # parameters. Assume the following definition of the request message:
             #
-            # ```proto
-            # message GetMessageRequest {
-            #   message SubMessage {
-            #     string subfield = 1;
-            #   }
-            #   string message_id = 1; // mapped to the URL
-            #   int64 revision = 2;    // becomes a parameter
-            #   SubMessage sub = 3;    // `sub.subfield` becomes a parameter
-            # }
-            # ```
+            #
+            #     message GetMessageRequest {
+            #       message SubMessage {
+            #         string subfield = 1;
+            #       }
+            #       string message_id = 1; // mapped to the URL
+            #       int64 revision = 2;    // becomes a parameter
+            #       SubMessage sub = 3;    // `sub.subfield` becomes a parameter
+            #     }
+            #
             #
             # This enables a HTTP JSON to RPC mapping as below:
             #
@@ -1257,20 +1244,20 @@
             # specifies the mapping. Consider a REST update method on the
             # message resource collection:
             #
-            # ```proto
-            # service Messaging {
-            #   rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
-            #     option (google.api.http) = {
-            #       put: "/v1/messages/{message_id}"
-            #       body: "message"
-            #     };
-            #   }
-            # }
-            # message UpdateMessageRequest {
-            #   string message_id = 1; // mapped to the URL
-            #   Message message = 2;   // mapped to the body
-            # }
-            # ```
+            #
+            #     service Messaging {
+            #       rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
+            #         option (google.api.http) = {
+            #           put: "/v1/messages/{message_id}"
+            #           body: "message"
+            #         };
+            #       }
+            #     }
+            #     message UpdateMessageRequest {
+            #       string message_id = 1; // mapped to the URL
+            #       Message message = 2;   // mapped to the body
+            #     }
+            #
             #
             # The following HTTP JSON to RPC mapping is enabled, where the
             # representation of the JSON in the request body is determined by
@@ -1285,20 +1272,19 @@
             # request body.  This enables the following alternative definition of
             # the update method:
             #
-            # ```proto
-            # service Messaging {
-            #   rpc UpdateMessage(Message) returns (Message) {
-            #     option (google.api.http) = {
-            #       put: "/v1/messages/{message_id}"
-            #       body: "*"
-            #     };
-            #   }
-            # }
-            # message Message {
-            #   string message_id = 1;
-            #   string text = 2;
-            # }
-            # ```
+            #     service Messaging {
+            #       rpc UpdateMessage(Message) returns (Message) {
+            #         option (google.api.http) = {
+            #           put: "/v1/messages/{message_id}"
+            #           body: "*"
+            #         };
+            #       }
+            #     }
+            #     message Message {
+            #       string message_id = 1;
+            #       string text = 2;
+            #     }
+            #
             #
             # The following HTTP JSON to RPC mapping is enabled:
             #
@@ -1315,22 +1301,21 @@
             # It is possible to define multiple HTTP methods for one RPC by using
             # the `additional_bindings` option. Example:
             #
-            # ```proto
-            # service Messaging {
-            #   rpc GetMessage(GetMessageRequest) returns (Message) {
-            #     option (google.api.http) = {
-            #       get: "/v1/messages/{message_id}"
-            #       additional_bindings {
-            #         get: "/v1/users/{user_id}/messages/{message_id}"
+            #     service Messaging {
+            #       rpc GetMessage(GetMessageRequest) returns (Message) {
+            #         option (google.api.http) = {
+            #           get: "/v1/messages/{message_id}"
+            #           additional_bindings {
+            #             get: "/v1/users/{user_id}/messages/{message_id}"
+            #           }
+            #         };
             #       }
-            #     };
-            #   }
-            # }
-            # message GetMessageRequest {
-            #   string message_id = 1;
-            #   string user_id = 2;
-            # }
-            # ```
+            #     }
+            #     message GetMessageRequest {
+            #       string message_id = 1;
+            #       string user_id = 2;
+            #     }
+            #
             #
             # This enables the following two alternative HTTP JSON to RPC
             # mappings:
@@ -1371,7 +1356,7 @@
             #
             # The syntax `**` matches zero or more path segments. It follows the semantics
             # of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
-            # Expansion.
+            # Expansion. NOTE: it must be the last segment in the path except the Verb.
             #
             # The syntax `LITERAL` matches literal text in the URL path.
             #
@@ -1390,7 +1375,7 @@
           "body": "A String", # The name of the request field whose value is mapped to the HTTP body, or
               # `*` for mapping all fields not captured by the path pattern to the HTTP
               # body. NOTE: the referred field must not be a repeated field and must be
-              # present at the top-level of response message type.
+              # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
           "mediaDownload": { # Do not use this. For media support, add instead # Do not use this. For media support, add instead
               # [][google.bytestream.RestByteStream] as an API to your
@@ -1447,8 +1432,14 @@
             "options": [ # Any metadata attached to the method.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
-                "name": "A String", # The option's name. For example, `"java_package"`.
-                "value": { # The option's value. For example, `"com.google.protobuf"`.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
               },
@@ -1568,8 +1559,14 @@
         "options": [ # Any metadata attached to the API.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
-            "name": "A String", # The option's name. For example, `"java_package"`.
-            "value": { # The option's value. For example, `"com.google.protobuf"`.
+            "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                # For custom options, it should be the fully-qualified name. For example,
+                # `"google.api.http"`.
+            "value": { # The option's value packed in an Any message. If the value is a primitive,
+                # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                # should be used. If the value is an enum, it should be stored as an int32
+                # value using the google.protobuf.Int32Value type.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           },
@@ -1652,7 +1649,9 @@
       ],
     },
     "metrics": [ # Defines the metrics used by this service.
-      { # Defines a metric type and its schema.
+      { # Defines a metric type and its schema. Once a metric descriptor is created,
+          # deleting or altering it stops data collection and makes the metric type's
+          # existing data unusable.
         "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces.
             # Use sentence case without an ending period, for example "Request count".
         "description": "A String", # A detailed description of the metric, which can be used in documentation.
@@ -1660,29 +1659,25 @@
             # Some combinations of `metric_kind` and `value_type` might not be supported.
         "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc.
             # Some combinations of `metric_kind` and `value_type` might not be supported.
-        "labels": [ # The set of labels that can be used to describe a specific instance of this
-            # metric type. For example, the
-            # `compute.googleapis.com/instance/network/received_bytes_count` metric type
-            # has a label, `loadbalanced`, that specifies whether the traffic was
-            # received through a load balanced IP address.
+        "labels": [ # The set of labels that can be used to describe a specific
+            # instance of this metric type. For example, the
+            # `appengine.googleapis.com/http/server/response_latencies` metric
+            # type has a label for the HTTP response code, `response_code`, so
+            # you can look at latencies for successful responses or just
+            # for responses that failed.
           { # A description of a label.
             "valueType": "A String", # The type of data that can be assigned to the label.
             "description": "A String", # A human-readable description for the label.
             "key": "A String", # The label key.
           },
         ],
-        "type": "A String", # The metric type including a DNS name prefix, for example
-            # `"compute.googleapis.com/instance/cpu/utilization"`. Metric types
-            # should use a natural hierarchical grouping such as the following:
+        "type": "A String", # The metric type, including its DNS name prefix. The type is not
+            # URL-encoded.  All user-defined metric types have the DNS name
+            # `custom.googleapis.com`.  Metric types should use a natural hierarchical
+            # grouping. For example:
             #
-            #     compute.googleapis.com/instance/cpu/utilization
-            #     compute.googleapis.com/instance/disk/read_ops_count
-            #     compute.googleapis.com/instance/network/received_bytes_count
-            #
-            # Note that if the metric type changes, the monitoring data will be
-            # discontinued, and anything depends on it will break, such as monitoring
-            # dashboards, alerting rules and quota limits. Therefore, once a metric has
-            # been published, its type should be immutable.
+            #     "custom.googleapis.com/invoice/paid/amount"
+            #     "appengine.googleapis.com/http/server/response_latencies"
         "unit": "A String", # The unit in which the metric value is reported. It is only applicable
             # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
             # supported units are a subset of [The Unified Code for Units of
@@ -1747,11 +1742,14 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "name": "A String", # Resource name. The format of the name may vary between different
-            # implementations. For examples:
+        "name": "A String", # The resource name of the metric descriptor. Depending on the
+            # implementation, the name typically includes: (1) the parent resource name
+            # that defines the scope of the metric type or of its data; and (2) the
+            # metric's URL-encoded type, which also appears in the `type` field of this
+            # descriptor. For example, following is the resource name of a custom
+            # metric within the GCP project 123456789:
             #
-            #     projects/{project_id}/metricDescriptors/{type=**}
-            #     metricDescriptors/{type=**}
+            #     "projects/123456789/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -1773,8 +1771,14 @@
             "options": [ # Protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
-                "name": "A String", # The option's name. For example, `"java_package"`.
-                "value": { # The option's value. For example, `"com.google.protobuf"`.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
               },
@@ -1785,8 +1789,14 @@
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
-            "name": "A String", # The option's name. For example, `"java_package"`.
-            "value": { # The option's value. For example, `"com.google.protobuf"`.
+            "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                # For custom options, it should be the fully-qualified name. For example,
+                # `"google.api.http"`.
+            "value": { # The option's value packed in an Any message. If the value is a primitive,
+                # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                # should be used. If the value is an enum, it should be stored as an int32
+                # value using the google.protobuf.Int32Value type.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           },
@@ -1829,8 +1839,14 @@
             "options": [ # The protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
-                "name": "A String", # The option's name. For example, `"java_package"`.
-                "value": { # The option's value. For example, `"com.google.protobuf"`.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
               },
@@ -1841,8 +1857,14 @@
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
-            "name": "A String", # The option's name. For example, `"java_package"`.
-            "value": { # The option's value. For example, `"com.google.protobuf"`.
+            "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                # For custom options, it should be the fully-qualified name. For example,
+                # `"google.api.http"`.
+            "value": { # The option's value packed in an Any message. If the value is a primitive,
+                # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                # should be used. If the value is an enum, it should be stored as an int32
+                # value using the google.protobuf.Int32Value type.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           },
@@ -2058,8 +2080,14 @@
             "options": [ # The protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
-                "name": "A String", # The option's name. For example, `"java_package"`.
-                "value": { # The option's value. For example, `"com.google.protobuf"`.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
                   "a_key": "", # Properties of the object. Contains field @type with type URL.
                 },
               },
@@ -2070,8 +2098,14 @@
         "options": [ # The protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
-            "name": "A String", # The option's name. For example, `"java_package"`.
-            "value": { # The option's value. For example, `"com.google.protobuf"`.
+            "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                # For custom options, it should be the fully-qualified name. For example,
+                # `"google.api.http"`.
+            "value": { # The option's value packed in an Any message. If the value is a primitive,
+                # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                # should be used. If the value is an enum, it should be stored as an int32
+                # value using the google.protobuf.Int32Value type.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           },
@@ -2130,29 +2164,7 @@
           #       # it to decide whether the subsequent cross-origin request is
           #       # allowed to proceed.
           #     - name: library-example.googleapis.com
-          #       apis: google.example.library.v1.Library
           #       allow_cors: true
-          #       # Below entry makes 'google.example.library.v1.Library'
-          #       # API be served from endpoint address
-          #       # google.example.library-example.v1.LibraryManager.
-          #     - name: library-manager.googleapis.com
-          #       apis: google.example.library.v1.LibraryManager
-          #       # BNS address for a borg job. Can specify a task by appending
-          #       # "/taskId" (e.g. "/0") to the job spec.
-          #
-          # Example OpenAPI extension for endpoint with allow_cors set to true:
-          #
-          #     {
-          #       "swagger": "2.0",
-          #       "info": {
-          #         "description": "A simple..."
-          #       },
-          #       "host": "MY_PROJECT_ID.appspot.com",
-          #       "x-google-endpoints": [{
-          #         "name": "MY_PROJECT_ID.appspot.com",
-          #         "allow_cors": "true"
-          #       }]
-          #     }
         "allowCors": True or False, # Allowing
             # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
             # cross-domain traffic, would allow the backends served from this endpoint to
@@ -2239,15 +2251,24 @@
         #
         # Note: `AuditConfig` doesn't apply to "admin activity", which always
         # enables audit logging.
-      { # Enables "data access" audit logging for a service and specifies a list
-          # of members that are log-exempted.
+      { # Provides the configuration for non-admin_activity logging for a service.
+          # Controls exemptions and specific log sub-types.
         "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
             # logging for the `service` specified above.
             # Follows the same format of Binding.members.
           "A String",
         ],
-        "service": "A String", # Specifies a service that will be enabled for "data access" audit
-            # logging.
+        "auditLogConfigs": [ # The configuration for each type of logging
+            # Next ID: 4
+          { # Provides the configuration for a sub-type of logging.
+            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
             # For example, `resourcemanager`, `storage`, `compute`.
             # `allServices` is a special value that covers all services.
       },
@@ -2378,12 +2399,25 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(producerProjectId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists all managed services.
+    <code class="details" id="list">list(producerProjectId=None, pageSize=None, consumerId=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists managed services.
+
+If called without any authentication, it returns only the public services.
+If called with authentication, it returns all services that the caller has
+"servicemanagement.services.get" permission for.
+
+**BETA:** If the caller specifies the `consumer_id`, it returns only the
+services enabled on the consumer. The `consumer_id` must have the format
+of "project:{PROJECT-ID}".
 
 Args:
   producerProjectId: string, Include services produced by the specified project.
   pageSize: integer, Requested size of the next page of data.
+  consumerId: string, Include services consumed by the specified consumer.
+
+The Google Service Management implementation accepts the following
+forms:
+- project:<project_id>
   pageToken: string, Token identifying which result to start with; returned by a previous list
 call.
   x__xgafv: string, V1 error format.
@@ -2396,7 +2430,7 @@
 
     { # Response message for `ListServices` method.
     "nextPageToken": "A String", # Token that can be passed to `ListServices` to resume a paginated query.
-    "services": [ # The results of the query.
+    "services": [ # The returned services will only have the name field set.
       { # The full representation of a Service that is managed by
           # Google Service Management.
         "serviceName": "A String", # The name of the service. See the [overview](/service-management/overview)
@@ -2474,15 +2508,24 @@
           #
           # Note: `AuditConfig` doesn't apply to "admin activity", which always
           # enables audit logging.
-        { # Enables "data access" audit logging for a service and specifies a list
-            # of members that are log-exempted.
+        { # Provides the configuration for non-admin_activity logging for a service.
+            # Controls exemptions and specific log sub-types.
           "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
               # logging for the `service` specified above.
               # Follows the same format of Binding.members.
             "A String",
           ],
-          "service": "A String", # Specifies a service that will be enabled for "data access" audit
-              # logging.
+          "auditLogConfigs": [ # The configuration for each type of logging
+              # Next ID: 4
+            { # Provides the configuration for a sub-type of logging.
+              "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+                  # Follows the same format of Binding.members.
+                "A String",
+              ],
+              "logType": "A String", # The log type that this config enables.
+            },
+          ],
+          "service": "A String", # Specifies a service that will be enabled for audit logging.
               # For example, `resourcemanager`, `storage`, `compute`.
               # `allServices` is a special value that covers all services.
         },
@@ -2610,6 +2653,11 @@
       ],
       "iamOwned": True or False,
     },
+    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
+        # the fields in the mask will be modified. If no mask is provided, a default
+        # mask is used:
+        # paths: "bindings, etag"
+        # This field is only used by Cloud IAM.
   }
 
   x__xgafv: string, V1 error format.
@@ -2657,15 +2705,24 @@
         #
         # Note: `AuditConfig` doesn't apply to "admin activity", which always
         # enables audit logging.
-      { # Enables "data access" audit logging for a service and specifies a list
-          # of members that are log-exempted.
+      { # Provides the configuration for non-admin_activity logging for a service.
+          # Controls exemptions and specific log sub-types.
         "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
             # logging for the `service` specified above.
             # Follows the same format of Binding.members.
           "A String",
         ],
-        "service": "A String", # Specifies a service that will be enabled for "data access" audit
-            # logging.
+        "auditLogConfigs": [ # The configuration for each type of logging
+            # Next ID: 4
+          { # Provides the configuration for a sub-type of logging.
+            "exemptedMembers": [ # Specifies the identities that are exempted from this type of logging
+                # Follows the same format of Binding.members.
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging.
             # For example, `resourcemanager`, `storage`, `compute`.
             # `allServices` is a special value that covers all services.
       },
@@ -2798,6 +2855,8 @@
 <div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified resource.
+If the resource does not exist, this will return an empty set of
+permissions, not a NOT_FOUND error.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.