chore: regens API reference docs (#889)

diff --git a/docs/dyn/datafusion_v1beta1.projects.locations.instances.html b/docs/dyn/datafusion_v1beta1.projects.locations.instances.html
index 3261693..e6d418f 100644
--- a/docs/dyn/datafusion_v1beta1.projects.locations.instances.html
+++ b/docs/dyn/datafusion_v1beta1.projects.locations.instances.html
@@ -75,7 +75,7 @@
 <h1><a href="datafusion_v1beta1.html">Cloud Data Fusion API</a> . <a href="datafusion_v1beta1.projects.html">projects</a> . <a href="datafusion_v1beta1.projects.locations.html">locations</a> . <a href="datafusion_v1beta1.projects.locations.instances.html">instances</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent, body, instanceId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body=None, instanceId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new Data Fusion instance in the specified project and location.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets details of a single Data Fusion instance.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, 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(parent, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None, filter=None)</a></code></p>
@@ -93,50 +93,52 @@
   <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>
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a single Data Fusion instance.</p>
 <p class="toc_element">
   <code><a href="#restart">restart(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Restart a single Data Fusion instance.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#upgrade">upgrade(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Upgrade a single Data Fusion instance.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent, body, instanceId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body=None, instanceId=None, x__xgafv=None)</code>
   <pre>Creates a new Data Fusion instance in the specified project and location.
 
 Args:
   parent: string, The instance's project and location in the format
 projects/{project}/locations/{location}. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # Represents a Data Fusion instance.
+    # Next available ID: 23
   "updateTime": "A String", # Output only. The time the instance was last updated.
-  "displayName": "A String", # Display name for an instance.
-  "description": "A String", # An optional description of this instance.
-  "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
   "privateInstance": True or False, # Specifies whether the Data Fusion instance should be private. If set to
       # true, all Data Fusion nodes will have private IP addresses and will not be
       # able to access the public internet.
-  "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
-  "options": { # Map of additional options used to configure the behavior of
-      # Data Fusion instance.
-    "a_key": "A String",
-  },
   "labels": { # The resource labels for instance to use to annotate any related underlying
-      # resources such as GCE VMs. The character '=' is not allowed to be used
-      # within the labels.
+      # resources such as Compute Engine VMs. The character '=' is not allowed to
+      # be used within the labels.
     "a_key": "A String",
   },
-  "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
+  "apiEndpoint": "A String", # Output only. Endpoint on which the REST APIs is accessible.
+  "accelerators": [ # List of accelerators enabled for this CDF instance.
+    { # Identifies Data Fusion accelerators for an instance.
+      "acceleratorType": "A String", # The type of an accelator for a CDF instance.
+    },
+  ],
+  "gcsBucket": "A String", # Output only. Cloud Storage bucket generated by Data Fusion in the customer project.
+  "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
+  "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
+      # the customer project."
   "networkConfig": { # Network configuration for a Data Fusion instance. These configurations # Network configuration options. These are required when a private Data
       # Fusion instance is to be created.
       # are used for peering with the customer network. Configurations are optional
@@ -145,23 +147,36 @@
       # while accessing the customer resources from managed Data Fusion instance
       # nodes, as well as access to the customer on-prem resources.
     "network": "A String", # Name of the network in the customer project with which the Tenant Project
-        # will be peered for executing pipelines.
+        # will be peered for executing pipelines. In case of shared VPC where the
+        # network resides in another host project the network should specified in
+        # the form of projects/{host-project-id}/global/networks/{network}
     "ipAllocation": "A String", # The IP range in CIDR notation to use for the managed Data Fusion instance
         # nodes. This range must not overlap with any other ranges used in the Data
         # Fusion instance network.
   },
-  "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI and REST APIs are
-      # accessible.
+  "createTime": "A String", # Output only. The time the instance was created.
+  "state": "A String", # Output only. The current state of this Data Fusion instance.
+  "version": "A String", # Current version of Data Fusion.
+  "type": "A String", # Required. Instance type.
+  "description": "A String", # Optional. An optional description of this instance.
+  "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
   "stateMessage": "A String", # Output only. Additional information about the current state of this Data
       # Fusion instance if available.
-  "state": "A String", # Output only. The current state of this Data Fusion instance.
-  "version": "A String", # Output only. Current version of the Data Fusion.
-  "type": "A String", # Required. Instance type.
-  "createTime": "A String", # Output only. The time the instance was created.
-  "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
-      # the customer project."
+  "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI is accessible.
+  "displayName": "A String", # Display name for an instance.
   "name": "A String", # Output only. The name of this instance is in the form of
       # projects/{project}/locations/{location}/instances/{instance}.
+  "availableVersion": [ # Available versions that the instance can be upgraded to using
+      # UpdateInstanceRequest.
+    { # The Data Fusion version.
+      "versionNumber": "A String", # The version number of the Data Fusion instance, such as '6.0.1.0'.
+    },
+  ],
+  "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
+  "options": { # Map of additional options used to configure the behavior of
+      # Data Fusion instance.
+    "a_key": "A String",
+  },
 }
 
   instanceId: string, The name of the instance to create.
@@ -175,12 +190,6 @@
 
     { # 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). Each `Status` message contains
@@ -215,6 +224,12 @@
     "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}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -235,12 +250,6 @@
 
     { # 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). Each `Status` message contains
@@ -275,6 +284,12 @@
     "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}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -294,24 +309,26 @@
   An object of the form:
 
     { # Represents a Data Fusion instance.
+      # Next available ID: 23
     "updateTime": "A String", # Output only. The time the instance was last updated.
-    "displayName": "A String", # Display name for an instance.
-    "description": "A String", # An optional description of this instance.
-    "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
     "privateInstance": True or False, # Specifies whether the Data Fusion instance should be private. If set to
         # true, all Data Fusion nodes will have private IP addresses and will not be
         # able to access the public internet.
-    "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
-    "options": { # Map of additional options used to configure the behavior of
-        # Data Fusion instance.
-      "a_key": "A String",
-    },
     "labels": { # The resource labels for instance to use to annotate any related underlying
-        # resources such as GCE VMs. The character '=' is not allowed to be used
-        # within the labels.
+        # resources such as Compute Engine VMs. The character '=' is not allowed to
+        # be used within the labels.
       "a_key": "A String",
     },
-    "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
+    "apiEndpoint": "A String", # Output only. Endpoint on which the REST APIs is accessible.
+    "accelerators": [ # List of accelerators enabled for this CDF instance.
+      { # Identifies Data Fusion accelerators for an instance.
+        "acceleratorType": "A String", # The type of an accelator for a CDF instance.
+      },
+    ],
+    "gcsBucket": "A String", # Output only. Cloud Storage bucket generated by Data Fusion in the customer project.
+    "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
+    "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
+        # the customer project."
     "networkConfig": { # Network configuration for a Data Fusion instance. These configurations # Network configuration options. These are required when a private Data
         # Fusion instance is to be created.
         # are used for peering with the customer network. Configurations are optional
@@ -320,28 +337,41 @@
         # while accessing the customer resources from managed Data Fusion instance
         # nodes, as well as access to the customer on-prem resources.
       "network": "A String", # Name of the network in the customer project with which the Tenant Project
-          # will be peered for executing pipelines.
+          # will be peered for executing pipelines. In case of shared VPC where the
+          # network resides in another host project the network should specified in
+          # the form of projects/{host-project-id}/global/networks/{network}
       "ipAllocation": "A String", # The IP range in CIDR notation to use for the managed Data Fusion instance
           # nodes. This range must not overlap with any other ranges used in the Data
           # Fusion instance network.
     },
-    "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI and REST APIs are
-        # accessible.
+    "createTime": "A String", # Output only. The time the instance was created.
+    "state": "A String", # Output only. The current state of this Data Fusion instance.
+    "version": "A String", # Current version of Data Fusion.
+    "type": "A String", # Required. Instance type.
+    "description": "A String", # Optional. An optional description of this instance.
+    "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
     "stateMessage": "A String", # Output only. Additional information about the current state of this Data
         # Fusion instance if available.
-    "state": "A String", # Output only. The current state of this Data Fusion instance.
-    "version": "A String", # Output only. Current version of the Data Fusion.
-    "type": "A String", # Required. Instance type.
-    "createTime": "A String", # Output only. The time the instance was created.
-    "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
-        # the customer project."
+    "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI is accessible.
+    "displayName": "A String", # Display name for an instance.
     "name": "A String", # Output only. The name of this instance is in the form of
         # projects/{project}/locations/{location}/instances/{instance}.
+    "availableVersion": [ # Available versions that the instance can be upgraded to using
+        # UpdateInstanceRequest.
+      { # The Data Fusion version.
+        "versionNumber": "A String", # The version number of the Data Fusion instance, such as '6.0.1.0'.
+      },
+    ],
+    "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
+    "options": { # Map of additional options used to configure the behavior of
+        # Data Fusion instance.
+      "a_key": "A String",
+    },
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
   <pre>Gets the access control policy for a resource.
 Returns an empty policy if the resource exists and does not have a policy
 set.
@@ -349,6 +379,14 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
 See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned.
+
+Valid values are 0, 1, and 3. Requests specifying an invalid value will be
+rejected.
+
+Requests for policies with any conditional bindings must specify version 3.
+Policies without any conditional bindings may specify any valid value or
+leave the field unset.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -357,51 +395,166 @@
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to
-      # specify access control policies for Cloud Platform resources.
+    { # An Identity and Access Management (IAM) policy, which specifies access
+      # controls for Google Cloud resources.
       #
       #
-      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
-      # `members` to a `role`, where the members can be user accounts, Google groups,
-      # Google domains, and service accounts. A `role` is a named list of permissions
-      # defined by IAM.
+      # A `Policy` is a collection of `bindings`. A `binding` binds one or more
+      # `members` to a single `role`. Members can be user accounts, service accounts,
+      # Google groups, and domains (such as G Suite). A `role` is a named list of
+      # permissions; each `role` can be an IAM predefined role or a user-created
+      # custom role.
       #
-      # **JSON Example**
+      # Optionally, a `binding` can specify a `condition`, which is a logical
+      # expression that allows access to a resource only if the expression evaluates
+      # to `true`. A condition can add constraints based on attributes of the
+      # request, the resource, or both.
+      #
+      # **JSON example:**
       #
       #     {
       #       "bindings": [
       #         {
-      #           "role": "roles/owner",
+      #           "role": "roles/resourcemanager.organizationAdmin",
       #           "members": [
       #             "user:mike@example.com",
       #             "group:admins@example.com",
       #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
+      #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
       #           ]
       #         },
       #         {
-      #           "role": "roles/viewer",
-      #           "members": ["user:sean@example.com"]
+      #           "role": "roles/resourcemanager.organizationViewer",
+      #           "members": ["user:eve@example.com"],
+      #           "condition": {
+      #             "title": "expirable access",
+      #             "description": "Does not grant access after Sep 2020",
+      #             "expression": "request.time &lt; timestamp('2020-10-01T00:00:00.000Z')",
+      #           }
       #         }
-      #       ]
+      #       ],
+      #       "etag": "BwWWja0YfJA=",
+      #       "version": 3
       #     }
       #
-      # **YAML Example**
+      # **YAML example:**
       #
       #     bindings:
       #     - members:
       #       - user:mike@example.com
       #       - group:admins@example.com
       #       - domain:google.com
-      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
-      #       role: roles/owner
+      #       - serviceAccount:my-project-id@appspot.gserviceaccount.com
+      #       role: roles/resourcemanager.organizationAdmin
       #     - members:
-      #       - user:sean@example.com
-      #       role: roles/viewer
-      #
+      #       - user:eve@example.com
+      #       role: roles/resourcemanager.organizationViewer
+      #       condition:
+      #         title: expirable access
+      #         description: Does not grant access after Sep 2020
+      #         expression: request.time &lt; timestamp('2020-10-01T00:00:00.000Z')
+      #     - etag: BwWWja0YfJA=
+      #     - version: 3
       #
       # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam/docs).
+      # [IAM documentation](https://cloud.google.com/iam/docs/).
+    "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a
+        # `condition` that determines how and when the `bindings` are applied. Each
+        # of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@example.com` .
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a user that has been recently deleted. For
+            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+            #    recovered, this value reverts to `user:{emailid}` and the recovered user
+            #    retains the role in the binding.
+            #
+            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+            #    unique identifier) representing a service account that has been recently
+            #    deleted. For example,
+            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+            #    If the service account is undeleted, this value reverts to
+            #    `serviceAccount:{emailid}` and the undeleted service account retains the
+            #    role in the binding.
+            #
+            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a Google group that has been recently
+            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+            #    the group is recovered, this value reverts to `group:{emailid}` and the
+            #    recovered group retains the role in the binding.
+            #
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+        "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+            # NOTE: An unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+            # are documented at https://github.com/google/cel-spec.
+            #
+            # Example (Comparison):
+            #
+            #     title: "Summary size limit"
+            #     description: "Determines if a summary is less than 100 chars"
+            #     expression: "document.summary.size() &lt; 100"
+            #
+            # Example (Equality):
+            #
+            #     title: "Requestor is owner"
+            #     description: "Determines if requestor is the document owner"
+            #     expression: "document.owner == request.auth.claims.email"
+            #
+            # Example (Logic):
+            #
+            #     title: "Public documents"
+            #     description: "Determine whether the document should be publicly visible"
+            #     expression: "document.type != 'private' &amp;&amp; document.type != 'internal'"
+            #
+            # Example (Data Manipulation):
+            #
+            #     title: "Notification string"
+            #     description: "Create a notification string with a timestamp."
+            #     expression: "'New message received at ' + string(document.create_time)"
+            #
+            # The exact variables and functions that may be referenced within an expression
+            # are determined by the service that evaluates it. See the service
+            # documentation for additional information.
+          "description": "A String", # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "expression": "A String", # Textual representation of an expression in Common Expression Language
+              # syntax.
+          "location": "A String", # Optional. String indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "title": "A String", # Optional. Title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
@@ -423,7 +576,7 @@
           #             {
           #               "log_type": "DATA_READ",
           #               "exempted_members": [
-          #                 "user:foo@gmail.com"
+          #                 "user:jose@example.com"
           #               ]
           #             },
           #             {
@@ -435,7 +588,7 @@
           #           ]
           #         },
           #         {
-          #           "service": "fooservice.googleapis.com"
+          #           "service": "sampleservice.googleapis.com"
           #           "audit_log_configs": [
           #             {
           #               "log_type": "DATA_READ",
@@ -443,7 +596,7 @@
           #             {
           #               "log_type": "DATA_WRITE",
           #               "exempted_members": [
-          #                 "user:bar@gmail.com"
+          #                 "user:aliya@example.com"
           #               ]
           #             }
           #           ]
@@ -451,12 +604,9 @@
           #       ]
           #     }
           #
-          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-          # bar@gmail.com from DATA_WRITE logging.
-        "exemptedMembers": [
-          "A String",
-        ],
+          # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts jose@example.com from DATA_READ logging, and
+          # aliya@example.com from DATA_WRITE logging.
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
           { # Provides the configuration for logging a type of permissions.
               # Example:
@@ -466,7 +616,7 @@
               #         {
               #           "log_type": "DATA_READ",
               #           "exempted_members": [
-              #             "user:foo@gmail.com"
+              #             "user:jose@example.com"
               #           ]
               #         },
               #         {
@@ -476,7 +626,7 @@
               #     }
               #
               # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-              # foo@gmail.com from DATA_READ logging.
+              # jose@example.com from DATA_READ logging.
             "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
                 # permission.
                 # Follows the same format of Binding.members.
@@ -490,91 +640,6 @@
             # `allServices` is a special value that covers all services.
       },
     ],
-    "rules": [ # If more than one rule is specified, the rules are applied in the following
-        # manner:
-        # - All matching LOG rules are always applied.
-        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-        #   granted.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-            # The format for in and not_in entries can be found at in the Local IAM
-            # documentation (see go/local-iam#features).
-          "A String",
-        ],
-        "description": "A String", # Human-readable description of the rule.
-        "in": [ # If one or more 'in' clauses are specified, the rule matches if
-            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "conditions": [ # Additional restrictions that must be met. All conditions must pass for the
-            # rule to match.
-          { # A condition to be met.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                # the IAM system for access control.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "values": [ # The objects of the condition.
-              "A String",
-            ],
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-            # that match the LOG action.
-          { # Specifies what kind of log the caller must write
-            "counter": { # Increment a streamz counter with the specified metric and field names. # Counter options.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # Supported field names:
-                #    - "authority", which is "[token]" if IAMContext.token is present,
-                #      otherwise the value of IAMContext.authority_selector if present, and
-                #      otherwise a representation of IAMContext.principal; or
-                #    - "iam_principal", a representation of IAMContext.principal even if a
-                #      token or authority selector is present; or
-                #    - "" (empty string), resulting in a counter with no fields.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support multiple field names (though this may be
-                # supported in the future).
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-              "logMode": "A String", # Whether Gin logging should happen in a fail-closed manner at the caller.
-                  # This is relevant only in the LocalIAM implementation, for now.
-            },
-            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
-              "authorizationLoggingOptions": { # Authorization-related information used by Cloud Audit Logging. # Information used by the Cloud Audit Logging pipeline.
-                "permissionType": "A String", # The type of the permission that was checked.
-              },
-            },
-          },
-        ],
-        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-      },
-    ],
-    "version": 42, # Deprecated.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -583,62 +648,31 @@
         # systems are expected to put that etag in the request to `setIamPolicy` to
         # ensure that their change will be applied to the same version of the policy.
         #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
-            # NOTE: An unsatisfied condition will not allow user access via current
-            # binding. Different bindings, including their conditions, are examined
-            # independently.
-            #
-            #     title: "User account presence"
-            #     description: "Determines whether the request has a user account"
-            #     expression: "size(request.user) > 0"
-          "description": "A String", # An optional description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
-          "expression": "A String", # Textual representation of an expression in
-              # Common Expression Language syntax.
-              #
-              # The application context of the containing message determines which
-              # well-known feature set of CEL is supported.
-          "location": "A String", # An optional string indicating the location of the expression for error
-              # reporting, e.g. a file name and a position in the file.
-          "title": "A String", # An optional title for the expression, i.e. a short string describing
-              # its purpose. This can be used e.g. in UIs which allow to enter the
-              # expression.
-        },
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` .
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            #
-            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+    "version": 42, # Specifies the format of the policy.
+        #
+        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+        # are rejected.
+        #
+        # Any operation that affects conditional role bindings must specify version
+        # `3`. This requirement applies to the following operations:
+        #
+        # * Getting a policy that includes a conditional role binding
+        # * Adding a conditional role binding to a policy
+        # * Changing a conditional role binding in a policy
+        # * Removing any role binding, with or without a condition, from a policy
+        #   that includes conditions
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+        #
+        # If a policy does not include any conditions, operations on that policy may
+        # specify any valid version or leave the field unset.
   }</pre>
 </div>
 
@@ -667,29 +701,28 @@
     { # Response message for the list instance request.
     "nextPageToken": "A String", # Token to retrieve the next page of results or empty if there are no more
         # results in the list.
-    "unreachable": [ # Locations that could not be reached.
-      "A String",
-    ],
     "instances": [ # Represents a list of Data Fusion instances.
       { # Represents a Data Fusion instance.
+          # Next available ID: 23
         "updateTime": "A String", # Output only. The time the instance was last updated.
-        "displayName": "A String", # Display name for an instance.
-        "description": "A String", # An optional description of this instance.
-        "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
         "privateInstance": True or False, # Specifies whether the Data Fusion instance should be private. If set to
             # true, all Data Fusion nodes will have private IP addresses and will not be
             # able to access the public internet.
-        "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
-        "options": { # Map of additional options used to configure the behavior of
-            # Data Fusion instance.
-          "a_key": "A String",
-        },
         "labels": { # The resource labels for instance to use to annotate any related underlying
-            # resources such as GCE VMs. The character '=' is not allowed to be used
-            # within the labels.
+            # resources such as Compute Engine VMs. The character '=' is not allowed to
+            # be used within the labels.
           "a_key": "A String",
         },
-        "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
+        "apiEndpoint": "A String", # Output only. Endpoint on which the REST APIs is accessible.
+        "accelerators": [ # List of accelerators enabled for this CDF instance.
+          { # Identifies Data Fusion accelerators for an instance.
+            "acceleratorType": "A String", # The type of an accelator for a CDF instance.
+          },
+        ],
+        "gcsBucket": "A String", # Output only. Cloud Storage bucket generated by Data Fusion in the customer project.
+        "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
+        "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
+            # the customer project."
         "networkConfig": { # Network configuration for a Data Fusion instance. These configurations # Network configuration options. These are required when a private Data
             # Fusion instance is to be created.
             # are used for peering with the customer network. Configurations are optional
@@ -698,25 +731,41 @@
             # while accessing the customer resources from managed Data Fusion instance
             # nodes, as well as access to the customer on-prem resources.
           "network": "A String", # Name of the network in the customer project with which the Tenant Project
-              # will be peered for executing pipelines.
+              # will be peered for executing pipelines. In case of shared VPC where the
+              # network resides in another host project the network should specified in
+              # the form of projects/{host-project-id}/global/networks/{network}
           "ipAllocation": "A String", # The IP range in CIDR notation to use for the managed Data Fusion instance
               # nodes. This range must not overlap with any other ranges used in the Data
               # Fusion instance network.
         },
-        "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI and REST APIs are
-            # accessible.
+        "createTime": "A String", # Output only. The time the instance was created.
+        "state": "A String", # Output only. The current state of this Data Fusion instance.
+        "version": "A String", # Current version of Data Fusion.
+        "type": "A String", # Required. Instance type.
+        "description": "A String", # Optional. An optional description of this instance.
+        "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
         "stateMessage": "A String", # Output only. Additional information about the current state of this Data
             # Fusion instance if available.
-        "state": "A String", # Output only. The current state of this Data Fusion instance.
-        "version": "A String", # Output only. Current version of the Data Fusion.
-        "type": "A String", # Required. Instance type.
-        "createTime": "A String", # Output only. The time the instance was created.
-        "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
-            # the customer project."
+        "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI is accessible.
+        "displayName": "A String", # Display name for an instance.
         "name": "A String", # Output only. The name of this instance is in the form of
             # projects/{project}/locations/{location}/instances/{instance}.
+        "availableVersion": [ # Available versions that the instance can be upgraded to using
+            # UpdateInstanceRequest.
+          { # The Data Fusion version.
+            "versionNumber": "A String", # The version number of the Data Fusion instance, such as '6.0.1.0'.
+          },
+        ],
+        "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
+        "options": { # Map of additional options used to configure the behavior of
+            # Data Fusion instance.
+          "a_key": "A String",
+        },
       },
     ],
+    "unreachable": [ # Locations that could not be reached.
+      "A String",
+    ],
   }</pre>
 </div>
 
@@ -735,34 +784,36 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
   <pre>Updates a single Data Fusion instance.
 
 Args:
   name: string, Output only. The name of this instance is in the form of
 projects/{project}/locations/{location}/instances/{instance}. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # Represents a Data Fusion instance.
+    # Next available ID: 23
   "updateTime": "A String", # Output only. The time the instance was last updated.
-  "displayName": "A String", # Display name for an instance.
-  "description": "A String", # An optional description of this instance.
-  "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
   "privateInstance": True or False, # Specifies whether the Data Fusion instance should be private. If set to
       # true, all Data Fusion nodes will have private IP addresses and will not be
       # able to access the public internet.
-  "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
-  "options": { # Map of additional options used to configure the behavior of
-      # Data Fusion instance.
-    "a_key": "A String",
-  },
   "labels": { # The resource labels for instance to use to annotate any related underlying
-      # resources such as GCE VMs. The character '=' is not allowed to be used
-      # within the labels.
+      # resources such as Compute Engine VMs. The character '=' is not allowed to
+      # be used within the labels.
     "a_key": "A String",
   },
-  "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
+  "apiEndpoint": "A String", # Output only. Endpoint on which the REST APIs is accessible.
+  "accelerators": [ # List of accelerators enabled for this CDF instance.
+    { # Identifies Data Fusion accelerators for an instance.
+      "acceleratorType": "A String", # The type of an accelator for a CDF instance.
+    },
+  ],
+  "gcsBucket": "A String", # Output only. Cloud Storage bucket generated by Data Fusion in the customer project.
+  "zone": "A String", # Name of the zone in which the Data Fusion instance will be created.
+  "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
+      # the customer project."
   "networkConfig": { # Network configuration for a Data Fusion instance. These configurations # Network configuration options. These are required when a private Data
       # Fusion instance is to be created.
       # are used for peering with the customer network. Configurations are optional
@@ -771,23 +822,36 @@
       # while accessing the customer resources from managed Data Fusion instance
       # nodes, as well as access to the customer on-prem resources.
     "network": "A String", # Name of the network in the customer project with which the Tenant Project
-        # will be peered for executing pipelines.
+        # will be peered for executing pipelines. In case of shared VPC where the
+        # network resides in another host project the network should specified in
+        # the form of projects/{host-project-id}/global/networks/{network}
     "ipAllocation": "A String", # The IP range in CIDR notation to use for the managed Data Fusion instance
         # nodes. This range must not overlap with any other ranges used in the Data
         # Fusion instance network.
   },
-  "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI and REST APIs are
-      # accessible.
+  "createTime": "A String", # Output only. The time the instance was created.
+  "state": "A String", # Output only. The current state of this Data Fusion instance.
+  "version": "A String", # Current version of Data Fusion.
+  "type": "A String", # Required. Instance type.
+  "description": "A String", # Optional. An optional description of this instance.
+  "enableStackdriverLogging": True or False, # Option to enable Stackdriver Logging.
   "stateMessage": "A String", # Output only. Additional information about the current state of this Data
       # Fusion instance if available.
-  "state": "A String", # Output only. The current state of this Data Fusion instance.
-  "version": "A String", # Output only. Current version of the Data Fusion.
-  "type": "A String", # Required. Instance type.
-  "createTime": "A String", # Output only. The time the instance was created.
-  "serviceAccount": "A String", # Output only. Service account which will be used to access resources in
-      # the customer project."
+  "serviceEndpoint": "A String", # Output only. Endpoint on which the Data Fusion UI is accessible.
+  "displayName": "A String", # Display name for an instance.
   "name": "A String", # Output only. The name of this instance is in the form of
       # projects/{project}/locations/{location}/instances/{instance}.
+  "availableVersion": [ # Available versions that the instance can be upgraded to using
+      # UpdateInstanceRequest.
+    { # The Data Fusion version.
+      "versionNumber": "A String", # The version number of the Data Fusion instance, such as '6.0.1.0'.
+    },
+  ],
+  "enableStackdriverMonitoring": True or False, # Option to enable Stackdriver Monitoring.
+  "options": { # Map of additional options used to configure the behavior of
+      # Data Fusion instance.
+    "a_key": "A String",
+  },
 }
 
   updateMask: string, Field mask is used to specify the fields that the update will overwrite
@@ -806,12 +870,6 @@
 
     { # 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). Each `Status` message contains
@@ -846,6 +904,12 @@
     "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}`.
+    "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.
+    },
   }</pre>
 </div>
 
@@ -873,12 +937,6 @@
 
     { # 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). Each `Status` message contains
@@ -913,69 +971,192 @@
     "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}`.
+    "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.
+    },
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
+Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED
+
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified.
 See the operation documentation for the appropriate value for this field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # Request message for `SetIamPolicy` method.
-    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
+    "policy": { # An Identity and Access Management (IAM) policy, which specifies access # REQUIRED: The complete policy to be applied to the `resource`. The size of
         # the policy is limited to a few 10s of KB. An empty policy is a
         # valid policy but certain Cloud Platform services (such as Projects)
         # might reject them.
-        # specify access control policies for Cloud Platform resources.
+        # controls for Google Cloud resources.
         #
         #
-        # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
-        # `members` to a `role`, where the members can be user accounts, Google groups,
-        # Google domains, and service accounts. A `role` is a named list of permissions
-        # defined by IAM.
+        # A `Policy` is a collection of `bindings`. A `binding` binds one or more
+        # `members` to a single `role`. Members can be user accounts, service accounts,
+        # Google groups, and domains (such as G Suite). A `role` is a named list of
+        # permissions; each `role` can be an IAM predefined role or a user-created
+        # custom role.
         #
-        # **JSON Example**
+        # Optionally, a `binding` can specify a `condition`, which is a logical
+        # expression that allows access to a resource only if the expression evaluates
+        # to `true`. A condition can add constraints based on attributes of the
+        # request, the resource, or both.
+        #
+        # **JSON example:**
         #
         #     {
         #       "bindings": [
         #         {
-        #           "role": "roles/owner",
+        #           "role": "roles/resourcemanager.organizationAdmin",
         #           "members": [
         #             "user:mike@example.com",
         #             "group:admins@example.com",
         #             "domain:google.com",
-        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
+        #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
         #           ]
         #         },
         #         {
-        #           "role": "roles/viewer",
-        #           "members": ["user:sean@example.com"]
+        #           "role": "roles/resourcemanager.organizationViewer",
+        #           "members": ["user:eve@example.com"],
+        #           "condition": {
+        #             "title": "expirable access",
+        #             "description": "Does not grant access after Sep 2020",
+        #             "expression": "request.time &lt; timestamp('2020-10-01T00:00:00.000Z')",
+        #           }
         #         }
-        #       ]
+        #       ],
+        #       "etag": "BwWWja0YfJA=",
+        #       "version": 3
         #     }
         #
-        # **YAML Example**
+        # **YAML example:**
         #
         #     bindings:
         #     - members:
         #       - user:mike@example.com
         #       - group:admins@example.com
         #       - domain:google.com
-        #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
-        #       role: roles/owner
+        #       - serviceAccount:my-project-id@appspot.gserviceaccount.com
+        #       role: roles/resourcemanager.organizationAdmin
         #     - members:
-        #       - user:sean@example.com
-        #       role: roles/viewer
-        #
+        #       - user:eve@example.com
+        #       role: roles/resourcemanager.organizationViewer
+        #       condition:
+        #         title: expirable access
+        #         description: Does not grant access after Sep 2020
+        #         expression: request.time &lt; timestamp('2020-10-01T00:00:00.000Z')
+        #     - etag: BwWWja0YfJA=
+        #     - version: 3
         #
         # For a description of IAM and its features, see the
-        # [IAM developer's guide](https://cloud.google.com/iam/docs).
+        # [IAM documentation](https://cloud.google.com/iam/docs/).
+      "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a
+          # `condition` that determines how and when the `bindings` are applied. Each
+          # of the `bindings` must contain at least one member.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@example.com` .
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+              #    identifier) representing a user that has been recently deleted. For
+              #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+              #    recovered, this value reverts to `user:{emailid}` and the recovered user
+              #    retains the role in the binding.
+              #
+              # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+              #    unique identifier) representing a service account that has been recently
+              #    deleted. For example,
+              #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+              #    If the service account is undeleted, this value reverts to
+              #    `serviceAccount:{emailid}` and the undeleted service account retains the
+              #    role in the binding.
+              #
+              # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+              #    identifier) representing a Google group that has been recently
+              #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+              #    the group is recovered, this value reverts to `group:{emailid}` and the
+              #    recovered group retains the role in the binding.
+              #
+              #
+              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+          "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+              # NOTE: An unsatisfied condition will not allow user access via current
+              # binding. Different bindings, including their conditions, are examined
+              # independently.
+              # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+              # are documented at https://github.com/google/cel-spec.
+              #
+              # Example (Comparison):
+              #
+              #     title: "Summary size limit"
+              #     description: "Determines if a summary is less than 100 chars"
+              #     expression: "document.summary.size() &lt; 100"
+              #
+              # Example (Equality):
+              #
+              #     title: "Requestor is owner"
+              #     description: "Determines if requestor is the document owner"
+              #     expression: "document.owner == request.auth.claims.email"
+              #
+              # Example (Logic):
+              #
+              #     title: "Public documents"
+              #     description: "Determine whether the document should be publicly visible"
+              #     expression: "document.type != 'private' &amp;&amp; document.type != 'internal'"
+              #
+              # Example (Data Manipulation):
+              #
+              #     title: "Notification string"
+              #     description: "Create a notification string with a timestamp."
+              #     expression: "'New message received at ' + string(document.create_time)"
+              #
+              # The exact variables and functions that may be referenced within an expression
+              # are determined by the service that evaluates it. See the service
+              # documentation for additional information.
+            "description": "A String", # Optional. Description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
+            "expression": "A String", # Textual representation of an expression in Common Expression Language
+                # syntax.
+            "location": "A String", # Optional. String indicating the location of the expression for error
+                # reporting, e.g. a file name and a position in the file.
+            "title": "A String", # Optional. Title for the expression, i.e. a short string describing
+                # its purpose. This can be used e.g. in UIs which allow to enter the
+                # expression.
+          },
+        },
+      ],
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
@@ -997,7 +1178,7 @@
             #             {
             #               "log_type": "DATA_READ",
             #               "exempted_members": [
-            #                 "user:foo@gmail.com"
+            #                 "user:jose@example.com"
             #               ]
             #             },
             #             {
@@ -1009,7 +1190,7 @@
             #           ]
             #         },
             #         {
-            #           "service": "fooservice.googleapis.com"
+            #           "service": "sampleservice.googleapis.com"
             #           "audit_log_configs": [
             #             {
             #               "log_type": "DATA_READ",
@@ -1017,7 +1198,7 @@
             #             {
             #               "log_type": "DATA_WRITE",
             #               "exempted_members": [
-            #                 "user:bar@gmail.com"
+            #                 "user:aliya@example.com"
             #               ]
             #             }
             #           ]
@@ -1025,12 +1206,9 @@
             #       ]
             #     }
             #
-            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-            # bar@gmail.com from DATA_WRITE logging.
-          "exemptedMembers": [
-            "A String",
-          ],
+            # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts jose@example.com from DATA_READ logging, and
+            # aliya@example.com from DATA_WRITE logging.
           "auditLogConfigs": [ # The configuration for logging of each type of permission.
             { # Provides the configuration for logging a type of permissions.
                 # Example:
@@ -1040,7 +1218,7 @@
                 #         {
                 #           "log_type": "DATA_READ",
                 #           "exempted_members": [
-                #             "user:foo@gmail.com"
+                #             "user:jose@example.com"
                 #           ]
                 #         },
                 #         {
@@ -1050,7 +1228,7 @@
                 #     }
                 #
                 # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-                # foo@gmail.com from DATA_READ logging.
+                # jose@example.com from DATA_READ logging.
               "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
                   # permission.
                   # Follows the same format of Binding.members.
@@ -1064,91 +1242,6 @@
               # `allServices` is a special value that covers all services.
         },
       ],
-      "rules": [ # If more than one rule is specified, the rules are applied in the following
-          # manner:
-          # - All matching LOG rules are always applied.
-          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-          #   Logging will be applied if one or more matching rule requires logging.
-          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-          #   granted.
-          #   Logging will be applied if one or more matching rule requires logging.
-          # - Otherwise, if no rule applies, permission is denied.
-        { # A rule to be applied in a Policy.
-          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-              # The format for in and not_in entries can be found at in the Local IAM
-              # documentation (see go/local-iam#features).
-            "A String",
-          ],
-          "description": "A String", # Human-readable description of the rule.
-          "in": [ # If one or more 'in' clauses are specified, the rule matches if
-              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-            "A String",
-          ],
-          "action": "A String", # Required
-          "conditions": [ # Additional restrictions that must be met. All conditions must pass for the
-              # rule to match.
-            { # A condition to be met.
-              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                  # the IAM system for access control.
-              "iam": "A String", # Trusted attributes supplied by the IAM system.
-              "values": [ # The objects of the condition.
-                "A String",
-              ],
-              "svc": "A String", # Trusted attributes discharged by the service.
-              "op": "A String", # An operator to apply the subject with.
-            },
-          ],
-          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-              # that match the LOG action.
-            { # Specifies what kind of log the caller must write
-              "counter": { # Increment a streamz counter with the specified metric and field names. # Counter options.
-                  #
-                  # Metric names should start with a '/', generally be lowercase-only,
-                  # and end in "_count". Field names should not contain an initial slash.
-                  # The actual exported metric names will have "/iam/policy" prepended.
-                  #
-                  # Field names correspond to IAM request parameters and field values are
-                  # their respective values.
-                  #
-                  # Supported field names:
-                  #    - "authority", which is "[token]" if IAMContext.token is present,
-                  #      otherwise the value of IAMContext.authority_selector if present, and
-                  #      otherwise a representation of IAMContext.principal; or
-                  #    - "iam_principal", a representation of IAMContext.principal even if a
-                  #      token or authority selector is present; or
-                  #    - "" (empty string), resulting in a counter with no fields.
-                  #
-                  # Examples:
-                  #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                  #   ==> increment counter /iam/policy/backend_debug_access_count
-                  #                         {iam_principal=[value of IAMContext.principal]}
-                  #
-                  # At this time we do not support multiple field names (though this may be
-                  # supported in the future).
-                "field": "A String", # The field value to attribute.
-                "metric": "A String", # The metric to update.
-              },
-              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-                "logMode": "A String", # Whether Gin logging should happen in a fail-closed manner at the caller.
-                    # This is relevant only in the LocalIAM implementation, for now.
-              },
-              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
-                "authorizationLoggingOptions": { # Authorization-related information used by Cloud Audit Logging. # Information used by the Cloud Audit Logging pipeline.
-                  "permissionType": "A String", # The type of the permission that was checked.
-                },
-              },
-            },
-          ],
-          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-            "A String",
-          ],
-        },
-      ],
-      "version": 42, # Deprecated.
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -1157,62 +1250,31 @@
           # systems are expected to put that etag in the request to `setIamPolicy` to
           # ensure that their change will be applied to the same version of the policy.
           #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
-      "bindings": [ # Associates a list of `members` to a `role`.
-          # `bindings` with no members will result in an error.
-        { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-          "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
-              # NOTE: An unsatisfied condition will not allow user access via current
-              # binding. Different bindings, including their conditions, are examined
-              # independently.
-              #
-              #     title: "User account presence"
-              #     description: "Determines whether the request has a user account"
-              #     expression: "size(request.user) > 0"
-            "description": "A String", # An optional description of the expression. This is a longer text which
-                # describes the expression, e.g. when hovered over it in a UI.
-            "expression": "A String", # Textual representation of an expression in
-                # Common Expression Language syntax.
-                #
-                # The application context of the containing message determines which
-                # well-known feature set of CEL is supported.
-            "location": "A String", # An optional string indicating the location of the expression for error
-                # reporting, e.g. a file name and a position in the file.
-            "title": "A String", # An optional title for the expression, i.e. a short string describing
-                # its purpose. This can be used e.g. in UIs which allow to enter the
-                # expression.
-          },
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-              # `members` can have the following values:
-              #
-              # * `allUsers`: A special identifier that represents anyone who is
-              #    on the internet; with or without a Google account.
-              #
-              # * `allAuthenticatedUsers`: A special identifier that represents anyone
-              #    who is authenticated with a Google account or a service account.
-              #
-              # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@gmail.com` .
-              #
-              #
-              # * `serviceAccount:{emailid}`: An email address that represents a service
-              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-              #
-              # * `group:{emailid}`: An email address that represents a Google group.
-              #    For example, `admins@example.com`.
-              #
-              #
-              # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-              #    users of that domain. For example, `google.com` or `example.com`.
-              #
-            "A String",
-          ],
-        },
-      ],
-      "iamOwned": True or False,
+          # **Important:** If you use IAM Conditions, you must include the `etag` field
+          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+          # you to overwrite a version `3` policy with a version `1` policy, and all of
+          # the conditions in the version `3` policy are lost.
+      "version": 42, # Specifies the format of the policy.
+          #
+          # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+          # are rejected.
+          #
+          # Any operation that affects conditional role bindings must specify version
+          # `3`. This requirement applies to the following operations:
+          #
+          # * Getting a policy that includes a conditional role binding
+          # * Adding a conditional role binding to a policy
+          # * Changing a conditional role binding in a policy
+          # * Removing any role binding, with or without a condition, from a policy
+          #   that includes conditions
+          #
+          # **Important:** If you use IAM Conditions, you must include the `etag` field
+          # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+          # you to overwrite a version `3` policy with a version `1` policy, and all of
+          # the conditions in the version `3` policy are lost.
+          #
+          # If a policy does not include any conditions, operations on that policy may
+          # specify any valid version or leave the field unset.
     },
     "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, the
@@ -1229,51 +1291,166 @@
 Returns:
   An object of the form:
 
-    { # Defines an Identity and Access Management (IAM) policy. It is used to
-      # specify access control policies for Cloud Platform resources.
+    { # An Identity and Access Management (IAM) policy, which specifies access
+      # controls for Google Cloud resources.
       #
       #
-      # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
-      # `members` to a `role`, where the members can be user accounts, Google groups,
-      # Google domains, and service accounts. A `role` is a named list of permissions
-      # defined by IAM.
+      # A `Policy` is a collection of `bindings`. A `binding` binds one or more
+      # `members` to a single `role`. Members can be user accounts, service accounts,
+      # Google groups, and domains (such as G Suite). A `role` is a named list of
+      # permissions; each `role` can be an IAM predefined role or a user-created
+      # custom role.
       #
-      # **JSON Example**
+      # Optionally, a `binding` can specify a `condition`, which is a logical
+      # expression that allows access to a resource only if the expression evaluates
+      # to `true`. A condition can add constraints based on attributes of the
+      # request, the resource, or both.
+      #
+      # **JSON example:**
       #
       #     {
       #       "bindings": [
       #         {
-      #           "role": "roles/owner",
+      #           "role": "roles/resourcemanager.organizationAdmin",
       #           "members": [
       #             "user:mike@example.com",
       #             "group:admins@example.com",
       #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com"
+      #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
       #           ]
       #         },
       #         {
-      #           "role": "roles/viewer",
-      #           "members": ["user:sean@example.com"]
+      #           "role": "roles/resourcemanager.organizationViewer",
+      #           "members": ["user:eve@example.com"],
+      #           "condition": {
+      #             "title": "expirable access",
+      #             "description": "Does not grant access after Sep 2020",
+      #             "expression": "request.time &lt; timestamp('2020-10-01T00:00:00.000Z')",
+      #           }
       #         }
-      #       ]
+      #       ],
+      #       "etag": "BwWWja0YfJA=",
+      #       "version": 3
       #     }
       #
-      # **YAML Example**
+      # **YAML example:**
       #
       #     bindings:
       #     - members:
       #       - user:mike@example.com
       #       - group:admins@example.com
       #       - domain:google.com
-      #       - serviceAccount:my-other-app@appspot.gserviceaccount.com
-      #       role: roles/owner
+      #       - serviceAccount:my-project-id@appspot.gserviceaccount.com
+      #       role: roles/resourcemanager.organizationAdmin
       #     - members:
-      #       - user:sean@example.com
-      #       role: roles/viewer
-      #
+      #       - user:eve@example.com
+      #       role: roles/resourcemanager.organizationViewer
+      #       condition:
+      #         title: expirable access
+      #         description: Does not grant access after Sep 2020
+      #         expression: request.time &lt; timestamp('2020-10-01T00:00:00.000Z')
+      #     - etag: BwWWja0YfJA=
+      #     - version: 3
       #
       # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam/docs).
+      # [IAM documentation](https://cloud.google.com/iam/docs/).
+    "bindings": [ # Associates a list of `members` to a `role`. Optionally, may specify a
+        # `condition` that determines how and when the `bindings` are applied. Each
+        # of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@example.com` .
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a user that has been recently deleted. For
+            #    example, `alice@example.com?uid=123456789012345678901`. If the user is
+            #    recovered, this value reverts to `user:{emailid}` and the recovered user
+            #    retains the role in the binding.
+            #
+            # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
+            #    unique identifier) representing a service account that has been recently
+            #    deleted. For example,
+            #    `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
+            #    If the service account is undeleted, this value reverts to
+            #    `serviceAccount:{emailid}` and the undeleted service account retains the
+            #    role in the binding.
+            #
+            # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+            #    identifier) representing a Google group that has been recently
+            #    deleted. For example, `admins@example.com?uid=123456789012345678901`. If
+            #    the group is recovered, this value reverts to `group:{emailid}` and the
+            #    recovered group retains the role in the binding.
+            #
+            #
+            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+        "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+            # NOTE: An unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+            # are documented at https://github.com/google/cel-spec.
+            #
+            # Example (Comparison):
+            #
+            #     title: "Summary size limit"
+            #     description: "Determines if a summary is less than 100 chars"
+            #     expression: "document.summary.size() &lt; 100"
+            #
+            # Example (Equality):
+            #
+            #     title: "Requestor is owner"
+            #     description: "Determines if requestor is the document owner"
+            #     expression: "document.owner == request.auth.claims.email"
+            #
+            # Example (Logic):
+            #
+            #     title: "Public documents"
+            #     description: "Determine whether the document should be publicly visible"
+            #     expression: "document.type != 'private' &amp;&amp; document.type != 'internal'"
+            #
+            # Example (Data Manipulation):
+            #
+            #     title: "Notification string"
+            #     description: "Create a notification string with a timestamp."
+            #     expression: "'New message received at ' + string(document.create_time)"
+            #
+            # The exact variables and functions that may be referenced within an expression
+            # are determined by the service that evaluates it. See the service
+            # documentation for additional information.
+          "description": "A String", # Optional. Description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "expression": "A String", # Textual representation of an expression in Common Expression Language
+              # syntax.
+          "location": "A String", # Optional. String indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "title": "A String", # Optional. Title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
@@ -1295,7 +1472,7 @@
           #             {
           #               "log_type": "DATA_READ",
           #               "exempted_members": [
-          #                 "user:foo@gmail.com"
+          #                 "user:jose@example.com"
           #               ]
           #             },
           #             {
@@ -1307,7 +1484,7 @@
           #           ]
           #         },
           #         {
-          #           "service": "fooservice.googleapis.com"
+          #           "service": "sampleservice.googleapis.com"
           #           "audit_log_configs": [
           #             {
           #               "log_type": "DATA_READ",
@@ -1315,7 +1492,7 @@
           #             {
           #               "log_type": "DATA_WRITE",
           #               "exempted_members": [
-          #                 "user:bar@gmail.com"
+          #                 "user:aliya@example.com"
           #               ]
           #             }
           #           ]
@@ -1323,12 +1500,9 @@
           #       ]
           #     }
           #
-          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-          # bar@gmail.com from DATA_WRITE logging.
-        "exemptedMembers": [
-          "A String",
-        ],
+          # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts jose@example.com from DATA_READ logging, and
+          # aliya@example.com from DATA_WRITE logging.
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
           { # Provides the configuration for logging a type of permissions.
               # Example:
@@ -1338,7 +1512,7 @@
               #         {
               #           "log_type": "DATA_READ",
               #           "exempted_members": [
-              #             "user:foo@gmail.com"
+              #             "user:jose@example.com"
               #           ]
               #         },
               #         {
@@ -1348,7 +1522,7 @@
               #     }
               #
               # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-              # foo@gmail.com from DATA_READ logging.
+              # jose@example.com from DATA_READ logging.
             "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
                 # permission.
                 # Follows the same format of Binding.members.
@@ -1362,91 +1536,6 @@
             # `allServices` is a special value that covers all services.
       },
     ],
-    "rules": [ # If more than one rule is specified, the rules are applied in the following
-        # manner:
-        # - All matching LOG rules are always applied.
-        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-        #   granted.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-            # The format for in and not_in entries can be found at in the Local IAM
-            # documentation (see go/local-iam#features).
-          "A String",
-        ],
-        "description": "A String", # Human-readable description of the rule.
-        "in": [ # If one or more 'in' clauses are specified, the rule matches if
-            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "conditions": [ # Additional restrictions that must be met. All conditions must pass for the
-            # rule to match.
-          { # A condition to be met.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                # the IAM system for access control.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "values": [ # The objects of the condition.
-              "A String",
-            ],
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-            # that match the LOG action.
-          { # Specifies what kind of log the caller must write
-            "counter": { # Increment a streamz counter with the specified metric and field names. # Counter options.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # Supported field names:
-                #    - "authority", which is "[token]" if IAMContext.token is present,
-                #      otherwise the value of IAMContext.authority_selector if present, and
-                #      otherwise a representation of IAMContext.principal; or
-                #    - "iam_principal", a representation of IAMContext.principal even if a
-                #      token or authority selector is present; or
-                #    - "" (empty string), resulting in a counter with no fields.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support multiple field names (though this may be
-                # supported in the future).
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-              "logMode": "A String", # Whether Gin logging should happen in a fail-closed manner at the caller.
-                  # This is relevant only in the LocalIAM implementation, for now.
-            },
-            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
-              "authorizationLoggingOptions": { # Authorization-related information used by Cloud Audit Logging. # Information used by the Cloud Audit Logging pipeline.
-                "permissionType": "A String", # The type of the permission that was checked.
-              },
-            },
-          },
-        ],
-        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-      },
-    ],
-    "version": 42, # Deprecated.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -1455,67 +1544,36 @@
         # systems are expected to put that etag in the request to `setIamPolicy` to
         # ensure that their change will be applied to the same version of the policy.
         #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
-            # NOTE: An unsatisfied condition will not allow user access via current
-            # binding. Different bindings, including their conditions, are examined
-            # independently.
-            #
-            #     title: "User account presence"
-            #     description: "Determines whether the request has a user account"
-            #     expression: "size(request.user) > 0"
-          "description": "A String", # An optional description of the expression. This is a longer text which
-              # describes the expression, e.g. when hovered over it in a UI.
-          "expression": "A String", # Textual representation of an expression in
-              # Common Expression Language syntax.
-              #
-              # The application context of the containing message determines which
-              # well-known feature set of CEL is supported.
-          "location": "A String", # An optional string indicating the location of the expression for error
-              # reporting, e.g. a file name and a position in the file.
-          "title": "A String", # An optional title for the expression, i.e. a short string describing
-              # its purpose. This can be used e.g. in UIs which allow to enter the
-              # expression.
-        },
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` .
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            #
-            # * `domain:{domain}`: The G Suite domain (primary) that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+    "version": 42, # Specifies the format of the policy.
+        #
+        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+        # are rejected.
+        #
+        # Any operation that affects conditional role bindings must specify version
+        # `3`. This requirement applies to the following operations:
+        #
+        # * Getting a policy that includes a conditional role binding
+        # * Adding a conditional role binding to a policy
+        # * Changing a conditional role binding in a policy
+        # * Removing any role binding, with or without a condition, from a policy
+        #   that includes conditions
+        #
+        # **Important:** If you use IAM Conditions, you must include the `etag` field
+        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+        # you to overwrite a version `3` policy with a version `1` policy, and all of
+        # the conditions in the version `3` policy are lost.
+        #
+        # If a policy does not include any conditions, operations on that policy may
+        # specify any valid version or leave the field unset.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, 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.
@@ -1527,7 +1585,7 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 See the operation documentation for the appropriate value for this field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # Request message for `TestIamPermissions` method.
@@ -1582,12 +1640,6 @@
 
     { # 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). Each `Status` message contains
@@ -1622,6 +1674,12 @@
     "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}`.
+    "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.
+    },
   }</pre>
 </div>